Efficiency Improvements

C&P Support
Allow users to copy/paste methods/variables/sections of bytecode.
Extra details:

Ideally convert the specific resource to text and put in in the OS clipboard - this allows sharing via pastebin as well as cross-process C&P.
Most important for instructions and methods, as variables are quicker to add and classes can be duplicated with winrar.

Keyboard Instruction Input
Either allow the insertion of new instructions via shortcuts, or, even better, allow us to write instructions as text which is then parsed to bytecode (for bonus points, add autocomplete for instruction and class/variable names).
Extra details:

Obviously the smarter the suggestion the system can provide, the better, but simple syntax checking with suggestions of instruction names and jar/project-local class/field names would already be quite efficient. Add previously used non-local class names to the list, and it's close to perfect.
Requires some additional UI, but speeds up work flow considerably (writing instructions w/ autocomplete might be more than ten times as fast as selecting them via UI).

Recompile Feature
This might take a lot of work, but it would be nice if users could just modify the java code in the decompile window and let the application do the conversion to bytecode. I personally like the freedom direct instruction editing gives, but for most users this addition would make Recaf a much more powerful tool.
Extra details:

If the library used for decompiling can already reverse this process, integration should be quite simple.
Ideally the bytecode should change as little as possible when making small tweaks, though this is of low importance.

Minor Enhancements
Simple:

