ERR! missing script emulator

Hi,
Can anybody please help me here in running the emulator, record and play? I tried the exact step given for instalation. Wen to sample folder did "npm install" then "npm run emulator" but it is giving me error"npm ERR! missing script: emulator"
Regards

maybe you are in the wrong folder - what are the installation steps you followed ?

?

Steps followed: download testmybot, opended command print , navigated to testmybot folder, did mom install then tried with "npm run emulator" in the root folder as well as in emulator folder

you have to switch directory to one of the samples - there are several samples available, all of them showing another kind of chatbot to test - some require docker installation, some require other pre-installed software.
A good sample to try it out is the IBM Watson Sample (https://github.com/codeforequity-at/testmybot/blob/master/samples/watson), as it doesn't depend on other software.

succeed ?


Revert "fix(scripts/artifacts): workaround tikv amd64 building hang problem"

Reverts PingCAP-QE/ci#3024

/approve


Spelling

I think both spellings are acceptable; e.g. Math World is fine with "nonnegative":
http://mathworld.wolfram.com/Nonnegative.html

I don't think we should modify included 3rd party libs.

Yup, best not to change third-party libs for non-critical issues. Closing, thanks all!


FileNotFoundError: [Errno 2] No such file or directory: 'SSD-master/outputs/vgg_ssd300_voc0712/log.txt'

Hi,
I met a problem during the testing that may need your help. When I run the test.py, it shows that I miss a log.txt file. However, I am confused about it, is it generated by training steps? Thank you.

The same problem. Have you solved the problem?


Ide: Fix compilation error and warnings related to MSVC 22

TheIDE doesn't compile with the latest stable MSVC. This PR address this problem. Also, I decieded to change instant setup for MSVC to configure llvm dir by default. With that change MSVC should compile TheIDE out of the box, without the need for manual configuration.

Thanks.


Configure Windows for Ember-Cli Performace

The message text - "Configure Windows for Ember-Cli Performace" contains incorrect spelling of "Performance".

👍 Thanks!


Runelite Settings Issue

Please check if your issue is not a duplicate by searching existing issues
Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:
Happens as soon as I launch the game.
Expected behavior
Be able to cycle through possible pluggins.
Screenshots
Video attached.
Environment (please complete the following information):

OS: Windows 10
RuneLite version: <IP_ADDRESS>
Launcher version: ?????

Additional context
Add any other context about the problem here, e.g. logs. Your client logs can usually be found in
C:\Users\<your_user_name>\.runelite\logs on Windows and ~/.runelite/logs on Linux and macOS.
https://user-images.githubusercontent.com/81549081/112790298-ac5e0f80-9024-11eb-8f7d-4a8a06c7d85f.mov

This can be solved by following the directions on this wiki page: https://github.com/runelite/runelite/wiki/Disable-Hardware-Acceleration
In the future, we recommend reaching out in the #support channel of our Discord server at https://runelite.net/discord

@Nightfirecat I've already tried doing this. The problem is still occuring?


libprotobuf error causes crash in the middle of training

I'm running into a strange error. During training (after several thousand iterations), my training script crashes with the error
libprotobuf FATAL google/protobuf/wire_format.cc:830] CHECK failed: (output->ByteCount()) == (expected_endpoint): : Protocol message serialized to a size different from what was originally expected.  Perhaps it was modified by another thread during serialization?
terminate called after throwing an instance of 'google::protobuf::FatalException'
  what():  CHECK failed: (output->ByteCount()) == (expected_endpoint): : Protocol message serialized to a size different from what was originally expected.  Perhaps it was modified by another thread during serialization?
Command terminated by signal 6

It doesn't look like I'm running out of memory on my gpu. Could this be a result of writing too much information to tensorboard?

I met this too. It doensn't always happen for me. But it does happen occasionally. Currently I just ignore this.  But sure it's good to investigate it sometime

It's happening to me ~ every 10k iterations after 130k iterations. Before this, it only happened every 70k iterations or so. Do you have any idea what may be causing it. I'm also getting a bad_alloc error, so something funny is happening with the memory.

For now, just replace https://github.com/ruotianluo/pytorch-faster-rcnn/blob/master/lib/model/train_val.py#L252
with
if False:

Yeah, I just commented it out. I'll post if I discover a more permanent solution.


Turn device screen off after everything has been set up

Sometimes it can take quite a while for everything to get set up and the screen to appear.
Note:
Intentionally kept the double if construct so it matches the previous blocks.

Intentionally kept the double if construct so it matches the previous blocks.

I merged the conditions in a single if, rebased on dev, and adapted the commit message to respect the 50-72 rule.
Please check before I merge: pr3902

Please check before I merge: pr3902

Checked and it works fine - as intended.
(Under some special conditions there is sometimes still quite a gap between when the device screen is turned off and the scrcpy screen appears, but I suspect it would be too complicated to turn off the device screen even later.
The gap is much shorter with this fix, though, so time to let got of some perfectionism...)

Oh, and thanks for the tweaks you did.

Under some special conditions there is sometimes still quite a gap between when the device screen is turned off and the scrcpy screen appears

Weird. How long? Can you reproduce a starting delay without turning the screen off? With another encoder (see scrcpy --list-encoders)? With another device? With another computer?

Sometimes it is even quite a bit longer, but that is probably macOS busy with something else.
Here is a run without the OpenGL core profile patch and with Safari open with a lot of windows and tabs:
./run x --verbosity=verbose --render-driver=opengl -S \
  --video-codec=h264 --video-encoder='OMX.qcom.video.encoder.avc' \
  2>&1 |ts -i "%.s" |ts -s "%.s"

0.001281 0.000834 scrcpy 2.0 <https://github.com/Genymobile/scrcpy>
0.001873 0.000518 DEBUG: ADB device found:
0.001911 0.000035 DEBUG:     -->   (usb)  BH901SGS9E                      device  G8441
0.001941 0.000025 DEBUG: Device serial: BH901SGS9E
0.001967 0.000023 DEBUG: Using SCRCPY_SERVER_PATH: x/server/scrcpy-server
0.024232 0.022807 x/server/scrcpy-server: 1 file pushed, 0 skipped. 31.6 MB/s (52576 bytes in 0.002s)
0.364510 0.340248 [server] INFO: Device: Sony G8441 (Android 9)
0.376524 0.012041 [server] DEBUG: Creating encoder by name: 'OMX.qcom.video.encoder.avc'
0.395209 0.018649 [server] WARN: Audio disabled: it is not supported before Android 11
0.395369 0.000089 [server] DEBUG: Audio encoder stopped
0.405912 0.010657 DEBUG: Server connected
0.405960 0.000060 DEBUG: Starting controller thread
0.405986 0.000027 DEBUG: Starting receiver thread
0.406009 0.000020 VERBOSE: input: power mode off
0.612237 0.206218 [server] INFO: Device screen turned off
5.730884 5.108450 INFO: Renderer: opengl
        [^^^ This is the long delay while setting up OpenGL]
