URGENT: 0.13.4 crashing after audio plays on iOS

0.13.3 had random crash on iOS app start
0.13.4 fixed random crash on iOS app start (yay!)
0.13.4 crash after audio plays on iOS (boo!)

I hope this issue can be resolved asap. Thanks!!

@subhash279 @luanpotter @erickzanardo @Afsar-Pasha

There is a bug happening in 0.13.4.
After playing audio ios crashes without any console log (because crash happens in the native side),
here I got something in my XCode but I don't know anything about it.

I've checked this commit
    // Start the headless audio service. The parameter here is a handle to
    // a callback managed by the Flutter engine, which allows for us to pass
    // references to our callbacks between isolates.
    final CallbackHandle handle =
        PluginUtilities.getCallbackHandle(_backgroundCallbackDispatcher);
    assert(handle != null, 'Unable to lookup callback.');
    _invokeMethod('startHeadlessService', {
      'handleKey': <dynamic>[handle.toRawHandle()]
    });

these codes removed and wrapped in the startHeadlessService function, but it didn't call anywhere.

This is happening to me as well. It just started yesterday. Before that, it was working well. Now it crashes as soon as the sound finishes playing.
flutter: _platformCallHandler call audio.onComplete {playerId: f0fd155b-63e7-4cad-b22e-06a2a554fe99} *** First throw call stack: ( 	0   CoreFoundation                      0x00007fff23b98bde __exceptionPreprocess + 350 	1   libobjc.A.dylib                     0x00007fff503b5b20 objc_exception_throw + 48 	2   CoreFoundation                      0x00007fff23b98958 +[NSException raise:format:arguments:] + 88 	3   Foundation                          0x00007fff255eb6f5 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 191 	4   Flutter                             0x000000010b0b9a19 -[FlutterEngine sendOnChannel:message:binaryReply:] + 607 	5   audioplayers                        0x000000010d195b67 -[AudioplayersPlugin onSoundComplete:] + 903 	6   audioplayers                        0x000000010d194267 __69-[AudioplayersPlugin setUrl:isLocal:isNotification:playerId:onReady:]_block_invoke.352 + 87 	7   Foundation                  <…> Lost connection to device.

I have debugged and this line seems to be the problem https://github.com/luanpotter/audioplayers/blob/b3cbad8da5448471c3d9532c1d14329f8fbaa68e/ios/Classes/AudioplayersPlugin.m#L631, by removing it, the crash stops, but I have no idea what is the problem, I am not an experienced iOS developer, @subhash279 this seems to be related to your recently changes, if I am not wrong, do you have any idea?

I'm looking into this and can't determine how those changes have affected this - i see all the same channels and callbacks...
Fair disclosure, it's been a few years since i've dug into Objective-C though 😅

Okay, so... it was in the comments from @subhash279  📖
  /// this should be called after initiating AudioPlayer only if you want to
  /// listen for notification changes in the background
  void startHeadlessService() { ... }

You simply have to call startHeadlessService() on the AudioPlayer (or myPlayer.fixedPlayer if you are using AudioCache)...
That being said, this should have been added to the example, and there should be some type of flag in audioplayers/ios/Classes/AudioplayersPlugin.m to avoid invoking this channel if this method isn't called... will see if I can make that happen.

I agree that we should have the check, one should not be asked to call startHeadlessService if one doesn't want to use this feature.

@luanpotter i've never developed a Flutter plugin before, is there a quickstart guide to running locally? I assume that i'd need to point my pubspec.yaml to a local gradle instance, or... ?

@JesseScott you can cd into the example folder and run the app there. That example app already links to your local version of the plugin. Basically you can use a relative path. The example app already has several options to make testing easy :)

ah of course!

To be more clear, I mean:
cd example
flutter run

or take a look at the example package pubspec.yaml how to link your other project locally :)

yep, got it

Hmmm.
I'm a little lost on how to send a flag into the iOS portion of the lib, or have that portion check on anything from the Dart side - not too familiar with the isolate channel invocation...
Open to thoughts on how i'd properly solve this...

actually, think i have something...

PR is up @luanpotter @erickzanardo @subhash279

merged and released in 0.13.5 :) thanks for the help, @JesseScott

@JesseScott @luanpotter thank you SO VERY MUCH!!!


increase http-types upper bound

Tested it with http-types-0.12.1

Thanks! I made a hackage revision containing this change.


Stats based on Binomial High Posterior Density Region

The PR adds three statistical UDFs to Redshift:

binomial_hpdr: A comparison operator that return 1 if a value is greater than the upper HPDR boundary, 0 if it's within the HPDR and -1 otherwise.
binomial_hpdr_upper: The upper boundary of the HPDR
binomial_hpdr_lower: The lower boundary of the HPDR

Credit goes to http://stackoverflow.com/a/19285227

Thank you @germangh!


Transfer USDC through meta tx

Dear team,
I have a question here that does USDC allow user transfer USDC to other address through meta transactions (without pay gas)? If yes, could you please give me an example?
Thanks in advanced.

Paying for gas on behalf of a user would currently require a smart contract wallet instead of an EOA. I would love for this functionality to be added to the USDC contract though.
Like the permit function on DAI; https://github.com/makerdao/dss/blob/b1fdcfc9b2ab7961bf2ce7ab4008bfcec1c73a88/src/dai.sol#L114-L138
Is this being considered?


Error when training

Hi, and thanks for your excellent work.
When i train the model using python scripts/run.py --config-name=wanjinyou dataset_name=example case_name=ngp_fox mode=train +work_dir=$(pwd),
The error occurs:
Traceback (most recent call last):   File "/home/xuxumiao/new_disk/MA/f2-nerf/scripts/run.py", line 38, in <module>     @hydra.main(version_base=None, config_path='../confs', config_name='default') TypeError: main() got an unexpected keyword argument 'version_base'
Hopes for your answer ^ ^

I think you didn't install the latest version of Hydra.
Can you try pip install hydra-core --upgrade


Document internal structs

C structs are documented as in Doxygen tests. But for some unfound reason, the members of the struct is not being parsed when the docs are built. The output is as followed,

Did you try doing what is here? https://scilab.gitlab.io/legacy_wiki/Doxygen(20)documentation(20)Examples

Did you try doing what is here? https://scilab.gitlab.io/legacy_wiki/Doxygen(20)documentation(20)Examples

Yes, still the same result.

@NagithaAbeywickrema : This seem to be an issue with Sphinx and/or breathe. If you generate the Doxygen docs,
they contain the struct documentation.

With these changes, I can get the structs to appear on documentation:
https://github.com/thilinarmtb/doxygen-sphinx-breath-cmake/commit/28fc2e15e2c61456c1b54267dc42540568b84cc9
I created a dummy project to test this here:
https://github.com/thilinarmtb/doxygen-sphinx-breath-cmake

With the following changes, I can get the structs to appear on documentation: thilinarmtb/doxygen-sphinx-breath-cmake@28fc2e1
I created a dummy project to test this here: https://github.com/thilinarmtb/doxygen-sphinx-breath-cmake

I was able to generate docs for struct members by adding the :members: tag to the nomp_types group in user-api.rst file. Currently the issues are,

#include <nomp-impl.h> is present before the description of all the structs in the nomp-impl.h file.
Only the structs in the nomp-impl.h file are being documented

With the following changes, I can get the structs to appear on documentation: thilinarmtb/doxygen-sphinx-breath-cmake@28fc2e1
I created a dummy project to test this here: https://github.com/thilinarmtb/doxygen-sphinx-breath-cmake

I was able to generate docs for struct members by adding the :members: tag to the nomp_types group in user-api.rst file. Currently the issues are,

#include <nomp-impl.h> is present before the description of all the structs in the nomp-impl.h file.

Only the structs in the nomp-impl.h file are being documented.

Does it go away if we add each struct separately using doxygenstruct instead of doxygengroup?
Also, we need the internal structs to be documented in internal-api.rst not in user-api.rst.

With the following changes, I can get the structs to appear on documentation: thilinarmtb/doxygen-sphinx-breath-cmake@28fc2e1
I created a dummy project to test this here: https://github.com/thilinarmtb/doxygen-sphinx-breath-cmake

I was able to generate docs for struct members by adding the :members: tag to the nomp_types group in user-api.rst file. Currently the issues are,

#include <nomp-impl.h> is present before the description of all the structs in the nomp-impl.h file.

Only the structs in the nomp-impl.h file are being documented.

Does it go away if we add each struct separately using doxygenstruct instead of doxygengroup? Also, we need the internal structs to be documented in internal-api.rst not in user-api.rst.

This works!
Currently, only the /include directory is used as the DOXYGEN_INPUT_DIR. I have documented structs in /backends as well. Am I supposed to document the structs in the /include directory only?

I think we can do both the directories. We will have to change both DOXYGEN_INPUT_DIR here
to include the parent directory of both backend and include and the file extensions here to
include .c files.

@NagithaAbeywickrema : I am going to close this PR since most of the internal structs
are now documented as a result of recent PRs which were merged. Please feel free to
issue a new PR if anything is missing there.

@NagithaAbeywickrema : I am going to close this PR since most of the internal structs
are now documented as a result of recent PRs which were merged. Please feel free to
issue a new PR if anything is missing there.


fix #1055 and make code more readable

Please answer these questions before submitting pull request

Why submit this pull request?

[x] Bug fix

[ ] New feature provided

[ ] Improve performance

Related issues
#1055

Bug fix

Bug description.

How to fix?
i change the boot order and reconstruct the class org.apache.skywalking.apm.agent.SkyWalkingAgent that make it more readable when put the boot() below without change the logic.please review

New feature or improvement

Describe the details and related test reports.

It looks good for me. But first thing first, @ascrutae please run auto tests for this pr. This is a reflector for agent premain entrance, too important.

Coverage remained the same at 19.79% when pulling e820e686bc6e2805cc80cdb27b3f22dcdcaaaa6c on candyleer:fix_boot_order into 1261e03c9b7e88b4c5cc94ddc14c9d77c2c11c31 on apache:master.

This PR is passed. Here is the test report


Consider adding Sequence.Concat

The Concat function of IEnumerable<T> is useful, but if the only thing we're doing is concating there's a bit of an asymetry for the first item:
first.Concat(second).Concat(third);

vs
Sequence.Concat(first, second, third)

The question is, is this really better than ImmutableList.Create()?

I think yes, since it's clearly another intention.
Variadic implementation possible with params in this case.

The question is, is this really better than ImmutableList.Create()?

I think yes, since it's clearly another intention.
Variadic implementation possible with params in this case.


Problem with interface name

I'm trying the add-on, if I understand correctly I need to input my primary interface name in the configuration.
In HomeAssistant under "Settings -System - Network" I see the names of my interfaces are enp2s1 and enp2s4.
However the add-on can't find the network interface enp2s1
-----------------------------------------------------------
 Add-on: NetworkManager Fix
 Fix NetworkManager configuration for mDNS to prevent flooding caused by reflectors across multiple vlans
-----------------------------------------------------------
 Add-on version: 1.0
 You are running the latest version of this add-on.
 System: Home Assistant OS 13.2  (amd64 / qemux86-64)
 Home Assistant Core: 2024.11.2
 Home Assistant Supervisor: 2024.11.4