Remember the last path used for opening/saving files.
Add recent files/folders list to file menu.
Ask before quitting if changes occured since last save.
Doubleclick on a class/method should open its definition in a new window (decompile and bytecode view).
Rightclick on a class/method should give option to open definition/search for uses/refactor(rename everywhere) (decompile and bytecode view).
Add window that lists (other) open windows.
Advanced:
Allow multicursor selection for editing instrutions
Add regex search/replace with functional conditions (ie. class name that starts with "wi", data type name "int" (useful eg. if you don't want to want to change the class name Mint to Mlong, but all ints to longs)
Structure Detection: Allow semiautomatic application of simple structure rules (automate repetetive tasks; eg. if you want to add several class entries to an array, the constructor code for them could be automatically generated when C&P duplicating the last 3 entries (should be optional/configurable)
Allow using tabs instead of new windows?

For C# there is a program called DNSpy, which allows you to edit C# bytecode extremely efficiently. If you are looking for further enhancements/extensions for Recaf, it is probably the best example to compare yourself to.

C&P Support

:+1: will do
What do you mean by: * Most important for instructions and methods, as variables are quicker to add ? I get the first point, not this one though.

Keyboard Instruction Input

How would such a shortcut work?
The text representation is arbitrary, but I could probably make a parser for Text -> Bytecode
:+1:

Recompile Feature

This already is supported, so long as the compiler classes are on the classpath. Running Recaf with a JDK's bin/java should resolve this.
I don't control the decompiler or the compiler, so I can't enforce keeping most of the bytecode the same.

There could be some workarounds though:

Use the java-parser API to figure out which method(s) have been modified, compile the code, and replace only the methods with the newly compiled code's bytecode. Leaving other methods and such in-tact
Re-add recompilation from single-method decompile. I removed this due to some complexities in this process not being easily resolvable.

Minor
If there's no comments on a suggestion, assume :+1:

Doubleclick on a class/method should open its definition in a new window

So, on the tree navigation panels?

Rightclick on a class/method should give option to open definition/search for uses/refactor

Again, on the tree navigation panels?
:+1: for open def/search but not refactor due to how that's handled. That'll be reserved for the definition window

Allow multicursor selection for editing instrutions

Is this any different than Control + M1?

Add regex search/replace with functional conditions

I'd like more specifics. What kind of data will this allow to be replaced? Is it anything like this example plugin?

Structure Detection

Can you mock up a concrete example? Like the action you want to do and the bytecode that would be auto-generated?

Allow using tabs instead of new windows?

Not sure how I feel about this one. I do agree too many windows gets cluttered, but I don't know where the tabs would be placed and how to keep track of them (What windows are open suggestion)

The text representation is arbitrary, but I could probably make a parser for Text -> Bytecode

Maybe you're looking for Jasmin or its successor Krakatau:
.class public HelloWorld
.super java/lang/Object

.method public <init>()V
    aload_0
    invokenonvirtual java/lang/Object/<init>()V
    return
.end method

.method public static main([Ljava/lang/String;)V
    .limit stack 2
    getstatic java/lang/System/out Ljava/io/PrintStream;
    ldc "Hello World!"
    invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V
    return
.end method

JBE also has a similar feature:

C&P
Copying methods and instructions is something I really wanted multiple times, while manually copying classes or fields was already doable.
Keyboard Input
I was imagining a shortcut for 'insert instruction, and then a mapping of keyboard input to instructions - either a search field for instruction name where you can comfirm your selection with enter, or some menu tree.
The jasmin code representation might be a bit more work, but would be much more convenient and extremely appreciated.
Recompile
How do you access this? Just like someone suggested there to be an apply/discard dialog when closing the instruction editor, there should be a explicit 'recompile edited source code' button. Changes should certainly not be applied automatically, especially if there is no undo button. If you are trying to search in the decompiled code, sometimes the first few characters of the search term are written in the code window instead of the search bar (it opens with a large delay (~0.2s)) - if the code is recompiled automatically, this could lead to disaster.
Minor

Doubleclick on a class/method should open its definition in a new window

So, on the tree navigation panels?

I meant in the instruction or code editor (only when using text-based instruction editor, of course - in the module-based instruction editor a right-click option is better).

Allow multicursor selection for editing instrutions

Is this any different than Control + M1?

In the current modular instruction view not really, though you can't do much with what you have selected. A full multi-cursor support would allow editing multiple names/instructions at the same time - something which doesn't work with Ctrl+M1 selection (Sublime Text 3 implements this, and I use the feature quite often).

Add regex search/replace with functional conditions

I'd like more specifics. What kind of data will this allow to be replaced? Is it anything like this example plugin?

Pretty much, though my suggestion is including functional symbols in the regex system: eg. being able to only replace some string in class names, not in method/field names (or the opposite), and select the files/folders it replaces it in. It also makes it possible to efficiently search for eg. a specific method with nothing but text input (I prefer using my keyboard over using my mouse for things like this :P)

Structure Detection

Can you mock up a concrete example? Like the action you want to do and the bytecode that would be auto-generated?

Java code (from minecraft mod "ebwizardry"):
static {
        MAGIC = new Element(new Style().func_150238_a(TextFormatting.GRAY), "simple", "ebwizardry");
        POWER = new Element(new Style().func_150238_a(TextFormatting.LIGHT_PURPLE), "power", "ebwizardry");
        FIRE = new Element(new Style().func_150238_a(TextFormatting.DARK_RED), "fire", "ebwizardry");
        ICE = new Element(new Style().func_150238_a(TextFormatting.AQUA), "ice", "ebwizardry");
        LIGHTNING = new Element(new Style().func_150238_a(TextFormatting.DARK_AQUA), "lightning", "ebwizardry");
        NECROMANCY = new Element(new Style().func_150238_a(TextFormatting.DARK_PURPLE), "necromancy", "ebwizardry");
        EARTH = new Element(new Style().func_150238_a(TextFormatting.DARK_GREEN), "earth", "ebwizardry");
        SORCERY = new Element(new Style().func_150238_a(TextFormatting.GREEN), "sorcery", "ebwizardry");
        HEALING = new Element(new Style().func_150238_a(TextFormatting.YELLOW), "healing", "ebwizardry");
$VALUES = new Element[]{MAGIC, FIRE, ICE, LIGHTNING, NECROMANCY, EARTH, SORCERY, HEALING, POWER};
    }

If I wanted to add let's say 2 new entries, I would have to copy this bytecode by hand both times, in addition to handling the insertion and expansion of the array. C&P helps a lot, so this has a very low priority, but what I imagined was that I could somehow signal my intent to expand this array, and the expansion and generation of copied example constructors would be done automatically, resulting in the following:
...
HEALING = new Element(new Style().func_150238_a(TextFormatting.YELLOW), "healing", "ebwizardry");
HEALING = new Element(new Style().func_150238_a(TextFormatting.YELLOW), "healing", "ebwizardry");
$VALUES = new Element[]{MAGIC, FIRE, ICE, LIGHTNING, NECROMANCY, EARTH, SORCERY, HEALING, POWER, HEALING, HEALING};

(in java code view)
Tabs could be arranged similarly to DNSpy, but with a window list window the chaos of huge 'window swarms' could already be handled pretty well I guess.
@andylizi Jasmin is exactly what I meant when I was talking about a bytecode <=> text mapping.
Maybe this could be included as a help function, since it is no longer available online (apart from archive.org)?

C&P
Copying methods and instructions is something I really wanted multiple times, while manually copying classes or fields was already doable.

Copying instructions is already possible

Select multiple instructions -> right click -> save as block
Right click -> insert block

Keyboard Input
I was imagining a shortcut for 'insert instruction, and then a mapping of keyboard input to instructions - either a search field for instruction name where you can comfirm your selection with enter, or some menu tree.

Oh, so a keyboard shortcut would pop up a search bar, you type in the opcode what you want to insert, then pressing enter will bring up the opcode window with your specified opcode for further clarification (until text->code is supported)?

Recompile
How do you access this? Just like someone suggested there to be an apply/discard dialog when closing the instruction editor, there should be a explicit 'recompile edited source code' button. Changes should certainly not be applied automatically

Access by right click -> Recompile.
Also, its not automatic. Since its relevant, I'll include a note on how the UI works below.

Text -> Bytecode
The jasmin code representation might be a bit more work, but would be much more convenient and extremely appreciated.

Yeah, that would be a nice thing to have. I'll make sure to add some support for this in the future.

A full multi-cursor support would allow editing multiple names/instructions at the same time

I don't think with how the UI works right now that this will be possible to implement.

My suggestion is including functional symbols in the regex system: eg. being able to only replace some string in class names, not in method/field names (or the opposite), and select the files/folders it replaces it in. It also makes it possible to efficiently search for eg. a specific method with nothing but text input

Ok so custom identifiers in regex, that does sound useful but I'm not sure how I would approach that. Working with regex is easy, extending it would be something new to me.
This does line up with what I want to do with the search function anyways. At one point I wrote down this note:

Rewrite search to allow for custom search algorithms given the same Input

Allow users to query by writing raw JSON requests (UI exports to JSON) or some similar system
Allow for union / disjoint for multiple search elements

There is a LOT I want to do here, but the issue is free time & not breaking everything with constant rewrites.

C&P helps a lot, so this has a very low priority, but what I imagined was that I could somehow signal my intent to expand this array, and the expansion and generation of copied example constructors would be done automatically

Guessing intent is not a simple task. It certainly would be cool, but I don't think I'll be adding something this complex any time soon.

Tabs could be arranged similarly to DNSpy, but with a window list window the chaos of huge 'window swarms' could already be handled pretty well I guess.

:+1:

Jasmin is exactly what I meant when I was talking about a bytecode <=> text mapping.
Maybe this could be included as a help function, since it is no longer available online (apart from archive.org)?

Its a bit outdated and IIRC some articles are missing information. Great resource otherwise :+1:
Also didn't know it was 404ing. I'll have to update my link for the standard opcode to something else.
As for inclusion of help, I'd probably make an equivalent for it and put it in the online docs like this article on Objectweb ASM's opcodes

How the UI works in general
Right now most of the windows in Recaf are mostly auto-generated. I use ControlfFX's PropertySheet control. The way it works is that it behaves as a visual wrapper of some data structure. Each field of the structure is represented by a labeled control. When the state of a control changes, the field they represent is changed immediately. Since PropertySheet does some basic type validation, this doesn't cause any problems. For example if I'm editing a field List<String> names and I want to change it to a set I will have to temporary make desc an invalid value while I type out Set. But the last update the control receives is  correct, so it doesn't matter what has happened before.

Just like someone suggested there to be an apply/discard dialog when closing the instruction editor ...

I personally am not a fan of having to hit a confirm button dozens of times so I thought the PropertySheet approach was valid.

Blocks are helpful, but not really convenient to use (especially since I have no clue how I can remove blocks I no longer need).
The keyboard shortcut stuff would be nice while you work on a jasmin parser, but I don't know if it is worth the work for something that will hopefully be changed to something else anyway (or do you want to keep the 'instruction module' based editoras an option?).
The recompile feature is something I wasn't aware of at all when first posting this, and I haven't yet tried to use it in an actual project. Some hint for new users would probably help here.
Apply/discard should be optional, but would be quite helpful depending on what you work on. When modifying large projects, you sometimes make changes you didn't intent, and can't easily reconstruct the old code. Having a 'discard changes' option can save hours of work in cases like that (yes I know, saving more often reduces that risk). Applying automatically when you close the window might be a little bit quicker, but I'd personally prefer the safety of always having a way back before comitting to the changes.

Blocks are helpful, but not really convenient to use (especially since I have no clue how I can remove blocks I no longer need).

:eyes: I admit there's no way to delete them via the UI right now... But you can remove them in the rc_blocks.json I'll have to fix that.

(or do you want to keep the 'instruction module' based editoras an option?)

I'll probably have an option to do one or the other in the UI config.

The recompile feature is something I wasn't aware of at all when first posting this, and I haven't yet tried to use it in an actual project. Some hint for new users would probably help here.

I think it would be beneficial for there to be a Welcome screen / tutorial for first-time users that would display tips / tricks / feature example uses.

Apply/discard should be optional, but would be quite helpful depending on what you work on.

True, but thats very low on the priority list for me. Maybe some time down the road. I do believe text-fields support Control + Z by default in the meantime.

True, but thats very low on the priority list for me. Maybe some time down the road. I do believe text-fields support Control + Z by default in the meantime.

If the implementation is the problem, you could simply let the UI element edit a copy of the original data structure, and when closing the window check whether anything was changed.

Working on copy/paste: https://github.com/Col-E/Recaf/blob/master/src/me/coley/recaf/ui/component/editor/InsnListEditor.java#L202

Select some opcodes
Control + C
Select the opcode you want to paste before
Control + V
Copied code placed before the selection

Why paste before the selected instruction and not after? Not a big deal, but paste after would feel more natural to me.

Didn't think about it, I can change that or make it a config option.

Changed the order so that pasting puts items AFTER the selection

In 63e9d45f5427dddcf91c6f73edc53593a7b4a586

Added File -> Recent menu.
File selection for open/export is now persistent in the config (Yet hidden from the config UI)

Keyboard Instruction Input

Started working on an assembler. Along with this, I will be slightly changing the way instructions are displayed in the method instructions window so that they are more consistent with one another. The syntax shown in the instructions window will not perfectly mirror that of the assembler so that it can show more verbose informaiton (as it currently does). The assembler will be simple, more details coming later on that though.
Here is a markup of:

What opcodes look like now
What I want opcodes to look like later (Marked with Alternative, following an ASM instruction type)
How the assembler will pattern match input

LdcInsnNode             LDC "Hello World"
LdcInsnNode             LDC 1
Alternative:            LDC 1f
Alternative:            LDC 1d
Alternative:            LDC 1l
Alternative:            LDC 1j
                        <OPCODE> <VALUE>

InsnNode                ICONST_0
InsnNode                NOP
                        <OPCODE>

IntInsnNode             BIPUSH 100
                        <OPCODE> <VALUE>

VarInsnNode             ALOAD 0
Alternative:            ALOAD this
                        <OPCODE> <VARIABLE>
                        - Allow names as variables

IincInsnNode            IINC (1)++
IincInsnNode            IINC (1)--
IincInsnNode            IINC (1) += 2
IincInsnNode            IINC (1) += -2
Alternative:            IINC $1 + 1
Alternative:            IINC $2 - 1
                        <OPCODE> <VARIABLE> <OPERATION> <VALUE>
Alternative:            IINC $1 +1
Alternative:            IINC $1  1
Alternative:            IINC $2 -1
                        <OPCODE> <VARIABLE> <VALUE>
                        - Allow names as variables?

FieldInsnNode           GETSTATIC System.out PrintStream
                        <OPCODE> <HOST>.<NAME> <TYPE>

MethodInsnNode          INVOKEVIRTUAL PrintStream.print(Object)void
                        <OPCODE> <HOST>.<NAME>(<ARG-TYPE>...)<RETURN-TYPE>

JumpInsnNode            IFEQ       [$0 == 0  -> offset] (13: LABEL A)
Alternative:            IFEQ       13: LABEL A ($0 == 0  -> offset)
Alternative:            IFEQ 13
Alternative:            IFEQ LABEL A
Alternative:            IFEQ A
                        <OPCODE> <OFFSET/LABEL-ID>

TableSwitchInsnNode     TABLESWITCH  range[0-2] offsets[22, 24, 26] dflt[28]
Alternative:            TABLESWITCH  range[0-2] offsets[A, B, C]    dflt[D]
                        <OPCODE> range[<RANGE>] offsets[<OFFSET/LABEL>...] dflt[<OFFSET/LABEL>]

LookupSwitchInsnNode    LOOKUPSWITCH  [0->22, 1->24] dflt[26]
Alternative:            LOOKUPSWITCH  [0->A, 1->B]   dflt[C]
                        <OPCODE> [<MAPPING>...] dflt[<OFFSET/LABEL>]

LabelNode               LABEL A
                        ... <LABEL>

LineNumberNode          LINE 10 (13: LABEL A)
Alternative:            LINE 10:13
Alternative:            LINE 10:LABEL A
Alternative:            LINE 10:A
                        <LABEL>:<LINE>

MultiANewArrayInsnNode  MULTIANEWARRAY Object x3
Alternative:            MULTIANEWARRAY Object[][][]
                        <OPCODE> <TYPE><LEVEL>

TypeInsnNode            NEW String
                        <OPCODE> <TYPE>

As of 930a0191f82d179861027c5ee2f44a39995df17f the assembler is mostly done. All that needs to be done is to add some extra functionality to the UI. I'm thinking something like this for the assembler window:

Not final, but a general idea.

Would a simple autocomplete functionality be out of scope?
For example, completing "new String\n" to "new java/lang/String" (if previously used, and no other String class known in current context - if multiple classes with the same name are used in a single project, a list should pop up), and opening a list when typing "farto" containing "package/fartoolongtypename" and "fartoo/long/typename" (along with other possible matches).
List sorting according to local relevance and personal usage would add a bit more conveniance, but might take more work to implement than it is worth.

Would a simple autocomplete functionality be out of scope?

I plan on adding this. It'll require some significant changes to what I've pushed, but its well worth the effort.

List sorting according to local relevance and personal usage would add a bit more conveniance, but might take more work to implement than it is worth.

I'd love to do this but not sure how it would be done.

By the way, I really like your recent additions to recaf.

:smiley: Its not just me, take a look over at the recently merged PR's

List sorting according to local relevance and personal usage would add a bit more conveniance, but might take more work to implement than it is worth.

I'd love to do this but not sure how it would be done.

Prioritizing type names already used inside a given method/class and otherwise sorting by some function of personal usage frequency and frequency in contextual proximity (how often it is mentioned in the current method/class/project) should be pretty good already.
This could be optimized my ML solutions or online type frequency lookups, but due to diminishing returns this optimization would probably be unneccessary/not worth the time spent implementing it.

Error handling essentially done :ok_hand:
Faulty lines have the :stop_sign: and hovering over them shows the error message.

Started on tab-completion in 748b814853a74d95a302a53afb278e2db2a425e3

In 9bbdc71972384c6a181ae7941be806099f76dcb2 I've refactored the assembler to be separate from the UI. So if you're using Recaf (which is on JitPack as a dependency) once 1.13 is out, you can use the assembler as a library. See Assembly.java

Variable opcodes can now use names instead of numeric indices.But if you use numbers, they will use those given values.
Special case:  this and ALOAD 0 will map to the same thing.

Autocomplete for field and method instructions :+1:

The annoying issue in RichTextFx referenced 11 days ago above (10 May) has been fixed in RichTextFx  0.10.1
The odd page up and down behavior has also been changed to what is usually expected.

Pushed a release, 1.13.0, that lets you play with the assembler :hammer_and_wrench:

FxAssembler can now be used in the instruction list window as of a71cb54d88bd5d9629a43f99326bd8d55c1a6d3f

Closing this as the primary suggestions have been implemented. The following are my opinions on the "minor" suggestions have not been touched on:

Add window that lists (other) open windows.

Windows should be displayed in any window-manager software (Including windows' explorer)

Allow multicursor selection for editing instrutions

Unsure how to implement as follow-up discussion clarified.

Add regex search/replace with functional conditions (ie. class name that starts with "wi", data type name "int" (useful eg. if you don't want to want to change the class name Mint to Mlong, but all ints to longs)

This should be made into it's own issue. There's a lot I want to do regarding refactoring the search api. The goal would to allow the UI presentation of the Search API to be simplistic like it is now, but also to allow much more complex searches and other actions

Merging multiple searches together

Option for aggregation mode of results (OR, AND, XOR)

Running simple actions on the results

Structure Detection: Allow semiautomatic application of simple structure rules (automate repetetive tasks; eg. if you want to add several class entries to an array, the constructor code for them could be automatically generated when C&P duplicating the last 3 entries (should be optional/configurable)

Again, this should be it's own issue. I like this idea but it's very complex and I'm not sure right now how I want to approach this.

Allow using tabs instead of new windows?

The tabs are for classes, I personally think including non-class tabs would be confusing and clutter the tab menu much more. Windows can be quickly tabbed between using any window manger software too, so access is easier this way IMO.

The tabs could be in a appropriately themed windows (main window for classes, another window for currently open methods, another for instruction editor, etc.) or in class windows (all method overview/instruction edit frames are tabs in a class-specific window). The problem with window manager software is that the more windows you have open, the worse navigating them gets (at least in those window managers I've experienced - is there one that can easily structurize hundreds of windows for true O(log(n)) human window search time?).

is there one that can easily structurize hundreds of windows ...

I think at that point you have another problem, why would you have 100+ windows open? I can't recall the last time I had more than 10 open.

I never had 100 recaf windows open at the same time, but 15-20 is not too unusual (when extending/tweaking big minecraft mods). Add to that 30+ other windows, and you'll have trouble using alt+tab very effectively.

How about this, windows of the same kind being tabbed together (drag two windows near each other to merge).
Method editor windows can be merged together, but they couldn't merge with a instructions list window for instance.
How's that for a plan?


add copy-template task stub for CI

What this PR does / why we need it:
Add copy-template task stub for CI
Special notes for your reviewer:
Release note:
NONE

Signed-off-by: Karel Šimon<EMAIL_ADDRESS>

/lgtm

error: build error: error creating build container: Error initializing source docker://golang:1.15: Error reading manifest 1.15 in docker.io/library/golang: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit

merging since this change should not affect current e2e tests


Coverity issue: Out-of-bounds read at file pb_encode.c

Hello,
We run Coverity analysis tool in our code base and a Out-of-bounds read issue was reported in file pb_encode.c file.
I am attaching a screenshot of the issue details from the Coverity tool. I hope it provides enough details.
First part of screenshot:

Second part of screenshot:

Thanks!

That would only happen with invalid field descriptors (PB_HTYPE_ONEOF without pSize).
But the logic is needlessly complicated there, it has been cleaned up in current master branch.

Thank for the reply. I see the implementation of that method in master change substantially.
We are not using it directly, it seems several Google frameworks are using it, Firebase specifically. For some reason, Firebase is using a 0.3.9011 version of nanopb.
I think we have to wait until they move up to a newer nanopb to get that issue resolved.
Thanks!


Add some better background in the site

Hello ,

[ ] Need to add some  awesome background

Instruction

Copy the project(fork)
Make desired changes to the code
Request the owner to update the code base (pull Request)

Can I work?

Can I work?

are you from ITER ? Than i can assign to you ( It's  only for special event Hackodex)


Chinese (Simplified) Mistranslations: Search Page & My Bookmarks

As per @ian-lin-PG's language QA on Mar 17, 2020:
1. Remove duplicate character:

2. Edit translation for "My Bookmarks":

Uploaded the updated csv file  to weblate.
Need to QA once revisions are released to staging.

@ian-lin-PG Please QA the following revisions from Staging V1.25.0, server V1.3.24 based on your feedback from last QA detailed above:
1. Duplicate character removed

2. Edited "My Bookmarks"

The fix is correct, closing this issue.


title run menu contribution to run file in IW

Fixes https://github.com/microsoft/vscode-jupyter/issues/7683
add a launch contribution to run a python file in the interactive window.
The title should be changed to match up with Python's wording better, but updating the title only seems to be pulled from where the command is pulled, not the specific contribution.


[fix](merge conflict) fix FE compile error

Proposed changes
Issue Number: close #xxx
Problem summary
Describe your changes.
Checklist(Required)

[ ] Does it affect the original behavior
[ ] Has unit tests been added
[ ] Has document been added or modified
[ ] Does it need to update dependencies
[ ] Is this PR support rollback (If NO, please explain WHY)

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall


Unable to get updated mpd file through Playback Proxy & ClearKey Delivery Server

I have downloaded the Playback Proxy and ClearKey Delivery Server application and deployed it to Azure App Services. I have setup all necessary permissions for Azure key vaults and storage accounts.
Please see the below UR.
https://amsplaybackproxy.azurewebsites.net
I have done one asset migration with AES Clear-Key.
While hitting this URL, https://amsplaybackproxy.azurewebsites.net/encryptionasset/ams-migration-output/asset-4054e3e0-1326-4bbf-bfa7-7bfaa1259e9a/Test.mpd, I am getting the below error message.
Service request failed.
Status: 403 (This request is not authorized to perform this operation using this permission.)
ErrorCode: AuthorizationPermissionMismatch
Headers:
Transfer-Encoding: chunked
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: c7edb276-701e-000a-6dc4-4d2e99000000
x-ms-client-request-id: 691c28e6-32e1-42e2-826f-19716ff00bae
x-ms-version: 2022-11-02
x-ms-error-code: AuthorizationPermissionMismatch
Access-Control-Expose-Headers: REDACTED
Access-Control-Allow-Origin: *
Date: Tue, 23 Jan 2024 06:23:12 GMT

You can setup the Playback service (Code under PlaybackService directory) yourself. It would need access to the storage account where the migrated assets are placed.


[Todoist] Add support for showing "All tasks"

Extension
https://www.raycast.com/thomaslombart/todoist
Description
It would be nice to have a command for "All tasks" or even if the "Search Tasks" command defaulted to showing all.
Who will benefit from this feature?
Pretty much anyone ... I think :)
Anything else?
No response

Hm. After a little more fiddling around I think "Search Tasks" may just be broken but would behave this way (if the command worked). I am not able to search at all, my tasks appear for ~0.5s and then disappear and searching does not show anything.

Hey @charlesdurham, I'm working on a big update that should suit your needs. Stay tuned! 📻

Should be fixed by #6498


Update

This branch contains quite some useful information on getting started with a msp430. It should be merged upstream for it to be easier to find.

Hey @kellda. Thanks for the PR. This repository is not the official msp430-quickstart repository but rather an old version of it. You can find the official one at https://github.com/rust-embedded/msp430-quickstart . I believe the commits in this PR have already been merged, in one form or another, into the official repo so I'll close this PR. Should you have more feedback please open at issue in the rust-embedded repo. Thanks!


🐛 Bug Report: Increased memory usage with devtools plugin (catalog-unprocessed-entities)

📜 Description
Recently we integrated dev-tools plugin in our application to surface out catalog unprocessed entities in the frontend.
While things work fine, we see increased memory usage with these changes. Running the application locally we were not able to catch this.
But in upper development environment (Running the app in Kubernetes - memory limit was set to 500 MB), app crashed at startup itself. Then we increase the memory limit to 1 GB for it to get going.
Post that we used this tool (https://github.com/bnoordhuis/node-heapdump) to heap-dump with and without those changes. Heap dump was taken right after the startup with same setup on both occasions.
With Devtools plugin changes -
	Time taken for heapdump snapshot - 2 minute 23 seconds
	Heapdump snapshot size - 173 MB

Before Devtools plugin changes -
	Time taken for heapdump snapshot - 1 minute 32 seconds
	Heapdump snapshot size - 100 MB

Above data is consistent on all runs.
Is this devtools plugin "catalog-unprocessed-entities" suppose to take more memory in heap ?
Going through the plugin, it is just surfacing out the unprocessed entities from database (refresh_state, final_entities)
👍 Expected behavior
We shouldn't see increased memory usage with this plugin.
👎 Actual Behavior with Screenshots
Memory pattern -
With Devtools plugin changes -
	Time taken for heapdump snapshot - 2 minute 23 seconds
	Heapdump snapshot size - 173 MB

Before Devtools plugin changes -
	Time taken for heapdump snapshot - 1 minute 32 seconds
	Heapdump snapshot size - 100 MB

👟 Reproduction steps
Integrating dev tools catalog unprocessed entities plugin in an existing application.
📃 Provide the context for the Bug.
We wanted to make use of this dev tools plugin for surfacing out catalog unprocessed entities in the UI. But even with limited entities (< 25 catalog entities), we are observing increased memory usage in the application
🖥 Your Environment
OS:   Darwin 23.2.0 - darwin/arm64
node: v16.20.0
yarn: 3.2.3
cli:  0.22.12 (installed)
backstage:  1.17.5

Dependencies:
  @backstage/app-defaults                                          1.4.4
  @backstage/backend-app-api                                       0.5.7, 0.5.9
  @backstage/backend-common                                        0.19.8, 0.19.9, 0.20.0
  @backstage/backend-dev-utils                                     0.1.2
  @backstage/backend-openapi-utils                                 0.0.3, 0.0.5
  @backstage/backend-plugin-api                                    0.6.6, 0.6.8
  @backstage/backend-tasks                                         0.5.11, 0.5.13
  @backstage/catalog-client                                        1.4.5, 1.4.6, 1.5.1
  @backstage/catalog-model                                         1.2.0, 1.4.3
  @backstage/cli-common                                            0.1.13
  @backstage/cli-node                                              0.1.5, 0.2.1
  @backstage/cli                                                   0.22.14
  @backstage/config-loader                                         1.5.1, 1.5.3, 1.6.0
  @backstage/config                                                1.1.1
  @backstage/core-app-api                                          1.11.0, 1.11.1
  @backstage/core-components                                       0.12.4, 0.11.2, 0.12.5, 0.13.6, 0.13.8, 0.13.9
  @backstage/core-plugin-api                                       1.0.6, 1.7.0, 1.8.0, 1.8.1
  @backstage/dev-utils                                             1.0.22
  @backstage/errors                                                1.2.3
  @backstage/eslint-plugin                                         0.1.3
  @backstage/frontend-app-api                                      0.2.0
  @backstage/frontend-plugin-api                                   0.2.0, 0.3.0
  @backstage/integration-aws-node                                  0.1.7, 0.1.8
  @backstage/integration-react                                     1.1.20, 1.1.21
  @backstage/integration                                           1.7.1, 1.7.2, 1.8.0
  @backstage/plugin-api-docs                                       0.9.12
  @backstage/plugin-app-backend                                    0.3.54
  @backstage/plugin-app-node                                       0.1.6
  @backstage/plugin-auth-backend                                   0.18.8
  @backstage/plugin-auth-node                                      0.2.19, 0.3.2, 0.4.0, 0.4.2
  @backstage/plugin-catalog-backend-module-github                  0.3.7
  @backstage/plugin-catalog-backend-module-scaffolder-entity-model 0.1.3, 0.1.5
  @backstage/plugin-catalog-backend-module-unprocessed             0.3.2
  @backstage/plugin-catalog-backend                                1.14.0
  @backstage/plugin-catalog-common                                 1.0.17, 1.0.18, 1.0.19
  @backstage/plugin-catalog-graph                                  0.2.37
  @backstage/plugin-catalog-import                                 0.9.13
  @backstage/plugin-catalog-node                                   1.4.7, 1.6.0
  @backstage/plugin-catalog-react                                  1.2.1, 1.8.5, 1.9.0
  @backstage/plugin-catalog-unprocessed-entities                   0.1.3
  @backstage/plugin-catalog                                        1.14.0
  @backstage/plugin-circleci                                       0.3.25
  @backstage/plugin-devtools-common                                0.1.7
  @backstage/plugin-devtools                                       0.1.7
  @backstage/plugin-dynatrace                                      8.0.1
  @backstage/plugin-events-node                                    0.2.15
  @backstage/plugin-firehydrant                                    0.2.9
  @backstage/plugin-github-actions                                 0.6.6
  @backstage/plugin-github-pull-requests-board                     0.1.19
  @backstage/plugin-graphiql                                       0.2.55
  @backstage/plugin-home-react                                     0.1.4, 0.1.5
  @backstage/plugin-home                                           0.5.10
  @backstage/plugin-jenkins-backend                                0.2.8
  @backstage/plugin-jenkins-common                                 0.1.20
  @backstage/plugin-jenkins                                        0.8.6
  @backstage/plugin-kubernetes-backend                             0.11.5
  @backstage/plugin-kubernetes-common                              0.6.6
  @backstage/plugin-kubernetes                                     0.10.3
  @backstage/plugin-org                                            0.6.15
  @backstage/plugin-pagerduty                                      0.6.6
  @backstage/plugin-permission-backend                             0.5.29
  @backstage/plugin-permission-common                              0.7.9, 0.7.10, 0.7.11
  @backstage/plugin-permission-node                                0.7.17, 0.7.19
  @backstage/plugin-permission-react                               0.4.16, 0.4.17, 0.4.18
  @backstage/plugin-proxy-backend                                  0.3.2
  @backstage/plugin-scaffolder-backend-module-azure                0.1.0
  @backstage/plugin-scaffolder-backend-module-bitbucket            0.1.0
  @backstage/plugin-scaffolder-backend-module-gerrit               0.1.0
  @backstage/plugin-scaffolder-backend-module-github               0.1.0
  @backstage/plugin-scaffolder-backend-module-gitlab               0.2.11
  @backstage/plugin-scaffolder-backend                             1.18.1, 1.19.2
  @backstage/plugin-scaffolder-common                              1.4.2, 1.4.4
  @backstage/plugin-scaffolder-node                                0.2.7, 0.2.9
  @backstage/plugin-scaffolder-react                               1.5.6
  @backstage/plugin-scaffolder                                     1.15.1
  @backstage/plugin-search-backend-module-catalog                  0.1.10
  @backstage/plugin-search-backend-module-pg                       0.5.15
  @backstage/plugin-search-backend-module-techdocs                 0.1.10
  @backstage/plugin-search-backend-node                            1.2.10
  @backstage/plugin-search-backend                                 1.4.6
  @backstage/plugin-search-common                                  1.2.7, 1.2.8, 1.2.9
  @backstage/plugin-search-react                                   1.7.1
  @backstage/plugin-search                                         1.4.1
  @backstage/plugin-sonarqube-backend                              0.2.8
  @backstage/plugin-sonarqube-react                                0.1.9
  @backstage/plugin-sonarqube                                      0.7.7
  @backstage/plugin-techdocs-backend                               1.8.0
  @backstage/plugin-techdocs-module-addons-contrib                 1.0.16
  @backstage/plugin-techdocs-node                                  1.9.0
  @backstage/plugin-techdocs-react                                 1.1.9, 1.1.12
  @backstage/plugin-techdocs                                       1.6.6
  @backstage/plugin-todo-backend                                   0.2.2
  @backstage/plugin-todo                                           0.2.29
  @backstage/plugin-user-settings                                  0.7.11
  @backstage/release-manifests                                     0.0.10, 0.0.9
  @backstage/test-utils                                            1.4.4
  @backstage/theme                                                 0.2.19, 0.4.3, 0.4.4, 0.5.0
  @backstage/types                                                 1.1.1
  @backstage/version-bridge                                        1.0.6, 1.0.7

👀 Have you spent some time to check if this bug has been raised before?

[X] I checked and didn't find similar issue

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

Are you willing to submit PR?
No, I don't have time to work on this right now

Some details from the snapshots taken -
with represents snapshot taken with dev tools changes and without represents the heap dump snapshot without dev tools changes.

Hi @sathish-soundarapandian, something worth looking into is running @backstage/plugin-catalog-unprocessed-entities on it's own and not part of DevTools. @backstage/plugin-catalog-unprocessed-entities is actually a stand-along plugin and DevTools just happens to be a nice easy container you can use to include it in. Due to this I don't think DevTools would be the culprit and perhaps this is something in the @backstage/plugin-catalog-backend-module-unprocessed plugin which is the backend for the features seen in @backstage/plugin-catalog-unprocessed-entities

@kurtaking you have this same setup, have you had any memory issues with it? No rush, just curious

The goal is to add the delete functionality and then migrate once released.

Hi @awanlin Haven't tried it out yet. Will check and get back here.

Hey @sathish-soundarapandian, out of curiosity were these profiling metrics gathered from the front or backend as you mention both kubernetes and the UI

Hi @mikeyhc These metrics were gathered from the backend. Heapdump snapshot was taken from the pod where backstage application was running.
Just used chrome memory inspect to visualize the generated heapdump

Hey @sathish-soundarapandian, in that case this behavior is expected. In addition to loading the plugin itself, as a debugging tool it stores a lot of data and seeing 200MB of additional memory usage isn't unusual. When running a development version of the catalog we generally recommend a 4GB memory limit to allow for usage of these kinds of tools.

We just upgraded from backstage 1.17.5 to 1.21.1 and started using jemalloc as the default memory allocator for the process. With that we saw overall improvements -

App startup time reduced from 9 - 10 seconds to 3 - 4 seconds.
No abnormal memory spikes / linear growth. Looks like the heap memory was always fine, it's just we had native memory issues due to memory fragmentation and once we started using jemalloc as the default memory allocator for the process, it is now well in control.
Time taken to generate a heap dump came down to 30 seconds (Previously it was going over 3 minutes). Moreover previously after taking heap dump the memory wouldn't release, that's not the case anymore with new set of changes.


Polls: If you'd like this list include some native implementations which are not built-in...

Hi Guys, first of all, thank you all for your support for this project.
I'd like to have a polls to find out if you guys like this list to include some native implementations which are not built-in functions. For example _.after
The poll link is here:  Polls link
Your suggestions are important.

I will vote first: Let Lodash/Underscore do their best job and we just have a list of methods which are already built-in. This is just a check-list to assist our developers to make a decision about if they need or not.


DrinkingSessionData not resetting

The drinkingSessionData on main screen does not get reset upon deleting the drinking sesssiom data, if the deleted sessiom is the only one in the database

Fixed by allowing these types of objects to be stored empty


Add custom langage script support (

... as suggested by @wenbob and @fanfan2000, see PR #3

For coffeeScript support, just add:
httpVueLoader.langProcessor.coffee = function(scriptText) {

	return window.CoffeeScript.compile(scriptText, {bare: true})
}


Create standalone template for Azure

dup #202 (created more in depth issue on a side for both standalone and hosted templates as well as relevant docs / etc.)


📃 [ENHANCEMENT] - Add web development with Streamlit in Python document

Issue Verification

[X] I have verified that this is a new documentation issue.
[X] I'm interested in working on this issue
[X] I'm part of GSSOC organization

Documentation Area📚
Web development with Streamlit in Python
Issue Description✍
There is not resource for web development with Streamlit in Python
Relevant Links🔗
No response
Additional Context
No response
Code of Conduct

[X] I follow the CONTRIBUTING GUIDELINE of this project.

Please assign this issue to me


Allow configure aws.iam_instance_profile_name

Allow define the aws.iam_instance_profile_name by setting the
environment variable  $BOSH_LITE_INSTANCE_PROFILE_NAME

Note: I did not really test this, I was discussing it with my colleague. But it should work ;)

Hi, any news about this?

@keymon i've just got a build thru though we've lost our virtualbox builder (hence somewhat manual interaction required). have you considered using github.com/cloudfoundry/bosh-deployment to install bosh-lite? (example: https://github.com/cloudfoundry/bosh-deployment/blob/master/test.sh#L141)


Fresh install, can't create sensors

I just installed for the first time on Windows 11

Edition	Windows 11 Home
Version	21H2
Installed on	2021-10-29
OS build	22000.1098
Experience	Windows Feature Experience Pack 1000.22000.1098.0

and when I try to create new sensors, I get an error message saying

Could not load file or assembly 'System.Net.NetworkInformation, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified.

I used the latest installer from the README. Any idea on what to do to fix this?

For anyone else with this issue, I had to choose to quit the application in the error dialog, then relaunch it. Apparently restarting it from the config section was not enough.


Kong 1.4.0 and 1.4.1 Target DNS_ERROR issue

Summary
I update kong to 1.4.0 and add a target to upstream, but display DNS_ERROR in this target. Then I add same target with different weight, DNS_ERROR disappears. Same issue in 1.4.1.
Steps To Reproduce

Create a upstream.
Add Target with weight 100 to this upstream.
Delete this target from upstream.
Add same Target with weight 100 to this upstream. Show DNS_ERROR.
Add same target with weight 200 to this upstream. DNS_ERROR disappears.

Additional Details & Logs

Kong version 1.4.0

when target healthy display DNS_ERROR, add new target or change  upstream  slots, target with DNS_ERROR can resume  to healthy.
we guess may be balancer not recreated from v1.4.0.

@JoyZhang66 Thank you for the report! I was able to reproduce it:
hisham@proxy master* ~/work/kong/kong]bin/kong start -p prefix
2019/12/06 18:36:31 [warn] ulimit is currently set to "1024". For better performance set it to at least "4096" using "ulimit -n"
Kong started

hisham@proxy master* ~/work/kong/kong]http :8001/upstreams name=up1
HTTP/1.1 201 Created
Access-Control-Allow-Origin: *
Connection: keep-alive
Content-Length: 857
Content-Type: application/json; charset=utf-8
Date: Fri, 06 Dec 2019 21:36:41 GMT
Server: kong/1.4.1
X-Kong-Admin-Latency: 109

{
    "algorithm": "round-robin",
    "created_at":<PHONE_NUMBER>,
    "hash_fallback": "none",
    "hash_fallback_header": null,
    "hash_on": "none",
    "hash_on_cookie": null,
    "hash_on_cookie_path": "/",
    "hash_on_header": null,
    "healthchecks": {
        "active": {
            "concurrency": 10,
            "healthy": {
                "http_statuses": [
                    200,
                    302
                ],
                "interval": 0,
                "successes": 0
            },
            "http_path": "/",
            "https_sni": null,
            "https_verify_certificate": true,
            "timeout": 1,
            "type": "http",
            "unhealthy": {
                "http_failures": 0,
                "http_statuses": [
                    429,
                    404,
                    500,
                    501,
                    502,
                    503,
                    504,
                    505
                ],
                "interval": 0,
                "tcp_failures": 0,
                "timeouts": 0
            }
        },
        "passive": {
            "healthy": {
                "http_statuses": [
                    200,
                    201,
                    202,
                    203,
                    204,
                    205,
                    206,
                    207,
                    208,
                    226,
                    300,
                    301,
                    302,
                    303,
                    304,
                    305,
                    306,
                    307,
                    308
                ],
                "successes": 0
            },
            "type": "http",
            "unhealthy": {
                "http_failures": 0,
                "http_statuses": [
                    429,
                    500,
                    503
                ],
                "tcp_failures": 0,
                "timeouts": 0
            }
        }
    },
    "host_header": null,
    "id": "a578d919-ab3c-46a9-b38e-f9734fe1a3f3",
    "name": "up1",
    "slots": 10000,
    "tags": null
}

hisham@proxy master* ~/work/kong/kong]http :8001/upstreams/up1/targets target=example.com:80 weight=100 -f
HTTP/1.1 201 Created
Access-Control-Allow-Origin: *
Connection: keep-alive
Content-Length: 169
Content-Type: application/json; charset=utf-8
Date: Fri, 06 Dec 2019 21:37:02 GMT
Server: kong/1.4.1
X-Kong-Admin-Latency: 17

{
    "created_at":<PHONE_NUMBER>.799,
    "id": "acecb9e0-7cd8-4260-b8bd-53601cbb438c",
    "target": "example.com:80",
    "upstream": {
        "id": "a578d919-ab3c-46a9-b38e-f9734fe1a3f3"
    },
    "weight": 100
}

hisham@proxy master* ~/work/kong/kong]http delete :8001/upstreams/up1/targets/acecb9e0-7cd8-4260-b8bd-53601cbb438c
HTTP/1.1 204 No Content
Access-Control-Allow-Origin: *
Connection: keep-alive
Date: Fri, 06 Dec 2019 21:37:19 GMT
Server: kong/1.4.1
X-Kong-Admin-Latency: 23

hisham@proxy master* ~/work/kong/kong]http :8001/upstreams/up1/targets target=example.com:80 weight=100 -f
HTTP/1.1 201 Created
Access-Control-Allow-Origin: *
Connection: keep-alive
Content-Length: 169
Content-Type: application/json; charset=utf-8
Date: Fri, 06 Dec 2019 21:37:30 GMT
Server: kong/1.4.1
X-Kong-Admin-Latency: 13

{
    "created_at":<PHONE_NUMBER>.229,
    "id": "c8fecdeb-1dd7-4c97-b4d6-39b91051e565",
    "target": "example.com:80",
    "upstream": {
        "id": "a578d919-ab3c-46a9-b38e-f9734fe1a3f3"
    },
    "weight": 100
}

hisham@proxy master* ~/work/kong/kong]http :8001/upstreams/up1/health
HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Connection: keep-alive
Content-Length: 262
Content-Type: application/json; charset=utf-8
Date: Fri, 06 Dec 2019 21:37:35 GMT
Server: kong/1.4.1
X-Kong-Admin-Latency: 2

{
    "data": [
        {
            "created_at":<PHONE_NUMBER>.229,
            "health": "DNS_ERROR",
            "id": "c8fecdeb-1dd7-4c97-b4d6-39b91051e565",
            "target": "example.com:80",
            "upstream": {
                "id": "a578d919-ab3c-46a9-b38e-f9734fe1a3f3"
            },
            "weight": 100
        }
    ],
    "next": null,
    "node_id": "a3d69e0e-abc8-45ed-bd1b-c65b7ec2cffc"
}

hisham@proxy master* ~/work/kong/kong]http :8001/upstreams/up1/targets target=example.com:80 weight=200 -f
HTTP/1.1 201 Created
Access-Control-Allow-Origin: *
Connection: keep-alive
Content-Length: 169
Content-Type: application/json; charset=utf-8
Date: Fri, 06 Dec 2019 21:37:49 GMT
Server: kong/1.4.1
X-Kong-Admin-Latency: 14

{
    "created_at":<PHONE_NUMBER>.739,
    "id": "33d3b337-f0ef-414e-81db-441c2c2d0f41",
    "target": "example.com:80",
    "upstream": {
        "id": "a578d919-ab3c-46a9-b38e-f9734fe1a3f3"
    },
    "weight": 200
}

hisham@proxy master* ~/work/kong/kong]http :8001/upstreams/up1/health
HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Connection: keep-alive
Content-Length: 469
Content-Type: application/json; charset=utf-8
Date: Fri, 06 Dec 2019 21:37:51 GMT
Server: kong/1.4.1
X-Kong-Admin-Latency: 2

{
    "data": [
        {
            "created_at":<PHONE_NUMBER>.739,
            "data": {
                "addresses": [
                    {
                        "health": "HEALTHCHECKS_OFF",
                        "ip": "<IP_ADDRESS>",
                        "port": 80,
                        "weight": 200
                    }
                ],
                "host": "example.com",
                "nodeWeight": 200,
                "port": 80,
                "weight": {
                    "available": 200,
                    "total": 200,
                    "unavailable": 0
                }
            },
            "health": "HEALTHCHECKS_OFF",
            "id": "33d3b337-f0ef-414e-81db-441c2c2d0f41",
            "target": "example.com:80",
            "upstream": {
                "id": "a578d919-ab3c-46a9-b38e-f9734fe1a3f3"
            },
            "weight": 200
        }
    ],
    "next": null,
    "node_id": "a3d69e0e-abc8-45ed-bd1b-c65b7ec2cffc"
}

And here's the log:
2019/12/06 18:36:31 [notice] 29226#0: using the "epoll" event method
2019/12/06 18:36:31 [notice] 29226#0: openresty/<IP_ADDRESS>
2019/12/06 18:36:31 [notice] 29226#0: OS: Linux 4.13.2-Gobo
2019/12/06 18:36:31 [notice] 29226#0: getrlimit(RLIMIT_NOFILE): 1024:4096
2019/12/06 18:36:31 [notice] 29237#0: start worker processes
2019/12/06 18:36:31 [notice] 29237#0: start worker process 29238
2019/12/06 18:36:31 [notice] 29237#0: start worker process 29239
2019/12/06 18:36:31 [notice] 29237#0: start worker process 29240
2019/12/06 18:36:31 [notice] 29237#0: start worker process 29241
2019/12/06 18:36:31 [notice] 29238#0: *1 [lua] cache_warmup.lua:42: cache_warmup_single_entity(): Preloading 'services' into the cache ..., context: init_worker_by_lua*
2019/12/06 18:36:31 [notice] 29238#0: *1 [lua] cache_warmup.lua:81: cache_warmup_single_entity(): finished preloading 'services' into the cache (in 23ms), context: init_worker_by_lua*
2019/12/06 18:36:31 [notice] 29238#0: *1 [lua] cache_warmup.lua:42: cache_warmup_single_entity(): Preloading 'plugins' into the cache ..., context: init_worker_by_lua*
2019/12/06 18:36:31 [notice] 29238#0: *1 [lua] cache_warmup.lua:81: cache_warmup_single_entity(): finished preloading 'plugins' into the cache (in 7ms), context: init_worker_by_lua*
2019/12/06 18:36:31 [notice] 29238#0: *8 [lua] cache_warmup.lua:24: warming up DNS entries ..., context: ngx.timer
2019/12/06 18:36:34 [notice] 29238#0: *8 [lua] cache_warmup.lua:34: finished warming up DNS entries' into the cache (in 2717ms), context: ngx.timer
2019/12/06 18:37:02 [warn] 29238#0: *638 [lua] balancer.lua:242: callback(): [healthchecks] balancer up1 reported health status changed to HEALTHY, context: ngx.timer, client: <IP_ADDRESS>, server: <IP_ADDRESS>:8001
2019/12/06 18:37:03 [warn] 29240#0: *650 [lua] balancer.lua:242: callback(): [healthchecks] balancer up1 reported health status changed to HEALTHY, context: ngx.timer
2019/12/06 18:37:03 [warn] 29241#0: *652 [lua] balancer.lua:242: callback(): [healthchecks] balancer up1 reported health status changed to HEALTHY, context: ngx.timer
2019/12/06 18:37:03 [warn] 29239#0: *658 [lua] balancer.lua:242: callback(): [healthchecks] balancer up1 reported health status changed to HEALTHY, context: ngx.timer
2019/12/06 18:37:19 [warn] 29238#0: *998 [lua] ring.lua:238: redistributeIndices(): [ringbalancer 2] redistributed indices, size=10000, dropped=10000, assigned=0, left unassigned=10000, client: <IP_ADDRESS>, server: kong_admin, request: "DELETE /upstreams/up1/targets/acecb9e0-7cd8-4260-b8bd-53601cbb438c HTTP/1.1", host: "localhost:8001"
2019/12/06 18:37:19 [warn] 29238#0: *999 [lua] balancer.lua:242: callback(): [healthchecks] balancer up1 reported health status changed to UNHEALTHY, context: ngx.timer, client: <IP_ADDRESS>, server: <IP_ADDRESS>:8001
2019/12/06 18:37:19 [notice] 29238#0: *998 [lua] targets.lua:65: clean_history(): [Target DAO] Starting cleanup of target table for upstream a578d919-ab3c-46a9-b38e-f9734fe1a3f3, client: <IP_ADDRESS>, server: kong_admin, request: "DELETE /upstreams/up1/targets/acecb9e0-7cd8-4260-b8bd-53601cbb438c HTTP/1.1", host: "localhost:8001"

We'll continue investigating this.

@JoyZhang66 I pushed some balancer fixes in Kong 1.4.2 which I hope are a move in the right direction — could you give it a try and see if that solved your use case?

@hishamhm Sorry for late reply. I try same steps in 1.4.2 and DNS_ERROR issue doesn't appear anymore. Thank you for your help.

@hishamhm We recently upgraded to kong 1.4.0 version in prod and faced a similar issue. We are using private ip based targets and not DNS based. "dns_error" occurs when a new target is added to the upstream and lasts for 30 seconds approximately and turns to healthy state once the initial health check is completed. Is this expected behaviour? We didn't notice any spike in latency or 4xx 5xx trends.
What could be the reason for this?
Why does dns_error occur for private ip based targets?


[FEATURE] Add tutorial for trace go and rust

Is your feature request related to a problem? Please describe.
Add uprobe tutorial and examples for trace golang and rust

Currently learning Rust. Is there any related document for reference?
Since I am not so familiar with eunomia-bpf tools, is there any toy example for me to try to compile with?


Make high quality the default (or add documentation on how to choose that)

I don't know if this is related to the split_once, but trying with a couple videos, it consistently does the following:
Rustube chooses P360
640x360 h.264 at average bitrate around 700kbps
96kbps VBR aac 44100Hz (not normalized)
Youtube chooses P1080
1920x1080 VP9/H264
Opus 48000Hz (normalized)
With rustube check <url> I notice two things:

The correct stream types are showing up, but P360 is the first in the list and out of order from the rest.
The loudness_db is not being correctly applied

Videos are listed before audio and shows:
        loudness_db: None

so if there's an audio stream with some ridiculous loudness_db:
        loudness_db: Some(
            8.46,
        ),

then the final audio is way too loud and clips. I'm going to guess it's related to my issue with it choosing 360p

@Lyamc thank you for the report.
It's not related to split_once. The current implementation of Video::best_quality (which is used by the CLI) works by first filtering out all videos that don't have both a video and an audio track, and then picking the stream with the maximum QualityLabel:
self
    .streams
    .iter()
    .filter(|stream| stream.includes_video_track && stream.includes_audio_track)
    .min_by_key(|stream| stream.quality_label)

My guess is that either the video and audio track detection is wrong, or that the Streams you're referring to don't contain audio. Did you download some of the high-quality Streams to check if they contain an audio track?
Currently, the best way of doing that is either
rustube download  --ignore-missing-audio <URL>
or
rustube download --video_quality [144p|240p|360p|480p|720p|720p50|720p60|1080p|1080p60|1440p|1440p60(only >0.2.6)|2160p|2160p60] <URL>.

I'm currently adding some features to the CLI, and as it turns out I was lying to you. The CLI doesn't use Video::best_quality, but its own, hacky algorithm to compare the quality of two Streams.
I'll rewrite it to match the behaviour of the Video methods.
The last point I made, though, still holds true: Streams with high video quality often come without an audio track.

Just to answer the earlier question, I tried a variety of high quality music videos since they often have a significant loudness reduction (45%!!) in the youtube player.

@Lyamc now, after quite some time, rustube-cli 0.3.0 is released. With this release, we also shipped a new stream comparison algorithm that now hopefully does what it should do.
To check out all the streams that rustube-cli considers for downloading you can run rustube check <identifier>. To also see streams without video or without audio track you can run rustube check --ignore-missing-video --ignore-missing-audio  <identifier>.
When you run rustube download <identifier>, rustube-cli will tell you which stream it picked for downloading.


Fix of ImportWarning. Issue #109

Current version will throw out an ImportWarning since some script automatically created localedata/ folder. This fixed the problem.

@philiptzou hey, thanks for taking the time to create a PR!
There are several issues preventing this from getting merged:

The tests are failing.
The commit message lacks information about the change, why it fixes it and what exactly it fixes.

Could you fix those? Ping me if you need help.

Oh and please rebase onto current master, I think python 3.4 was added to the continuous integration.

Closed. See #177.


v7.1.2 is not working on IE

Hi,
I'm using jasmine-enzyme to test components on real browsers using karma according to this guide.
However, I noticed that IE tests are failing since v7.1.2.
This is because the current babel target is node: 'current'.
Could that be more widened so that IE tests run without compiling enzyme-matchers?

@ysgk Oooo, good point. I typically live in jest land and completely forgot about running in browsers.. Yeah we should fix this. Mind submitting a PR?

@blainekasten
Thanks for the quick response :) I submitted #330


Sudden crash when playing a specific track

Playing this track causes soundcleod to suddenly crash
https://soundcloud.com/mostafa-mohamed-271980476/2017-1
Thanks.

Wow, it indeed does crash SoundCleod. Will have a look.

Seems to be fine in the latest version.


Bump GHC version to 7.10

See https://github.com/travis-ci/travis-ci/issues/3539 as to why we need
the quotes.
Fixes #13.

Nope. Errors as expected. Was worth a try though.


[ISSUE #7042] throw UnsupportedOperationException after client using TLS Request but Server in Disabled Mode.

Which Issue(s) This PR Fixes

Fixes #7042
Brief Description

How Did You Test This Change?
Test Cases Contains Both TLS Request and Non-TLS Request send by client when Server in DISABLED TLS Mode.

Codecov Report

Merging #7179 (598a6f3) into develop (440be1e) will increase coverage by 1.17%.
Report is 35 commits behind head on develop.
The diff coverage is 33.33%.

@@              Coverage Diff              @@
##             develop    #7179      +/-   ##
=============================================
+ Coverage      42.62%   43.79%   +1.17%
- Complexity      9230    10202     +972
=============================================
  Files           1136     1150      +14
  Lines          80652    89444    +8792
  Branches       10542    12768    +2226
=============================================
+ Hits           34375    39175    +4800
- Misses         41981    45741    +3760
- Partials        4296     4528     +232

Files Changed
Coverage Δ

...rocketmq/broker/processor/PopMessageProcessor.java
48.00% <0.00%> (+3.26%)
:arrow_up:

.../java/org/apache/rocketmq/common/BrokerConfig.java
23.32% <28.57%> (-3.99%)
:arrow_down:

...e/rocketmq/remoting/netty/NettyRemotingServer.java
58.23% <100.00%> (ø)

... and 92 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


In memory db with JDBC

It seems that with the new JDBC driver for Neo4j 3.0.x, the in memory database is not working:
jdbc:neo4j:mem:mydb
jdbc:neo4j:file:/home/user/neo/graph.db
as described in https://github.com/neo4j-contrib/neo4j-jdbc-2x.
Is there any plan to support these? They are very convenient for unit/integration testing.
Thanks

I planned implementing this and had a look at the old implementation  but didn't have enough time till now doing it ;-)

Thanks a lot, Michael. Really appreciate it.

Any movement on this, it's a huge missing feature.

Sorry, currently my time is very limited. The last version can be seen at https://github.com/mvitz/neo4j-jdbc/tree/embedded-mode

I'm waiting on the edge for this. Cannot move back to 2.x.x so I'm currently relying on GraphDatabaseFactory to connect to memory db. Any progress so far on this?


add: getImpactSubScore, getExploitabilitySubScore functions

Description
Added new functions to calculate Impact sub score and  Exploitability sub score
the Impact sub score (ISC) is defined as,
Scope Unchanged 6.42 × 𝐼𝑆𝐶Base
Scope Changed 7.52 × [𝐼𝑆𝐶𝐵𝑎𝑠𝑒 − 0.029] − 3.25 × [𝐼𝑆𝐶𝐵𝑎𝑠𝑒 − 0.02]15

Where,
𝐼𝑆𝐶𝐵𝑎𝑠𝑒 = 1 − [(1 − 𝐼𝑚𝑝𝑎𝑐𝑡𝐶𝑜𝑛𝑓) × (1 − 𝐼𝑚𝑝𝑎𝑐𝑡𝐼𝑛𝑡𝑒𝑔) × (1 − 𝐼𝑚𝑝𝑎𝑐𝑡𝐴𝑣𝑎𝑖𝑙)]

And the Exploitability sub score is,
8.22 × 𝐴𝑡𝑡𝑎𝑐𝑘𝑉𝑒𝑐𝑡𝑜𝑟 × 𝐴𝑡𝑡𝑎𝑐𝑘𝐶𝑜𝑚𝑝𝑙𝑒𝑥𝑖𝑡𝑦 × 𝑃𝑟𝑖𝑣𝑖𝑙𝑒𝑔𝑒𝑅𝑒𝑞𝑢𝑖𝑟𝑒𝑑 × 𝑈𝑠𝑒𝑟𝐼𝑛𝑡𝑒𝑟𝑎𝑐𝑡𝑖𝑜𝑛

Fixes #94
Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update
[ ] Documentation

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] Any dependent changes have been merged and published in downstream modules

You can check my changes ? @Fubinator

I've made the necessary adjustments.

That should be mostly fine, thank you!

Thank you


4k version

the 4k versions are soon to be out, would love to have added those.

Closing as duplicate of #378


[Diagnostics] Add a missing property wrapper unwrap diagnostic for function arguments

Adds an instance of the missing property wrapper unwrap diagnostic for function arguments. This pull request depends on https://github.com/apple/swift/pull/25507.

Related to SR-10928.

I addressed a the review feedback for this PR over in https://github.com/apple/swift/pull/25507 which I plan to get merged first. Those changes will be reflected here once that gets merged.

Work on this was moved to #25889.


Retry on 429 errors and improve error logging

OpenAI will rate limit you if you call them too often. https://help.openai.com/en/articles/5955598-is-api-usage-subject-to-any-rate-limits
This PR adds exponential backoff so it waits and retries a few times when it sees this error, which is usually enough to resolve the issue.
It also adds improved error logging, and shows the error messages that the OpenAI server is sending.
I need to prevent retrying if it’s a quota error to

:tada: This PR is included in version 1.1.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Better support for multipart requests

Multipart requests: although the client already supports multipart requests, with the current implementation I wasn't able to generate the necessary code to consume some of the multipart endpoints from OpenAI (e.g. the audio endpoints. I may spend some time in the future adding support for this.
Originally posted by @davidmigloz in https://github.com/tazatechnology/openapi_spec/issues/32#issuecomment-1791683173

I wasn't able to generate the necessary code to consume some of the multipart endpoints from OpenAI

@davidmigloz any more details you can provide as to what happened? I can try to recreate myself as well.

Sorry for the late reply!
Let's take the Create image edit as a case study:
openapi: 3.0.0
info:
  title: OpenAI API
  version: "2.0.0"
servers:
  - url: https://api.openai.com/v1
paths:
  /images/edits:
    post:
      operationId: createImageEdit
      tags:
        - Images
      summary: Creates an edited or extended image given an original image and a prompt.
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: "#/components/schemas/CreateImageEditRequest"
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ImagesResponse"
components:
  schemas:
    CreateImageEditRequest:
      type: object
      properties:
        image:
          description: The image to edit. Must be a valid PNG file, less than 4MB, and square. If mask is not provided, image must have transparency, which will be used as the mask.
          type: string
          format: binary
        prompt:
          description: A text description of the desired image(s). The maximum length is 1000 characters.
          type: string
          example: "A cute baby sea otter wearing a beret"
        mask:
          description: An additional image whose fully transparent areas (e.g. where alpha is zero) indicate where `image` should be edited. Must be a valid PNG file, less than 4MB, and have the same dimensions as `image`.
          type: string
          format: binary
        model:
          anyOf:
            - type: string
            - type: string
              enum: ["dall-e-2"]
          default: "dall-e-2"
          example: "dall-e-2"
          nullable: true
          description: The model to use for image generation. Only `dall-e-2` is supported at this time.
        n:
          type: integer
          minimum: 1
          maximum: 10
          default: 1
          example: 1
          nullable: true
          description: The number of images to generate. Must be between 1 and 10.
        size:
          type: string
          enum: ["256x256", "512x512", "1024x1024"]
          default: "1024x1024"
          example: "1024x1024"
          nullable: true
          description: The size of the generated images. Must be one of `256x256`, `512x512`, or `1024x1024`.
        response_format:
          type: string
          enum: ["url", "b64_json"]
          default: "url"
          example: "url"
          nullable: true
          description: The format in which the generated images are returned. Must be one of `url` or `b64_json`.
        user:
          type: string
          example: user-1234
          description: |
            A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices/end-user-ids).
      required:
        - prompt
        - image
    ImagesResponse:
      properties:
        created:
          type: integer
        data:
          type: array
          items:
            $ref: "#/components/schemas/Image"
      required:
        - created
        - data
    Image:
      type: object
      description: Represents the url or the content of an image generated by the OpenAI API.
      properties:
        b64_json:
          type: string
          description: The base64-encoded JSON of the generated image, if `response_format` is `b64_json`.
        url:
          type: string
          description: The URL of the generated image, if `response_format` is `url` (default).
        revised_prompt:
          type: string
          description: The prompt that was used to generate the image, if there was any revision to the prompt.

The generator generates the following client method:
/// Creates an edited or extended image given an original image and a prompt.
///
/// `request`: No description
///
/// `POST` `https://api.openai.com/v1/images/edits`
Future<ImagesResponse> createImageEdit({
  required List<http.MultipartFile> request,
}) async {
  final r = await _request(
    baseUrl: 'https://api.openai.com/v1',
    path: '/images/edits',
    method: HttpMethod.post,
    isMultipart: true,
    requestType: 'multipart/form-data',
    responseType: 'application/json',
    body: request,
  );
  return ImagesResponse.fromJson(json.decode(r.body));
}

Which expects a List<http.MultipartFile> instead of a CreateImageEditRequest. So there's no way to provide the other fields that the endpoint expects.
I think the createImageEdit method should still expect a CreateImageEditRequest object, and from that object it can extract the files.
So the CreateImageEditRequest could be like this:
@freezed
class CreateImageEditRequest with _$CreateImageEditRequest {
  const CreateImageEditRequest._();

  const factory CreateImageEditRequest({
    /// The image to edit. Must be a valid PNG file, less than 4MB, and square. If mask is not provided, image must have transparency, which will be used as the mask.
    @JsonKey(includeToJson: false)
    required File image,

    /// A text description of the desired image(s). The maximum length is 1000 characters.
    required String prompt,

    /// An additional image whose fully transparent areas (e.g. where alpha is zero) indicate where `image` should be edited. Must be a valid PNG file, less than 4MB, and have the same dimensions as `image`.
    @JsonKey(includeToJson: false)
    File? mask,

    /// The model to use for image generation. Only `dall-e-2` is supported at this time.
    @_CreateImageEditRequestModelConverter()
    @JsonKey(includeIfNull: false)
    @Default(
      CreateImageEditRequestModel.string('dall-e-2'),
    )
    CreateImageEditRequestModel? model,

    /// The number of images to generate. Must be between 1 and 10.
    @JsonKey(includeIfNull: false) @Default(1) int? n,

    /// The size of the generated images. Must be one of `256x256`, `512x512`, or `1024x1024`.
    @JsonKey(
      includeIfNull: false,
      unknownEnumValue: JsonKey.nullForUndefinedEnumValue,
    )
    @Default(CreateImageEditRequestSize.v1024x1024)
    CreateImageEditRequestSize? size,

    /// The format in which the generated images are returned. Must be one of `url` or `b64_json`.
    @JsonKey(
      name: 'response_format',
      includeIfNull: false,
      unknownEnumValue: JsonKey.nullForUndefinedEnumValue,
    )
    @Default(CreateImageEditRequestResponseFormat.url)
    CreateImageEditRequestResponseFormat? responseFormat,

    /// A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices/end-user-ids).
    @JsonKey(includeIfNull: false) String? user,
  }) = _CreateImageEditRequest;

  //...
}

The only changes are:

Using File instead of String for the binary fields
Adding the @JsonKey(includeToJson: false) annotation on those fields

And the createImageEdit method could be like:
Future<ImagesResponse> createImageEdit({
  required CreateImageEditRequest request,
}) async {
  final r = await _request(
    baseUrl: 'https://api.openai.com/v1',
    path: '/images/edits',
    method: HttpMethod.post,
    requestType: 'multipart/form-data',
    responseType: 'application/json',
    body: request,
    multipartFiles: [
      http.MultipartFile.fromPath('image', request.image.path),
      if(request.mask != null) http.MultipartFile.fromPath('mask', request.mask!.path),
    ],
  );
  return ImagesResponse.fromJson(json.decode(r.body));
}

So instead of having a bool isMultipart param in the _request method, it could have a List<http.MultipartFile>? multipartFiles param. And the generator can take those files from the CreateImageEditRequest object.
What do you think?


Search animator visibility changes

This isn't urgent, but for some of your exit animations, I feel like you're missing some listeners. For example in fade out, the view should be set to gone after the animation, otherwise it will be hidden during the fade and you wouldn't see it.
I've attached some of my implementations (in Kotlin) in case you want to copy those over.

Thanks I am going to check it.


Removing ambiguity on how to set up custom stand alone validators

Found some ambiguity in the documentation as I was reading it. Extended the documentation to better explain how to link a stand alone validator within a model.

https://github.com/yiisoft/yii2/commit/2e65d0ce2858605dfbbe32de9ca0da9f28ff75fc and https://github.com/yiisoft/yii2/commit/ae2dea6b2092c8c18a5d23939dbcc78b69a7e0cc.
Thanks!


update last update time of the document.

[Enter feedback here]
kindly update the last update time of the document as cx does not go though the document as its last update date shows as year 2018.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 735c7fb4-13e2-36b1-6310-85e525b01f90
Version Independent ID: 99b5b1f2-e588-e879-796f-5922c3dd1258
Content: Connect your application to SQL Managed Instance - Azure SQL Managed Instance
Content Source: articles/azure-sql/managed-instance/connect-application-instance.md
Service: sql-managed-instance
Sub-service: operations
GitHub Login: @srdan-bozovic-msft
Microsoft Alias: srbozovi

@xmasteron Thank you for your feedback . We are looking into this and will get back soon

@xmasteron Please let us know if you have any questions.

Hello All,
In this doc there are sections that mention about the changes in service in 2020 but docs last update date is 2018.
This is the reason for the ask.
Get Outlook for Androidhttps://aka.ms/AAb9ysg

From: Oury-MSFT @.>
Sent: Friday, March 26, 2021 12:15:11 AM
To: MicrosoftDocs/azure-docs @.>
Cc: xmasteron @.>; Mention @.>
Subject: Re: [MicrosoftDocs/azure-docs] update last update time of the document. (#72686)
@xmasteronhttps://github.com/xmasteron Please let us know if you have any questions.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/MicrosoftDocs/azure-docs/issues/72686#issuecomment-807266812, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AQDSS3DZ6R74MMID7TDHKZDTFOADPANCNFSM4ZXLIIMA.

@srdan-bozovic-msft The document last update date is 2018 but there is a section that mention 2020 about a change happened on global virtual network. Could you please help us update that. Thank you


Invite issue

Just to be clear, should laravel:auth be run before installing your repo? OR should it absolutely NOT be installed before? OR, maybe, it doesn't matter?

Can someone confirm these rules:
1 A register and login feature like laravel:auth is a good idea to start with.
2 A person  must have an active registration at the site in order to make an invitation to a team to work

I think so, it always take the current authenticated user to send the invitation.

And BTW, this package doesn't save the invited user to the team_invites table, it save the inviter instead. So when you're accepting an invite, it uses current authenticated user again, this could end up to incorrect user is being added to the team.

I'll close this since its an old issue. Feel free to open another if you still need help.


Single Gateway with multiple Virtual Service

Bug description
I have single gateway and two virtual services. I am sending requests to ingress-gateway but with different hostnames But traffic is routed to same services for both.
Affected product area (please put an X in all that apply)
[ ] Configuration Infrastructure
[ ] Docs
[ ] Installation
[X] Networking
[ ] Performance and Scalability
[X ] Policies and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
Expected behavior
I have single gateway and two virtual services. Two services are sending to ingress-gateway but with different hostname But traffic is routed to same service for both.
Steps to reproduce the bug
Gateway
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: sip-gateway
  namespace: istio-system
spec:
  selector:
    istio: ingressgateway
  servers:
  - hosts:
    - '*.example.com'
    port:
      name: http
      number: 80
      protocol: HTTP
    tls:
      httpsRedirect: false
  - hosts:
      - '*.example.com'
    port:
      name: tcp
      number: 50051
      protocol: TCP
  - hosts:
    - '*.example.com'
    port:
      name: tcp-search
      number: 50052
      protocol: TCP
  - hosts:
    - '*.example.com'
    port:
      name: https
      number: 443
      protocol: HTTPS
    tls:
      mode: SIMPLE
      privateKey: /etc/istio/ingressgateway-certs/tls.key
      serverCertificate: /etc/istio/ingressgateway-certs/tls.crt

VirtualService
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: serviceb-svc
spec:
  hosts:
  - "serviceB.sip.onl"
  gateways:
  - sip-gateway.istio-system.svc.cluster.local
  tcp:
  - match:
    - port: 50051
    route:
    - destination:
        host: serviceb-svc.default.svc.cluster.local
        port:
          number: 50051

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: servicea-svc
spec:
  hosts:
  - "serviceA.example.com"
  gateways:
  - sip-gateway.istio-system.svc.cluster.local
  tcp:
  - match:
    - port: 50051
    route:
    - destination:
        host: servicea-svc.default.svc.cluster.local
        port:
          number: 50051

Services
# SERVICES
apiVersion: v1
kind: Service
metadata:
  name: searchclientservice-svc
spec:
  selector:
    app: searchclientservice
  ports:
    - name: grpc-web-port
      port: 50051
      targetPort: 50051

apiVersion: v1
kind: Service
metadata:
  name: translatorservice-svc
spec:
  selector:
    app: translatorservice
  ports:
    - name: grpc-web-port
      port: 50051
      targetPort: 50051

Version (include the output of istioctl version --remote and kubectl version)
istioctl version --remote
client version: 1.2.2
citadel version: 1.2.2
galley version: 1.2.2
ingressgateway version: 1.2.2
pilot version: 1.2.2
policy version: 1.2.2
sidecar-injector version: 1.2.2
telemetry version: 1.2.2
kubectl version
Client Version: version.Info{Major:"1", Minor:"12+", GitVersion:"v1.12.9-eks-f1dbc0", GitCommit:"f1dbc0230ef279fc153185a97b8fca4e40f675fe", GitTreeState:"clean", BuildDate:"2019-06-21T23:34:23Z", GoVersion:"go1.10.8", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"12+", GitVersion:"v1.12.6-eks-d69f1b", GitCommit:"d69f1bf3669bf00b7f4a758e978e0e7a1e3a68f7", GitTreeState:"clean", BuildDate:"2019-02-28T20:26:10Z", GoVersion:"go1.10.8", Compiler:"gc", Platform:"linux/amd64"}

How was Istio installed?
using helm charts
Environment where bug was observed (cloud vendor, OS, etc)
EKS

@athertahir unfortunately for plain TCP traffic, Envoy does not look at hostnames - only port number.

@athertahir unfortunately for plain TCP traffic, Envoy does not look at hostnames - only port number.

Thanks for the reply.
Should I use http then? I have to support both grpc and web-grpc for multiple services (I wanted to distinguish multiple services using hostname). I have using different ingress-gateway ports 55051 and 443 respectively for the traffic. is it possible? or two unique ports for each service
I am also sharing full VirtualService yaml
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: searchclientservice-vs
spec:
  hosts:
  - "serviceA.example.com"
  gateways:
  - sip-gateway.istio-system.svc.cluster.local
  tcp:
  - match:
      port: 50051
    route:
    - destination:
        host: searchclientservice-svc.default.svc.cluster.local
        port:
          number: 50051
  http:
  - match:
      port: 50051
    route:
    - destination:
        host: searchclientservice-svc.default.svc.cluster.local
        port:
          number: 50051
    corsPolicy:
      allowOrigin:
        - "*"
      allowMethods:
        - POST
        - GET
        - OPTIONS
        - PUT
        - DELETE
      allowHeaders:
        - grpc-timeout
        - content-type
        - keep-alive
        - user-agent
        - cache-control
        - content-type
        - content-transfer-encoding
        - custom-header-1
        - x-accept-content-transfer-encoding
        - x-accept-response-streaming
        - x-user-agent
        - x-grpc-web
      maxAge: 1728s
      exposeHeaders:
        - custom-header-1
        - grpc-status
        - grpc-message
      allowCredentials: true

@athertahir : did your problem get solved by using Http?
Also, this is more of a question, so closing this bug and can you please take conversation further on discuss.istio.io?

sip-gateway

have you support sip-gateway?


Backport Linux 4.9 to release-16.09

Motivation for this change
Also need to to bump virtualbox (bea3209d5f1f0d9f55efb4489a3a47540529a2bd) in order to get it to build.
Both Kernel & Virtualbox seem to work fine. Only thing I noticed is VirtualBox complains about not being able to emit audio. (Audio works fine outside of VirtualBox)
Things done

[x] Tested using sandboxing
(nix.useSandbox on NixOS,
or option build-use-sandbox in nix.conf
on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] Linux

[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

cc @grahamc

Cherry-picked this instead (except for the VirtualBox change because it uses importJSON, which I think should not be used - I'll revert it on master).

@edolstra, you sure that virtualbox works without the version bump? didn't work for me…

Well that commit didn't introduce importJSON; the expression was using it on 16.09 already.

linuxPackages_4_9.virtualbox doesn't build…

@edolstra,
Ping, virtualbox module still not building: http://hydra.nixos.org/build/47698420/nixlog/1


As an ISL member, I want to provide contact information, so I can capture business leads.

[ ] Link to the isl.co contact page

Following up on this one for launch this week.


Make both RichText and Text widgets use the textScaleFactor by default

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Use case
Passing a simple string to RichText and Text widgets with default values a user would expect the text to be rendered the same way on screen.
While in Text widget the textScaleFactor parameter is not being initialized in the RichText it is, leading to two different text sizes if the end user has a textScaleFactor different from 1.
Proposal
Would it be a good idea to choose if set or not to set the textScaleFactor for both widgets using the same logic?

Thanks for the report @DarioCorno
According to the docs, they seem to have same implementation apart from being the fact that in text widget, the property could be null.
https://api.flutter.dev/flutter/widgets/Text/textScaleFactor.html
https://api.flutter.dev/flutter/widgets/RichText/textScaleFactor.html
What exactly is your proposal pertaining to both widgets ?

Maybe you need Text.rich


Finetune model inference error

when I try to do the inference after fine-tuning getting this error.
`import sys
sys.path.append('./')
from videollama2 import model_init, mm_infer
from videollama2.utils import disable_torch_init
def inference():
disable_torch_init()
# Video Inference
modal = 'video'
modal_path = 'assets/cat_and_chicken.mp4'
instruct = 'What animals are in the video, what are they doing, and how does the video feel?'
# Reply:
# The video features a kitten and a baby chick playing together. The kitten is seen laying on the floor while the baby chick hops around. The two animals interact playfully with each other, and the video has a cute and heartwarming feel to it.

# Image Inference
modal = 'image'
modal_path = 'assets/sora.png'
instruct = 'What is the woman wearing, what is she doing, and how does the image feel?'
# Reply:
# The woman in the image is wearing a black coat and sunglasses, and she is walking down a rain-soaked city street. The image feels vibrant and lively, with the bright city lights reflecting off the wet pavement, creating a visually appealing atmosphere. The woman's presence adds a sense of style and confidence to the scene, as she navigates the bustling urban environment.

model_path = '/home/bingxing2/home/scx6md1/sep20vl2/VideoLLaMA2/work_dirs/videollama2/finetune_oeqr128nosm1'
# Base model inference (only need to replace model_path)
# model_path = 'DAMO-NLP-SG/VideoLLaMA2.1-7B-16F-Base'
model, processor, tokenizer = model_init(model_path)
output = mm_infer(processor[modal](modal_path), instruct, model=model, tokenizer=tokenizer, do_sample=False, modal=modal)

print(output)

if name == "main":
inference()`
error

I've met the same problem. If you trained using lora, maybe you should add 'lora' to the name of the model folder. The code judges the type of the model by its name.

can you give an example

I've met the same problem. If you trained using lora, maybe you should add 'lora' to the name of the model folder. The code judges the type of the model by its name.

For example, change your model path folder name from 'finetune_oeqr128nosml' to 'finetune_oeqr128nosml_lora' if it is trained using lora.


lldb problems on Linux when using swift repl

Description
~ docker run --privileged --rm -it swiftlang/swift:nightly-5.10-jammy swift repl
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'lldb'
Welcome to Swift version 5.10-dev (LLVM dbfaba0078e9380, Swift 63c8b551eb2f613).
Type :help for assistance.
  1>

The 3 error lines are unexpected and should not be there just like when using swift repl installed on mac:
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'lldb'

On a Linux VPS, it throws a similar error:
~ swift repl
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/lib/python3/dist-packages/lldb/__init__.py", line 1399, in <module>
    eTraceInstructionControlFlowTypeInstruction = _lldb.eTraceInstructionControlFlowTypeInstruction
AttributeError: module '_lldb' has no attribute 'eTraceInstructionControlFlowTypeInstruction'
Welcome to Swift version 5.9.2 (swift-5.9.2-RELEASE).
Type :help for assistance.
  1> :q
~ uname -a
Linux ubuntu 5.15.0-91-generic #101-Ubuntu SMP 2023 x86_64 x86_64 x86_64 GNU/Linux

Reproduction
[Described in previous section]
Expected behavior
No errors, like on macOS.
Environment
[Visible in the code blocks]
Additional information
No response

cc @shahmishal

@JDevlieghere @adrian-prantl

@JDevlieghere @bulbazord

There's two unrelated, but possibly related issues here:

The first issue is Swift 5.10 not finding the lldb Python module.
The second issue is LLDB  picking up the lldb Python module from the system which appears to be newer (and knows about eTraceInstructionControlFlowTypeInstruction) while the LLDB from Swift 5.9 doesn't. The Python module and LLDB need to be in sync.

This stuff works pretty differently between macOS and Linux. I'd have to figure out what the expected behavior is and how the nightly toolchain is different here.

@JDevlieghere I guess these could be 2 actual different problems, but the Docker images (the first case of the two) always just throw that error.
On a Linux VPS (second case) it could be many more things going on, so it could be another different (but kind of related) problem.

Can no longer reproduce any of these errors:
root@dev ~# swift --version && uname -a
Swift version 6.0-dev (LLVM 44e9ac72b347ffd, Swift d8e5733a9004366)
Target: x86_64-unknown-linux-gnu
Linux dev 5.15.0-116-generic #126-Ubuntu SMP Mon Jul 1 10:14:24 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
root@dev ~# swift repl
Welcome to Swift version 6.0-dev (LLVM 44e9ac72b347ffd, Swift d8e5733a9004366).
Type :help for assistance.
  1> :q
root@dev ~# docker run --privileged --rm -it swiftlang/swift:nightly-5.10-jammy swift repl
Welcome to Swift version 5.10-dev (LLVM e98989b1092ff3a, Swift 0e5cb27c42ec3c7).
Type :help for assistance.
  1>


segmentation fault  python error with soundLoader and MIDI file

Software Versions

Python: 3.9.10
OS: macOS 10.15.7
Kivy: 2.0.0
Kivy installation method: pip3 install kivy

Describe the bug
When playing a MIDI file, the most of the times the app is closed and I am getting segmentation fault  python . The sound is actually played, but when it ends python is closed.
Code and Logs and screenshots
from kivy.app import App
from kivy.core.audio import SoundLoader
from kivy.uix.button import Button

class play_btn(Button):
    def __init__(self, **kwargs):
        super(Button, self).__init__(**kwargs)
        self.sound = SoundLoader.load('contorno.mid')

    def on_release(self):
        self.sound.play()

class myApp(App):
    def build(self):
        return play_btn()

myApp().run()

Considering that we updated SDL dependencies and that on macOS midi support is available via SDL, can you check if is still an issue on Kivy 2.1.0?

I am getting the same error.
This is what I have in my virtual environment after a run pip3 install kivy in case you want to check it.
certifi=2021.10.8
charset-normalizer=2.0.12
docutils=0.18.1
idna=3.3
Kivy=2.1.0
Kivy-Garden=0.1.4
pip=21.2.4
Pygments=2.11.2
requests=2.27.1
setuptools=58.1.0
urllib3=1.26.8

Not able to reproduce it with a demo midi file.
Can you attach a midi file that is actually failing on your side?

Since github doesn't accept .mid as a attach file, this is a wetransfer link https://we.tl/t-dH4r3MXfMq


Policy definitions not available in AzureGov

In Azure commercial I can see the policies needed e.g.

$ az cloud set -n AzureCloud
Switched active cloud to 'AzureCloud'.

$ az policy definition show --name "9d2b61b4-1d14-4a63-be30-d4498e7ad2cf"
{
  "description": "This policy deploys the Log Analytics agent to Linux Azure Arc machines if the agent isn't installed.",
  "displayName": "[Preview]: Deploy Log Analytics agent to Linux Azure Arc machines",
  "id": "/providers/Microsoft.Authorization/policyDefinitions/9d2b61b4-1d14-4a63-be30-d4498e7ad2cf",
...

But AzureGov....
$ az cloud set -n AzureUSGovernment
Switched active cloud to 'AzureUSGovernment'.

$ az policy definition show --name "9d2b61b4-1d14-4a63-be30-d4498e7ad2cf"
The policy definition '9d2b61b4-1d14-4a63-be30-d4498e7ad2cf' could not be found.

I also tried to find them by displayName in case the IDs (name) was different for some reason.  No luck

This is a continuation of a discussion that started in https://github.com/Azure/terraform-azurerm-caf-enterprise-scale/issues/23#issuecomment-825064454

@krowlandson, until this get figured out, is there a reasonable way to skip the referenced policies for now but be able to add them back later?

After a bit more code reading, it seems like I should be able to create a custom archetype for AzureGov that ignores the missing policies. I'll try that just to prove it to myself.  Then I'll work through each reference in modules/archetypes/lib to identify which are missing and/or try to create a mapping between commercial and government cloud.

After a bit more code reading, it seems like I should be able to create a custom archetype for AzureGov that ignores the missing policies. I'll try that just to prove it to myself. Then I'll work through each reference in modules/archetypes/lib to identify which are missing and/or try to create a mapping between commercial and government cloud.

Yes, this would be the best approach I think but please let us know if you need any further guidance.

Tx @krowlandson, I am making some progress.  Hope to have a PR ready next week sometime after I get a few more things working.  Oh, and I've not documenting anything either :(  so that needs done too ;)

Hi @sandman-battelle - just following up on this case to see if you need further assistance.

I don't think so.  We've decide to move on to other ways, the lift to get AzureGov in alignment with commercial is just too great.  I wish MSFT didn't make this so hard.  It's really something they should consider cleaning up across-the-board, not just these policies.


Setup Sonaqube and Code Climate

Done.
Everyone can sign in with their Github:
https://sonarcloud.io/
https://codeclimate.com/


Resetting Password on Account with Unconfirmed Email Causes 500

The ForgotPassword route will result in a 500 if the account's email is unconfirmed. This is due to the ForgotPassword route not catching the InvalidOperationException that AuthenticationService's GeneratePasswordResetToken throws if the user's email address is unconfirmed.

I will assess whether this regressed with the UI redesign.

I did a quick git blame, it seems that this was always an issue.


remove duplicated code in cacheKeyIterator.encode()

Required for all non-trivial PRs

[x] Rebased/mergable
[x] Tests pass
[ ] CHANGELOG.md updated
[x] Sign CLA (if not already signed)

Those encoders have been Reset() in encode*BlockUsing.

The CI is failed by something timeout which maybe caused by machine stuck.
--- FAIL: TestService_IgnoreNonMatch (0.03s)
	service_test.go:83: expected urls

Thanks @lrita!