5.797064 0.008457 INFO: OpenGL version: 2.1 NVIDIA-14.0.32 3<IP_ADDRESS>.10.143
5.797111 0.000164 WARN: Trilinear filtering disabled (OpenGL 3.0+ or ES 2.0+ required
5.797261 0.000167 DEBUG: Using SCRCPY_ICON_PATH: app/data/icon.png
5.797298 0.000223 DEBUG: Demuxer 'video': starting thread
5.797323 0.000038 DEBUG: Demuxer 'audio': starting thread
5.797345 0.000069 WARN: Demuxer 'audio': stream explicitly disabled by the device
5.797367 0.000051 INFO: Texture: 720x1280

12.064831 6.334931 DEBUG: User requested to quit
12.064925 0.000082 DEBUG: quit...
12.066849 0.001987 DEBUG: Demuxer 'video': end of frames
12.066909 0.000050 DEBUG: Receiver stopped
12.078015 0.011104 [server] DEBUG: Controller stopped
13.067095 0.989044 WARN: Killing the server...
13.067806 0.000744 DEBUG: Server disconnected
13.067904 0.000064 DEBUG: Server terminated

Anyway, nothing to worry about. I don't see the long delay as a scrcpy issue.

And without --render-driver=opengl?

And without --render-driver=opengl?

Good point.
Similar delays.
With lots of windows and tabs in Safari
./run x --verbosity=verbose -S \
  --video-codec=h264 --video-encoder='OMX.qcom.video.encoder.avc' \
  2>&1 |ts -i "%.s" |ts -s "%.s"

0.002456 0.002025 scrcpy 2.0 <https://github.com/Genymobile/scrcpy>
0.003342 0.000415 DEBUG: ADB device found:
0.003376 0.000039 DEBUG:     -->   (usb)  BH901SGS9E                      device  G8441
0.003399 0.000027 DEBUG: Device serial: BH901SGS9E
0.003422 0.000026 DEBUG: Using SCRCPY_SERVER_PATH: x/server/scrcpy-server
0.051011 0.048373 x/server/scrcpy-server: 1 file pushed, 0 skipped. 26.1 MB/s (52576 bytes in 0.002s)
1.058392 1.007360 [server] INFO: Device: Sony G8441 (Android 9)
1.074980 0.016635 [server] DEBUG: Creating encoder by name: 'OMX.qcom.video.encoder.avc'
1.083481 0.008496 [server] WARN: Audio disabled: it is not supported before Android 11
1.083523 0.000043 [server] DEBUG: Audio encoder stopped
1.166413 0.082820 DEBUG: Server connected
1.166496 0.000138 DEBUG: Starting controller thread
1.166555 0.000042 DEBUG: Starting receiver thread
6.195868 5.029260 INFO: Renderer: metal
        [^^^]
6.196058 0.000120 DEBUG: Trilinear filtering disabled (not an OpenGL renderer
6.196143 0.000036 DEBUG: Using SCRCPY_ICON_PATH: app/data/icon.png
6.306953 0.110712 DEBUG: Demuxer 'video': starting thread
6.320481 0.000079 DEBUG: Demuxer 'audio': starting thread
6.321911 0.000030 VERBOSE: input: power mode off
6.331767 0.011775 WARN: Demuxer 'audio': stream explicitly disabled by the device
6.520577 0.202020 [server] INFO: Device screen turned off
7.471523 0.912220 INFO: Texture: 720x1280

9.772552 2.339766 DEBUG: User requested to quit
9.772618 0.000078 DEBUG: quit...
9.773856 0.001174 DEBUG: Demuxer 'video': end of frames
9.773917 0.000117 DEBUG: Receiver stopped
9.783215 0.009319 [server] DEBUG: Controller stopped
10.778078 0.994817 WARN: Killing the server...
10.779054 0.001003 DEBUG: Server disconnected
10.779111 0.000071 DEBUG: Server terminated

With nothing going on
./run x --verbosity=verbose -S \
  --video-codec=h264 --video-encoder='OMX.qcom.video.encoder.avc' \
  2>&1 |ts -i "%.s" |ts -s "%.s"

0.006046 0.005661 scrcpy 2.0 <https://github.com/Genymobile/scrcpy>
0.006576 0.000350 DEBUG: ADB device found:
0.006610 0.000035 DEBUG:     -->   (usb)  BH901SGS9E                      device  G8441
0.006636 0.000022 DEBUG: Device serial: BH901SGS9E
0.006660 0.000021 DEBUG: Using SCRCPY_SERVER_PATH: x/server/scrcpy-server
0.035490 0.029289 x/server/scrcpy-server: 1 file pushed, 0 skipped. 131.8 MB/s (52576 bytes in 0.000s)
0.360263 0.324766 [server] INFO: Device: Sony G8441 (Android 9)
0.377530 0.017270 [server] DEBUG: Creating encoder by name: 'OMX.qcom.video.encoder.avc'
0.380638 0.003086 [server] WARN: Audio disabled: it is not supported before Android 11
0.380726 0.000101 [server] DEBUG: Audio encoder stopped
0.386727 0.006057 DEBUG: Server connected
0.386767 0.000050 DEBUG: Starting controller thread
0.386784 0.000023 DEBUG: Starting receiver thread
1.209370 0.822518 INFO: Renderer: metal
        [^^^]
1.209419 0.000085 DEBUG: Trilinear filtering disabled (not an OpenGL renderer
1.209440 0.000034 DEBUG: Using SCRCPY_ICON_PATH: app/data/icon.png
1.221447 0.011936 DEBUG: Demuxer 'video': starting thread
1.221522 0.000111 DEBUG: Demuxer 'audio': starting thread
1.221539 0.000038 VERBOSE: input: power mode off
1.221558 0.000021 WARN: Demuxer 'audio': stream explicitly disabled by the device
1.263713 0.042146 INFO: Texture: 720x1280
1.436921 0.173181 [server] INFO: Device screen turned off

2.419327 0.982421 DEBUG: User requested to quit
2.419376 0.000055 DEBUG: quit...
2.419738 0.000383 DEBUG: Demuxer 'video': end of frames
2.419784 0.000041 DEBUG: Receiver stopped
2.428461 0.008679 [server] DEBUG: Controller stopped
2.589124 0.160600 [server] DEBUG: Screen streaming stopped
2.589210 0.000089 [server] DEBUG: Device message sender stopped
2.867756 0.278565 DEBUG: Server disconnected
2.867837 0.000092 DEBUG: Server terminated

macOS seems to be quite tricky to get to behave when setting up
OpenGL/Metal.
I have now tried some examples both from SDL and GLFW, and the setting
up and removal of the OpenGL context makes the whole system stagger.
Even more during teardown than setup actually. For example, if audio
is playing, it stutters.
So this behaviour is not specific to scrcpy.
So far, the only program I have found that behaves well is mpv.
Just for comparison - and maybe inspiration - here is an example of
mpv playing the first half second of a video (with lots of windows
and tabs in Safari):
./build/mpv --end=0.5 --keep-open=no test.mp4 --msg-level=libmpv_render=v,vo=v \
  |ts -i "%.s" |ts -s "%.s" |tee timing

0.099105 0.097076 [libmpv_render] GL_VERSION='4.1 INTEL-14.7.28'
[Here the OpenGL context is already set up]
0.099539 0.000311 [libmpv_render] Detected desktop OpenGL 4.1.
0.099560 0.000033 [libmpv_render] GL_VENDOR='Intel Inc.'
0.099572 0.000026 [libmpv_render] GL_RENDERER='Intel Iris Pro OpenGL Engine'
0.099584 0.000024 [libmpv_render] GL_SHADING_LANGUAGE_VERSION='4.10'
[...]
0.112607 0.012386  (+) Video --vid=1 (*) (h264 1920x1080 29.970fps)
0.119624 0.006995 [vo/libmpv] Assuming 59.990270 FPS for display sync.
[...]
0.282833 0.050312 [libmpv_render] Window size: 3840x2160 (Borders: l=0 t=0 r=0 b=0)
0.282912 0.000071 [libmpv_render] Video source: 1920x1080 (1:1)
0.282947 0.000016 [libmpv_render] Video display: (0, 0) 1920x1080 -> (0, 0) 3840x2160
[...]
0.746894 0.000089 Exiting... (End of file)

The whole setup, playing, and teardown is done in three quarters of a second.
Without any disruption to any other program running.
Hmm.

Possibly an issue with your graphics drivers, since apparently it does not happen for many users (nobody ever reported such a delay).

Maybe others don't have hundreds of tabs open in Safari... ;)
Anyway, it's not an issue with normal scrcpy use, since it's fine once it's running.
Only a bit of a nuisance when recompiling/restarting when "developing".

In any case, it can be merged (moreover if something fails to start, it's better if the device is not turned off for nothing): 798dfd240e53e964094c656f4e365f0cef33b943


[Couldn't set audio object type: Invalid config] Problem reconnecting to earbuds after they had been connected to another device

First, thanks for this little gem for minimalists. I've managed to connect my earbuds with Raspberry Pi using ALSA alone.
There is one problem that plagues me, though. I use the same earbuds with my laptop, and when I try to connect them back to RPi, things go wrong. They seem to connect, but in a few seconds they disconnect. Retries yield the same. Until I restart the bluetooth and bluealsa services. And restarting bluealsa after this situation happens takes about 1.5-2 minutes.
If I simply switch off the earbuds and then reconnect them to RPi, everything is Ok. The problem happens only if they were previously connected to my laptop. It's as if earbuds somehow keep information about last connected device, and this info interferes with the attempt to connect to RPi. By the way, connecting back to laptop after earbuds were connected to RPi happens without problems (on laptop I use pipewire and pipewire-pulse).
Here is more specific info from journalctl -u bluealsa:
Jan 01 00:29:15 raspi systemd[1]: Starting BlueALSA service...
Jan 01 00:29:15 raspi bluealsa[131225]: Couldn't create storage directory: No such file or directory
Jan 01 00:29:15 raspi systemd[1]: Started BlueALSA service.
Jan 01 00:29:48 raspi bluealsa[131225]: Couldn't save storage: Failed to create file “/usr/var/lib/bluealsa/B0:4A:6A:0F:87:94.93FCY1”: No such file or directory
Jan 01 00:30:40 raspi bluealsa[131225]: Couldn't save storage: Failed to create file “/usr/var/lib/bluealsa/B0:4A:6A:0F:87:94.NDL2X1”: No such file or directory
Jan 01 00:31:48 raspi bluealsa[131225]: Couldn't save storage: Failed to create file “/usr/var/lib/bluealsa/B0:4A:6A:0F:87:94.HK7IY1”: No such file or directory
Jan 01 00:36:06 raspi bluealsa[131225]: Couldn't set audio object type: Invalid config

The warning about being unable to create storage dir is always there when the service is started. The errors Failed to create file... also happen now and then, but they do not seem to affect connection to earbuds (and yes, there is no /usr/var/lib directory on my system; shouldn't it be /var/lib/... instead?). It is the last message that appears when I try to reconnect the buds from laptop:
Couldn't set audio object type: Invalid config

I had a rough time trying to find mentions of this message, including here in repo issues. And after this message the service takes minutes to restart. If that helps, I have Arch Linux ARM on my RPi, and bluealsa was installed from the package bluez-alsa-git from AUR. The earbuds are Samsung Galaxy Buds Live.
P.S. Don't pay attention to journal timestamps. When everyone goes crazy, I get bored and do things like troubleshooting bluealsa ;)

t is the last message that appears when I try to reconnect the buds from laptop

Clarification: this message appears not at the moment when earbuds connect to RPi, but at the moment when I try to play music after that.

And restarting bluealsa after this situation happens takes about 1.5-2 minutes.

It looks like a daedlock within bluealsa service. When it happens (you are not able to properly connect earbuds) do like this (as root, or use sudo):
gdb -p $(pgrep -x bluealsa) --ex 'thread apply all bt'

You can do the same thing (gather backtrace from all threads) if systemctl restart ... hangs. And post traces here.

and yes, there is no /usr/var/lib directory on my system; shouldn't it be /var/lib/... instead?

Yes, it should be /var/lib/..., maybe there is something wrong with Arch package... I will have to check that as well.

One more thing, try to build bluez-alsa from source with debug enabled ../configure --enable-debug. Maybe some debug log will help. Anyway, I'll try to reproduce your issue.

Yes, it should be /var/lib/..., maybe there is something wrong with Arch package...

This is an inconsistency between GNU coding standards (https://www.gnu.org/prep/standards/html_node/Directory-Variables.html) and systemd (https://www.freedesktop.org/software/systemd/man/systemd.exec.html#RuntimeDirectory=)
GNU does not use /var/lib at all in its standard installation directories, whereas systemd always uses it for system state directories. A workaround is to configure with --localstatedir=/var whenever using the included systemd unti files. I'm not sure what the BlueALSA configure script ca do to improve this.

This is an inconsistency between GNU coding standards

OK, so it seems that that fix should be on the Arch side.

Anyway, I'll try to reproduce your issue.

I've reproduced it on my side and indeed that's a deadlock in bluealsa code. I'll try to fix that deadlock. However, it will not resolve playback issue. It will simply fix bluealsa restart issue. In order to investigate playback issue I will need bluealsa debug logs, or at least the configuration blob which can be obtained with:
bluealsa-cli -v info /org/bluealsa/hci0/dev_B0_4A_6A_0F_87_94/a2dpsrc/sink

I've just added some extra text to the installation wiki page to explain the --localstatedir= requirement for systemd.

I have compiled bluealsa manually following instructions on your wiki (I used ../configure --enable-debug --enable-aac --enable-cli --enable-systemd). Now the error messages concerning wrong storage directories are gone. Still, the main problem and the error with Couldn't set audio object type: Invalid config remains.
Here are new debug logs. I put commets on releveant event:
  Jan 01 15:19:03 raspi systemd[1]: Starting BlueALSA service...
  Jan 01 15:19:03 raspi bluealsa[2935]: ../../src/main.c:590: Starting main dispatching loop
  Jan 01 15:19:03 raspi bluealsa[2935]: ../../src/main.c:114: Acquired D-Bus service name: org.bluealsa
  Jan 01 15:19:03 raspi bluealsa[2935]: ../../src/bluealsa-dbus.c:372: Registering D-Bus manager: /org/bluealsa
  Jan 01 15:19:03 raspi systemd[1]: Started BlueALSA service.
   Everything is Ok.
     Now I know what causes the issue with playback. The problem is with AAC codec configuration selection when the earbuds are connected for the second time (I do not know why, though). I will try to investigate this issues as well. I'm not sure when all fixes will be ready, because it might not be easy to fix them :D As a temporal workaround you can switch to SBC codec when using earbuds with RPi. You can use alsamixer -D bluealsa:EXT=on for that, or bluealsa-cli codec <PCM-path> SBC.

@Galicarnax I've pushed potential fix to the "test" branch: https://github.com/arkq/bluez-alsa/tree/test Could you test that branch whether it will for for you?

It does work, hooray! I even have now a shortcut on my laptop that launches a bash script to automatically toggle the earbuds between the laptop and the RPi :) Many thanks for the nice job!

OK, great :) But just to be sure, can you confirm that the earbuds are using AAC codec? If you've switched to SBC (as a workaround) the selection might be remembered by earbuds, so now they might connect using SBC codec by default. You can check that in debug logs, or by using bluealsa-cli codec <PCM-path> - it will print currently selected codec.

I didn't tried the workaround yet. And I am not sure what I am supposed to use for <PCM-path> in bluealsa-cli codec ... (in fact, bluealsa-cli list-pcms does not show anything, just empty output). But this debug log suggests that AAC codec is used:
bluealsa: [1129579] D: ../../src/bluez.c:406: A2DP Source (AAC) configured for device B0:4A:6A:0F:87:94

in fact, bluealsa-cli list-pcms does not show anything, just empty output

Hmm, that's strange.... It should print the list of available PCMs (PCM-paths) which can be used with other bluealsa-cli commands.

But this debug log suggests that AAC codec is used

OK, thanks for confirmation!

Hmm, that's strange.... It should print the list of available PCMs (PCM-paths) which can be used with other bluealsa-cli commands.

Just have checked again, and now I see the output from bluealsa-cli list-pcms (and also see that AAC is indeed the selected coded for the earbuds' PCM path). Not sure why that was empty when I first checked (even though the earbuds were connected and playing music from RPi at that moment for sure). After that I switched the earbuds off and on again, and also re-logined into RPi, could be somehow affected... Now it's fine.


Bottles file missing

The following bottles file is missing:
http://homebrew.bintray.com/bottles-dupes/less-481.el_capitan.bottle.1.tar.gz
http://homebrew.bintray.com/bottles-dupes/less-481.yosemite.bottle.1.tar.gz
http://homebrew.bintray.com/bottles-dupes/less-481.mavericks.bottle.1.tar.gz

Could you please fix it?

https://github.com/Homebrew/homebrew-dupes/blob/master/lsof.rb#L12
current version is 4.89
You need to brew update I believe.

sorry I thought you were pointing to lsof not less. I'll see what's up.

https://bintray.com/homebrew/bottles-dupes/download_file?file_path=less-481.el_capitan.bottle.tar.gz
does that link work for you?

Yes, it work!
$ curl -sSL https://bintray.com/homebrew/bottles-dupes/download_file\?file_path\=less-481.el_capitan.bottle.tar.gz | wc -c
128404

@ilovezfs That's for revision 0, though.

alex, yeah they look well and truly gone

@dunn maybe we should just put back this bottle block? https://github.com/Homebrew/homebrew-dupes/commit/493b20fd

Closed via https://github.com/Homebrew/homebrew-dupes/pull/646.

@gaoyifan if you brew update, it should work now.

Thanks a lot!  It works now.


Gene page (reaction-force) Q/A

[ ] Add minimum height to filter container (so loading is smoother)
[ ] Match "All Artists" width of button in production
[ ] Check vertical alignment on filter buttons

The ‘all artists’ button is wider, intentional?
Before

After

@alloy Not intentional, thank you

The vertical alignment of the filter captions seems a tad too much to the bottom:

Resizing (especially continuously) the width of the window with the fit-width rails on screen feels sluggish and once even froze Safari.

Is the design that all the rails have the same height, even if not absolutely necessary for the content? E.g. the margin between these two rails feels a bit much:

Clicking ‘ALL ARTISTS’ does not reset the view to the initial fit-width rails.

Sort choice isn’t reflected in URL parameters.

Selecting and then unselecting ‘ONLY FOR SALE’ leads to different results, especially as loading the URL in a new window (or someone else’s computer) leads to the initial results (before selecting ‘ONLY FOR SALE’):

(Also spotted a spinner in that recording ^ that’s still shown on top of the gene description while the content is still loading.)

Just one thing from me, tested on Safari 10.1.1 (12603.2.4):

@yuki24 I believe that's intentional—Read More should only appear if the wordcount of the description goes "below the fold"
Noted a phantom spinner that persisted even when all works were done loading in a filter state (https://www.artsy.net/gene/ceramic?dimension_range=*-24.0&medium=sculpture&price_range=50000-*):

[ ] artist rail: space between img and tombstone too large, match what's done in brick view
[ ] artist rail: space between artworks 15px
[ ] artist rail: use artist follow button component and behavior from artwork pages (spacing/sizing/color issues)
[ ] tombstone text should be #666
[ ] heart should only appear on hover
[ ] 40px margin between artworks in brick view
[ ] too much space between last artist rail and LOAD MORE button
[ ] add transparent underline to LOAD MORE button so content below doesn't shift on hover


luaPackages.ittner: update homepage

Motivation for this change
Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

these are generated from the luarocks rockspec so it may get overriden in the next update. Better fix upstream's rockspec ?

these are generated from the luarocks rockspec so it may get overriden in the next update. Better fix upstream's rockspec ?

Oh, yes then

There's quite a few of them: https://repology.org/repository/nix_unstable/problems?start=lua:cmsgpack

https://github.com/ittner/lua-iconv/pull/7

Indeed there are a few, enough to be annoying. If fixing upstream rockspecs is too annoying one can change it directly pkgs/development/lua-modules/overrides.nix (though uglier). Alternatively you could create a ticket and mark it as an entry level issue.


files.upload to be discontinued

[Please easy english or easy japanese]
Feature description
hi, i'm using your action extensively , thanks for the action you provided.
Wanted to confirm if you are planning to upgrade the below mention ask . i received this from Slack.
Hello , We want to remind you about an upcoming date and change to the files.upload web API method that affects your UploadApp app on March 11, 2025•
Support for the files.upload API will be discontinued.
To prepare for this change, we recommend migrating away from files.upload and instead using the combination of files.getUploadURLExternal and files.completeUploadExternal.
More information on how to use these two APIs together can be found on our Working with files documentation.

Currently, this action uses filesUploadV2. ref: https://github.com/slackapi/node-slack-sdk/pull/1544
So, I think your concern is no problem.

Following the documentation of files.upload (I couldn't find any filesUploadV2 specific API documentation), the need for old applications to update started 8.5.2024 and this action needs to be updated until 11.03.2025.
Hence, it is enough time to react.
On the other hand, it might be good to know, that you are working on this, or at least have it on your stack, @MeilCli.

I couldn't find any filesUploadV2 specific API documentation

The method isn't api endpoint. Slack node sdk makes convenient method compounding files.getUploadURLExternal and files.completeUploadExternal, and it names filesUploadV2.
So, in my understanding, this action has already migrated to the new file uploading api.

@MeilCli thank you very much for your time and providing the background details.
I just "checked" the code and the according documentation and post it here for completness.
Code
[...]
async function postByContent(client: slack.WebClient, option: Option): Promise<slack.FilesUploadResponse> {
    if (option.content == undefined) {
        throw Error(`content is undefined`);
    }
    return await client.filesUploadV2({[...]

Documentation

For each file submitted with this method, submit filenames and file metadata to files.getUploadURLExternal to request a URL to which to send the file data to and an id for the file
for each returned file upload_url, upload corresponding file to URLs returned from step 1 (e.g. [https://files.slack.com/upload/v1/...](https://files.slack.com/upload/v1/...\)")
Complete uploads files.completeUploadExternal

From my point of view, this issue can be closed.
@cb-anomitromunshi what do you say?

close by no response and it may be resolved


Add BinaryData serialization

Fixes https://github.com/Azure/azure-sdk-for-net/issues/38197

API change check
API changes are not detected in this pull request.


Check links periodically

The first run should happen on Monday morning.

Workflow didn’t run this morning. Just bumped its dates by 1 day. Let’s merge and see what’s happens tomorrow morning.


this baby is ready

following semver and being nice to others, this baby has been production ready for some time TMK.
the version should thusly be bumped to 1.0.0
I am seeing:
"mkdirp": "^0.5.1",

duplicate of #65


"changing network in service is not supported" error when updating stack as directed

File: engine/getstarted-voting-app/customize-app.md
After making the suggested changes to docker-stack.yml by replacing before with after, I get the following error when trying to deploy:
> docker stack deploy --compose-file docker-stack.yml vote
Updating service vote_result (id: xcfvfitvdrv10t2x75yi2efr2)
Updating service vote_worker (id: 6v31lamd3kpf5ifwn6zxvb4ca)
Error response from daemon: rpc error: code = 2 desc = changing network in service is not supported

Here is my docker info:
> docker info
Containers: 6
 Running: 6
 Paused: 0
 Stopped: 0
Images: 107
Server Version: 1.13.0
Storage Driver: devicemapper
 Pool Name: centos-dockerpool
 Pool Blocksize: 65.54 kB
 Base Device Size: 10.74 GB
 Backing Filesystem: xfs
 Data file:
 Metadata file:
 Data Space Used: 33.36 GB
 Data Space Total: 214.7 GB
 Data Space Available: 181.4 GB
 Metadata Space Used: 40.63 MB
 Metadata Space Total: 104.9 MB
 Metadata Space Available: 64.23 MB
 Thin Pool Minimum Free Space: 21.47 GB
 Udev Sync Supported: true
 Deferred Removal Enabled: false
 Deferred Deletion Enabled: false
 Deferred Deleted Device Count: 0
 Library Version: 1.02.135-RHEL7 (2016-11-16)
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
Swarm: active
 NodeID: 0bn9wp5zz6tcgd7kdwhrjoezx
 Is Manager: true
 ClusterID: f372pdcfok6r9i1se60lqp6jn
 Managers: 1
 Nodes: 3
 Orchestration:
  Task History Retention Limit: 10
 Raft:
  Snapshot Interval: 10000
  Number of Old Snapshots to Retain: 0
  Heartbeat Tick: 1
  Election Tick: 3
 Dispatcher:
  Heartbeat Period: 5 seconds
 CA Configuration:
  Expiry Duration: 3 months
 Node Address: <IP_ADDRESS>
 Manager Addresses:
  <IP_ADDRESS>:2377
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 03e5862ec0d8d3b3f750e19fca3ee367e13c090e
runc version: 2f7393a47307a16f8cee44a37b262e8b81021e3e
init version: 949e6fa
Security Options:
 seccomp
  Profile: default
Kernel Version: 3.10.0-327.36.1.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 23.37 GiB
Name: blu-03
ID: CBXH:UD64:UUH7:DK4P:D2AC:Y627:3EGT:OTYB:YQTC:QH5C:TZKV:Q7X7
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Http Proxy: http://.../
Registry: https://index.docker.io/v1/
WARNING: bridge-nf-call-ip6tables is disabled
Experimental: false
Insecure Registries:
 <IP_ADDRESS>/8
Live Restore Enabled: false

One workaround is to completely tear down the stack (docker stack rm <stackname>) and re-deploy it. Might also try stopping it first which is less destructive but I don't know if it works.

This topic has been removed.


Should this move to ddev org and become official?

It seems like you have a lovely and needed add-on here. Should it move to ddev/ddev-drupal-core-dev? If so, just say so and we'll start the process.
Of course tests have to be relevant and passing,

https://github.com/justafish/ddev-drupal-core-dev/issues/11

And you have to want to continue to be the maintainer.

Seems like this is important enough that it would be a good idea.


Support for drafts of unpublished pages

https://guide.wagtail.org/admin/pages/213/view_draft/
If a page has never been published, we can’t use the live preview, nor view_draft.

Perhaps related to wagtail-localise field replacement not happening for drafts

This is probably because of the following code
https://github.com/wagtail/guide/blob/195797c837557fd13cf91af38b8fcf4964020748/apps/core/models/content.py#L47-L55
It doesn't return the context at all if the page is not live. It should be changed to something like
def get_context(self, request, *args, **kwargs):
    context = super().get_context(request, *args, **kwargs)
    if self.live and self.show_in_menus:
        pages = Page.objects.live().in_menu()
        context.update(
            previous=pages.filter(path__lt=self.path).last(),
            next=pages.filter(path__gt=self.path).first(),
        )
    return context


Render different mouse cursors based on ImGui::GetMouseCursor()

Not obvious how to do this correctly. Viewport::_gui_input_event seems responsible for updating the mouse cursor. OS::set_cursor_shape is not available from scripts. Generate fake input events to update the cursor?

Seems more complicated than it's worth. Closing for now.
If you really want the appropriate mouse cursors drawn, just let ImGui do it:
Input.SetMouseMode(Input.MouseMode.Hidden);
ImGui.GetIO().MouseDrawCursor = true;


Building mask from Julich parent node fails

Observed in version 1.0a14:
import siibra
p = siibra.parcellations.get('julich 3')
isocortex = p.get_region('cerebral cortex')
isocortex.get_regional_map(space='mni152', maptype='labelled')

fails when it ends up trying to merge less than two volumes in volumes/volume.py:673.
It also appears to resample several volumes, which should not be necessary.
I think this problem is already fixed in the siibra 2 development branches, but we might need a fix in the production version for the time being.

what I would it expect to be doing is sth like this:
  import siibra
  import nibabel as nib
  import numpy as np
  labelled_map = siibra.get_map('julich 3', maptype='labelled', space='mni152')
  mapimg = labelled_map.fetch()
  region = labelled_map.parcellation.get_region('cerebral cortex')
  child_labels = [
      labelled_map.get_index(_).label
      for _ in labelled_map.regions
      if labelled_map.parcellation.get_region(_).has_parent(region)
  ]
  mapdata = np.asanyarray(mapimg.dataobj)
  maskdata = np.zeros_like(mapdata)
  for l in child_labels:
      maskdata[mapdata == l] = 1
  result = nib.Nifti1Image(maskdata, mapimg.affine)

Resampling is necessary for maps that do not have the same affine and resample will return the same nifti if resmapling is not required (thanks to nilearn). So the existing version is more robust.
Merge, by definition requires more than 1 volume but we can just return the volume provided.


Remove "write-mode" from doc

"write-mode" parameter is now deleted and mentioning it in doc was misleading

Thanks!


unable to place configurable product order in magneto 2.1.8

Am not able to place order on checkout page for configurable products in Magento 2.1.8.Its working perfect for simple products.At the same time i noticed that the quantity of configurable item showing as zero even i change it.please help me to fix it.

I think you have the wrong project. https://github.com/magento/magento2


Get-DbaDiskSpace - Output format issue

Get-DbaDiskSpace - Output format might give an error like "Cannot convert value "1.010.880,00" to type "System.Int64"" when try to set the value to an int/long variable. It is not really a bug is an improvement that can be made to the digit symbol group not be returned.
For example: 1.010.880,00 should be returned to: 1010880,00
Here I'm trying to set the value for an [long]$variable the FreeInKB from the Get-DbaDiskSpace.
Obviously I can replace the '.' or ',' for '' and work, but I think once this command can and should be reused should be more generic.
Thoughts?

I have test it and it is OK!
PS: have used Commit https://github.com/sqlcollaborative/dbatools/commit/c83f2da67222ecff49aba28cc1ea0617563e0265


Please invite me to the Recode-Hive GitHub Community Organization

Name
Rajeswaran
Discord Username (if applicable)
No response
Additional Context
No response

Invitation sent to join the GitHub Organisation. Welcome to the community 🎉
Don't forget after accepting to make it public so it appears on your GitHub profile for everyone else to see. You can do this by finding your name in the GitHub organisation list and change the dropdown to public https://github.com/orgs/recodehive/people


Auto removal with '--rm', does not remove container or produce error

I am trying to use the standalone swarm to coordinate a cluster that is running numerical models for hindcast/research and forecast purposes. We already have a workflow and tools in place that leverage the individual engine api, so swarm is looking like a good fit that will let us scale in the swarm rather than implementing something in our own systems.
We typically use docker run --rm ... to remove completed containers so that they don't pile up and we can re-use container names for specific purposes, but I am having trouble getting a run call to the swarm manager with --rm to remove the finished container when complete. It seems from issues
#2620 #2082 that this should be possible and is the intended functionality, but I don't get any errors and the completed containers remain and are visible with ps -a despite successful container deployment.
For testing purposes I am using a swarm manage container on the same node that I am using as a worker (using an ip list of nodes rather than something like consul), with the following versions/config:
>>docker -H <IP_ADDRESS>:2375 version

Client:
 Version:      17.03.0-ce
 API version:  1.26
 Go version:   go1.7.5
 Git commit:   3a232c8
 Built:        Tue Feb 28 08:01:32 2017
 OS/Arch:      linux/amd64

Server:
 Version:      17.03.0-ce
 API version:  1.26 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   3a232c8
 Built:        Tue Feb 28 08:01:32 2017
 OS/Arch:      linux/amd64
 Experimental: false

>>docker -H <IP_ADDRESS>:4000 info

Containers: 2
 Running: 1
 Paused: 0
 Stopped: 1
Images: 2
Server Version: swarm/1.2.6
Role: primary
Strategy: spread
Filters: health, port, containerslots, dependency, affinity, constraint, whitelist
Nodes: 1
 alex-Xubuntu16: <IP_ADDRESS>:2375
  └ ID: T4FR:XOV2:IFB6:43DU:NY5N:UDEG:PGNH:6Z7Y:NQTR:FE2W:RWZK:J3KD
  └ Status: Healthy
  └ Containers: 2 (1 Running, 0 Paused, 1 Stopped)
  └ Reserved CPUs: 0 / 2
  └ Reserved Memory: 0 B / 4.912 GiB
  └ Labels: kernelversion=4.4.0-65-generic, operatingsystem=Ubuntu 16.04.1 LTS, storagedriver=aufs
  └ UpdatedAt: 2017-03-10T13:59:45Z
  └ ServerVersion: 17.03.0-ce
Plugins:
 Volume:
 Network:
Swarm:
 NodeID:
 Is Manager: false
 Node Address:
Kernel Version: 4.4.0-65-generic
Operating System: linux
Architecture: amd64
CPUs: 2
Total Memory: 4.912 GiB
Name: 543e7c809565
Docker Root Dir:
Debug Mode (client): false
Debug Mode (server): false
WARNING: No kernel memory limit support
Experimental: false
Live Restore Enabled: false

Is this a bug or are my expectations incorrect? Thanks!

@acrosby --rm should remove the container. Can you show me the command you use and output?
Open a console to listen on events. You should see container destroy event.
$ docker -H swarm:port events
2017-03-10T18:16:19.574578853Z container create b2361a9743a42517f46f6c1bed76a102cf3106f2c84a9b0bb317551fbc78f001 (com.docker.swarm.id=3ebc545eb31df31ab51e5ad63b4371e0e806baf0ed93702b7803e987d83014b5, image=hello-world, name=loving_neumann, node.addr=<IP_ADDRESS>:4444, node.id=3JWA:KW24:25WK:ASMB:6IMO:OXSP:WTR3:2BZG:X3IJ:H3V7:PC4H:VL73, node.ip=<IP_ADDRESS>, node.name=ip-172-19-241-145)
2017-03-10T18:16:19.583853223Z container attach b2361a9743a42517f46f6c1bed76a102cf3106f2c84a9b0bb317551fbc78f001 (com.docker.swarm.id=3ebc545eb31df31ab51e5ad63b4371e0e806baf0ed93702b7803e987d83014b5, image=hello-world, name=loving_neumann, node.addr=<IP_ADDRESS>:4444, node.id=3JWA:KW24:25WK:ASMB:6IMO:OXSP:WTR3:2BZG:X3IJ:H3V7:PC4H:VL73, node.ip=<IP_ADDRESS>, node.name=ip-172-19-241-145)
2017-03-10T18:16:19.641796708Z network connect a2da16c78a86ccb034980744bf9e812db8baa7e2360bf544086f79ce98f974fd (container=b2361a9743a42517f46f6c1bed76a102cf3106f2c84a9b0bb317551fbc78f001, name=bridge, node.addr=<IP_ADDRESS>:4444, node.id=3JWA:KW24:25WK:ASMB:6IMO:OXSP:WTR3:2BZG:X3IJ:H3V7:PC4H:VL73, node.ip=<IP_ADDRESS>, node.name=ip-172-19-241-145, type=bridge)
2017-03-10T18:16:20.044775864Z container start b2361a9743a42517f46f6c1bed76a102cf3106f2c84a9b0bb317551fbc78f001 (com.docker.swarm.id=3ebc545eb31df31ab51e5ad63b4371e0e806baf0ed93702b7803e987d83014b5, image=hello-world, name=loving_neumann, node.addr=<IP_ADDRESS>:4444, node.id=3JWA:KW24:25WK:ASMB:6IMO:OXSP:WTR3:2BZG:X3IJ:H3V7:PC4H:VL73, node.ip=<IP_ADDRESS>, node.name=ip-172-19-241-145)
2017-03-10T18:16:20.101886313Z container die b2361a9743a42517f46f6c1bed76a102cf3106f2c84a9b0bb317551fbc78f001 (com.docker.swarm.id=3ebc545eb31df31ab51e5ad63b4371e0e806baf0ed93702b7803e987d83014b5, exitCode=0, image=hello-world, name=loving_neumann, node.addr=<IP_ADDRESS>:4444, node.id=3JWA:KW24:25WK:ASMB:6IMO:OXSP:WTR3:2BZG:X3IJ:H3V7:PC4H:VL73, node.ip=<IP_ADDRESS>, node.name=ip-172-19-241-145)
2017-03-10T18:16:20.149940668Z network disconnect a2da16c78a86ccb034980744bf9e812db8baa7e2360bf544086f79ce98f974fd (container=b2361a9743a42517f46f6c1bed76a102cf3106f2c84a9b0bb317551fbc78f001, name=bridge, node.addr=<IP_ADDRESS>:4444, node.id=3JWA:KW24:25WK:ASMB:6IMO:OXSP:WTR3:2BZG:X3IJ:H3V7:PC4H:VL73, node.ip=<IP_ADDRESS>, node.name=ip-172-19-241-145, type=bridge)
2017-03-10T18:16:20.218160202Z container destroy b2361a9743a42517f46f6c1bed76a102cf3106f2c84a9b0bb317551fbc78f001 (com.docker.swarm.id=3ebc545eb31df31ab51e5ad63b4371e0e806baf0ed93702b7803e987d83014b5, image=hello-world, name=loving_neumann, node.addr=<IP_ADDRESS>:4444, node.id=3JWA:KW24:25WK:ASMB:6IMO:OXSP:WTR3:2BZG:X3IJ:H3V7:PC4H:VL73, node.ip=<IP_ADDRESS>, node.name=ip-172-19-241-145)

Run docker command in separate console.
$ docker -H swarm:port info
$ docker -H swarm:port run --rm --name p1 hello-world
$ docker -H swarm:port info

@dongluochen Here is the output:
The test run:
~$ docker -H :4000 info

Containers: 1
 Running: 1
 Paused: 0
 Stopped: 0
Images: 3
Server Version: swarm/1.2.6
Role: primary
Strategy: spread
Filters: health, port, containerslots, dependency, affinity, constraint, whitelist
Nodes: 1
 alex-Xubuntu16: <IP_ADDRESS>:2375
  └ ID: T4FR:XOV2:IFB6:43DU:NY5N:UDEG:PGNH:6Z7Y:NQTR:FE2W:RWZK:J3KD
  └ Status: Healthy
  └ Containers: 1 (1 Running, 0 Paused, 0 Stopped)
  └ Reserved CPUs: 0 / 2
  └ Reserved Memory: 0 B / 4.912 GiB
  └ Labels: kernelversion=4.4.0-65-generic, operatingsystem=Ubuntu 16.04.1 LTS, storagedriver=aufs
  └ UpdatedAt: 2017-03-10T22:13:02Z
  └ ServerVersion: 17.03.0-ce
Plugins:
 Volume:
 Network:
Swarm:
 NodeID:
 Is Manager: false
 Node Address:
Kernel Version: 4.4.0-65-generic
Operating System: linux
Architecture: amd64
CPUs: 2
Total Memory: 4.912 GiB
Name: 49960d2281a4
Docker Root Dir:
Debug Mode (client): false
Debug Mode (server): false
WARNING: No kernel memory limit support
Experimental: false
Live Restore Enabled: false

~$ docker -H :4000 run --rm --name p1 hello-world

~$ docker -H :4000 info

Containers: 2
 Running: 1
 Paused: 0
 Stopped: 1
Images: 3
Server Version: swarm/1.2.6
Role: primary
Strategy: spread
Filters: health, port, containerslots, dependency, affinity, constraint, whitelist
Nodes: 1
 alex-Xubuntu16: <IP_ADDRESS>:2375
  └ ID: T4FR:XOV2:IFB6:43DU:NY5N:UDEG:PGNH:6Z7Y:NQTR:FE2W:RWZK:J3KD
  └ Status: Healthy
  └ Containers: 2 (1 Running, 0 Paused, 1 Stopped)
  └ Reserved CPUs: 0 / 2
  └ Reserved Memory: 0 B / 4.912 GiB
  └ Labels: kernelversion=4.4.0-65-generic, operatingsystem=Ubuntu 16.04.1 LTS, storagedriver=aufs
  └ UpdatedAt: 2017-03-10T22:13:20Z
  └ ServerVersion: 17.03.0-ce
Plugins:
 Volume:
 Network:
Swarm:
 NodeID:
 Is Manager: false
 Node Address:
Kernel Version: 4.4.0-65-generic
Operating System: linux
Architecture: amd64
CPUs: 2
Total Memory: 4.912 GiB
Name: 49960d2281a4
Docker Root Dir:
Debug Mode (client): false
Debug Mode (server): false
WARNING: No kernel memory limit support
Experimental: false
Live Restore Enabled: false

~$ docker -H :4000 ps -a

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS                                      NAMES
ba5e79931d12        hello-world         "/hello"                 13 seconds ago      Exited (0) 12 seconds ago                                              alex-Xubuntu16/p1
49960d2281a4        swarm               "/swarm manage -H ..."   8 hours ago         Up 8 hours                  2375/tcp, <IP_ADDRESS>:4000->4000/tcp   alex-Xubuntu16/dazzling_bartik

Events log:
~$ docker -H :4000 events

2017-03-10T17:12:41.325584174-05:00 image pull hello-world:latest (name=hello-world, node.addr=<IP_ADDRESS>:2375, node.id=T4FR:XOV2:IFB6:43DU:NY5N:UDEG:PGNH:6Z7Y:NQTR:FE2W:RWZK:J3KD, node.ip=<IP_ADDRESS>, node.name=alex-Xubuntu16)
2017-03-10T17:13:19.228410187-05:00 container create ba5e79931d12b63179d28f5be05cee478367c3e89c56916c60414383f34b517a (com.docker.swarm.id=07deb196fa829199e627bd4b78e8f74c676885e12db6efe7a967ea6cc731dd2e, image=hello-world, name=p1, node.addr=<IP_ADDRESS>:2375, node.id=T4FR:XOV2:IFB6:43DU:NY5N:UDEG:PGNH:6Z7Y:NQTR:FE2W:RWZK:J3KD, node.ip=<IP_ADDRESS>, node.name=alex-Xubuntu16)
2017-03-10T17:13:19.304452789-05:00 container attach ba5e79931d12b63179d28f5be05cee478367c3e89c56916c60414383f34b517a (com.docker.swarm.id=07deb196fa829199e627bd4b78e8f74c676885e12db6efe7a967ea6cc731dd2e, image=hello-world, name=p1, node.addr=<IP_ADDRESS>:2375, node.id=T4FR:XOV2:IFB6:43DU:NY5N:UDEG:PGNH:6Z7Y:NQTR:FE2W:RWZK:J3KD, node.ip=<IP_ADDRESS>, node.name=alex-Xubuntu16)
2017-03-10T17:13:19.415645869-05:00 network connect ed50ac7c4328b9aebfe5661c6057228c25a7c653c0c5fa742e34112a45cc3324 (container=ba5e79931d12b63179d28f5be05cee478367c3e89c56916c60414383f34b517a, name=bridge, node.addr=<IP_ADDRESS>:2375, node.id=T4FR:XOV2:IFB6:43DU:NY5N:UDEG:PGNH:6Z7Y:NQTR:FE2W:RWZK:J3KD, node.ip=<IP_ADDRESS>, node.name=alex-Xubuntu16, type=bridge)
2017-03-10T17:13:19.896143869-05:00 container start ba5e79931d12b63179d28f5be05cee478367c3e89c56916c60414383f34b517a (com.docker.swarm.id=07deb196fa829199e627bd4b78e8f74c676885e12db6efe7a967ea6cc731dd2e, image=hello-world, name=p1, node.addr=<IP_ADDRESS>:2375, node.id=T4FR:XOV2:IFB6:43DU:NY5N:UDEG:PGNH:6Z7Y:NQTR:FE2W:RWZK:J3KD, node.ip=<IP_ADDRESS>, node.name=alex-Xubuntu16)
2017-03-10T17:13:20.001673556-05:00 container die ba5e79931d12b63179d28f5be05cee478367c3e89c56916c60414383f34b517a (com.docker.swarm.id=07deb196fa829199e627bd4b78e8f74c676885e12db6efe7a967ea6cc731dd2e, exitCode=0, image=hello-world, name=p1, node.addr=<IP_ADDRESS>:2375, node.id=T4FR:XOV2:IFB6:43DU:NY5N:UDEG:PGNH:6Z7Y:NQTR:FE2W:RWZK:J3KD, node.ip=<IP_ADDRESS>, node.name=alex-Xubuntu16)
2017-03-10T17:13:20.387510703-05:00 network disconnect ed50ac7c4328b9aebfe5661c6057228c25a7c653c0c5fa742e34112a45cc3324 (container=ba5e79931d12b63179d28f5be05cee478367c3e89c56916c60414383f34b517a, name=bridge, node.addr=<IP_ADDRESS>:2375, node.id=T4FR:XOV2:IFB6:43DU:NY5N:UDEG:PGNH:6Z7Y:NQTR:FE2W:RWZK:J3KD, node.ip=<IP_ADDRESS>, node.name=alex-Xubuntu16, type=bridge)

It's a cherry-pick error on docker-17.03.0-ce where --rm is not handled properly. The fix https://github.com/docker/docker/pull/31692 had been merged into docker-17.03.x-ce and will be released in docker-17.03.1-ce soon. For now, you may need to remove the dead containers with an extra step.
cc @thaJeztah.

@dongluochen Thanks!

After updating to 17.03.1-ce and pulling the latest swarm image, I am still seeing this behavior. Can anyone else confirm?

Actually, it seems to be inconsistently failing:
$ docker -H <IP_ADDRESS>:4000 run --rm -c 2 --name ping4 alpine ping -c 1 google.com
PING google.com (<IP_ADDRESS>): 56 data bytes
64 bytes from <IP_ADDRESS>: seq=0 ttl=52 time=11.442 ms

--- google.com ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 11.442/11.442/11.442 ms

$ docker -H <IP_ADDRESS>:4000 run --rm -c 2 --name ping4 alpine ping -c 1 google.com
PING google.com (<IP_ADDRESS>): 56 data bytes
64 bytes from <IP_ADDRESS>: seq=0 ttl=52 time=20.091 ms

--- google.com ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 20.091/20.091/20.091 ms

$ docker -H <IP_ADDRESS>:4000 run --rm -c 2 --name ping4 alpine ping -c 1 google.com
PING google.com (<IP_ADDRESS>): 56 data bytes
64 bytes from <IP_ADDRESS>: seq=0 ttl=52 time=14.954 ms

--- google.com ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 14.954/14.954/14.954 ms

$ docker -H <IP_ADDRESS>:4000 run --rm -c 2 --name ping4 alpine ping -c 1 google.com
PING google.com (<IP_ADDRESS>): 56 data bytes
64 bytes from <IP_ADDRESS>: seq=0 ttl=52 time=11.920 ms

--- google.com ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 11.920/11.920/11.920 ms

$ docker -H <IP_ADDRESS>:4000 run --rm -c 2 --name ping4 alpine ping -c 1 google.com
PING google.com (<IP_ADDRESS>): 56 data bytes
64 bytes from <IP_ADDRESS>: seq=0 ttl=52 time=9.878 ms

--- google.com ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 9.878/9.878/9.878 ms

$ docker -H <IP_ADDRESS>:4000 run --rm -c 2 --name ping4 alpine ping -c 1 google.com
ERRO[0000] error getting events from daemon: EOF
PING google.com (<IP_ADDRESS>): 56 data bytes
64 bytes from <IP_ADDRESS>: seq=0 ttl=42 time=22.571 ms

--- google.com ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 22.571/22.571/22.571 ms

$ docker -H <IP_ADDRESS>:4000 run --rm -c 2 --name ping4 alpine ping -c 1 google.com
docker: Error response from daemon: Conflict: The name ping4 is already assigned. You have to delete (or rename) that container to be able to assign ping4 to a container again..
See 'docker run --help'.
$

This is a known problem (I thought there was an open issue). --rm was changed in implementation. Now the client would listen to container events, as soon as it receives stop event for the container, it issues a container remove request. The problem is the engine may fail to deliver the stop event because the engine sends out a EOF on event channel.
cc @jlhawn.
$ docker -H <IP_ADDRESS>:4000 run --rm -c 2 --name ping4 alpine ping -c 1 google.com
ERRO[0000] error getting events from daemon: EOF

Are you saying that the EOF errors I am getting are related to the containers not being removed? That makes sense to me.

The client is waiting for container die event (means the container is stopped). But the remote engine doesn't send it, instead it sends a EOF. The client doesn't get die event, so it would not issue a container remove operation. That's why the container is left on the daemon.

There could be different reasons Docker daemon sends out EOF in event channel. I don't see an easy fix for this problem. I think the client should handle this error.
@thaJeztah, do you know any issue on Daemon side tracking this AutoRemove problem?

Is this a change in the behavior of the docker daemon from 1.13?

@vincentwoo yes.

@acrosby In your test, does this docker -H <IP_ADDRESS>:4000talk to a Docker daemon, or a Swarm manager?

@dongluochen :4000 is a swarm manager, of course no issues using the node's docker daemon directly. The swarm is constructed with a list of node IP's if that is relevant.

Docker 1.13 client uses die event to trigger AutoRemove (--rm). It's broken with classic Swarm. The problem is classic Swarm doesn't support event filters.
When Docker client uses --rm, it sends an events request to manager with container filter (container id_a) like below. Classic Swarm doesn't support event filter and it returns all events back to Docker client. If another container id_b dies before id_a, an event container die id_b would be sent back to Docker client. Docker client would not verify container ID in the event (since it uses a event filter). It'd consider container id_a has stopped, and issue a DELETE request for id_a, which would fail because id_a is still running.
DEBU[0348] HTTP request received                         method=GET uri=/v1.24/events?filters=%7B%22container%22%3A%7B%227762ee1de7cdce43e1bfb90a0c426d4624a89de846e88036f24c2b542788d74c%22%3Atrue%7D%2C%22type%22%3A%7B%22container%22%3Atrue%7D%7D

In this test case, 2 containers 7762ee1de7cdce43e1bfb90a0c426d4624a89de846e88036f24c2b542788d74c and 37635a0e1d7a57169a34444d4b2ab32422d26f429489c821f6f998418ced1c27 were tangled like this. And you see error like the following.
ERRO[0001] error removing container: Error response from daemon: Error response from daemon: You cannot remove a running container 7762ee1de7cdce43e1bfb90a0c426d4624a89de846e88036f24c2b542788d74c. Stop the container before attempting removal or force remove

$ egrep "7762ee1de7cdce43e1bfb90a0c426d4624a89de846e88036f24c2b542788d74c|37635a0e1d7a57169a34444d4b2ab32422d26f429489c821f6f998418ced1c27" /var/log/syslog
Mar 29 23:52:07 ip-172-19-71-145 dockerd[29745]: time="2017-03-29T23:52:07.126779868Z" level=debug msg="Calling GET /v1.28/events?filters=%7B%22container%22%3A%7B%2237635a0e1d7a57169a34444d4b2ab32422d26f429489c821f6f998418ced1c27%22%3Atrue%7D%2C%22type%22%3A%7B%22container%22%3Atrue%7D%7D"
Mar 29 23:52:07 ip-172-19-71-145 dockerd[29745]: time="2017-03-29T23:52:07.128291568Z" level=debug msg="Calling POST /v1.28/containers/37635a0e1d7a57169a34444d4b2ab32422d26f429489c821f6f998418ced1c27/start"
Mar 29 23:52:07 ip-172-19-71-145 dockerd[29745]: time="2017-03-29T23:52:07.130560222Z" level=debug msg="Calling GET /v1.24/containers/json?all=1&filters=%7B%22id%22%3A%7B%2237635a0e1d7a57169a34444d4b2ab32422d26f429489c821f6f998418ced1c27%22%3Atrue%7D%7D&limit=0"
Mar 29 23:52:07 ip-172-19-71-145 dockerd[29745]: time="2017-03-29T23:52:07.353289694Z" level=debug msg="Calling GET /v1.24/containers/json?all=1&filters=%7B%22id%22%3A%7B%227762ee1de7cdce43e1bfb90a0c426d4624a89de846e88036f24c2b542788d74c%22%3Atrue%7D%7D&limit=0"
Mar 29 23:52:07 ip-172-19-71-145 dockerd[29745]: time="2017-03-29T23:52:07.358478442Z" level=debug msg="Calling GET /v1.24/containers/7762ee1de7cdce43e1bfb90a0c426d4624a89de846e88036f24c2b542788d74c/json"
Mar 29 23:52:07 ip-172-19-71-145 dockerd[29745]: time="2017-03-29T23:52:07.363332727Z" level=debug msg="Calling POST /v1.24/containers/7762ee1de7cdce43e1bfb90a0c426d4624a89de846e88036f24c2b542788d74c/attach?stderr=1&stdout=1&stream=1"
Mar 29 23:52:07 ip-172-19-71-145 dockerd[29745]: time="2017-03-29T23:52:07.394011664Z" level=debug msg="Calling POST /v1.24/containers/7762ee1de7cdce43e1bfb90a0c426d4624a89de846e88036f24c2b542788d74c/start"
Mar 29 23:52:07 ip-172-19-71-145 dockerd[29745]: time="2017-03-29T23:52:07.839423449Z" level=debug msg="sandbox set key processing took 128.157256ms for container 37635a0e1d7a57169a34444d4b2ab32422d26f429489c821f6f998418ced1c27"
Mar 29 23:52:07 ip-172-19-71-145 dockerd[29745]: time="2017-03-29T23:52:07.971701247Z" level=debug msg="libcontainerd: received containerd event: &types.Event{Type:\"start-container\", Id:\"37635a0e1d7a57169a34444d4b2ab32422d26f429489c821f6f998418ced1c27\", Status:0x0, Pid:\"\", Timestamp:(*timestamp.Timestamp)(0xc4210f3060)}"
Mar 29 23:52:07 ip-172-19-71-145 dockerd[29745]: time="2017-03-29T23:52:07.989952047Z" level=debug msg="Calling GET /v1.24/containers/37635a0e1d7a57169a34444d4b2ab32422d26f429489c821f6f998418ced1c27/json"
Mar 29 23:52:07 ip-172-19-71-145 dockerd[29745]: time="2017-03-29T23:52:07.990390409Z" level=debug msg="libcontainerd: event unhandled: type:\"start-container\" id:\"37635a0e1d7a57169a34444d4b2ab32422d26f429489c821f6f998418ced1c27\" timestamp:<seconds:1490831527 nanos:943656273 > "
Mar 29 23:52:08 ip-172-19-71-145 dockerd[29745]: time="2017-03-29T23:52:08.023388242Z" level=debug msg="Calling GET /v1.24/containers/json?all=1&filters=%7B%22id%22%3A%7B%227762ee1de7cdce43e1bfb90a0c426d4624a89de846e88036f24c2b542788d74c%22%3Atrue%7D%7D&limit=0"
Mar 29 23:52:08 ip-172-19-71-145 dockerd[29745]: time="2017-03-29T23:52:08.084550984Z" level=debug msg="containerd: process exited" id=37635a0e1d7a57169a34444d4b2ab32422d26f429489c821f6f998418ced1c27 pid=init status=0 systemPid=16375
Mar 29 23:52:08 ip-172-19-71-145 dockerd[29745]: time="2017-03-29T23:52:08.110532863Z" level=debug msg="libcontainerd: received containerd event: &types.Event{Type:\"exit\", Id:\"37635a0e1d7a57169a34444d4b2ab32422d26f429489c821f6f998418ced1c27\", Status:0x0, Pid:\"init\", Timestamp:(*timestamp.Timestamp)(0xc421a043f0)}"
Mar 29 23:52:08 ip-172-19-71-145 dockerd[29745]: time="2017-03-29T23:52:08.155401729Z" level=debug msg="sandbox set key processing took 247.931605ms for container 7762ee1de7cdce43e1bfb90a0c426d4624a89de846e88036f24c2b542788d74c"
Mar 29 23:52:08 ip-172-19-71-145 dockerd[29745]: time="2017-03-29T23:52:08.341554585Z" level=debug msg="libcontainerd: received containerd event: &types.Event{Type:\"start-container\", Id:\"7762ee1de7cdce43e1bfb90a0c426d4624a89de846e88036f24c2b542788d74c\", Status:0x0, Pid:\"\", Timestamp:(*timestamp.Timestamp)(0xc4210cabb0)}"
Mar 29 23:52:08 ip-172-19-71-145 dockerd[29745]: time="2017-03-29T23:52:08.356520206Z" level=debug msg="libcontainerd: event unhandled: type:\"start-container\" id:\"7762ee1de7cdce43e1bfb90a0c426d4624a89de846e88036f24c2b542788d74c\" timestamp:<seconds:1490831528 nanos:325996470 > "
Mar 29 23:52:08 ip-172-19-71-145 dockerd[29745]: time="2017-03-29T23:52:08.356939137Z" level=debug msg="Calling GET /v1.24/containers/json?all=1&filters=%7B%22id%22%3A%7B%227762ee1de7cdce43e1bfb90a0c426d4624a89de846e88036f24c2b542788d74c%22%3Atrue%7D%7D&limit=0"
Mar 29 23:52:08 ip-172-19-71-145 dockerd[29745]: time="2017-03-29T23:52:08.357838166Z" level=debug msg="Calling GET /v1.24/containers/json?all=1&filters=%7B%22id%22%3A%7B%227762ee1de7cdce43e1bfb90a0c426d4624a89de846e88036f24c2b542788d74c%22%3Atrue%7D%7D&limit=0"
Mar 29 23:52:08 ip-172-19-71-145 dockerd[29745]: time="2017-03-29T23:52:08.358969074Z" level=debug msg="Calling GET /v1.24/containers/7762ee1de7cdce43e1bfb90a0c426d4624a89de846e88036f24c2b542788d74c/json"
Mar 29 23:52:08 ip-172-19-71-145 dockerd[29745]: time="2017-03-29T23:52:08.398467352Z" level=debug msg="Calling GET /v1.24/containers/json?all=1&filters=%7B%22id%22%3A%7B%2237635a0e1d7a57169a34444d4b2ab32422d26f429489c821f6f998418ced1c27%22%3Atrue%7D%7D&limit=0"
Mar 29 23:52:08 ip-172-19-71-145 dockerd[29745]: time="2017-03-29T23:52:08.414341741Z" level=debug msg="Calling GET /v1.24/containers/37635a0e1d7a57169a34444d4b2ab32422d26f429489c821f6f998418ced1c27/json"
Mar 29 23:52:08 ip-172-19-71-145 dockerd[29745]: time="2017-03-29T23:52:08.414747993Z" level=error msg="Handler for GET /v1.24/containers/37635a0e1d7a57169a34444d4b2ab32422d26f429489c821f6f998418ced1c27/json returned error: No such container: 37635a0e1d7a57169a34444d4b2ab32422d26f429489c821f6f998418ced1c27"
Mar 29 23:52:08 ip-172-19-71-145 dockerd[29745]: time="2017-03-29T23:52:08.416166825Z" level=debug msg="Calling GET /v1.24/containers/json?all=1&filters=%7B%22id%22%3A%7B%2237635a0e1d7a57169a34444d4b2ab32422d26f429489c821f6f998418ced1c27%22%3Atrue%7D%7D&limit=0"
Mar 29 23:52:08 ip-172-19-71-145 dockerd[29745]: time="2017-03-29T23:52:08.427339215Z" level=debug msg="Calling DELETE /v1.24/containers/7762ee1de7cdce43e1bfb90a0c426d4624a89de846e88036f24c2b542788d74c?v=1"
Mar 29 23:52:08 ip-172-19-71-145 dockerd[29745]: time="2017-03-29T23:52:08.427566508Z" level=error msg="Handler for DELETE /v1.24/containers/7762ee1de7cdce43e1bfb90a0c426d4624a89de846e88036f24c2b542788d74c returned error: You cannot remove a running container 7762ee1de7cdce43e1bfb90a0c426d4624a89de846e88036f24c2b542788d74c. Stop the container before attempting removal or force remove"
Mar 29 23:52:08 ip-172-19-71-145 dockerd[29745]: time="2017-03-29T23:52:08.428115898Z" level=debug msg="Calling GET /v1.24/containers/json?all=1&filters=%7B%22id%22%3A%7B%227762ee1de7cdce43e1bfb90a0c426d4624a89de846e88036f24c2b542788d74c%22%3Atrue%7D%7D&limit=0"
Mar 29 23:52:08 ip-172-19-71-145 dockerd[29745]: time="2017-03-29T23:52:08.431249337Z" level=debug msg="Calling GET /v1.24/containers/7762ee1de7cdce43e1bfb90a0c426d4624a89de846e88036f24c2b542788d74c/json"
Mar 29 23:52:08 ip-172-19-71-145 dockerd[29745]: time="2017-03-29T23:52:08.433919131Z" level=debug msg="containerd: process exited" id=7762ee1de7cdce43e1bfb90a0c426d4624a89de846e88036f24c2b542788d74c pid=init status=0 systemPid=16423
Mar 29 23:52:08 ip-172-19-71-145 dockerd[29745]: time="2017-03-29T23:52:08.459104556Z" level=debug msg="Calling GET /v1.24/containers/json?all=1&filters=%7B%22id%22%3A%7B%2237635a0e1d7a57169a34444d4b2ab32422d26f429489c821f6f998418ced1c27%22%3Atrue%7D%7D&limit=0"
Mar 29 23:52:08 ip-172-19-71-145 dockerd[29745]: time="2017-03-29T23:52:08.477375454Z" level=debug msg="libcontainerd: received containerd event: &types.Event{Type:\"exit\", Id:\"7762ee1de7cdce43e1bfb90a0c426d4624a89de846e88036f24c2b542788d74c\", Status:0x0, Pid:\"init\", Timestamp:(*timestamp.Timestamp)(0xc421118650)}"
Mar 29 23:52:08 ip-172-19-71-145 dockerd[29745]: time="2017-03-29T23:52:08.480344756Z" level=debug msg="Calling GET /v1.24/containers/json?all=1&filters=%7B%22id%22%3A%7B%227762ee1de7cdce43e1bfb90a0c426d4624a89de846e88036f24c2b542788d74c%22%3Atrue%7D%7D&limit=0"
Mar 29 23:52:08 ip-172-19-71-145 dockerd[29745]: time="2017-03-29T23:52:08.608508603Z" level=debug msg="Calling GET /v1.24/containers/7762ee1de7cdce43e1bfb90a0c426d4624a89de846e88036f24c2b542788d74c/json"

That's surprising. I thought the changes to --rm on the daemon side made it such that the daemon was managing the autoremoval process. Are you saying the docker client still has to listen for events from the daemon to ensure removal, even in regular, non-swarm mode?

I'm looking at the code change. It's clear that client using 1.24 is broken like the example above https://github.com/docker/docker/commit/f4bb8c51de3a52bdbc3c3e7be426e6bb90feb421#diff-1fe5ea7c675b9700809b89d15a414576R54.
@cpuguy83 @thaJeztah might have more context on the changes of AutoRemove.

It was decided to ensure that the behavior of --rm didn't change that to have the client wait for it to be removed, since that's the result of the older client-side implementation.

cc @jlhawn who is also looking at this issue.

Hey everyone, can we get an update? What's the latest Docker version that is safe to use with Swarm and --rm?

I think docker-1.13.0 make the switch from waitStop to use event https://github.com/docker/docker/pull/20848.

Hi @dongluochen is this still an issue for swarm? I've kept my docker engines at 1.13, but am interested in upgrading.

@vincentwoo It's still an issue for swarm. Docker is working on https://github.com/moby/moby/pull/32237 to remove dependency on container event. It'll be included in Docker 17.06-ce. So you will need to wait for the release.
Independently Swarm can add event filtering support. That would resolve this issue on Swarm side.

Hi again. Is this still an issue with the release of https://github.com/docker/docker-ce/releases/tag/v17.06.0-ce-rc1

@vincentwoo It's an issue with github.com/docker/swarm, not dockerd/docker client.
Even though the #32237 is merged, github.com/docker/swarm still needs to be updated to take advantage of it (and will have to update it's API version as well).
Basically either swarm needs to fully implement the events API or implement the updated wait API.

I will give someone twenty bucks to do this
On May 30, 2017 6:15 AM, "Brian Goff"<EMAIL_ADDRESS>wrote:

@vincentwoo https://github.com/vincentwoo It's an issue with
github.com/docker/swarm, not dockerd/docker client.
Even though the #32237 is merged, github.com/docker/swarm still needs to
be updated to take advantage of it (and will have to update it's API
version as well).
Basically either swarm needs to fully implement the events API or
implement the updated wait API.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/docker/swarm/issues/2647#issuecomment-304874451, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAlbyAm6_YTiR3du83nLEISd7ZqHEkyoks5r_BZ7gaJpZM4MZbQA
.

I will give someone fifty bucks to get this into the 1.2.8 release.

Updating API version here: https://github.com/docker/swarm/pull/2760
This fixes the --rm issue at least in testing for me (for versions 1.13 and above).

@vincentwoo hah, sorry 1.2.8 is a stop-gap release that fixes a panic in 1.2.7.
1.3.0 is the next major release which will have several significant changes and that is what this is targeted for. We might do 1.2.9 in the interim if features planned for 1.3.0 are taking too long.

@acrosby @vincentwoo would it be possible for you to try building and testing the master branch? Your issue should be fixed there.

Sure. Bit easier if you can cut me an RC binary, though!

@vincentwoo I believe you can use the dockerswarm/docker:master image: https://hub.docker.com/r/dockerswarm/swarm/tags/
Let me know if that works.

@nishanttotla Acting on behalf of @vincentwoo I tested the swarm master branch against docker-ce 17.03 and was not able to reproduce the issue.
I also tested swarm master branch and swarm 1.2.7 against docker-ce 17.06 and was not able to reproduce the issue.

@rileysaurus thanks for the update.
However, I'm not sure why you couldn't reproduce the issue with swarm 1.2.7, because the issue should exist there. Did you mean to say something else?
I'll consider this issue resolved and close it soon, but feel free to reopen in case there is a problem.

Closing this issue now, please re-open if you run into this issue again.


Accessing user information AND authorization code

Hi there,
I have a BE already set up for Google Sign In (works on our Android app) that requires user information and an authorization code to validate. My question is two-fold:
1- Is it possible to access the authorization code from the authentication behavior?
2- Can I get user information from the authorization flow?
In scenario 1 (authentication), I am able to pull a googleUser and get their basic information and their access_token and id_token with getAuthResponse(true), but am unable to see authorization code anywhere in the response. In this case, all I really do is initialize and attachClickHandler to my React element:
initialize
gapi.load('auth2', () => {
	gapi.auth2.init({
		client_id: `${googleSignInID}.apps.googleusercontent.com`,
	})
});

React element
componentDidMount () {
	this.attachClickHandler(
		this.button, // React ref
		{}, // options
		this.onGoogleSuccess,
		this.onGoogleFailure,
	);
}

this.onGoogleSuccess has access to the googleUser response as expected.

In scenario 2 (authorization), trying to initialize as above returns an error (as expected based on warnings from the documentation). However, just loading the client gives a response with user information:
initialize
gapi.load('auth2', () => {});

React element
onGoogleClick () {
	gapi.auth2.authorize({
		client_id: `${googleSignInID}.apps.googleusercontent.com`,
		scope: 'email profile openid code',
		response_type: 'id_token permission code'
	}, response => {
		if (response.error) {
			// An error happened!
			return;
		}
		debugger;
	});
}

The response here seems to be a subset of the response from behavior 1 (although this includes the authorization code).

To recap:

Can I get authorization code from the authentication flow?
Can I get user information from the authorization flow?
Is there a way to fix one or combine the two to get the full information?

Thanks

Hi @serkolch, the user's information is actually contained in the id_token returned. When using gapi.auth2.init/signIn, which has a notion of "User", the library unpacks it and creates the GoogleUser object with basic profile information.
If you want to get both the code and the profile information, you'll have to use scenario 2 and decode the id_token by using a JWT library decoder.

@TMSCH
Thank you so much! I was struggling too long with this before I opened a stack overflow thread and an issue here. I don't know if I'm just stupid / tired or if the documentation is lacking, but it just did not click to me that the id_token could be decoded.

@serkolch glad that solves your issue! There is indeed no mention in the Google Sign-In JS SDK doc on decoding the ID Token client side (in JavaScript), as it is usually unnecessary, so it's not your fault! It is mentioned in the backend auth section though.

@mesqueeb did you get it? were you able to use combine with gapi.auth2.authorize  and firebaase to authorise calendar access.
what about the push events?

@leonasa what push events?

@mesqueeb, thank you for you reply.
I am trying to combine "gapi.auth2.authorize and firebaase to authorise calendar"
But I need an offline/server authentication also. So, I am gapi.auth2 to get an Auth Code to be used in the backend. and be able to get the updates on https://developers.google.com/calendar/v3/push
For now, I can get it to work.
But I am not able to authenticate to Firebase...


Where can I download Apollo-Southbay dataset now?

I can find the information here https://data.apollo.auto/?locale=en-us&lang=en but the download button is disabled I think? Would anyone provide a new link to the dataset? Thanks.

@jinghaomiao @ycool @Capri2014 @xiaoxq
Please help with this issue.

@lizimo061 thanks for your interest in Apollo. Due to system upgrade, dataset downloads are disabled till further notice.

This issue is being closed. Should you have new questions, please feel free to raise issues again. Thanks for your interest in Apollo.

Hi, I can't download the Apollo-Southbay dataset, it requires a baidu account, which I can't create because it only accept registration from china.


User Permissions

Notice:

error handling and some other details in the client still need a better design.
the problem from the last PR, handling the deletion of the projects, is still in progress.

Description of changes
New features:

now each project is corresponding to one user.
permissions

usergroup: normal user

manipulating files created by himself/herself.

manage users and other data via Django's admin site. (localhost:port/admin)

Change in implementation:

the new implementation of authentication and permission system is based on Django's auth module.

Possible influences of this PR
No negative influence expected.
Demonstration of results
summary of the example databse

1 superuser

username admin, password admin
has 2 example projects, each one with 1 document, same as before.
has all kinds of access

1 normal user

username normal, password example123
has 1 example projects, with 1 document.
able to add projects and documents, upgrade, delete, read ones created by himself/herself
user group implementation detail (accessible via admin site)

permissions: "add project" and "add document"

tests:
normal user

valid operations

create project :heavy_check_mark:
create document for the project :heavy_check_mark:
delete the document :heavy_check_mark:
delete the project :heavy_check_mark:
add annotaion to the document :heavy_check_mark:
delete annotation from the document :heavy_check_mark:
add link to the document (not done)
delete link form the document (not done)

invalide operations

access document not belonged to the user :heavy_check_mark:
access project not belonged to the user:heavy_check_mark:

My main question would be on the permission mechanism.
If there are two projects, a user belongs to both projects. Can we configure so that the users have different roles on these two projects?
It looks like to me that there is only one user per project? Normally there should be multiple user per project, and each user can have different roles here, at least two different roles: editor or viewer.
Maybe we can keep the role of the normal user you defined (the superuser for a project, who can delete or add documents). But we should also allow multiple normal users to edit documents (maybe not deleting or adding documents)
Do you think this can be easily changed in the current PR, or you would like us to merge this one and start another PR for that?

OK I will re-design the permission mechanism. Thanks for your suggestions. I prefer not merge until the completion of this module.

summary

uses additional module， django-guardian

pip install django-guardian

now can assign permissions per project, per user. currently two permissions, viewer and editor

how to use the new API:
  # Or justt do this in the admin site, see below
  assign_perm('viewer_project', joe, project)

  joe.has_perm('viewer_project', project)

current permission design:
Group "normal user": add_document, add_project

allow user to create new projects and documents.

To be a viewer: viewer_document

can view the project and its documents.

To be a editor: editor_document or viewer_document

can edit the documents, but cannot delete a document or the project.

In the permissions panel there are 6 permissions, including 4 default permissions and 2 additional permissions: "Can view the project" and "Can edit the project". The 4 default permissions should be ignored. The "Can view the project" means the user is a viewer and the latter means the user is an editor.

Currently， users excluding staff could have one and only one state of the following for each document:

has the permission "Can view the project" - viewer_project
has the permission "Can edit the project" - editor_project
is the owner of the project
has neither of the two permissions and is not the owner

To assign permission per object:

click the project

click "Object Permissions" in the upper-right corner

Enter exact user name to find or edit users already modified before

Assign permissions and ignore default ones.

TODO:

The viewer could still try to add an annotation, which will cause an error. The add annotation button should be disabled for viewers.
It would be better that the 'projects' page could be separated into 3 sections: My Projects, As Viewers and As  Editors. As a result, the function list_user_projects should also be separated into 3 functions.

summary

uses additional module， django-guardian

pip install django-guardian

now can assign permissions per project, per user. currently 6 per object permissions are available.

how to use the new API:
  # Or justt do this in the admin site, see below
  assign_perm('view_project', joe, project)

  joe.has_perm('view_project', project)

now most of the comments are written in Google style.

current permission design:
per object permissions: 6 permissions

read_project:
edit_annotation
edit_text
edit_project
remove_project
new_project

default django permissions:

add_project
view_project

To assign permission per object:

click the project

click "Object Permissions" in the upper-right corner

Enter exact user name to find or edit users already modified before

Assign permissions and ignore default ones.

√: API tested
√√: API tested + tested in the system
×: not complete
TODO:

User without permission to add annotation could still try to add, which may lead to an error. The add button should be disabled.
Now there is no convenient way to combine per object permissions.

Closing this temporarily for database cleaning.


Update Composer dependencies (2024-06-25-00-18)

Visual regression test passed!
View the visual regression test report


Adding shortcuts and snippets?

Hello,
I have been using VSCode and the LaTeX Workshop extension, which is pretty good.  However, I am needing to investigate ConTeXt again, which has led me to this syntax highlighting package.  I'm wondering if there are any plans of extending this to provide code snippets, compilation tools etc?  I have not the time to to it myself, unfortunately, but it would be wonderful to have.
Anyway, thanks for this highlighting package!
Alasdair

Sorry for not answering this, I completely missed this.
Right now I haven't any custom snippets , as I barely use ConTeXt right now.
If you have some and you'd like to share I would put them into this extension.
However, if remember correctly, the ConTeXt distribution actually ships with an vscode extension.
I remember reading something about this on the mailing lists once.
There's also this command doc.
But I haven't tried this option, so I don't know what features it holds, I just threw together this extension to get basic syntax highlighting.


[Event Request] table 39 "Purchase Line" - OnBeforeCalculateOrderDateBOC2OnValidatePlannedReceiptDate

We would like to add a new event OnBeforeCalculateOrderDateBOC2OnValidatePlannedReceiptDate in the following trigger:
        trigger OnValidate()
        var
            CustomCalendarChange: Array[2] of Record "Customized Calendar Change";
            IsHandled: Boolean;
        begin
            if "Promised Receipt Date" <> 0D then begin
                if "Planned Receipt Date" <> 0D then begin
                    CustomCalendarChange[1].SetSource(CalChange."Source Type"::Location, "Location Code", '', '');
                    "Expected Receipt Date" :=
                      CalendarMgmt.CalcDateBOC(InternalLeadTimeDays("Planned Receipt Date"), "Planned Receipt Date", CustomCalendarChange, false)
                end else
                    "Expected Receipt Date" := "Planned Receipt Date";
            end else
                if "Planned Receipt Date" <> 0D then begin
                    CustomCalendarChange[1].SetSource(CalChange."Source Type"::Vendor, "Buy-from Vendor No.", '', '');
                    CustomCalendarChange[2].SetSource(CalChange."Source Type"::Location, "Location Code", '', '');
                    //A108F0071.Event.ns
                    IsHandled := false;
                    OnBeforeCalculateOrderDateBOC2OnValidatePlannedReceiptDate(Rec, CustomCalendarChange, IsHandled);
                    if not IsHandled then
                        //A108F0071.Event.ne
                        "Order Date" :=
                            CalendarMgmt.CalcDateBOC2(AdjustDateFormula("Lead Time Calculation"), "Planned Receipt Date", CustomCalendarChange, true);
                    CustomCalendarChange[1].SetSource(CalChange."Source Type"::Location, "Location Code", '', '');
                    if not ExpectedReceiptDateCalculated then //A108F0071.n
                        "Expected Receipt Date" :=
                          CalendarMgmt.CalcDateBOC(InternalLeadTimeDays("Planned Receipt Date"), "Planned Receipt Date", CustomCalendarChange, false)
                end else
                    GetUpdateBasicDates;

            if not TrackingBlocked then
                CheckDateConflict.PurchLineCheck(Rec, CurrFieldNo <> 0);
        end;

Event Signature:
[IntegrationEvent(true, false)]
local procedure OnBeforeCalculateOrderDateBOC2OnValidatePlannedReceiptDate(var PurchaseLine: Record "Purchase Line"; CustomCalendarChange: Array[2] of Record "Customized Calendar Change"; var IsHandled: Boolean)
begin
    //A108F0071.Event
end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.


Short solution needed: "How to delete docker image" (docker)

Please help us write most modern and shortest code solution for this issue:
How to delete docker image (technology: docker)
Fast way
Just write the code solution in the comments.
Prefered way

Create pull request with a new code file inside inbox folder.
Don't forget to use comments to make solution explained.
Link to this issue in comments of pull request.

How to delete docker image


Newbie here, please answer in layman's terms

so i've downloaded both vagrant and virtualbox (for some reason, virtualbox has an icon and an actual app and vagrant is sort of there but not there?) and ive copy pasted the stuff in the readme to terminal. first instruction downloaded stuff for me. second one doesn't work. third one doesn't either. help?

It sounds like vagrant hasn't been put on your path.

The installer will automatically add vagrant to your system path so that it is available in terminals. If it is not found, please try logging out and logging back in to your system (this is particularly necessary sometimes for Windows).

src: https://docs.vagrantup.com/v2/installation/
This should allow you to complete all the tasks. If you are still having problems, please report back!


Updated command parsing regex

The updated regex fixes issue #44
I've tested the updated regex myself and it was able to handle any command I threw at it. The functional differences in the expression are:

any amount of spaces (greater than 0, of course) is allowed between capturing groups
item match now only matches non-whitespace character (I'm assuming that spaces are not allowed in usernames given to the bot - if that's not the case, I can adjust the regex accordingly)

It is actually valid for user name to contain a space. However, there is a variant of most user names that the MediaWiki software calls the "dbkey" variant. This is basically where spaces are replaced with underscores. This is used in the URL of user pages, for example.
I don't know right now which format we receive from irc.wikimedia.org. This affects autoblacklisting functionality, as well as broadcasted "BL ADD" operations and such.
We'll also need to look at the existing db files of a few CVNBots to see if there are existing entries with either spaces or underscores, to make sure they can still be looked up (via the "intel" command) and still be removed/re-added (via the "bl del" and "bl add" commands).

Looking at the logs in #cvn-sw, it looks like spaces are indeed allowed.
I found this entry:
(07:48:50 AM) CVNBot8: New user [[hi:User:Payal Sinha 05]] created. CentralAuth: https://meta.wikimedia.org/wiki/Special:CentralAuth/Payal_Sinha_05

Encoding the username is done in the function WikiEncode, which is only called when constructing a URL, which leads me to believe that usernames are written into the database in the same format as provided by Wikipedia (with spaces).


Fixing the issue in delta calculation

Fix the problem mentioned in the issue #294.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 1 (0.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 81.63%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

pypots/data/utils.py
0
1
0.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
5137

Relevant Lines:
6293

💛  - Coveralls


Removed deprecated wallets

Deprecated Wallets

Unilogin
Dapper

closes #1766

Travis automatic deployment:
https://pr1922--safereact.review.gnosisdev.com/rinkeby/app

Travis automatic deployment:
https://pr1922--safereact.review.gnosisdev.com/rinkeby/app

@matextrem please do update bnc-onboard as part of this PR, and make sure everything works.

Travis automatic deployment:
https://pr1922--safereact.review.gnosisdev.com/rinkeby/app

Looks good to me. Dapper and Unilogin are not availables anymore

I also checked that I could connect with some of the other wallets with no issues (MM, Trezor, portis, Authereum...)


Implement PostConditions formatting

Currently, the number of PostConditions is limited to 16 due to memory restrictions. We need to format each post-conditions before presenting the relevant info through the UI. This formatting would be on-demand to reduce the memory consumption during the parsing stage.

closed by #16


Define a set of supported Linux flavors

There are too many Linux versions to support. There will always be weird problems with missing dependencies and graphics issues.
We should define a set of officially supported Linux versions, and make sure those always work out-of-the-box.
For all other Linux versions we should do our best to provide good error messages and documentation to help guide users to fix their own problems, and perhaps even submit a patch!
We should also document fallbacks, like using a web-viewer when the visualizer graphics fails.

For Ubuntu, 20.04 seems like a reasonable minimum considering the support for Ubuntu 18.04 ends on April 2023 (https://wiki.ubuntu.com/Releases).
If supporting 18.04 is easy, that I will change my mind (PRs welcome!)


Fixing region and zone logic

This patch moves region and zone into regions.go and grabs region and zone as part of GetSession
Signed-off-by: wolf<EMAIL_ADDRESS>

Tested, and some regions (e.g. dal and tor) won't work for me:
X Sorry, your reply was invalid: Invalid region "dal"

osa worked. Can you reproduce?

I have hit similar issues recently, I have not nailed down root cause.  This does not seem to be an issue with specific regions, eg. dal and tor, as I can get those regions to pass.  Debugging this last week, if we dump both the choice and what the installer tried to match that choice to there is a miss match.  This seems to be intermittent.  Both dal worked for me in this test:
┌<EMAIL_ADDRESS>(oc7831305573)
│ ~/workspace/src/github.com/installer/bin
└─> ./openshift-install create install-config
? SSH Public Key
? Platform powervs
? IBM Cloud User ID asdf
? IBM Cloud API Key [? for help] ****
? Region tor
? Zone tor01
? Base Domain asdf
? Cluster Name asdf
? Pull Secret [? for help] *************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************INFO Install-Config created in: .
 2021-09-14 13:56:48
And dal failed in this test:
 2021-09-14 13:58:39
┌<EMAIL_ADDRESS>(oc7831305573)
│ ~/workspace/src/github.com/installer/bin
└─> ./openshift-install create install-config
? SSH Public Key
? Platform powervs
? IBM Cloud User ID asdf
? IBM Cloud API Key [? for help] ****
X Sorry, your reply was invalid: Invalid region "dal"
? Region  [Use arrows to move, type to filter, ? for more help]

@clnperez good catch.  I can replicate those two regions which I believe I have root cause for.
I believe, and have yet to finish testing, that I failed to sort both long and short regions, which leads to a miss match.
Further, I catch the same error in add-ipi intermittently passing and failing on the same regions.
Looking into it on Friday and Monday when I dump both variables it is checking there is a miss match.
Specifically the choice the user selected was correct but the index and therefore the thing it was comparing against was incorrect.
I thought this was an error on my side, because it seems to occur when the menu scrolls down, again intermittently.
I have avoided this issue by arrowing up and cycling from the bottom up and have not failed in this way yet.

works now. LTGM


Update installation instructions

caxlsx is a dependency of axlsx_rails.
rubyzip is a dependency of caxlsx.

Thanks @aried3r. I think there was a need at one point when all the dependencies were indeterminate. Not necessary now.


UI Home Page

I want to change the UI of the home page. Like text style, footer also there are many colours are used on the home page so limit them. For the home page mainly use colours that are in the logo of the organisation or mainly 2-3 colours. Please assign this issue to me I am a GSSOC participant.

@RahulBansal0502 we already have  issues #48 and #90 for the same check that you can take them


Covid Dashboard: NYT geographic exceptions no longer returned by place-obs apis

NOTE: I'm not 100% sure this was the root of the problem, but I can't find any other explanation and I can't reproduce previous API responses.
There was a change to the data returned when requesting the county population using the place-obs API, which caused the dashboard's server to crash.
The following API requests would return a key/value for both geoId/3651000 and geoId/2938000.
req_url="https://api.datacommons.org/bulk/place-obs",
req_json={"placeType": "County", "populationType": "Person", "observationDate": "2018"}.

The value contained the name of the city, but not the population.
Today, the API is suddenly no longer returning any key/value pairs for geoId/3651000 and geoId/2938000. So NaN is stored in the data frame as the name of the city.
During the calculations, when iterating over the names in the data frame, it encounters NaN as a name since no value was stored and the server crashes.

The temporary workaround to fix the issue was to manually write the data for the geographic exceptions.
    self.data.loc['geoId/3651000', 'state_dcid'] = "geoId/36"
    self.data.loc['geoId/3651000', 'state_name'] = "New York"
    self.data.loc['geoId/3651000', 'county_name'] = 'NYC'

The next step is to use a different API to retrieve the information for the cities since they are not counties.

Per offline discussion, this is due to a data bug that changes the type of "New York" in at different version. To make it consistent, would suggest to not mingle place-obs and get_places_in api.


Intellisense should suggest classes that are in the loaded projects/namespaces + add using

Environment data
dotnet --info output:
Product Information:
Version:            1.0.0-preview2-003131
Commit SHA-1 hash:  635cf40e58
Runtime Environment:
OS Name:     Mac OS X
OS Version:  10.12
OS Platform: Darwin
RID:         osx.10.12-x64
VS Code version: 1.6.1
C# Extension version: 1.4.1
Steps to reproduce

Create a public class under a namespace of one of your projects.
Go to another project /different namespace and on a different class try to create an instance of the class you created on step 1.

Expected  behavior
Intellisense to show the class created previously suggesting it and if I select it, the relevant using namespace should be added to the file.
Actual behavior
You need to type the name of the class and then you can quick fix to add the namespace.

This is a nice feature request, though I wouldn't add it without also adding it to Visual Studio. This should probably be moved to https://github.com/dotnet/roslyn.

This issue was moved to dotnet/roslyn#17006

I've moved this over to https://github.com/dotnet/roslyn. If we decide to do this in Roslyn and Visual Studio, we'll consider whether to bring it to C# for VS Code as well.