-----------------------------------------------------------
 Please, share the above information when looking for help
 or support in, e.g., GitHub, forums or the Discord chat.
-----------------------------------------------------------
s6-rc: info: service banner successfully started
s6-rc: info: service nmfix: starting
s6-rc: info: service nmfix successfully started
s6-rc: info: service legacy-services: starting
[Warning]: apparmor not available on host system!
No log_level set in config, fallback to info
s6-rc: info: service legacy-services successfully started
Warning: nmcli (1.44.4) and NetworkManager (1.44.2) versions don't match. Restarting NetworkManager is advised.
[22:15:36] ERROR: No device found for connection name: enp2s1
[21:15:36] WARNING: NetworkManager Fix service exited with code 1 (by signal 0).
s6-rc: info: service legacy-services: stopping
s6-rc: info: service legacy-services successfully stopped
s6-rc: info: service legacy-cont-init: stopping
s6-rc: info: service nmfix: stopping
s6-rc: info: service nmfix successfully stopped
s6-rc: info: service banner: stopping
s6-rc: info: service banner successfully stopped
s6-rc: info: service legacy-cont-init successfully stopped
s6-rc: info: service fix-attrs: stopping
s6-rc: info: service fix-attrs successfully stopped
s6-rc: info: service s6rc-oneshot-runner: stopping
s6-rc: info: service s6rc-oneshot-runner successfully stopped

When I leave the configuration value empty, it auto-detects the interface correct luckily.
-----------------------------------------------------------
 Add-on: NetworkManager Fix
 Fix NetworkManager configuration for mDNS to prevent flooding caused by reflectors across multiple vlans
-----------------------------------------------------------
 Add-on version: 1.0
 You are running the latest version of this add-on.
 System: Home Assistant OS 13.2  (amd64 / qemux86-64)
 Home Assistant Core: 2024.11.3
 Home Assistant Supervisor: 2024.11.4
-----------------------------------------------------------
 Please, share the above information when looking for help
 or support in, e.g., GitHub, forums or the Discord chat.
-----------------------------------------------------------
s6-rc: info: service banner successfully started
s6-rc: info: service nmfix: starting
s6-rc: info: service nmfix successfully started
s6-rc: info: service legacy-services: starting
[Warning]: apparmor not available on host system!
No log_level set in config, fallback to info
s6-rc: info: service legacy-services successfully started
Warning: nmcli (1.44.4) and NetworkManager (1.44.2) versions don't match. Restarting NetworkManager is advised.
[22:26:05] INFO: If different than the primary interface, please configure a primary interface from the following list:
[22:26:05] INFO: "Supervisor enp2s1"
[22:26:05] INFO: "Supervisor enp2s4"
[22:26:05] INFO: "lo"
[22:26:05] INFO: "HassOS default"
[22:26:05] INFO: "IOT-VLAN900"
[22:26:05] INFO: "Supervisor enp2s4"
[22:26:05] INFO: Primary adapter automatically detected: enp2s1. Getting connection name...
[22:26:05] INFO: Primary interface automatically detected: Supervisor enp2s1
[22:26:05] INFO: Current mDNS status for enp2s1 (Supervisor enp2s1): yes
[22:26:05] INFO: Setting mDNS status for enp2s1 (Supervisor enp2s1) to resolve
Warning: nmcli (1.44.4) and NetworkManager (1.44.2) versions don't match. Restarting NetworkManager is advised.
Warning: nmcli (1.44.4) and NetworkManager (1.44.2) versions don't match. Restarting NetworkManager is advised.
Connection 'Supervisor enp2s1' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/9)
Warning: nmcli (1.44.4) and NetworkManager (1.44.2) versions don't match. Restarting NetworkManager is advised.
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/11)
[22:26:05] INFO: Successfully set mDNS status for connection: Supervisor enp2s1 to resolve

So in the end it's working, but I thought you might like to know.
Maybe put a line on the information that the configuration value is optional.
Thanks for the add-on!

Glad this is working for you.
Note that the logs provide a clue on names: "Supervisor enp2s1". In fact the config needs the connection name that nmcli would use, as opposed to the interface name.
The add-on leverages the supervisor API to determine the primary interface, which should work for the majority of use cases.

@nickcmaynard found an issue with the code and I just merged his pull request. It seems I had typed something in the wrong place (hint, in the middle of a variable name).

@nickcmaynard I will look into this; I was under the impression that the github actions workflow would automatically push the updated packages but it looks like... no.

@nickcmaynard The fix should be available now. It should eventually show up in the notifications under settings. You could also probably hit the refresh button manually from the main add-ons page (upper right corner) and this is likely to force the system to check for updates.

Good job!  Received and thank you!


@tsed/socketio  - set array of middlewares

Hi,
Maybe such improvement - possibility to set array of middlewares in @SocketUseBefore and @SocketUseAfter()

You can do that:

@SocketUseAfter(middleware1)
@SocketUseAfter(middleware1)
class MyClass {}

What about when the list of middlewares are stored/set in one place (application config, other packages, etc)?

Haaaa ok. I understand, you want to export the list from another file. Ok, good point ;)

Ok proposal:
const middlewares = [];
@SocketUseAfter(...middlewares)


fix(api): Send warnings only if the limit is really exceeded

For the the series, label names and label values APIs
Add warnings count check to TestEndpoints
The limit param was added in https://github.com/prometheus/prometheus/pull/13396
This fixes https://github.com/prometheus/prometheus/pull/13396/files#r1538010352

fix pushed, ready for review.

cc @kartikaysaxena


Add VGA graphical text mode

Added alternate text mode "graphical text mode" that uses internal VGA fonts and settings in text mode with the canvas that is otherwise used in graphical mode.
Added new configuration option screen_options to V86 constructor, which is needed for two screen-related options:

use_graphical_text: Boolean, enable VGAScreen's graphical text mode if true
disable_autoscale: Boolean, disable ScreenAdapter's auto-scale feature if true

VGAScreen's current behaviour is unmodified unless use_graphical_text is set to true, this PR is intended to be a non-breaking change.
Added new bus event screen-settings-changed, it reports details about the current video mode settings when graphical text mode is enabled, event arguments:

in text mode: [false, txt_width, text_height, font_width, font_height]
in graphical mode: [true, gfx_width, gfx_height, virtual_width, virtual_height]

Added new VGAScreen function grab_text_content() that returns an array of strings containing the current text screen content (in CP437).
Supported VGA text mode features:

40 and 80 columns
25, 28 and 50 rows
font height 1-32 pixel
font width 8, 9 or 16 pixel
line graphics enable (continuous horizontal line drawing characters)
cursor emulation
blinking text
monochrome and colour modes

Usage example for new optional setting screen_options:
window.emulator = new V86({
    wasm_path: "v86.wasm",
    memory_size: 16 * 1024 * 1024,
    vga_memory_size: 2 * 1024 * 1024,
    screen_container: document.getElementById("screen_container"),
    screen_options: {
        use_graphical_text: true,
        disable_autoscale:  true
    },
    bios: {
        url: "seabios.bin"
    },
    vga_bios: {
        url: "vgabios.bin"
    },
    fda: {
        url: "freedos13.img"
    },
    autostart: true,
});

Note:

~50 rows only works under MS-DOS,~ use MODE CON LINES=50 EDIT: 80x50 text mode fixed, works now under both MS-DOS and FreeDOS
Monochrome only works under FreeDOS, use MODE MONO on the command line.

Open issues:

split screen (looking for example)
512 character mode (looking for example)
43 rows is refused by both MS-DOS and FreeDOS

This PR should resolve #1098 (more details there).

Thanks!
I've left a few stylistic comments. However, looking at the bigger picture, many of the changes in vga.js look similar to this:
-    this.bus.send("screen-update-cursor-scanline", [start, end, visible]);
+    if(this.graphical_text)
+    {
+        this.graphical_text.set_cursor_attr(start, end, visible);
+    }
+    else
+    {
+        this.bus.send("screen-update-cursor-scanline", [start, end, visible]);
+    }

Which indicates that it might be better to merge src/vga_text.js into src/browser/screen.js. It would also be nice to reuse the screen-put-char machinery.

You're welcome, and thank you very much for taking the time for a close look at all this, I really appreciate that.
I agree that the new code should be merged into existing classes, it is structured that way (minimal changes to existing code) to best oversee how.
Here's where I ended up: In graphical text mode, the entire DIV-based text implementation in ScreenAdapter is currently dead on purpose as I did not see any use for it, the code is 100% "living off the land" in VGAScreen, specifically without the 2nd text buffer ScreenAdapter.text_mode_data[] and all the code that goes with it.
Are there other bus listeners besides ScreenAdapter for any of the 4 text-related bus events screen-put-char, screen-update-cursor, screen-set-size-text and screen-update-cursor-scanline that need to be taken into consideration? Could you please describe a bit more to me what behaviour you would like to see restored?
Currently, the only essential function of ScreenAdapter in graphical text mode is that it controls the rendering loop at ~60fps, faithfully believing it is in graphical mode (hehe).
I haven't made up my mind, though I currently think GraphicalText (in vga_text.js) is much closer to VGAScreen than ScreenAdapter. Maybe GraphicalText could be split across VGAScreen and ScreenAdapter since its function does sit somewhere in between the two. The rendering should happen in VGAScreen, do you agree? I need to think about this, not sure where to draw the line.
By the way, even though it is not used in graphical text mode, the HTML DIV element is still required because ScreenAdapter still assumes its existence, this could be easily changed as ScreenAdapter also knows about graphical text mode in its constructor through the screen_options constructor argument. Should I?

Are there other bus listeners besides ScreenAdapter for any of the 4 text-related bus events screen-put-char, screen-update-cursor, screen-set-size-text and screen-update-cursor-scanline that need to be taken into consideration? Could you please describe a bit more to me what behaviour you would like to see restored?
...
I haven't made up my mind, though I currently think GraphicalText (in vga_text.js) is much closer to VGAScreen than ScreenAdapter. Maybe GraphicalText could be split across VGAScreen and ScreenAdapter since its function does sit somewhere in between the two. The rendering should happen in VGAScreen, do you agree? I need to think about this, not sure where to draw the line.

Looking at this again, you're right that the line is blurry. I think we can merge this in its current design, and I'll think about potential refactoring later (see the next paragraph).
Regarding bus, this is a leftover from a very old version of v86 that supported web workers (with the idea that "bus" was the boundary between web worker and main thread). It's now mostly used as an event handler for the public V86 class. I'm thinking of removing it and replacing it with more direct calls.

By the way, even though it is not used in graphical text mode, the HTML DIV element is still required because ScreenAdapter still assumes its existence, this could be easily changed as ScreenAdapter also knows about graphical text mode in its constructor through the screen_options constructor argument. Should I?

No, an invisible div doesn't harm anyone (and code that switches between modes might assume its existence).

Yesterday I took a very detailled look at this PR's changeset to ensure everyhing was ok (which it wasn't), and also took notes on the design for an overview.
Here are the current relations between VGAScreen, ScreenAdapter and GraphicalText:
+---------------+         +---------------+         +---------------+
| ScreenAdapter |<= BUS =>|   VGAScreen   |<= API =>| GraphicalText |
+---------------+         +---------------+         +---------------+

In detail (functions that suppress a bus message are annotated with the message's name):
1. VGAScreen uses these public methods of GraphicalText:

   GraphicalText(bus, vga)
   GraphicalText.set_character_map(char_map_select)
   GraphicalText.set_size(rows, cols)                  // "screen-set-size-text"
   GraphicalText.set_cursor_pos(row, col)              // "screen-update-cursor"
   GraphicalText.set_cursor_attr(start, end, visible)  // "screen-update-cursor-scanline"
   GraphicalText.invalidate_row(row)                   // "screen-put-char"
   GraphicalText.invalidate_font_shape()
   GraphicalText.resize_canvas()
   GraphicalText.invalidate_all()
   GraphicalText.render()

2. GraphicalText uses these public members and methods of VGAScreen:

   VGAScreen.vga_memory[]
   VGAScreen.plane2[]
   VGAScreen.offset_register
   VGAScreen.line_compare
   VGAScreen.start_address
   VGAScreen.dac_mask
   VGAScreen.dac_map[]
   VGAScreen.vga256_palette[]
   VGAScreen.clocking_mode
   VGAScreen.attribute_mode
   VGAScreen.max_scan_line
   VGAScreen.scan_line_to_screen_row(VGAScreen.line_compare)

3. ScreenAdapter and VGAScreen interface each other through the bus only.

4. ScreenAdapter and GraphicalText do not interface each other.

I also cobbled a crude hack together where I changed the design to this:
+---------------+         +---------------+         +---------------+
|   VGAScreen   |<= BUS =>| ScreenAdapter |<= API =>| GraphicalText |
+---------------+         +---------------+         +---------------+

This proof-of-concept worked, VGAScreen was left with almost no changes (compared to the current master) and it was as ignorant about GraphicalText as ScreenAdapter currently is in my PR. ScreenAdapter becomes the owner of the private GraphicalText instance (currently VGAScreen is the owner). There are only a few hurdles for this transformation, I guess it would take me a couple of hours to make it right and proper. As before, GraphicalText needs a valid reference to VGAScreen, but that's solvable.
If this design issue comes up in the future I'd be happy to help.

Can you give me a quick sketch about what needs to be considered when saving/restoring state?

Never mind, I did a few tests and it seems to work as it is, allthough I'm not sure I'm testing right.
I saved the state, reloaded my browser, rebooted using the same image and then restored the state. The screen restored to the exact same state (content and cursor) that I had saved.
Then I changed mode to 50 rows, trashed the screen and restored state again. Also the second time the screen was restored perfectly.
I guess it works because I'm working off the VGA state which does get saved/restored properly.

FYI, I'm reworking the bus interface, and will try to get this merged afterwards.

FYI, I'm reworking the bus interface, and will try to get this merged afterwards.

Ok!
The other day I made a thorough cross-check with qemu, and the text modes look and behave the same as in this PR.
So from my perspective it's complete and ready to be merged.

just found out yesterday there's another repo named doswasmx, seemingly had solutions to a few issues here.
But that is mainly aiming at gaming, I suppose.

just found out yesterday there's another repo named doswasmx, seemingly had solutions to a few issues here. But that is mainly aiming at gaming, I suppose.

If I run a text mode application in DOS Wasm X which intensely dumps to stdout the screen gets quite unresponsive and kinda breaks (I ran nmake over the MS-DOS 4.0 source tree with a Pentium II at 300Mhz), see here:

It's a bit hard to catch in a screenshot but take a look at the 3rd row from the bottom for what I mean.
A bit worse, if I run the Norton Commander installer in DOS Wasm X I don't see the font-based graphical mouse-cursor emulation (see the 3rd screebshot and text below here), and then Firefox crashes.
I only know a few simulators and thus don't have much of an opinion, but perhaps Em-DOSBox is a better wasm-port of DOSBox than "DOS Wasm X", Em-DOSBox runs all the simulations on archive.org, and those work quite well in my experience.

Merged in c758d6da40c79d8ee648e00ff66ee66e44b33501 and f92e6b4b55c3f6e5a327b836375df20fedd45fa4. I meant to push to wip instead of master, but oh well.
There's still more refactoring I'd like to do, in particular:

Get rid of the if(this.graphical_text) this.graphical_text.foo() else this.screen.foo(), by merging graphical_text into ScreenAdapter
Pass the font data from VGAScreen to GraphicalText (and remove this.vga from GraphicalText)
Reusing the screen-put-char logic (e.g. storing the screen contents similar to ScreenAdapter
Move the invalidation logic out of redraw
Re-enable blinking with a proper timing (at the moment it blinks twice as fast on a 120hz screen)

However I have other things to work on. It would be nice if you could submit some of the refactorings as a PR, but it's good enough to be merged as is.
Could you do a quick test to see if everything is still working? I moved several things around, especially around the font size checks.

Can you undo this merge?

Else I would like to begin with the state of vga.js in the 2nd-to-last commit c758d6d and just override what was then merged in the last commit f92e6b4. Would that be safe or did you make more changes in addition to merging GraphicalText that would get lost if I did this?
I have a solid plan how to implement what you listed in one go, I'm only looking for a better starting position.
Compared to the previous state of vga.js, I only need to introduce 2 new bus messages (called "screen-set-font-bitmap" and "screen-set-font-page", let me know if I should expand on them) and make sure that the 6 VGA register-additions I made are good, these are the only changes to vga.js, very few.
For the rest, GraphicalText will get merged into ScreenAdapter, and ScreenAdapter won't need a link to VGAScreen. ScreenAdapter will be the only class with knowledge about graphical text mode and will be only using received bus messages to implement this mode. Graphical text mode implementation in ScreenAdapter will reuse as much as possible from classical text mode (all the bus messages, the character and attribute buffer, cursor attributes, etc.).

Can you undo this merge?

I can't, but feel free to include git revert f92e6b4b55c3f6e5a327b836375df20fedd45fa4 in your PR, then I'll merge (or squash) everything in one go.

Ok I have started the 2nd iteration of this.
Please do not modify vga.js or screen.js in the next couple of days.

Success!
I can see it booting as it's supposed to, so far I've tested: 50 row-mode, 8/9px font width and font pages A/B. Fontraption looks as it should.
So the main part is working, only minor things like the cursor are left to do.

The redesign is complete, it's ready for review.
All previous features are implemented and tested:

80 and 40 columns
25, 28 and 50 rows
16-color and monochrome mode
8/9px font width
16px font width (doubled width)
512-character set mode (font pages A/B)
switching between graphical text mode and graphical mode (shared canvas)
blinking text and cursor emulation (using clock-based interval timing)

I also made sure that the "classical" (DIV-based) text mode ist still working.

There is one issue, I'm trying to be as brief as possible but I must give a bit of context.

The text attribute byte is divided into two nibbles. The lower four bits are the foreground attributes (mostly color bits, see below), and the higher four are the background attributes.
If the screen-wide BLINK_ENABLE bit (bit 4 of the VGA Attribute Mode Control Register 10h) is set, the highest bit in the fourground nibble becomes the per-character BLINK attribute, reducing the available foreground colors from 16 to 8.
If the screen-wide PAGE_AB_ENABLE bit is set (Character Map Select Register Index 03h, FONT_PAGE_SELECT is True when CHAR_SET_A_SELECT != CHAR_SET_B_SELECT), the highest bit in the background nibble becomes the per-character FONT_PAGE_SELECT attribute, reducing the available background colors from 16 to 8.

So in order for a character to blink two things must to be true at the same time, the same goes for a character that is to be selected from one of the two font pages A/B.
When VGAScreen calls ScreenAdapter.put_char() it uses the current value of the screen-wide bits (BLINK_ENABLE and PAGE_AB_ENABLE) to build a character's attributes and colors, and that is too early, this should be computed whenever a character is drawn to screen (not when it's stored into a buffer as it is now). The applicaton is free in the order in which it writes characters/attributes to VGA memory and when it modifes the screen-wide bits.
I do not have an good solution for this (yet), maybe you have an idea.

The applicaton is free in the order in which it writes characters/attributes to VGA memory and when it modifes the screen-wide bits.

Presumably the palettes and screen-wide bits are not modified very often, would that be a fair assumption? If so, I'd suggest calling VGAScreen.prototype.complete_redraw when any of them change (which, under the hood, refills the entire screen with put_char calls).

The applicaton is free in the order in which it writes characters/attributes to VGA memory and when it modifes the screen-wide bits.

Presumably the palettes and screen-wide bits are not modified very often, would that be a fair assumption? If so, I'd suggest calling VGAScreen.prototype.complete_redraw when any of them change (which, under the hood, refills the entire screen with put_char calls).

Now that's a really well-balanced proposition, thank you. This will also change the code only minimally.
I'll add another commit tomorrow.

The second CI check for my last commit has now been stuck at Run api tests: Restoring: filesystem for more than 2 hours, and I'm not sure what to do about it.
Run make api-tests
./tests/api/clean-shutdown.js
Calling stop()
Called stop()
./tests/api/state.js
Saving: async cdrom
Restoring: async cdrom
Done: async cdrom
Saving: sync cdrom
Restoring: sync cdrom
Done: sync cdrom
Saving: filesystem
Restoring: filesystem

In code, it's stuck at tests/api/state.js in a call to emulator.restore_state().
I have not modifed the state[] of VGAScreen in this redesign PR.

The second CI check for my last commit has now been stuck at Run api tests: Restoring: filesystem for more than 2 hours, and I'm not sure what to do about it.

It's a spurious failure, feel free to ignore it.

@chschnell This is good to merge now, do you mind if I squash?

@chschnell This is good to merge now, do you mind if I squash?

Yes, it's good to go.

@chschnell Thanks for the contribution!

You're welcome, and I'm really pleased with the outcome.


JSON Unmarshal error for CreateDNSRecord

I am trying implementing a dns add service function in my go program so I referred to flarectl and dns.go
record := cf.DNSRecord{
	Name:    r.Name,
	Type:    strings.ToUpper(r.Type),
	Content: r.Content,
	TTL:     int(r.TTL),
	Proxied: r.Proxy,
}

if res, err := d.api.CreateDNSRecord(zoneId, record); err != nil { 		return nil, err
I get Error unmarshalling JSON: json: Unmarshal(nil *cloudflare.DNSRecordResponse) when running a unit test. I double-checked that I am passing everything correctly by looking at flarectl.go.
DNS record is actually created. Verified by using curl api.
Any help or insights are greatly appreciated!

Hey @davis12529 - I've fixed this. Pull the latest version :)


[Client] build .NET client via IKVM

just generate it from bagri-xxx-xqj.jar driver
provide demo app on basic operations with driver from C#

done


feat(api) add a config readiness endpoint

Summary
Adds a config readiness endpoint. This is designed to allow the Ingress controller to detect when Kong has restarted and needs to receive configuration again. It should also be useful for load balancers that want to avoid sending requests through an instance before it is ready to process them.
Full changelog

Add a config readiness endpoint and include it on the status listen. When db="off", it returns a 200 if Kong has loaded or received a configuration and applied it, or 503 if not.
Compute hashes when loading configuration from the environment, to distinguish between user-supplied configuration and the default blank configuration.
Set the database mode to the strategy for Kong endpoint tests. It's unclear if this was the earlier intent, since the previous strategy effectively did nothing as best I can tell. Doing so is necessary for the new endpoint tests to function.
Use the config hash when updating the stream configuration. Unclear if this is necessary, since we presumably can't check its SHM value until the stream and HTTP SHMs are unified (the admin API only looks at the HTTP subsystem SHM). We send it though, so may as well :shrug:

blocked on https://github.com/Kong/kong/pull/8224/

@mflendrich - I believe LMDB will not ship in 2.8 as the default db_cache, and would remove the block you raised. Can you confirm?

@bungle assuming Rob's comment is correct, can you or another Gateway team member review this for the current DB-less implementation? The external interface would be consistent regardless of the backend, so I'm not concerned that we'd need a breaking change to that in a future version.

Any ideas what would be up with the shm_client? If I assert on the second call to set DECLARATIVE_CONFIG_READY_KEY, I get a weird failure where both res and err are nil. I guess that could imply that I got no bytes from the socket, successfully.
The request does send and receive a successful response:
tcpdump.txt
so not quite sure what's going on there. The test does fail without them, because it's in the not-ready state, so otherwise it's working as expected.

I was about to say this approach looks good but then I realized another issue, maybe an irrelevant corner case.

Adds a config readiness endpoint. This is designed to https://github.com/Kong/kubernetes-ingress-controller/issues/2107 and needs to receive configuration again.

If a pod restarts for any reason, Kong will load the configuration that it has cached on disk, and this endpoint will return a 200. I think this doesn't solve the problem you originally set out to solve.
One could argue that all pods startup from a clean state and hence won't have any cached state - I do not find that to be true in practice.

It should also be useful for load balancers that want to avoid sending requests through an instance before it is ready to process them.

This is a fine use-case for this patch and I think we should accept it.
Now, how to solve the KIC issue? Thanks to #8214, the Admin API / response now contains the hash of the configuration. KIC can monitor the hash of all connected data-plane nodes, and send updates to nodes whose hash doesn't match up with what it expects it to be - I'm not sure how KIC would determine the hash it should expect from the data-plane node.

If a pod restarts for any reason, Kong will load the configuration that it has cached on disk, and this endpoint will return a 200. I think this doesn't solve the problem you originally set out to solve.
One could argue that all pods startup from a clean state and hence won't have any cached state - I do not find that to be true in practice.

We do want this to return a 200 if config is loaded from disk, config is available then. Is this specific to hybrid data planes or should it work on full DB-less also? Container restarts do not wipe out the tempdir we use for the prefix, so if it does get saved there, it should be reloaded on restart. In practice, if we assassinate a DB-less container, its replacement comes online with an empty configuration.

Now, how to solve the KIC issue? Thanks to https://github.com/Kong/kong/pull/8214, the Admin API / response now contains the hash of the configuration. KIC can monitor the hash of all connected data-plane nodes, and send updates to nodes whose hash doesn't match up with what it expects it to be - I'm not sure how KIC would determine the hash it should expect from the data-plane node.

This is part of why I'd have preferred to use this to solve that issue: using the configuration hash ends up being a leaky abstraction where you need to reimplement Kong internals outside to fully understand what's going on. We can sorta get partway there by comparing against the known "0"*32 unset value, but if that changes, it either breaks or you need version-dependent behavior downstream. The yes/no status code API response is an easier contract to maintain than the specifics of the hashing system.

@rainest :

Do we have something that provides the worker counts/a list of their PIDs?

Yes, in the / admin API provides the list of worker pids inside pids.workers. It is set here:
https://github.com/Kong/kong/blob/master/kong/api/routes/kong.lua#L71-L87

@rainest The functionality of this PR seems to be duplicate to https://github.com/Kong/kong/pull/8214. Do we still need it since https://github.com/Kong/kong/pull/8214 is already merged?

Is this specific to hybrid data planes or should it work on full DB-less also?

I'm not sure. @bungle or @dndx Can either of you confirm this?

@rainest The functionality of this PR seems to be duplicate to https://github.com/Kong/kong/pull/8214. Do we still need it since https://github.com/Kong/kong/pull/8214 is already merged?

While they try to solve the same problem, their use is quite different.
When Kong is fronted by a load-balancer, the load-balancer must consider Kong healthy only if Kong has some configuration in it. Marking a running Kong without any configuration is as good as a dead Kong - the client will get a 404 instead of a 503.
I think it makes a lot of sense to accept this patch and give the users an option to opt-in into a more reliable source of health.

@hbagdi That is one possibility, but wouldn't the user actually wants to check for the reachability of backend services in this case? Just having any config loaded is a pretty weak guarantee that Kong is actually "healthy", there are a lot of things that could still gone wrong.
I am considering the original problem @rainest needs to solve within this PR's description which is KIC's config readiness detection, and it seems that #8214 already solves it. Maybe we should keep the problem scope confined for now.

@hbagdi That is one possibility, but wouldn't the user actually wants to check for the reachability of backend services in this case?

They could and they are free to do that and they should do that as an end-to-end monitoring check.
I believe that a user's desire to keep tabs on the health of Kong itself is a fair ask and it should be possible to know about the health of Kong without relying on any external services.
We already do have health endpoints, so I don't think this is new territory. What this endpoint provides is a more accurate health check than something like /status that responds as long as Nginx workers are around.

Just having any config loaded is a pretty weak guarantee that Kong is actually "healthy", there are a lot of things that could still gone wrong.

It is a stronger guarantee than not having any configuration at all.
And yes, loads can still go wrong, this is really about providing as much accurate health status as possible.

Is this specific to hybrid data planes or should it work on full DB-less also?

It was originally designed for full DB-less. For this they're functionally the same since the code to actually load the config is shared, and only the method for receiving new configs changes.
This is handled differently from #8124 for two reasons:

https://github.com/Kong/kong/pull/8256#issuecomment-1045117127 from earlier. External clients ideally should not make decisions based on internal state values, because the meaning of those may change and they may not provide a complete answer to the question--as seen here a non-initial has value does not imply that workers have loaded it.
LB readiness usually will not interpret anything beyond HTTP statuses. They cannot parse the status output or make decisions based on the hash value. This was intended for use by both KIC and naive readiness checkers.

I concur with Harry that this isn't a perfect metric for readiness (there is no such thing), but it's taking us past the /status response (always a 200 unless Kong is very broken) to further confirm that we're not in another state we know is not viable for routing traffic (if you've never received any configuration, you will not route anything).

@kikito @dndx checking on this, it hasn't received a review update in a while. Is there anything further that'd need to change to merge it?


Index SMGLO

Would be nice to have the glossary from http://mathhub.info/smglom/smglom indexed so that NNexus can be integrated into online editors and jEdit plugin that authors of SMGLO can use.

Maybe in its next incarnation...


New release with updated deps

Hey,
could you maybe release a new version with the updated deps?
Thanks a lot and I'm glad this packages exists (using it daily ;)),
Felix

You might be using it more than myself. Do you need any other changes or just release it as it is on the main branch?
One change I'm considering is incorporating NumPyArrays.jl to make image handling more efficient. Maybe I'll just issue a point release (0.1.1) for you and then make those changes in 0.2.0.

What are you using for 3D data btw?
Thanks a lot!

This is definitely a topic of many discussions we have had at Janelia since the Napari API seems plane focused while our 3D data formats are increasingly chunk based. Most of the 3D data we have been working with ends up in either BigDataViewer, Neuroglancer, or VVD_Viewer. I want to take a closer look at how Napari is digesting Zarr data.

v0.1.1 released:
https://github.com/mkitti/Napari.jl/releases/tag/v0.1.1


Is there a timeline on code release?

Great work. We'd love to use your model as a baseline.

Thank you for your attention to our work. Yes, we will release our code after organizing our code. By the way, which model do you want to use, BlenderBot?

When will the code be released? It's been a long time.

Oh really sorry for that. This week, I will upload it. I really really sorry for that

Oh really sorry for that. This week, I will upload it. I really really sorry for that

Thank you. That would be great.

@coolLxx We are very sorry for the late code sharing. Now, you can use our code. If you have any question or find an error or bug, please let us know :)

@coolLxx We are very sorry for the late code sharing. Now, you can use our code. If you have any question or find an error or bug, please let us know :)

I really appreciate your help！

I will close this issue.


Speed: From setting var, return whether or not the value of the field was changed and only wait when it was changed

Maybe this meant "only wait for a show if when the value was changed"


Conflicting packages with fresh jetson install containerd and moby-engine conflict

When following the IoT Edge Install runtime for Ubuntu 18.04, I get the following error when running the sudo apt-get install moby-engine:
Preparing to unpack .../moby-engine_3.0.11+azure-2_arm64.deb ...
Unpacking moby-engine (3.0.11+azure-2) ...
dpkg: error processing archive /var/cache/apt/archives/moby-engine_3.0.11+azure-2_arm64.deb (--unpack):
trying to overwrite '/usr/bin/containerd', which is also in package containerd 1.2.6-0ubuntu1~18.04.2
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
Errors were encountered while processing:
/var/cache/apt/archives/moby-engine_3.0.11+azure-2_arm64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

resolved with
sudo apt-get update
sudo apt autoremove
and the re-ran sudo apt-get install moby-engine without issue.


soc: arm: nordic_nrf: Add reset reason handling library

Added module for handling reset reason. It reads out hardware register
and clears it. Actual reset reason can be retrieved using
nrf_reset_reason API.
I've put include file insoc/arm/nordic_nrf since there is no include\soc so far (should be?). Maybe it's intentional to keep soc includes away from main include folder.
General idea: read reset reason once and clear register, users can access reset reason through api.
Special cases

nrf53. it seems (i did not test it) that NRF_RESET->RESETREAS contains application only reason for application and application+network on network. Because of that on network core reasons are being masked to only read/clear network specific reasons
bootloader: it does not clear reset reason since it's likely that application expects reset reasons (e.g. gpio, nfc wakeup, pin reset, et.c). Bootloader reads them but do not clear them as it also may need to use it (e.g. skip hash checking on gpio wakeup). Because of that it may happen that there will be 2 reset reasons set (e.g. wakeup from gpio, before it is cleared pin reset occurs). In order to avoid confusion user can use nrf_reset_reason_primary_get() to get only one bit set, the most LSB bit assuming that they are ordered by "relevance" in the register. In case watchdog reset occurs in bootloader, application will start with primary reset reason being watchdog which might be confusing but it is a result of bootloader not clearing the reset reason. It's then bootloader responsibility to manually clean watchdog reset reason if it is aware of triggering it.

Signed-off-by: Krzysztof Chruscinski<EMAIL_ADDRESS>

@ioannisg yes i will close it until there is some traction.


⚠ Bofrost.lu has degraded performance

In 8ea062d, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 3157 ms

Resolved: Bofrost.lu performance has improved in cc6136f after 29 minutes.


Docker: Token 404 Not Found OCPP Central System

Hello, trying to test your software. Im getting :
token 404 Not Found OCPP Central System
On the default docker installation.

Hello!
Thanks for your feedback. The bug has been fixed. Please update source codes.
Good luck.

Ok, testing now with 'Dockerfile'.  First tried i used docker image (docker run).

Hello, same error
import 'firebase/';
(anônimo) @ 9.59ab8d6f.chunk.js:2
main.b693a904.chunk.js:1  Token: Not present
main.b693a904.chunk.js:1 CredentialsToken: Init - new req
oauth2/token:1          Failed to load resource: the server responded with a status of 404 (Not Found)
ocpp:1 Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0
main.b693a904.chunk.js:1 --> API  /ChargePointList {} Headers
ocpp:1          Failed to load resource: the server responded with a status of 404 (Not Found)
manifest.json:1          Failed to load resource: the server responded with a status of 404 (Not Found)
Falha no carregamento do mapa de origem pelo DevTools: Não foi possível carregar o conteúdo de http://<IP_ADDRESS>:9220/loader.css.map: Erro HTTP: código de status 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE
localhost:9220/api/v1/ChargePointList:1          Failed to load resource: net::ERR_CONNECTION_REFUSED

Hello!
In docker settings, OAuth2 authorization is disabled.
Your container settings should be like this:

Run the container cs.

docker exec -it cs bash

cat /opt/cs/CMakeLists.txt | grep WITH_AUTHORIZATION

Result:
set(WITH_AUTHORIZATION OFF CACHE BOOL "Build with authorization")
if (WITH_AUTHORIZATION)
    add_compile_options("-DWITH_AUTHORIZATION")

Valid value: WITH_AUTHORIZATION OFF

cat /etc/cs/www/web/config.js | grep confAuthorize

Result:
confAuthorize: false,

Valid value: confAuthorize: false
Please check your web shell path settings (this is the cause of the 404 error)

cat /etc/cs/sites/default.json

Result:
{
  "hosts": ["localhost:9220"],
  "root": "/opt/cs/www/web"
}

Valid value: /opt/cs/www/web

ls -l /opt/cs/www/

Result:
drwxr-xr-x 2 root root 4096 Jun 13 15:50 docs
drwxrwxr-x 1 root root 4096 Jun 13 15:48 web

Make sure the web folder exists and is not empty.

I checked, the docker image available not has the /opt/cs/sites  directory and default.json

p: i tried to install froum source too, but in the libdelphi i got "no target"  to finish installation to /usr/local/lib ...

Hello!
The configuration files are located in: /etc/cs
Do you need a file:
/etc/cs/sites/default.json

Before building the application from source codes, you need to run the file ./configure for more details at this link.
Good luck.

Connected to localhost.
Escape character is '^]'.
hello
HTTP/1.1 400 Bad Request
Server: cs/1.0.566a0d4-b2
Date: Sun, 19 Jun 2022 03:37:00 GMT
Accept-Ranges: bytes
Content-Type: text/html
Content-Length: 160
Connection: close

Bad Request

400 Bad Request
OCPP Central System

Connection closed by foreign host.

Hello!
Yes, thanks, the wrong path to the web-shell was specified in the default settings. Corrected.
You can manually specify the correct path to the web-shell by editing the /etc/cs/sites/default.json file
The correct path to the Web Shell:
{
  "hosts": ["localhost:9220"],
  "root": "www/web"
}

Or, if you need Swagger UI API:
{
  "hosts": ["localhost:9220"],
  "root": "www/docs"
}

Don't forget to disable authorization in the web shell settings by editing the /etc/cs/www/web/config.js file:
var appConfig = {
confAuthorize: false
}

Also, in the default settings, disabled process: "Сharging point emulator". You can enable it in the application settings file /etc/cs/cs.conf
[main]

## Process: Charging point emulator
[process/ChargePoint]
## default: false
enable=true

After changing the settings, the application must be restarted.
Good luck.


Violation baseline appveyor fixes

Type: bugfix
Issue: -
Breaking change: no
The AppVeyor build fails on 2 tests of the baseline violations as the environment seems to be Windows.
https://ci.appveyor.com/project/phpmd/phpmd
This PR fixes the differences in slashes for 2 tests.
Remark: AppVeyor is quite out of view that tests are failing. I only noticed it by the appveyor label in the readme on master.

Thanks 🙏


Extensions installation / update broken @ 3.10.0

OS/Web Information

Web Browser: Google Chrome 90.0.4430.93 (Official Build) (x86_64)
Local OS: macOS Big Sur 11.3.1
Remote OS: Ubuntu 20.04.2 LTS
Remote Architecture: x86_64
code-server --version: 3.10.0 6610bff3216c48fdd0884191338b1092765dbb5a

Steps to Reproduce

Start installing (updating) extension from Marketplace
or start installing (updating) extension from CLI

Expected
Installed extension
Actual
If extension install / update started from GUI / CLI using Marketplace or VSIX file the process stalls. Button says 'Installing / Updating' and nothing more.
While installing in CLI it stalls on "Installing extensions..."
Logs
1. The most recent files from ~/.local/share/code-server/coder-logs.

empty logs
2. The browser console.

3. The browser network tab.

none
4. The most recent files from ~/.local/share/code-server/logs

logs.zip
Screenshot

Notes
This issue can be reproduced in VS Code: No

Hey there, I couldn't reproduce it either - it could be possible that one of your extensions is in a corrupted state. Can you uninstall TabNine and try again, or move ~/.local/share/code-server to another location and try with a fresh state?

Unfortunately, switching to new blank configuration didn't help. Reinstalling v.3.10.9 didn't help either.
I'm using systemd to launch code-server as root (don't ask) like that:
/lib/systemd/system/code-server.service
[Unit]
Description=code-server
After=network.target

[Service]
Environment=SERVICE_URL=https://marketplace.visualstudio.com/_apis/public/gallery
Environment=ITEM_URL=https://marketplace.visualstudio.com/items
Type=simple
ExecStart=/usr/bin/code-server --config /etc/code-server/config.yaml
Restart=always

[Install]
WantedBy=multi-user.target

/etc/code-server/config.yaml
bind-addr: <IP_ADDRESS>:444
auth: password
password: **********
cert: /etc/letsencrypt/live/domain.com/cert.pem
cert-key: /etc/letsencrypt/live/domain.com/privkey.pem

I've already tried to change
Environment=SERVICE_URL=https://marketplace.visualstudio.com/_apis/public/gallery
Environment=ITEM_URL=https://marketplace.visualstudio.com/items

to open-vsx.org with no success: I can list all extensions but cant install or update any.
I've been using code-server like that for many releases with no problem.
Please advice.

Hmm...I'm not sure what could have changed. Do you mind recording a video/screencast running this locally and sharing with us?
SERVICE_URL=https://open-vsx.org/vscode/gallery ITEM_URL=https://open-vsx.org/vscode/item code-server --install-extension esbenp.prettier-vscode

Yes, here it is.
I totally removed code-server package and deleted ./local/share/code-server
But no success, install process stalls.

That's super helpful! Thank you. It looks like you're running those as a separate lines so the variables won't be set when you install the extension. Can you run SERVICE_URL=https://open-vsx.org/vscode/gallery ITEM_URL=https://open-vsx.org/vscode/item code-server --install-extension esbenp.prettier-vscode --log trace as one line and post a video + logs of that? --log trace might show us something useful.
I spoke to @oxy who said it could be related to running as root as well.

You can also test the API with curl by running
curl 'https://open-vsx.org/vscode/gallery/extensionquery' -H "Content-Type: application/json" --data-raw '{"filters":[{"criteria":[{"filterType":4,"value":"does \
not exist"}]}]}'

which should get you:
{"results":[{"extensions":[],"resultMetadata":[{"metadataType":"ResultCount","metadataItems":[{"name":"TotalCount","count":0}]}]}]}

Same thing.

cli.log
curl 'https://open-vsx.org/vscode/gallery/extensionquery' -H "Content-Type: application/json" --data-raw '{"filters":[{"criteria":[{"filterType":4,"value":"does not exist"}]}]}'
fetches
{"results":[{"extensions":[],"resultMetadata":[{"metadataType":"ResultCount","metadataItems":[{"name":"TotalCount","count":0}]}]}]}
Should I try run code-server as regular user (not root) next?

Ah, bummer. I see this in the logs Extension VSIX downloads cache dir does not exist but not sure if that matters 🤔
Yeah, try running as a regular user and seeing what happens.

It looks like the /bin/bash node -p spawn never exits. Does something like this work?
$ /bin/bash -ilc 'echo hello'
hello

If that works perhaps try the full command:
$ /bin/bash -ilc "/usr/lib/code-server/lib/node -p '\"<marker>\" + JSON.stringify(process.env) + \"</marker>\"'"
<marker>{<env should show here>}</marker>

If it doesn't work perhaps there's something blocking in the .bashrc or .profile?

/bin/bash -ilc 'echo hello'

Thank you so much! Your snippet solved my problem. I had an admin text menu bash script autoloaded in .profile
After removed now it works correctly. Thank you, you're breathtaking!


Peculiarities of different group types not getting clear

From the list of different group types it's not getting clear which features come along with each type. The different paragraphs barely describe their peculiarities but not their similarities.
May I suggest to provide an intersection diagram to the page, depicting the peculiarities as well as the similarities of each of the different group types, like in this sketch:

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

ID: 1a37b2d3-f63b-a719-565b-a46f2b1f2e96
Version Independent ID: e267656e-4bda-f03b-4d9c-d5149ec0a227
Content: Compare groups - Microsoft 365 admin
Content Source: microsoft-365/admin/create-groups/compare-groups.md
Service: o365-administration
GitHub Login: @MikePlumleyMSFT
Microsoft Alias: mikeplum

@SetTrend Thank you for your feedback. Below is the description of groups in the document. I think it does explain precisely on what the groups can be used for, Is there any feature or group that you think is missing or creating ambiguity?
Microsoft 365 groups (formerly Office 365 groups) are used for collaboration between users, both inside and outside your company.
Distribution groups are used for sending notifications to a group of people.
Security groups are used for granting access to resources such as SharePoint sites.
Mail-enabled security groups are used for granting access to resources such as SharePoint, and emailing notifications to those users.
Shared mailboxes are used when multiple people need access to the same mailbox, such as company information or support email address.
Thanks
Sri

Thank you for replying.
Well, that's the peculiarities - but what are the similarities?

Which of the group types can be addressed by e-mail?
Which of the group types can be added to a Teams channel?
...

@SetTrend That's a valid point. I'll add the information to the document shortly.

@SetTrend I have made changes to the document via PR# https://github.com/MicrosoftDocs/microsoft-365-docs/pull/4872

Thank you, @msbemba, your expertise is very much appreciated.


Error running 'python -m aider'

Aider version: 0.59.1
Python version: 3.11.9
Platform: Windows-10-10.0.22631-SP0
Python implementation: CPython
Virtual environment: No
OS: Windows 10 (64bit)
Git version: git version 2.42.0.windows.2
An uncaught exception occurred:
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "__main__.py", line 4, in <module>
    main()
  File "main.py", line 566, in main
    main_model = models.Model(
                 ^^^^^^^^^^^^^
  File "models.py", line 661, in __init__
    res = self.validate_environment()
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "models.py", line 860, in validate_environment
    res = litellm.validate_environment(model)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "llm.py", line 23, in __getattr__
    self._load_litellm()
  File "llm.py", line 30, in _load_litellm
    self._lazy_module = importlib.import_module("litellm")
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 940, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "__init__.py", line 10, in <module>
    from litellm.caching import Cache
  File "caching.py", line 29, in <module>
    from litellm.types.utils import all_litellm_params
  File "utils.py", line 9, in <module>
    from openai.types.completion_usage import (
ImportError: cannot import name 'PromptTokensDetails' from 'openai.types.completion_usage' (C:\Users\thoma\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\openai\types\completion_usage.py)

Hi @Thwar, have you fixed the issue? If yes, could you share how?

Thanks for trying aider and filing this issue.
How did you install aider? What environment are you using? It looks like you don't have the correct set of dependencies installed. This doc may be helpful:
https://aider.chat/docs/troubleshooting/imports.html

I had to run 'pip install aider' & 'pip install aider-chat'

Also I needed to setup a payment method with the openAI API


feat(core): Add Supplier and Consumer function callback support

Add support for no-argument Supplier and single-argument Consumer function callbacks in the Spring AI core module. This enhancement allows:

Registration of Supplier callbacks with no input (Void) type
Registration of Consumer callbacks with no output (Void) type
Support for Kotlin Function0 (equivalent to Java Supplier)
Handle empty properties for Void input types in schema generation
Enhance FunctionCallback builder to support Supplier/Consumer patterns

Additional changes:

Add test coverage for both Supplier and Consumer callbacks in various scenarios
Enhance TypeResolverHelper to support Consumer input type resolution
Support lambda-style function declarations for improved ergonomics
Add test cases for void input/output handling in OpenAI chat model
Include examples of function calls without return values
Add support for parameterless functions through Supplier interface

Resolves #1718 , #1277 , #1118, #860

Refactored some of the long methods so that it reads more cleanly.
Added 'final' to the kotlin delegate classes.

in the docs, the section "Customization Options" was empty, so I removed it.

merged in 432954dad7f7c3a33117848a4259bc7076865c5f


istio grafana issue "Invalid dimensions for plot, width = 422, height = 0"

Describe the bug
grafana panel can be shared using iframe. But istio customized grafan (istio 1.1.2) has one issue when using iframe. the panel reports "Invalid dimensions for plot, width = 422, height = 0"
Please notice, istio 1.0.5 has no similar bugs.
Expected behavior
istio 1.1.2 should work.
Steps to reproduce the bug

go to grafana
go to istio service dashboard
choose one service
click the title 'client request duration'
choose share -> embedded, and then copy the iframe source to a empty html file e.g test.html
open test.html using chrome
the page reports "Invalid dimensions for plot, width = 422, height = 0"

Please notice, panels like 'client request volume'  don't have similar issues.
Version
1.1.2
Installation
istio is installed using helm chart
Environment
istio 1.1.2
k8s 1.12.4

I have tagged this area/user experience but none of us have experience with Grafana as far as I know.  @mandarjog @douglas-reid Can we also tag this area/policies and telemetry?  And who is the owner of Grafana dashboard stuff?

@esnible I downgrade grafana from 5.4.0 to 5.2.3. iframe works again. my question is do we have any dependencies with 5.4.0 in istio 1.1.2?

tried 5.4.3 just now. iframe also works.

Moving to Istio 1.2.  @dotw suggests upgrading Grafana to 5.4.3.  Is this already fixed in master?  The chart install/kubernetes/helm/istio/charts/grafana/values.yaml makes it look like we now install Grafana 6.0.2

@esnible The P&T WG owns the dashboards.
I'm not aware of any dependencies on a particular grafana version, but we have indeed upgraded to 6.X.

@esnible The P&T WG owns the dashboards.

Maybe ping @mandarjog

Closing because Istio 1.2 shipped with Grafana 6.1.6.  If anyone is getting this issue please re-open.


Copy marker text to clipboard

Joulescope model
JS220, JS110
UI version
1.2.5
Your idea
The Waveform widget's markers display text.  You should be able to right-click on the marker and select an option to , text and Copy text to clipboard.  This feature should be added to horizontal and vertical markers, single and dual.

See forum


"Entity with the specified id does not exist in the system." Azure Function

Hi,
I receive a "Entity with the specified id does not exist in the system." when using the code bellow but only within a Azure Function in production. When I changed code to connect to my REST API, the same code within the Api works.
_script = await _client.ReadDocumentAsync<Screenplay>(                 UriFactory.CreateDocumentUri( DatabaseId, CollectionId, myQueueItem.ScreenplayId ),                 new RequestOptions { PartitionKey = new PartitionKey( null ) } );
Additional information. "parentId" is my partition key. This document has a null "parentId".
I have the firewall set to allow my local dev box IP address as well as the Azure Function Virtual IP address.

null is handled differently in SDK. @chrisparkeronline please try 'Undefined.Value' as PartitionKey.
How is your REST API handling nulls?

Hi, sorry for the delay. No sure what the issue was but recreating the partition with "/parentId" setup the partition using the path I wanted.
Additionally using the following code worked for me.
For documents with a null parentId, meaning no partition key (top level documents in my case), I used this code;
var retVal = client                     .CreateDocumentQuery<MyCustomObject>( Uri, query,                         new FeedOptions { EnableCrossPartitionQuery = true, PartitionKey = new PartitionKey( null ) } ).AsEnumerable().FirstOrDefault();
For documents that have a parentId, meaning sub documents of a top level document, I used this code;
var retVal = client                     .CreateDocumentQuery<MyCustomObject>( Uri, query,                         new FeedOptions { EnableCrossPartitionQuery = true, PartitionKey = new PartitionKey( $"{parentIdValue}" ) } ).AsEnumerable().FirstOrDefault();
Thank you for your help @kirankumarkolli.

@chrisparkeronline Just to clarify, when you pass "null" as the value of the partition key, it can be a valid value of your partition key. This is a different semantics than "missing" partition key from your document, in which case you need to pass Undefined.Value as Kiran mentioned above.
The exception that you are getting from ReadDocumentAsync API is expected if there is no such document. If you try running the same using the query approach you showed, you will get a "null"(and not an exception) for the retVal which means the same thing. It's a more graceful way to check for an existence of a document without throwing an exception and checking for 404 status code.
Please let me know if you have any further comments.


CIS Benchmark

Why do images for Hosted Agents not conform with CIS Benchmarks? Is there specific reason for this? I am trying to assess the risk here as this has been particularly called out as a security consideration.

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

ID: 61db3371-6395-88a2-fb78-09f98790ab1b
Version Independent ID: ef6f1bf7-02b8-9093-b84e-c9bde7d98e57
Content: Microsoft-hosted agents for Azure Pipelines - Azure Pipelines
Content Source: docs/pipelines/agents/hosted.md
Product: devops
Technology: devops-cicd-agents
GitHub Login: @steved0x
Microsoft Alias: sdanie

@peternield - It looks like you have a product question. To make sure it gets in front of the right people, please submit your issue here.
Also, Azure DevOps on Stack Overflow.


Updating selected prop doesn't re-render

Can't provide a code example right now but just want to check this is supported?

Yep. Can confirm.

Use #key to force re-render of the component
A quick example would be:
{#if showDatePicker}
<div class="datepicker-container-calendar" on:click={() => datePickerViewer()} on:keypress={() => datePickerViewer()} >
{#key dateSelected}
<Datepicker
	{...setting.properties}
	pickerRule='single'
	viewDate={setting.value || new Date()}
	bind:selected={dateSelected}
	bind:pickerDone={datePickerDone}
/>
{/key}
</div>
{/if}


feat: improve styling of homepage in small devices

I will resolve the merge conflicts tomorrow. Also, I will change the GPG Key, since I used no-reply email address.

Related Issue
Closes #1899
Description

Changes Suggested

Entire directories has been changed, so it is very tough to resolve these conflicts.

What do you suggest?

I could have done this, if it was in the same file.

create new PR & make sure to update your forked repo


Validation is only executed once in 02_mnist_train_loop.py example

If I read the script examples/flax/02_mnist_train_loop.py correctly, the test loop should be executed in total 10 times. However, after inserting a debug statement into the test_step method, I identified that the test loop is in reality only executed once (at the very beginning of the training loop).
I suspect that this buggy behavior is connected to some kind of faulty loading/cut-off of the validation dataset iterator:
The calling iterator did not fully read the dataset being cached. In order to avoid unexpected truncation of the dataset, the partially cached contents of the dataset  will be discarded. This can happen if you have an input pipeline similar to `dataset.cache().take(k).repeat()`. You should use `dataset.take(k).cache().repeat()` instead.

I would appreciate your help in fixing this wrong behaviour.

Fixed in 0.1.8


Added documentation for algebra trait implementing macros

Also found and fixed few problems in two operator ones while creating the documentation.

Just pinging so this doesn't get abandoned for eternity.
Also could those examples be improved somehow? It was hard to come up concise examples...

Thanks ! Sorry I forgot about that.
I'm not sure to improve the examples either as they are already quite minimal…

Wonder if you could use deriving for this now!


Quick-Add subtaks

Hi,
We are using Kanboard succesfully in our company for about 5 months now, with aprox. 30 users.
When a sub-task is added to a task there will be an input field for quick adding other sub-tasks on the task summary, neat!
But a request that I get a lot is that they would like that when adding the sub-task they can assign a user right away, is that possible?

@dvr123 : Recognize the request - we're basically same number of users and implemented at about the same time as you describe.
Our "workaround" for this:

Add all the sub-tasks
Then open them as separate tabs by clicking the scroll-button on the mouse
Visit each tab and assign user, estimate time
It's not perfect, but it's more efficient than editing them one at a time.

Basically, you would like to have the assignee dropdown and the estimate field on the form under the subtasks list, right?

Yes that's right, that would improve the workflow dramatically for us.

It's now part of the dev branch.


ProfileCard: Add ProfileCardTheme selection section

What we need to do
Implement theme selection UI bellow.

https://www.figma.com/design/XUk8WMbKCeIdWD5cz9P9JC/DroidKaigi-2024-App-UI?node-id=55588-8998&t=RETzg5ZvPOOUBJBF-4

duplicate this issue
https://github.com/DroidKaigi/conference-app-2024/issues/112


Update control-access-based-on-network-location.md

We have found a issue where users using Office.com was able to bypass this policy. Hence we have added the below line to make customers aware to configure the policy correctly for Office.com.
"For protecting access to SharePoint via Office.com portal we recommend using Azure Active Directory conditional access policy for SharePoint app and configure the trusted IP range there. "

@JohanFreelancer9 Copy editing is needed for this PR. Thanks.

@kaarins PR has been copyedited and is ready for final review, could you please check and merge? Thanks!


[REFACTOR]: refactor function smee in index.js to make it more dynamic Signed-off-by: Adeyinka Oresanya<EMAIL_ADDRESS>

I refactored the function smee in index.js to make it more dynamic

I am closing this because its implementations are duplicated in https://github.com/badging/badging-bot/pull/60


Add an official way to put a website under maintenance mode

It depends. I think there're many good ways to do it, but add at least one example to the cookbooks section would be nice.

:-1: for this, it's really simple to do and it depends on each platform and app. Create a listener that uses a boolean maintenance parameter in the config and make this listener redirects to a specific route everytime (or simply render a template, as you wish).

I do this with nginx

:-1:  Too specific

@Pierstoval Don't forget to clear the cache when this parameter value changed in config.

@bocharsky-bw Obviously ;) But one can also manage this in the database and update the option in a small backend... But as said, it's too specific, and every method depends on each developer :)

It was explicitly not added in Symfony 2 as such a mechanism must be managed outside of the framework and the PHP code itself.

@fabpot I think the idea of a cookbook entry is good, I will invite @weaverryan to check this.


Profile ID in file names

Firstly, thanks for this great tool 🙂
I have a question: would it be possible to save the profile ID in file names?
Example:

I'm looking for photos matching the hashtag #cat
These are the profiles/users with photos/videos matching that hashtag:

@cute_cats
@catsofjapan
@catmania

These should be the downloaded files, saved as:

cute_cats__19228803_1407161046030847_6306852925180215296_n.jpg
catsofjapan__19379969_846726525479173_7954720100131536896_n.jpg
catmania__19380026_243312376155522_7198970782779703296_n.jpg
catmania__19379237_814670965367269_3888905887946899456_n.mp4

This will require an additional request per post, so I don't think it should be included by default.y. If we're going to alter the naming convention, is it possible that we would like to build in other metadata like post time into the repo?

This issue can be closed because of the template flag allows you to customize the file name.


[BUG] Spring SDK tries to use all User Assigned Managed Identities to connect to App Config

Describe the bug
Scenario: I have three different User Assigned Managed Identities assigned to an App.
Identity 1: Has App Config Reader Role and KeyVault Secret Access policy (userassignedmanagedidentity111111)
Identity 2: Has Service Bub Listen Role (userassignedmanagedidentity2222)
Identity 3: Has Cosmos DB Write Role (userassignedmanagedidentity3333)
I have all the three identities assigned to a Spring App whose deployment is failing. The deployment fails due to application during boot time trying to use all the identity assigned to the app.
bootstrap.properties Config Below:
spring.cloud.azure.appconfiguration.stores[0].endpoint=${APP_CONFIG_ENDPOINT_ONLY}
Exception or Stack Trace
Status code 403, "{"error":{"code":"Forbidden","message":"The user, group or application 'appid=$$$$userassignedmanagedidentity22222$$$$$$$;oid=oid1;iss=https://sts.windows.net/app1/' does not have secrets get permission on key vault 'keyvault1;location=centralus'. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125287","innererror":{"code":"AccessDenied"}}}"
Status code 403, "{"error":{"code":"Forbidden","message":"The user, group or application 'appid=$$$$userassignedmanagedidentity33333$$$$$$$;oid=oid1;iss=https://sts.windows.net/app1/' does not have secrets get permission on key vault 'keyvault1;location=centralus'. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125287","innererror":{"code":"AccessDenied"}}}"
To Reproduce
Steps to reproduce the behavior:
Code Snippet
public class AzureCredentials implements KeyVaultCredentialProvider, AppConfigurationCredentialProvider {
private static final Logger LOGGER = LoggerFactory.getLogger(AzureCredentials.class);

@Override
public TokenCredential getKeyVaultCredential(String uri) {
	return getCredential();
}

private TokenCredential getCredential() {
	ManagedIdentityCredential managedIdentityCredential = new ManagedIdentityCredentialBuilder()
			.clientId("userassignedmanagedidentity111111")
			.build();

	AzureCliCredential cliCredential = new AzureCliCredentialBuilder().build();

	ChainedTokenCredential credentialChain = new ChainedTokenCredentialBuilder().addLast(managedIdentityCredential)
			.addLast(cliCredential).build();

	LOGGER.info("Boot - Token Credentials");
	return credentialChain;

}

@Override
public TokenCredential getAppConfigCredential(String uri) {
	return getCredential();
}

Expected behavior
The SDK should use the userassignedmanagedidentity1111 to connect to AppConfigKeyVault and shouldn't try to use all the identities assigned to app
Screenshots
NA
Setup (please complete the following information):

OS: [e.g. iOS]
IDE: [e.g. IntelliJ]
Library/Libraries:
implementation "org.springframework.boot:spring-boot-starter-security"
implementation "org.springframework.boot:spring-boot-starter-oauth2-resource-server"
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-parent', version: '2.7.3'
implementation group: 'com.azure', name: 'azure-identity', version: '1.5.5'
implementation group: 'com.azure.spring', name: 'spring-cloud-azure-starter-servicebus-jms', version: '4.3.0'
implementation group: 'org.springframework.cloud', name: 'spring-cloud-context', version: '3.1.3'
implementation ('org.springframework.boot:spring-boot-starter-web-services')
implementation 'org.springframework.boot:spring-boot-starter'
implementation group: 'com.azure.spring', name: 'azure-spring-cloud-appconfiguration-config', version: '2.8.0'
Java version: 11
App Server/Environment: Spring Apps
Frameworks: Spring Boot

Hi @mrm9084, please take a look at this.

@g2vinay this looks like an identity issue. I just pass it to key vault.

@pratheepjr, the kv operations require to assign access policy. Did you assign the access policy?

https://learn.microsoft.com/azure/key-vault/general/security-features#key-vault-authentication-options
https://learn.microsoft.com/azure/key-vault/general/assign-access-policy?tabs=azure-portal

@mrm9084
From Identity side, the SDK only targets the client-id supplied via the input parameter, there is no chain of requests that Identity SDK triggers for Managed Identity.
This appears to be more of application configuration issue, as the application during boot time is targeting other user assigned identities.
Getting more details around application configuration/setup will be helpful.
Looping in @billwert as well.

@g2vinay Is it possible that spring-cloud-context is trying to use bootstrap.properties and since there is no client-id it goes through the entire list of identities assigned to it?
implementation group: 'org.springframework.cloud', name: 'spring-cloud-context', version: '3.1.3'

More logs:
The below is first thrown by c.a.c.i.RxDocumentClientImpl then by c.a.c.i.GlobalEndpointManager
2022-10-05 01:05:45.832 ERROR 1 --- [or-http-epoll-4] c.a.c.i.GlobalEndpointManager            : startRefreshLocationTimerAsync() - Unable to refresh database account from any location. Exception: {"ClassName":"CosmosException","userAgent":"azsdk-java-cosmos/4.31.0 Linux/5.4.0-1089-azure JRE/<IP_ADDRESS>","statusCode":403,"resourceAddress":"https://cosmosendpoint:443/","error":"{"code":"Forbidden","message":"Request blocked by Auth cosmosendpoint : Request is blocked because principal [userassignedmanagedidentity2222222] does not have required RBAC permissions to perform action [Microsoft.DocumentDB/databaseAccounts/readMetadata] on resource [/]. Learn more: https://aka.ms/cosmos-native-rbac.\r\nActivityId: 3a1-4cf4-b910-f147a09a0735, Microsoft.Azure.Documents.Common/2.14.0, StatusCode: Forbidden","additionalErrorInfo":null}","innerErrorMessage":"Request blocked by Auth cosmosendpoint : Request is blocked because principal [userassignedmanagedidentity2222222] does not have required RBAC permissions to perform action [Microsoft.DocumentDB/databaseAccounts/readMetadata] on resource [/]. Learn more: https://aka.ms/cosmos-native-rbac.\r\nActivityId: 3a1-4cf4-b910-f147a09a0735, Microsoft.Azure.Documents.Common/2.14.0, StatusCode: Forbidden","causeInfo":null,"responseHeaders":"{content-length=513, Content-Location=https://cosmosendpoint.documents.azure.com/, Content-Type=application/json, Date=Wed, 05 Oct 2022 01:05:44 GMT, Server=Microsoft-HTTPAPI/2.0, Strict-Transport-Security=max-age=31536000, x-ms-activity-id=3a1-4cf4-b910-f147a09a0735, x-ms-gatewayversion=version=2.14.0, x-ms-substatus=5301}","requestHeaders":"[Accept=application/json, x-ms-date=Wed, 05 Oct 2022 01:05:44 GMT]","cosmosDiagnostics":{"userAgent":"azsdk-java-cosmos/4.31.0 Linux/5.4.0-1089-azure JRE/<IP_ADDRESS>","activityId":"3a1-4cf4-b910-f147a09a0735","requestLatencyInMs":418,"requestStartTimeUTC":"2022-10-05T01:05:45.029996Z","requestEndTimeUTC":"2022-10-05T01:05:45.448095Z","responseStatisticsList":[],"supplementalResponseStatisticsList":[],"addressResolutionStatistics":{},"regionsContacted":[],"retryContext":{"statusAndSubStatusCodes":null,"retryLatency":0,"retryCount":0},"metadataDiagnosticsContext":{"metadataDiagnosticList":null},"serializationDiagnosticsContext":{"serializationDiagnosticsList":null},"gatewayStatistics":{"sessionToken":null,"operationType":"Read","resourceType":"DatabaseAccount","statusCode":403,"subStatusCode":5301,"requestCharge":0.0,"requestTimeline":[{"eventName":"connectionCreated","startTimeUTC":"2022-10-05T01:05:45.037019Z","durationInMicroSec":110719},{"eventName":"connectionConfigured","startTimeUTC":"2022-10-05T01:05:45.147738Z","durationInMicroSec":80189},{"eventName":"requestSent","startTimeUTC":"2022-10-05T01:05:45.227927Z","durationInMicroSec":13131},{"eventName":"transitTime","startTimeUTC":"2022-10-05T01:05:45.241058Z","durationInMicroSec":91771},{"eventName":"received","startTimeUTC":"2022-10-05T01:05:45.332829Z","durationInMicroSec":17768}],"partitionKeyRangeId":null,"exceptionMessage":"Request blocked by Auth cosmosdbendpoint : Request is blocked because principal [userassignedmanagedidentity2222222] does not have required RBAC permissions to perform action [Microsoft.DocumentDB/databaseAccounts/readMetadata] on resource [/]. Learn more: https://aka.ms/cosmos-native-rbac.\r\nActivityId: 3a1-4cf4-b910-f147a09a0735, Microsoft.Azure.Documents.Common/2.14.0, StatusCode: Forbidden","exceptionResponseHeaders":"{content-length=513, Content-Location=https://cosmosendpoint.documents.azure.com/, Content-Type=application/json, Date=Wed, 05 Oct 2022 01:05:44 GMT, Server=Microsoft-HTTPAPI/2.0, Strict-Transport-Security=max-age=31536000, x-ms-activity-id=3a1-4cf4-b910-f147a09a0735, x-ms-gatewayversion=version=2.14.0, x-ms-substatus=5301}"},"systemInformation":{"usedMemory":"116429 KB","availableMemory":"390387 KB","systemCpuLoad":"(2022-10-05T01:05:44.539057Z 99.9%)","availableProcessors":1},"clientCfgs":{"id":1,"machineId":"uuid:1a0-4955-a74e-a8480bb51171","connectionMode":"GATEWAY","numberOfClients":1,"connCfg":{"rntbd":null,"gw":"(cps:1000, nrto:PT1M, icto:PT1M, p:false)","other":"(ed: true, cs: false)"},"consistencyCfg":"(consistency: Eventual, mm: true, prgns: [])"}}}
CosmosClientBuilder Uses Below:
    DefaultAzureCredential defaultCredential = new DefaultAzureCredentialBuilder()
            .managedIdentityClientId(appconfig.getuserassignedmanagedidentity1111111())
            .build();

    CosmosClientBuilder cosmosClientBuilder = new CosmosClientBuilder()
            .endpoint(appconfig.getUri())
            .gatewayMode()
            .credential(defaultCredential)
            .consistencyLevel(ConsistencyLevel.EVENTUAL)
            .contentResponseOnWriteEnabled(true);

@pratheepjr seems like the managed identity doesn't have permission to access the Cosmos database. Please follow this doc to add the RBAC role for accessing Cosmos https://microsoft.github.io/spring-cloud-azure/current/reference/html/index.html#authorize-access-with-azure-active-directory.


Update WMAgent and WMCore python requirements

Fixes #9824
Status
ready
Description
Synchronizing our list of requirements with the latest updates applied to the python spec files, such as:
https://github.com/cms-sw/cmsdist/pull/6003
https://github.com/cms-sw/cmsdist/pull/6032
https://github.com/cms-sw/cmsdist/pull/6043
https://github.com/cms-sw/cmsdist/pull/6056
Is it backward compatible (if not, which system it affects?)
yes
Related PRs
already provided above
External dependencies / deployment changes
none, WMCore 1.3.7.pre2 should have all these changes in.

Erik, apologies for asking this question again. I understand the requirements.txt file is supposed to have all possible python dependencies that the WMCore has, right? For those only concerning WMAgent, we should then replicate them to the requirements.wmagent.txt as well. Can you confirm it?

You are correct.


Android Background Location

Hello,
This plugin is great but there's one issue with Android. The location stops streaming in the background because the AlarmManager is not implemented.
I've implemented a workaround to fix this, but it would be great if it worked out of the box.
Thank you.

Update fl_location to the latest version.
Use the flutter_foreground_task plugin.


Support for sourceset modules configuration in idea plugin

This is related to https://github.com/gradle/gradle/issues/9681
This issue is relevant again because there is no option to disable "Project Structure -> Add -> import module -> select file -> Gradle -> uncheck create separate modules per source set" in IDEA anymore.
Expected Behavior
I want to be able to modify the main & test modules like below:
example:
idea {
    modules {
        "main" {
            ...
        }
        "test" {
            ...
        }
    }
}

Current Behavior
But currently I can only modify the empty module which is used to aggregate main + test.
idea {
    module {
        ...
    }
}

This issue needs a decision from the team responsible for that area. They have been informed. Response time may vary.

Can you achieve the desired configuration by using and configuring the idea-ext plugin? https://github.com/JetBrains/gradle-idea-ext-plugin/wiki#ideArtifacts

@donat No. In my case I wanted to modify module's dependencies, I do not see such API in that plugin.


Open in external browser not working on Linux

Possibly same root cause as #126
Steps to reproduce

Set "livePreview.openPreviewTarget": "External Browser"
Open an html file and try opening the preview

Bug
Nothing happens besides the task terminal showing up. On MacOS, I see this launching the browser
VS Code version: Code - Insiders 1.59.0-insider (c3b4df8f5d9c14aa4cfddb587231d0d52e72e5a2, 2021-07-27T15:07:54.419Z)
OS version: Linux x64 4.15.0-142-generic snap
Restricted Mode: No

Does this still happen? I tried this on Linux x64 5.15.0-41-generic today on insiders and it seemed to work.


Malformed FluxTraining compat requirement in Project.toml

Hi,
I would like to report a possible typo in the version number for FluxTraining as listed in the Project.toml.
Should the version be listed as "0.2.0", not "0.2"?
Thanks for your attention.
-Charles

Per https://pkgdocs.julialang.org/v1/compatibility/, they are equivalent and thus the extra 0 is redundant :)

I get the following error when run Pkg.add().
julia> Pkg.add(url="https://github.com/FluxML/FastAI.jl")
Updating git-repo https://github.com/FluxML/FastAI.jl
ERROR: Could not parse project: TOML Parser error:
/tmp/jl_BdmL3c/Project.toml:52:14 error: key already has a value
FluxTraining = "0.2"
^
Stacktrace:
[1] pkgerror(::String, ::Vararg{String, N} where N)
@ Pkg.Types /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Pkg/src/Types.jl:55
[2] read_project(f_or_io::String)
@ Pkg.Types /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Pkg/src/project.jl:134
[3] read_package(path::String)
@ Pkg.Types /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Pkg/src/Types.jl:434
[4] resolve_projectfile!(ctx::Pkg.Types.Context, pkg::Pkg.Types.PackageSpec, project_path::String)
@ Pkg.Types /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Pkg/src/Types.jl:701
[5] (::Pkg.Types.var"#44#45"{Pkg.Types.Context, Pkg.Types.PackageSpec, String})(repo::LibGit2.GitRepo)
@ Pkg.Types /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Pkg/src/Types.jl:671
[6] with(f::Pkg.Types.var"#44#45"{Pkg.Types.Context, Pkg.Types.PackageSpec, String}, obj::LibGit2.GitRepo)
@ LibGit2 /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/LibGit2/src/types.jl:1150
[7] handle_repo_add!(ctx::Pkg.Types.Context, pkg::Pkg.Types.PackageSpec)
@ Pkg.Types /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Pkg/src/Types.jl:623
[8] handle_repos_add!(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec})
@ Pkg.Types /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Pkg/src/Types.jl:690
[9] add(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}; preserve::Pkg.Types.PreserveLevel, platform::Base.BinaryPlatforms.Platform, kwargs::Base.Iterators.Pairs{Symbol, Base.TTY, Tuple{Symbol}, NamedTuple{(:io,), Tuple{Base.TTY}}})
@ Pkg.API /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:183
[10] add(pkgs::Vector{Pkg.Types.PackageSpec}; io::Base.TTY, kwargs::Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
@ Pkg.API /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:79
[11] add(pkgs::Vector{Pkg.Types.PackageSpec})
@ Pkg.API /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:77
[12] #add#22
@ /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:74 [inlined]
[13] add
@ /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:74 [inlined]
[14] add(; name::Nothing, uuid::Nothing, version::Nothing, url::String, rev::Nothing, path::Nothing, mode::Pkg.Types.PackageMode, subdir::Nothing, kwargs::Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
@ Pkg.API /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:97
[15] top-level scope
@ REPL[3]:1

Ah, that looks to be because of https://github.com/FluxML/FastAI.jl/blob/master/Project.toml#L50-L52, caused by https://github.com/FluxML/FastAI.jl/pull/113 which was merged only 2 hours ago (bad timing)! @lorenzoh it should be sufficient to nix the first compat bound, right?

Yeah, was unfortunately introduced by merging some old CompatHelper PRs. Should be fixed now 👍


Intermediate Chain Certificate for Guest Portal

Hey great work on the script.
I'm however having an issue where some devices, mostly Samsungs and Apple devices do not trust the certificate on the guest portal.
SSL Checker indicates this warning "The certificate is not trusted in all web browsers. You may need to install an Intermediate/chain certificate to link it to a trusted root certificate. Learn more about this error. The fastest way to fix this problem is to contact your SSL provider." when I check the guest portal url.
Any help with this would be highly apricated.

Looking at it. Now maybe the right time to get once more a look at the multiple stores the UDM has (for Console, Guest / WiFiMan, and RADIUS).
@NDULZ, previously it was an issue to run WiFiMan with full chain, but I need to doublecheck that (and that's long ago so my memory my fail me here).

I'm however having an issue where some devices, mostly Samsungs and Apple devices do not trust the certificate on the guest portal.

Hi @NDULZ, can you please provide some information:
What UniFi device do you use?
What firmware version do you run? V1.x, V2.x or V3.x
Which specific Apple devices produce this error?
I have tried with Windows, (newer) Apple iOS and macOS devices and get no errors.
Having just the server certificate (no chain, i.e. no intermediate or root certificate) in the guest portal is intended behavior - right now, at least.

@alxwolf Yup in your notes you indicate that the chain cert is not installed for WiFiMan to work. I think having an option in ubios-cert.env would be prudent and allow the user to decide what they would like to use.
I am using a UDM and UDM Pro have the same issue on both.
Both are running firmware v1.12.33
The issue arises on Samsung Galaxy A71, S9 and Note 9 among other android devices, Macbook Air 2020 and 2015, iPhone 13, X and 8.
I hope this helps.

mmh. it's not that simple... I've been testing now for a sound 3 hours and... it does not work with a full chain. So no chance for giving the option...

@NDULZ I created a branch for this, please try this and let me know if this works for your environment.
For me, it does... but: it breaks WiFi-Man.
I added this to ubios-vert.envto spare you from repeating all configuration.
# you want to spare users from "intermediate certificate missing" errors?
# this will break WiFiman iOS app
# uncomment next line, set to 'yes' to provide the full chain to Captive Portal
CAPTIVE_FULLCHAIN='yes'

I think we can agree that it's just plain stupid by UI to let their users run through hoops.

The chain is all good now but now I seem to be encountering an error on macOS when redirecting to my promotional URL. For some wired reason it's using the UDM's self signed SSL cert when redirecting.

So I guess your guest portal config looks something like this:

Yeah, UI is a mess about certs...
You probably get the "UI" certificate, issued by "devint" (they probably skipped an "a" in that).
I searched far and wide on the UDM and have not found, where this thing resides and when it gets regenerated (something seems to trigger this, but seems like not a reboot of the hardware or just restarting the unifi-os).
One thing you can try (don't know how comfortable you are SSH-ing into UDM).
You are throwing an additional curved ball by using the redirection (which I think is totally fine for such equipment...).
you could check in /mnt/data/system/ssl/private/redirector what certificate you have there. Please also check the file creation date and time, does that ring a bell (like last reboot or date of installation??)
openssl x509 -text -noout -in server.crt will tell you.
What happens if you make a backup of this key and cert and replace it with your Let's Encrypt cert?

Yup it's exactly like that.

SSH-ed into the UDM you were right on the location and it seems to have been created when I first powered up the UDM on the day  I purchase it.
Any thoughts on which cert and key I should use amongst the ones in .../unifi-core/config?
I don't get how UI do so many things right, great in fact but the vitals are just all over the place.

Checked the UDM Pro as and that seems to have been created on Dec 10 2022 which I think is when I did a factory reset.

Thanks, mine dates to when I did last firmware upgrade (yesterday to .37), which makes sense.
you could try
cp /mnt/data/unifi-os/unifi-core/config/unifi-core.crt /mnt/data/system/ssl/private/redirector/server.crt

cp /mnt/data/unifi-os/unifi-core/config/unifi-core.key /mnt/data/system/ssl/private/redirector/server.key

if certs get shot, one can delete both server.* files and they get recreated during (hardware) reboot.
But I'm not sure this will help. UI is totally not helpful on those topics and everything is "for science"...

Found one more thing: maybe this can provide a solution?
We typically disable HTTPS redirection and add the IP address the public FQDN points to to the pre-auth access list with the /32 suffix. Works like a charm, even on UDM PROs.

Found one more thing: maybe this can provide a solution?
We typically disable HTTPS redirection and add the IP address the public FQDN points to to the pre-auth access list with the /32 suffix. Works like a charm, even on UDM PROs.

This seems to have worked. Coping the certs was a bust.