Containers remain running, session timeouts are ignored

Hi, I have an application that runs multiple short (<5 min) selenium tests concurrently, and sometimes the browser containers and corresponding video recorder containers remain running forever, until I kill them manually.
Additionally, the application sometimes reports the following error when connecting to selenoid server:
SEVERE: [...] Could not create RemoteWebDriver session: http://<IP_ADDRESS>:4444/wd/hub
org.openqa.selenium.WebDriverException: New session attempts retry count exceeded (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 244.03 seconds
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: host: '...', ip: '...', os.name: 'Linux', os.arch: 'amd64', os.version: '4.9.0-0.bpo.8-amd64', java.version: '1.8.0_171'
Driver info: driver.version: RemoteWebDriver

Here's an example of two stuck containers:
# docker ps
9b6c4a05abf9        video-recorder:4.0   "/entrypoint.sh"         26 minutes ago      Up 26 minutes                                    friendly_tesla
d663fffd6132        chrome:72.0          "/entrypoint.sh"         26 minutes ago      Up 26 minutes       4444/tcp, 8080/tcp           clever_dubinsky
82ea83072267        video-recorder:4.0   "/entrypoint.sh"         27 minutes ago      Up 27 minutes                                    flamboyant_liskov
097db9e7a737        chrome:72.0          "/entrypoint.sh"         27 minutes ago      Up 27 minutes       4444/tcp, 8080/tcp           quirky_pasteur

selenoid.json:
{
    "selenoid": {
        "image": "aerokube/selenoid:1.8.2",
        "run": [
            "-disable-queue",
            "-max-timeout", "90s",
            "-session-delete-timeout", "5m",
            "-timeout", "5m",
            "-service-startup-timeout", "30s",
            "-session-attempt-timeout", "30s",
            "-mem", "512m",
            "-limit", "100"
        ]
    },
    "video-recorder": {
        "image": "registry.watchmouse.com/asm/selenoid/video-recorder:4.0"
    }
}

docker version:
ii  docker-ce                            18.06.3~ce~3-0~debian             amd64        Docker: the open-source application container engine
rc  docker-engine                        17.05.0~ce-0~debian-jessie        amd64        Docker: the open-source application container engine

selenoid docker logs for the two stuck containers:
2019/08/12 11:10:59 [89719] [LOCATING_SERVICE] [chrome] []
2019/08/12 11:10:59 [89719] [USING_DOCKER] [chrome] [72.0]
2019/08/12 11:10:59 [89719] [CREATING_CONTAINER] [chrome:72.0]
2019/08/12 11:10:59 [89719] [STARTING_CONTAINER] [chrome:72.0] [097db9e7a737cc8593377122f0ca28f15cea7b61c81340e15ae0ce99c2e10ccf]
2019/08/12 11:11:00 [89719] [CONTAINER_STARTED] [chrome:72.0] [097db9e7a737cc8593377122f0ca28f15cea7b61c81340e15ae0ce99c2e10ccf] [0.86s]
2019/08/12 11:11:00 [89719] [CREATING_VIDEO_CONTAINER] [video-recorder:4.0]
2019/08/12 11:11:00 [89719] [STARTING_VIDEO_CONTAINER] [video-recorder:4.0] [82ea83072267f1f8814f1b15d18fc81b4e568cae96e626b3d9ddcb09cac3977a]
2019/08/12 11:11:00 [89719] [VIDEO_CONTAINER_STARTED] [video-recorder:4.0] [82ea83072267f1f8814f1b15d18fc81b4e568cae96e626b3d9ddcb09cac3977a] [0.60s]
2019/08/12 11:11:00 [89719] [SERVICE_STARTED] [chrome:72.0] [097db9e7a737cc8593377122f0ca28f15cea7b61c81340e15ae0ce99c2e10ccf] [0.05s]
2019/08/12 11:11:00 [89719] [PROXY_TO] [097db9e7a737cc8593377122f0ca28f15cea7b61c81340e15ae0ce99c2e10ccf] [http://<IP_ADDRESS>:4444/]
2019/08/12 11:11:00 [89719] [SESSION_ATTEMPTED] [http://<IP_ADDRESS>:4444/] [1]
2019/08/12 11:11:03 [89719] [SESSION_CREATED] [f95e707e57bb38eb8fbc995657bbb9b8] [1] [3.85s]
...
2019/08/12 11:11:22 [89732] [LOCATING_SERVICE] [chrome] []
2019/08/12 11:11:22 [89732] [USING_DOCKER] [chrome] [72.0]
2019/08/12 11:11:22 [89732] [CREATING_CONTAINER] [chrome:72.0]
2019/08/12 11:11:22 [89732] [STARTING_CONTAINER] [chrome:72.0] [d663fffd6132650645fa82543ba201c423116814c56f82e2cab5bd219325709e]
2019/08/12 11:11:23 [89732] [CONTAINER_STARTED] [chrome:72.0] [d663fffd6132650645fa82543ba201c423116814c56f82e2cab5bd219325709e] [0.73s]
2019/08/12 11:11:23 [89732] [CREATING_VIDEO_CONTAINER] [video-recorder:4.0]
2019/08/12 11:11:23 [89732] [STARTING_VIDEO_CONTAINER] [video-recorder:4.0] [9b6c4a05abf941387eea5d1d4158f10c04d29b7694280c4878a0ed0bca237806]
2019/08/12 11:11:24 [89732] [VIDEO_CONTAINER_STARTED] [video-recorder:4.0] [9b6c4a05abf941387eea5d1d4158f10c04d29b7694280c4878a0ed0bca237806] [0.99s]
2019/08/12 11:11:26 [89732] [SERVICE_STARTED] [chrome:72.0] [d663fffd6132650645fa82543ba201c423116814c56f82e2cab5bd219325709e] [1.46s]
2019/08/12 11:11:26 [89732] [PROXY_TO] [d663fffd6132650645fa82543ba201c423116814c56f82e2cab5bd219325709e] [http://<IP_ADDRESS>:4444/]
2019/08/12 11:11:26 [89732] [SESSION_ATTEMPTED] [http://<IP_ADDRESS>:4444/] [1]
2019/08/12 11:11:56 [89732] [SESSION_ATTEMPT_TIMED_OUT] [30s]
2019/08/12 11:11:56 [89732] [SESSION_FAILED] [http://<IP_ADDRESS>:4444/] [New session attempts retry count exceeded]

chrome docker logs:
Waiting xvfb...
Waiting xvfb...
Waiting xvfb...
Starting ChromeDriver 2.45.615279 (12b89733300bd268cff3b78fc76cb8f3a7cc44e5) on port 4444
All remote connections are allowed. Use a whitelist instead!

Waiting xvfb...
Starting ChromeDriver 2.45.615279 (12b89733300bd268cff3b78fc76cb8f3a7cc44e5) on port 4444
All remote connections are allowed. Use a whitelist instead!

chrome debug.log:
[46:72:0812/111133.977857:ERROR:bus.cc(396)] Failed to connect to the bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory
[80:80:0812/111137.401773:ERROR:sandbox_linux.cc(364)] InitializeSandbox() called with multiple threads in process gpu-process.
[46:268:0812/111138.380345:ERROR:bus.cc(396)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
[46:46:0812/111140.532293:WARNING:password_store_factory.cc(261)] Using basic (unencrypted) store for password storage. See https://chromium.googlesource.com/chromium/src/+/master/docs/linux_password_storage.md for more information about password storage options.

[42:68:0812/111101.346539:ERROR:bus.cc(396)] Failed to connect to the bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory
[76:76:0812/111101.598793:ERROR:sandbox_linux.cc(364)] InitializeSandbox() called with multiple threads in process gpu-process.
[42:264:0812/111102.163171:ERROR:bus.cc(396)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
[42:42:0812/111102.360733:WARNING:password_store_factory.cc(261)] Using basic (unencrypted) store for password storage. See https://chromium.googlesource.com/chromium/src/+/master/docs/linux_password_storage.md for more information about password storage options.

video recorder docker logs
Waiting for display to open...
ffmpeg version 3.4 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 6.3.0 (Alpine 6.3.0)
  configuration: --prefix=/usr --enable-avfilter --enable-gpl --enable-libx264 --disable-stripping --disable-ffplay --disable-ffprobe --disable-ffserver --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-w32threads --disable-alsa --disable-audiotoolbox --disable-cuda --disable-cuvid --disable-d3d11va --disable-dxva2 --disable-nvenc --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --disable-debug
  libavutil      55. 78.100 / 55. 78.100
  libavcodec     57.107.100 / 57.107.100
  libavformat    57. 83.100 / 57. 83.100
  libavdevice    57. 10.100 / 57. 10.100
  libavfilter     6.107.100 /  6.107.100
  libswscale      4.  8.100 /  4.  8.100
  libswresample   2.  9.100 /  2.  9.100
  libpostproc    54.  7.100 / 54.  7.100
[x11grab @ 0x55d61afbe480] Cannot get the image data event_error: response_type:0 error_code:128 sequence:9 resource_id:604 minor_code:4 major_code:130.
[x11grab @ 0x55d61afbe480] Stream #0: not enough frames to estimate rate; consider increasing probesize
Input #0, x11grab, from 'browser:99':
  Duration: N/A, bitrate: N/A
    Stream #0:0: Video: rawvideo (BGR[0] / 0x524742), bgr0, 1920x1080, 7 fps, 1000k tbr, 1000k tbn, 1000k tbc
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (libx264))
Press [q] to stop, [?] for help
[libx264 @ 0x7f6a5d96e080] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 AVX2 LZCNT BMI2
[libx264 @ 0x7f6a5d96e080] profile High, level 3.1
[libx264 @ 0x7f6a5d96e080] 264 - core 148 - H.264/MPEG-4 AVC codec - Copyleft 2003-2016 - http://www.videolan.org/x264.html - options: cabac=1 ref=1 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=2 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=1 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=1 keyint=250 keyint_min=7 scenecut=40 intra_refresh=0 rc_lookahead=10 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to '/data/selenoid78c6d37ed98c158bc985e2b2772a100e.mp4':
  Metadata:
    encoder         : Lavf57.83.100
    Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuv420p, 1280x720, q=-1--1, 7 fps, 14336 tbn, 7 tbc
    Metadata:
      encoder         : Lavc57.107.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
frame=10149 fps=5.9 q=24.0 size=     256kB time=00:2

Waiting for display to open...
ffmpeg version 3.4 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 6.3.0 (Alpine 6.3.0)
  configuration: --prefix=/usr --enable-avfilter --enable-gpl --enable-libx264 --disable-stripping --disable-ffplay --disable-ffprobe --disable-ffserver --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-w32threads --disable-alsa --disable-audiotoolbox --disable-cuda --disable-cuvid --disable-d3d11va --disable-dxva2 --disable-nvenc --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --disable-debug
  libavutil      55. 78.100 / 55. 78.100
  libavcodec     57.107.100 / 57.107.100
  libavformat    57. 83.100 / 57. 83.100
  libavdevice    57. 10.100 / 57. 10.100
  libavfilter     6.107.100 /  6.107.100
  libswscale      4.  8.100 /  4.  8.100
  libswresample   2.  9.100 /  2.  9.100
  libpostproc    54.  7.100 / 54.  7.100
[x11grab @ 0x55e4884cf480] Cannot get the image data event_error: response_type:0 error_code:128 sequence:9 resource_id:604 minor_code:4 major_code:130.
[x11grab @ 0x55e4884cf480] Stream #0: not enough frames to estimate rate; consider increasing probesize
Input #0, x11grab, from 'browser:99':
  Duration: N/A, bitrate: N/A
    Stream #0:0: Video: rawvideo (BGR[0] / 0x524742), bgr0, 1920x1080, 7 fps, 1000k tbr, 1000k tbn, 1000k tbc
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (libx264))
Press [q] to stop, [?] for help
[libx264 @ 0x7fe336975080] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 AVX2 LZCNT BMI2
[libx264 @ 0x7fe336975080] profile High, level 3.1
[libx264 @ 0x7fe336975080] 264 - core 148 - H.264/MPEG-4 AVC codec - Copyleft 2003-2016 - http://www.videolan.org/x264.html - options: cabac=1 ref=1 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=2 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=1 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=1 keyint=250 keyint_min=7 scenecut=40 intra_refresh=0 rc_lookahead=10 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to '/data/selenoid430d74b6de2142dc912d4a3de94ad784.mp4':
  Metadata:
    encoder         : Lavf57.83.100
    Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuv420p, 1280x720, q=-1--1, 7 fps, 14336 tbn, 7 tbc
    Metadata:
      encoder         : Lavc57.107.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
frame=11334 fps=6.3 q=24.0 size=     768kB time=00:26:57.14 bitrate=   3.9kb

@nite23 what is your host operating system? If I memorized it correctly, there were some similar bugs on CentOS \ RedHat.

It's Debian 8.11  (I know, old, but we cannot upgrade at the moment)
Linux hostname 4.9.0-0.bpo.8-amd64 #1 SMP Debian 4.9.110-3+deb9u4~deb8u1 (2018-08-24) x86_64 GNU/Linux

@nite23 what is your Docker version then?

Docker version 18.06.3-ce, build d7080c1

@nite23 could you try to update Selenoid to 1.9.2. There were some fixes related to container removal.

Update to 1.9.2 resolved the issue. Thanks!

Not sure if this is directly related but in my case, it had timeouts because the timeout from the test runner with Remote Web Driver was taking into care once sent request, so it included the queue waiting time in the test run timeout.
Workaround was to make the test runner use the workers parameters to match the amount of sessions allowed in selenoid, that way the runner never send more test than allowed and no queued jobs with weird timeouts.


Handle small gzipped layers

These are encountered when analyzing python:3 container image.

@wagoodman  FYI this is a duplicate of #511 that also addresses @tbroyer's comment.


Edge Runtime

Is Edge Runtime support planned? If so, is there already an ETA?

If should be supported already, did you run into any issue?

If should be supported already, did you run into any issue?

Sorry, the build error was not caused by Nextra but by the .mjs suffix of my next.config file. With .js suffix everything works.


Solution at "hard" exercise at lecture2.ctt

Hello ,I can't find a way to show the undefined :
-- Another example of a simple composition: compose p with its inverse
compinv (A : U) (a b : A) (p : Path A a b) : Path A a a =
 <i> comp (<_> A) (p @ i) [ (i = 0) -> <j> a, (i = 1) -> <j> p @ -j ]

exlemma (A : U) (a : A) :
  Path (Path A a a) (<j> a) (compinv A a a (<i> a)) = undefined

-- Exercise (hard): is "compinv A a b p" Path equal to <j> a?
ex (A : U) (a b : A) (p : Path A a b) :
  Path (Path A a a) (<j> a) (compinv A a b p)
    = trans (Path A a a) (<_> a) (compinv A a a (<_> a)) (compinv A a b p) (exlemma A a)(<k> <i> comp (<_> A) (p @ (i /\ k)) [ (i = 0) -> <j> a, (i = 1) -> <j> p @ (k /\ -j) ])

It is from your second lecture here
In algebraic topology, two constant paths are equal by definition.

Closing as lecture3.ctt has the answer.
Your slides on [cubicaltt] (http://www-sop.inria.fr/members/Anders.Mortberg/slides/Cornell-cubicaltt.pdf) is a good introduction to cubicaltt. You could add them with the lectures here.

Indeed, the composition of two constant paths is not convertible to only one constant path in cubicaltt. I think I discuss why this is the case in some later lecture. We had a version where we tried this (by enforcing something we called "regularity"), but it never worked out. The problem is to define a "regular" composition operation for the universe.
Proving your exlemma should be a little easier than the original exercise, the only difference is that p is refl so that the inversion disappears. If you have done the constant square exercise of lecture3.ctt this should be really easy, just compute a composition in a cube with the back face being the compinv composition and all of the other sides constant. Let me know if you want a solution to it or if you can figure it out yourself.

Hello! This was my attempted solution:
ex (A : U) (a b : A) (p : Path A a b) :
  Path (Path A a a) (compinv A a b p) (<i> a) =
    <i j> comp (<_> A) (p @ i \/ j) {- bottom -} [
      (i = 0) -> <k> p @ j /\ -k, -- back
      (i = 1) -> <k> p @      -k, -- front
      (j = 0) -> <k> p @ i /\ -k, -- left
      (j = 1) -> <k> p @      -k, -- right
    ]

Type checking failed: path endpoints don't match for <j> comp (<_> A) (p @ (i \/ j)) [ (i = 0) -> <k> p @ (j /\ -k), (i = 1) -> <k> p @ -k, (j = 0) -> <k> p @ (i /\ -k), (j = 1) -> <k> p @ -k ], got (<!0> a,<!0> a), but expected (<!0> comp (<!1> A) (p @ !0) [ (!0 = 0) -> <!1> a, (!0 = 1) -> <!1> p @ -!1 ],<!0> a)

I then looked at the solution provided in lecture3.ctt and saw that it only specified 3 sides enclosed within [ ]. If I comment out the back line then my attempt works. Could you explain why only 3 sides are necessary? What does the pattern look like in higher dimensions?


Add new step: s3Delete

This deletes the object stored in the bucket at the given path. If the "recursive" flag is set, then this interprets the path as a folder and deletes all of the objects stored "within" that folder.
Of course, S3 does not actually contain folders; it is a flat structure. However, S3 has full support for using it to contain pseudo-hierarchies using a delimiter and some "prefix" logic.  Since the "s3Upload" and "s3Download" steps already support this with the "/" delimiter, "s3Delete" does so as well.
In terms of logging, "s3Delete" will log analogously to "s3Upload" and "s3Download"; that is, it will log the beginning and end of the operation.  In addition, it will log when it actually deletes an object.

Hi, thank you for this great addition.
Is there a reason to have the "recursive" flag instead of checking if the path ends with "/"?

There's nothing in S3 that prevents you from having an object named "a" and another one named "a/", so I thought that this would be fairly explicit.  However, you have a point that the directory naming conventions are kinda set in S3; even the web viewer supports it.
I'll get that changed around for you.  It simplifies the calling convention, and it probably will be easier for people to understand.
New patch coming in in 20 minutes once I get everything tested again.

Thanks, great. Is then is in line with the behavior of the download step.

Okay, all done!  Plus I added the tiniest of unit tests around the s3Upload and s3Download steps, so now all of the S3 steps have some small coverage.


Update Python API links to reflect new structure

The primary IQ# Python APIs were moved into qsharp-core package, and URLs to the API documentation changed accordingly (see https://github.com/MicrosoftDocs/python-quantum/pull/21).
This change updates this repo to point to the new location of the linked Python documentation.
(This change will not be merged until after the new Python API docs go live.)

Acrolinx Scorecards
A minimum Acrolinx score of 80 is required.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology.

Article
Acrolinxscore
Lowestcategoryscore
Spellingissues
Scorecard
Processed

articles/resources/relnotes.md
76
38
22
link
:white_check_mark:

articles/user-guide/host-programs.md
81
48
4
link
:white_check_mark:

articles/user-guide/libraries/additional-libraries.md
86
62
1
link
:white_check_mark:

articles/user-guide/machines/full-state-simulator.md
85
54
0
link
:white_check_mark:

articles/user-guide/machines/resources-estimator.md
86
52
0
link
:white_check_mark:

articles/user-guide/machines/toffoli-simulator.md
81
46
1
link
:white_check_mark:

More information about Acrolinx

Install Acrolinx locally for VSCode
False positives or issues
Troubleshooting issues with Acrolinx

Docs Build status updates of commit 7f1cf0f:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

api/index.md
:bulb:Suggestion
View
Details

api/toc.yml
:white_check_mark:Succeeded
View

articles/resources/relnotes.md
:white_check_mark:Succeeded
View

articles/user-guide/host-programs.md
:white_check_mark:Succeeded
View

articles/user-guide/libraries/additional-libraries.md
:white_check_mark:Succeeded
View

articles/user-guide/machines/full-state-simulator.md
:white_check_mark:Succeeded
View

articles/user-guide/machines/resources-estimator.md
:white_check_mark:Succeeded
View

articles/user-guide/machines/toffoli-simulator.md
:white_check_mark:Succeeded
View

api/index.md

Line 3, Column 8: [Suggestion-duplicate-titles] Title 'Q# standard library for Microsoft Quantum - Q# reference - Microsoft Quantum' is duplicated in: 'index.md(3,8), qsharp/index.md(3,8)'. Titles must be unique within a docset.
Line 4, Column 14: [Suggestion-duplicate-descriptions] Attribute 'description' with value 'Reference documentation for the Q# standard library for Microsoft Quantum' is duplicated in 'index.md(4,14)', 'qsharp/index.md(4,14)'. NOTE: This Suggestion will become a Warning in late October, 2020.

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


Web: remove old home indicator

We still keep the old home indicator in code even though not used.

PR: https://github.com/microsoft/vscode/pull/115599


Hide the 🧩 Toggle Extensions toolbar button in Vivaldi 6.9

The Ctrl+E still works and only shows the desired extension buttons, but the toggle button to show and hide extensions is always visible instead of always hidden. Need to update its style here.

Tested and working on Vivaldi 6.9.3447.37 stable x64 on Windows.


Parsing no longer works when exported as jar file

Hello,
I'm using EmojiParser.parseToAliases(message) to convert emojis to to their aliases.
I'm reading messages from a third-party application which contain emojis.
I have two applications set up, one which I'm running from IntelliJ and one which is being exported as a .jar fille and executed via java -ver blah.jar
Whilst the pure Java application successfully parses the emoji to an alias, the exact same code exported as a .jar does not parse the emoji at all and still returns the emoji from EmojiParser.parseToAliases().
Happy to share some more code, thanks.

Turns it this is an issue when the emoji-java is exported in a jar file in general. Updated main post.

same issue here, we are using gradle shadow plugin 1.2.3

@manuelgu Not sure if you tried this but in the file emojis.json you would notice that the emojis are unicode, let's replace the sunglasses emoji by its UTF-16 hex character "\uD83D\uDE0E" for example. Run your program in your IDE and as a jar, it should normally convert the emoji to its alias (short code).
Let me know if it worked for you.

A good idea; I'll give it a shot sometime soon.
-Daniel
On Thu, May 12, 2016, 10:53 PM Jean-Pierre Pommet<EMAIL_ADDRESS>wrote:

@manuelgu https://github.com/manuelgu Not sure if you tried this but in
the file emojis.json you would notice that the emojis are unicode, let's
replace the sunglasses emoji by its UTF-16 hex character "\uD83D\uDE0E" for
example. Run your program in your IDE and as a jar, it should normally
convert the emoji to its alias (short code).
Let me know if it worked for you.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
https://github.com/vdurmont/emoji-java/issues/33#issuecomment-218958016

My IntelliJ terminal has UTF-8 encoding (that is why it works) while the Windows Powershell uses Windows-1252. I couldn't figure a way to change that, but since my application is running on a linux terminal in bash it doesn't really matter, because that one has UTF-8 encoding as well.
Replacing the emojis in the file sounds like a great idea though!


Filter for Folder Copy to only copy based on Key Regex

I would like to be able to limit the results of the folder copy only to those whose key matches a particular regular expression.
use case
For the launch of TD, we needed to copy small subsets of common variables (e.g. RUBY_GC_MALLOC_MIN, RUBY_GC_MALLOC_MAX, etc.), and having regular expression selection of keys would have streamlined this work significantly.

This is best accomplished with a folder list -> regex -> folder write using the API. The CLI doesn't support writes directly, but the API is perfect for that.


Add U-net style skip connections to the semantic-segmentation example

To address the recent interest in a U-net implementation, this PR adds a possibly-useful resize_to_prev layer, and upgrades the semantic-segmentation example.
Compared to the corresponding network without skip connections (see #943), the updated example should be able to draw more details:

However, overall it's not too much more accurate on the PASCAL VOC 2012 data -- this time around, the training should finish like this (note the lower loss but not much better accuracy, when compared to numbers reported in #943):
step#: 117901  learning rate: 0.001  average loss: 0.0239372    steps without apparent progress: 4941
step#: 118018  learning rate: 0.001  average loss: 0.0238844    steps without apparent progress: 4878
step#: 118135  learning rate: 0.001  average loss: 0.0235096    steps without apparent progress: 4840
step#: 118252  learning rate: 0.0001  average loss: 0.0232595    steps without apparent progress: 4178
step#: 118369  learning rate: 0.0001  average loss: 0.0243033    steps without apparent progress: 4282
step#: 118486  learning rate: 0.0001  average loss: 0.0214507    steps without apparent progress: 4412
step#: 118603  learning rate: 0.0001  average loss: 0.0246106    steps without apparent progress: 4516
step#: 118720  learning rate: 0.0001  average loss: 0.0239061    steps without apparent progress: 4646
step#: 118837  learning rate: 0.0001  average loss: 0.0219395    steps without apparent progress: 4750
step#: 118954  learning rate: 0.0001  average loss: 0.0220728    steps without apparent progress: 4880
Saved state to pascal_voc2012_trainer_state_file.dat_
step#: 119063  learning rate: 0.0001  average loss: 0.0224262    steps without apparent progress: 4903
Saved state to pascal_voc2012_trainer_state_file.dat
saving network
Testing the network...
train accuracy  :  0.991385
val accuracy    :  0.851742

However, on some other datasets the U-net approach can be very useful. (I guess in particular when there are lots of details to draw, but the classification task itself is not too difficult.)
~Note that I still want to find a network architecture that is clean, performs well, and compiles in finite time using MSVC++ (see the comment below). So I'd prefer not to have this merged just yet. But at the same time wanted to make it available already, in case e.g. @goldbattle wants to try it out.~

Sweet, thanks for the PR.  I'll look it over in detail in a little bit.
But about MSVC, I thought deeper networks were working in the newest version now that we have a few workarounds in there.  I guess this one is still just too deep?  Are you using the newest MSVC?

@davisking Ok, that could be. I'm still mainly on Visual Studio 2015. Will try 2017 as well.

But about MSVC, I thought deeper networks were working in the newest version now that we have a few workarounds in there. I guess this one is still just too deep? Are you using the newest MSVC?

Woohoo, the latest MSVC (19.16.27025.1) does indeed fix essentially all my speed issues! This will change my life! Thanks so much for pointing this out, Davis! 🚀
... so, will be back with an updated U-net structure shortly.

Sweet :)

Here's a trained network: https://www.dropbox.com/s/etdk5nlxa22e4tf/semantic_segmentation_voc2012net_v2.dnn

Sweet, so is this ready to go? :)
As an aside, the semantic segmentation training and eval programs both contain
        // Crop the net output to be exactly the same size as the input.
        const chip_details chip_details(
            centered_rect(temp.nc() / 2, temp.nr() / 2, input_image.nc(), input_image.nr()),
            chip_dims(input_image.nr(), input_image.nc())
        );
        extract_image_chip(temp, chip_details, net_output, interpolate_nearest_neighbor());

Couldn't that be done more straightforwardly using this?
temp.set_size(net_output.nr(), net_output.nc());
resize_image(net_output,temp,interpolate_nearest_neighbor());

Sweet, so is this ready to go? :)

Naming issues aside, I think it is.
If the layer name is changed, then the pre-trained net will not work as it is, right? (Deserialization will fail?)
That's not a problem, I can re-train it. (I guess re-training is better than trying to edit the binary file...)

Couldn't that be done more straightforwardly using this?

I guess the idea is that the extract_image_chip variety crops (un-pads) the image, and does not really rescale it.

Cool.  Renaming sounds good. Don’t retrain though. Just edit serialize and not deserialize. Then load and save the file. Way easier.
If it’s really just dropping rows and columns off the border then using sub_image is a more straightforward way. In particular, it’s not super obvious to me that extract_image_chips isn’t doing some interpolation.

It's not obvious to me either. But I guess sub_image will not pad, if necessary? So extract_image_chip looks a little safer to me.


Gartung mk fit sse3 vectorize fastmath

Supersedes https://github.com/trackreco/cmssw/pull/93.
Add fast-math flags and changes needed to prevent segfaults.

Not sure why the extra commits are being picked up.


Pass context.Context to Controlller

I have a case where I need to control the "redraw" timing more accuratelly, so I am using Controller interface and "redraw()", but when closing the program, I am having some trouble and I think it is due to double closing the terminal due to the lack of context control.
I think it would be great for us to pass the context.Context to the controller so that one can control better the execution flow.
Using this code:
	controller, err := termdash.NewController(t, rootc, termdash.KeyboardSubscriber(evtHandler))
	if err != nil {
		panic(err)
	}

	ctx, cancel := context.WithCancel(context.Background())
	defer cancel()

	ticker := time.NewTicker(time.Duration(opt.freq) * time.Second).C
	for {
		select {
		case <-ctx.Done():
			controller.Close()
			t.Close()
		case <-ticker:
			if !paused {
				err := curScreen.update(opt, ps)
				if err != nil {
					return
				}
				err = controller.Redraw()
			}
		}
	}

I have this log when exiting the application:

I wish I could use
	ctx, cancel := context.WithCancel(context.Background())
	defer cancel()

	controller, err := termdash.NewController(ctx, t, rootc, termdash.KeyboardSubscriber(evtHandler))
	if err != nil {
		panic(err)
	}

	ticker := time.NewTicker(time.Duration(opt.freq) * time.Second).C
	for {
		select {
		case <-ctx.Done():
			controller.Close()
			t.Close()
		case <-ticker:
			if !paused {
				err := curScreen.update(opt, ps)
				if err != nil {
					return
				}
				err = controller.Redraw()
			}
		}
	}

Hi @flaviostutz, the code snippets that you filed with the bug are only partial, so I had to guess the rest. I think I managed to recreate the problem. There seem to be two issues here and unless I am mistaken, they are both in the code you pasted. I.e. I didn't find a bug in the termdash code, but please feel free to correct me if I missed anything. Here's what I found:

panic: close of closed channel

This seems to be the result of calling Close() on the terminal twice. I don't see how you initialise the terminal in your code, but I am going to guess that it is using this code:
    t, err := termbox.New()
    if err != nil {
        panic(err)
    }
    defer t.Close()

If yes, the call to t.Close() is deferred above, but there is also a second call to t.Close() in the code snippet you linked, just under the call to controller.Close(). If that is the case, please try removing one of the two.

race on termination

This is unrelated and an observation that you might find useful. The ticker for loop doesn't actually terminate when the context closes. It continues to run and it has a chance to call another controller.Redraw() after the context closed and the controller closed. I would suggest breaking from the loop, the relevant portion:
    ticker := time.NewTicker(time.Duration(500 * time.Millisecond)).C
loop:
    for {
        select {
        case <-ctx.Done():
            controller.Close()
            break loop  // Ensures the loop won't execute again after we close the controller.
        case <-ticker:
            if err := controller.Redraw(); err != nil {
                panic(err)
            }
        }
    }

Alternatively you can avoid the ugly break label by placing the entire loop into a separate function and just returning instead of breaking.
Please let me know if this helped. If this didn't address the issue, please attach the complete code that will help me to reproduce and troubleshoot.

Thanks, @mum4k, and sorry for the incomplete code I put at first. You did an excellent job analyzing this!
Let me put the whole code here for a better analysis. I made ir work by "resolving" the last error, but I think there is something wrong or with my code or with termdash.
Here it is:
package main

import (
	"context"
	"flag"
	"fmt"
	"time"

	"github.com/flaviostutz/perfstat"
	"github.com/flaviostutz/perfstat/detectors"
	"github.com/mum4k/termdash"
	"github.com/mum4k/termdash/container"
	"github.com/mum4k/termdash/keyboard"
	"github.com/mum4k/termdash/terminal/termbox"
	"github.com/mum4k/termdash/terminal/terminalapi"
	"github.com/sirupsen/logrus"
)

type Option struct {
	freq        float64
	sensibility float64
}

type screen interface {
	build(opt Option, ps *perfstat.Perfstat) (container.Option, error)
	update(opt Option, ps *perfstat.Perfstat, paused bool) error
	onEvent(evt *terminalapi.Keyboard)
}

var (
	opt                Option
	rootc              *container.Container
	ps                 *perfstat.Perfstat
	curScreenCtxCancel context.CancelFunc
	curScreen          screen
	paused             bool
)

func main() {

	flag.Float64Var(&opt.freq, "freq", 1.0, "Analysis frequency. Changes data capture and display refresh frequency. Higher consumes more CPU. Defaults to 1 Hz")
	flag.Float64Var(&opt.sensibility, "sensibility", 6.0, "Lower values (ex.: 0.2) means larger timespan in analysis, leading to more accurate results but slower responses. Higher values (ex.: 5) means short time analysis but may lead to false positives. Defaults to 1.0 which means detecting a continuous 100% CPU in 30s")
	flag.Parse()

	if opt.freq > 20 || opt.freq < 0.05 {
		panic("--freq must be between 0.05 and 20")
	}

	if opt.sensibility > 30 || opt.sensibility < 0.01 {
		panic("--sensibility must be between 0.01 and 30")
	}

	logrus.Debugf("Initializing Perfstat engine")
	opt2 := detectors.NewOptions()
	dur := time.Duration(30/opt.sensibility) * time.Second
	opt2.CPULoadAvgDuration = dur
	opt2.IORateLoadDuration = dur
	opt2.IOLimitsSpan = dur
	opt2.MemAvgDuration = dur
	opt2.MemLeakDuration = (dur * 10)

	ctx, cancel := context.WithCancel(context.Background())
	defer cancel()

	ps = perfstat.Start(ctx, opt2)
	ps.SetLogLevel(logrus.DebugLevel)
	// time.Sleep(6 * time.Second)

	logrus.Debugf("Initializing UI...")

	t, err := termbox.New(termbox.ColorMode(terminalapi.ColorMode256))
	if err != nil {
		panic(err)
	}

	rootc, err = container.New(t, container.ID("root"))
	if err != nil {
		panic(err)
	}

	evtHandler := func(k *terminalapi.Keyboard) {
		if curScreen != nil {
			curScreen.onEvent(k)
		}
		//exit
		if k.Key == keyboard.KeyEsc || k.Key == keyboard.KeyCtrlC || k.Key == 113 {
			cancel()
			//pause/unpause
		} else if k.Key == 80 || k.Key == 112 {
			paused = !paused
		}
	}

	controller, err := termdash.NewController(t, rootc, termdash.KeyboardSubscriber(evtHandler))
	if err != nil {
		panic(err)
	}

	showScreen(&home{})

	paused = false

	ticker := time.NewTicker(time.Duration(opt.freq) * time.Second).C
	for {
		select {

		case <-ctx.Done():
			//this is used because when using controller some "double closing" arises
			//should be removed after fixing termdash (https://github.com/mum4k/termdash/issues/241)
			defer func() {
				recover()
			}()
			t.Close()

		case <-ticker:
			err := curScreen.update(opt, ps, paused)
			if err != nil {
				return
			}
			err = controller.Redraw()
		}
	}
}

func showScreen(s screen) {
	r, err := s.build(opt, ps)
	if err != nil {
		panic(fmt.Sprintf("Error preparing screen %s. err=%s", s, err))
	}
	rootc.Update("root", r)

	curScreen = s
}

See the whole project at https://github.com/flaviostutz/perfstat/blob/master/cli/main.go

Thank you for pasting the full code. Can you help me understand what you mean by " there is something wrong or with my code or with termdash"?
Is there an error message you can share or an error description?

Going to close this for inactivity, but please feel free to reopen if you would like to continue the discussion.


[Request?] Amazon Appstore

Is there already any way to enable the In-App-Purchase from the Amazon Appstore? I could not find any informations if this is possible or not (and if it is possible how to use it). I would like to publish my Apps to as much Appstores as possible so that every user is able to use them. The Plugin works fine on iOS and Google PlayStore Android but on Amazon Appstore Android it always get's a Null result.

Would look here: https://developer.amazon.com/docs/cross-platform-plugins/cpp-use-the-iap-plugin-for-xamarin.html they have a completely different API

@jamesmontemagno I know that they have a own API. Is there at least any way to overload the CrossInAppBilling.Current to return my own implementation for Amazon? As for now, I couln't find a way without modifing my PCL (removing this plugin from it and split it into each project - but thats not a clean solution for a "Cross-Plattform" plugin).

I think you could implement the interface for Amazon and based on the platform do what you need to do :) You should just have a Singleton that returns the implementation. Sorta like: https://montemagno.com/unit-testing-plugins-for-xamarin/


Provide way to print an Interval[T] without requiring an Order[T] instance

In my data structures in intervalset, I do not store intervals, but only boundary positions. I also do not store the typeclasses in the data structure, but require them on each operation.
I would like to provide a (best-effort) toString method, but currently, there is no way to create an Interval[T] for printing without having an Order[T] (which I don't have.
In the long term I think it might be better to not store the Order instance with an interval, but that's another issue.

Hi @rklaehn,
I don't see an easy way out, as you cannot even create an Interval[A] without an Order[A].
I'm for including Order in the interval itself, because the consistency of the Interval object depends on the particular order instance chosen.
And Order-like typeclasses are the typical example of typeclasses that have several possible implementations for the same type (more so on the PartialOrder side, actually).

I "solved" my problem with the horrible hack of implementing a dummy order in the toString method, so I can create an Interval instance and then immediately call toString on it. I only provide toString for convenience anyway. I would prefer to just throw an UnsupportedOperationException on equals, hashcode and toString. But that would make the library a bit too painful to use in IDEs etc.
val dummyOrder: Order[K] = new Order[K] { def compare(x: K, y: K) = 0 }

Regarding including the oder on the interval itself: That won't protect you from horrible bugs if you combine two intervals with different order instances. E.g.
scala> val a = Interval(1, 2)
a: spire.math.Interval[Int] = [1, 2]

scala> val b = Interval(3, 2)(Order[Int].reverse)
b: spire.math.Interval[Int] = [3, 2]

scala> a union b
res4: spire.math.Interval[Int] = [1, 2] // huh?

Now you could argue that interval operations should throw an exception when they are called with two different order instances. But that won't work, because for derived typeclass instances it is not possible to define equality.
scala> val a = Order[(Int, Int)]
a: spire.algebra.Order[(Int, Int)] = spire.std.OrderProductInstances$$anon$175@53aa16bb

scala> val b = Order[(Int, Int)]
b: spire.algebra.Order[(Int, Int)] = spire.std.OrderProductInstances$$anon$175@52ce24d9

scala> a == b
res6: Boolean = false

So in my data structures I just assume that you have to provide consistent Order instances, or things will blow up in your face. I don't think there is anything you can do about this.

Ok, understand your point. Still, Order is used during construction of the Interval instance, to decide, for example, whether the request closed interval is empty, just a point or a segment.
One way out: remove the Order instance in Interval (would save a bit of heap), and add non-protected unsafe construction methods in the companion object.


177 update favicon.svg to favicon.ico

Issue Number
#177
Purpose/Implementation Notes
Updated the favicon extension; svg to ico and no error in a console
Types of changes

Bugfix (non-breaking change which fixes an issue)

Functional tests
List out the functional tests you've completed to verify your changes work locally.
Checklist

[x] Lint and unit tests pass locally with my changes

need to replace the icon file with svg from alexslemonade.org


Dockerfile

Description
Dockerize the gitsetgo application issue
Fixes # 15
Type of change
Added a new Dockerfile
How Has This Been Tested?
Ran the Dockerfile using containers. It successfully built the image and ran the container on local host 3000
Test Configuration:
*Docker: v-19.03.12
Checklist:

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

Make the PR to the hackincodes branch.


Need to add some .dockerignore files

It works but just for good practice, we should add some .dockerignore files in the folders with Dockerfile

Fixed.


delete_realm: Allow deletion of realms with empty customers.

This is effectively a step closer to what was proposed in
https://github.com/zulip/zulip/pull/18678#discussion_r644490540 when
this code was written in #18678.
If the Customer object has neither of a Stripe id, nor any historical
plans, then there's no real billing association contained in the
existence of the Customer object, and it's safe to delete.

Merged, thanks @alexmv!


Request/response pattern shutdown with time out exception, do not wait to graceful stop

Contact Details
No response
Version
8.x
On which operating system(s) are you experiencing the issue?
Linux
Using which broker(s) did you encounter the issue?
RabbitMQ
What are the steps required to reproduce the issue?
1. Start Mass-Transit
2. Use Request/Response pattern
3. From one of the consumers send Request/Response message and wait answer (Timeout 10 sec)
4. Response Consumer has long running message (~ 20 sec)
5. Deploy new version of application in Kubernetes.
6. SIGTERM implementation works fine for all other consumers (as it described in https://github.com/MassTransit/MassTransit/issues/1192#issuecomment-422849721)
7. In Response Consumer request message fail with Timeout exception, because temporary queue is stopping and do not wait response.

Please take a look at this code
[12:51:40 DBG] Stopping receive transport: rabbitmq://rabbitmq/ab045f41c73f_GettingStarted_bus_yryyyyfcdebrfa19bdpq5njgdy?temporary=true
[12:51:40 DBG] Stopping Consumer: rabbitmq://rabbitmq/ab045f41c73f_GettingStarted_bus_yryyyyfcdebrfa19bdpq5njgdy?temporary=true - amq.ctag-kJu6zU-UR__AXPD-4XjsDA

[12:51:40 DBG] Consumer Cancel Ok: rabbitmq://rabbitmq/ab045f41c73f_GettingStarted_bus_yryyyyfcdebrfa19bdpq5njgdy?temporary=true - amq.ctag-kJu6zU-UR__AXPD-4XjsDA

Suggestion: Postpone the process of stopping temporary queue.

What is the expected behavior?
Should not fail with timeout exception and wait to graceful shutdown
What actually happened?
Fail with timeout exception
Related log output, including any exceptions
[12:51:40 INF] BusObserver - PreStop
[12:51:40 DBG] Stopping bus: rabbitmq://rabbitmq/
[12:51:40 DBG] Endpoint Stopping: rabbitmq://rabbitmq/SecondMessage
[12:51:40 DBG] Stopping receive transport: rabbitmq://rabbitmq/SecondMessage
[12:51:40 DBG] Stopping Consumer: rabbitmq://rabbitmq/SecondMessage - amq.ctag-ZLV1_o3f0AuBkmjoFAVtwQ
[12:51:40 DBG] Consumer Cancel Ok: rabbitmq://rabbitmq/SecondMessage - amq.ctag-ZLV1_o3f0AuBkmjoFAVtwQ
[12:51:40 DBG] Endpoint Stopping: rabbitmq://rabbitmq/Message
[12:51:40 DBG] Stopping receive transport: rabbitmq://rabbitmq/Message
[12:51:40 DBG] Endpoint Completed: rabbitmq://rabbitmq/SecondMessage
[12:51:40 DBG] Stopping Consumer: rabbitmq://rabbitmq/Message - amq.ctag-jiiW2vsw-qZDKVZ50OyIHQ
[12:51:40 DBG] Endpoint Stopping: rabbitmq://rabbitmq/SecondMessageConsumerV2
[12:51:40 DBG] Stopping receive transport: rabbitmq://rabbitmq/SecondMessageConsumerV2
[12:51:40 DBG] Stopping Consumer: rabbitmq://rabbitmq/SecondMessageConsumerV2 - amq.ctag-Ry7C3dfIOitLpdx_FH2m6g
[12:51:40 DBG] Endpoint Stopping: rabbitmq://rabbitmq/ErrorMessage
[12:51:40 DBG] Stopping receive transport: rabbitmq://rabbitmq/ErrorMessage
[12:51:40 DBG] Stopping Consumer: rabbitmq://rabbitmq/ErrorMessage - amq.ctag-4T79vOU8qUbAYgH-vxzNfQ
[12:51:40 DBG] Endpoint Stopping: rabbitmq://rabbitmq/RequestResponse
[12:51:40 DBG] Stopping receive transport: rabbitmq://rabbitmq/RequestResponse
[12:51:40 DBG] Stopping Consumer: rabbitmq://rabbitmq/RequestResponse - amq.ctag-5GxdUe83CjPpoFmDYMmxhQ
[12:51:40 DBG] Endpoint Stopping: rabbitmq://rabbitmq/ab045f41c73f_GettingStarted_bus_yryyyyfcdebrfa19bdpq5njgdy?temporary=true
[12:51:40 DBG] Stopping receive transport: rabbitmq://rabbitmq/ab045f41c73f_GettingStarted_bus_yryyyyfcdebrfa19bdpq5njgdy?temporary=true
[12:51:40 DBG] Stopping Consumer: rabbitmq://rabbitmq/ab045f41c73f_GettingStarted_bus_yryyyyfcdebrfa19bdpq5njgdy?temporary=true - amq.ctag-kJu6zU-UR__AXPD-4XjsDA
[12:51:40 DBG] Consumer Cancel Ok: rabbitmq://rabbitmq/ErrorMessage - amq.ctag-4T79vOU8qUbAYgH-vxzNfQ
[12:51:40 DBG] Consumer Cancel Ok: rabbitmq://rabbitmq/RequestResponse - amq.ctag-5GxdUe83CjPpoFmDYMmxhQ
[12:51:40 DBG] Endpoint Completed: rabbitmq://rabbitmq/ErrorMessage
[12:51:40 DBG] Consumer Cancel Ok: rabbitmq://rabbitmq/Message - amq.ctag-jiiW2vsw-qZDKVZ50OyIHQ
[12:51:40 DBG] Consumer Cancel Ok: rabbitmq://rabbitmq/SecondMessageConsumerV2 - amq.ctag-Ry7C3dfIOitLpdx_FH2m6g
[12:51:40 DBG] Endpoint Completed: rabbitmq://rabbitmq/SecondMessageConsumerV2
[12:51:40 DBG] Consumer Cancel Ok: rabbitmq://rabbitmq/ab045f41c73f_GettingStarted_bus_yryyyyfcdebrfa19bdpq5njgdy?temporary=true - amq.ctag-kJu6zU-UR__AXPD-4XjsDA
[12:51:40 DBG] Stopping send transport: GettingStarted.Contracts:Message
[12:51:40 DBG] Endpoint Completed: rabbitmq://rabbitmq/ab045f41c73f_GettingStarted_bus_yryyyyfcdebrfa19bdpq5njgdy?temporary=true
[12:51:40 DBG] Consumer Completed: rabbitmq://rabbitmq/ErrorMessage: 0 received, 0 concurrent, amq.ctag-4T79vOU8qUbAYgH-vxzNfQ
[12:51:40 DBG] Consumer Completed: rabbitmq://rabbitmq/ab045f41c73f_GettingStarted_bus_yryyyyfcdebrfa19bdpq5njgdy?temporary=true: 5 received, 1 concurrent, amq.ctag-kJu6zU-UR__AXPD-4XjsDA
[12:51:40 DBG] Consumer Completed: rabbitmq://rabbitmq/SecondMessage: 0 received, 0 concurrent, amq.ctag-ZLV1_o3f0AuBkmjoFAVtwQ
[12:51:40 DBG] Consumer Completed: rabbitmq://rabbitmq/SecondMessageConsumerV2: 0 received, 0 concurrent, amq.ctag-Ry7C3dfIOitLpdx_FH2m6g
[12:51:41 INF] I am done after 01000000-ac1a-0242-a998-08daed893fef
[12:51:41 DBG] SEND rabbitmq://rabbitmq/ab045f41c73f_GettingStarted_bus_yryyyyfcdebrfa19bdpq5njgdy?temporary=true 01000000-ac1a-0242-c105-08daed8942ea GettingStarted.Contracts.ResponseCommand
[12:51:41 INF] This is Send Observer:01000000-ac1a-0242-a998-08daed893fef
[12:51:41 DBG] RECEIVE rabbitmq://rabbitmq/RequestResponse 01000000-ac1a-0242-55c0-08daed893ff0 GettingStarted.Contracts.RequestCommand GettingStarted.Consumers.RequestResponseConsumer(00:00:04.9961971)
[12:51:41 INF] This is Receive Observer:01000000-ac1a-0242-a998-08daed893fef, 00:00:04.9961971, GettingStarted.Consumers.RequestResponseConsumer
[12:51:41 DBG] Endpoint Completed: rabbitmq://rabbitmq/RequestResponse
[12:51:41 DBG] Consumer Completed: rabbitmq://rabbitmq/RequestResponse: 6 received, 2 concurrent, amq.ctag-5GxdUe83CjPpoFmDYMmxhQ
[12:51:41 DBG] Stopping send transport: ab045f41c73f_GettingStarted_bus_yryyyyfcdebrfa19bdpq5njgdy
[12:51:46 INF] This is Publish Observer:01000000-ac1a-0242-a998-08daed893fef
[12:51:46 DBG] Declare exchange: name: MassTransit:Fault--GettingStarted.Contracts:Message--, type: fanout, durable
[12:51:46 DBG] Declare exchange: name: MassTransit:Fault, type: fanout, durable
[12:51:46 DBG] Bind exchange: source: MassTransit:Fault--GettingStarted.Contracts:Message--, destination: MassTransit:Fault
[12:51:46 DBG] SEND rabbitmq://rabbitmq/MassTransit:Fault--GettingStarted.Contracts:Message-- 01000000-ac1a-0242-e0be-08daed8945eb MassTransit.Fault<GettingStarted.Contracts.Message>
[12:51:46 ERR] R-FAULT rabbitmq://rabbitmq/Message 01000000-ac1a-0242-a85a-08daed893fef GettingStarted.Contracts.Message GettingStarted.Consumers.MessageConsumer(00:00:10.0015489)
MassTransit.RequestTimeoutException: Timeout waiting for response, RequestId: 01000000-ac1a-0242-4f59-08daed893ff0
   at MassTransit.Clients.RequestClient`1.GetResponseInternal[T1,T2](SendRequestCallback request, CancellationToken cancellationToken, RequestTimeout timeout, RequestPipeConfiguratorCallback`1 callback) in /_/src/MassTransit/Clients/RequestClient.cs:line 212
   at MassTransit.Clients.ResponseHandlerConnectHandle`1.GetTask() in /_/src/MassTransit/Clients/ResponseHandlerConnectHandle.cs:line 58
   at GettingStarted.Consumers.MessageConsumer.Consume(ConsumeContext`1 context) in /app/GettingStarted/Consumers/MessageConsumer.cs:line 38
   at MassTransit.PrometheusIntegration.Middleware.PrometheusConsumerFilter`2.Send(ConsumerConsumeContext`2 context, IPipe`1 next) in /_/src/MassTransit.PrometheusIntegration/PrometheusIntegration/Middleware/PrometheusConsumerFilter.cs:line 15
   at MassTransit.DependencyInjection.ScopeConsumerFactory`1.Send[TMessage](ConsumeContext`1 context, IPipe`1 next) in /_/src/MassTransit/DependencyInjection/DependencyInjection/ScopeConsumerFactory.cs:line 22
   at MassTransit.DependencyInjection.ScopeConsumerFactory`1.Send[TMessage](ConsumeContext`1 context, IPipe`1 next) in /_/src/MassTransit/DependencyInjection/DependencyInjection/ScopeConsumerFactory.cs:line 22
   at MassTransit.Middleware.ConsumerMessageFilter`2.MassTransit.IFilter<MassTransit.ConsumeContext<TMessage>>.Send(ConsumeContext`1 context, IPipe`1 next) in /_/src/MassTransit/Middleware/ConsumerMessageFilter.cs:line 46
[12:51:46 DBG] Declare queue: name: Message_error, durable, consumer-count: 0 message-count: 0
[12:51:46 DBG] Declare exchange: name: Message_error, type: fanout, durable
[12:51:46 DBG] Bind queue: source: Message_error, destination: Message_error
[12:52:10 WRN] Stop canceled waiting for message consumers to complete: rabbitmq://rabbitmq/Message - amq.ctag-jiiW2vsw-qZDKVZ50OyIHQ
[12:52:10 INF] Bus stopped: rabbitmq://rabbitmq/

Link to repository that demonstrates/reproduces the issue
No response

I think MT is using Host Stop CancellationToken, default timeout which is 15sec (but I might be wrong), so it is cancelling it:
https://learn.microsoft.com/en-us/dotnet/api/microsoft.extensions.hosting.hostoptions.shutdowntimeout?view=dotnet-plat-ext-6.0
you need to increase this timeout in order to keep it waiting longer

When the bus is stopped, all bus endpoints are stopped concurrently. By your reasoning, the bus endpoint should not be stopped until all other endpoints have stopped.
I don't see a reason why this couldn't be changed, simply to avoid this scenario from occurring.

Thank you @phatboyg for your fast response and quick fix.


Bug making CSR by OpenSSL

Please help me to solve the following error problem.
Can you write more than 64 characters in OpenSSL command?
I get the following error:
problems making Certificate Request
3555938678416:error:0D07A097:asn1 encoding routines:ASN1_mbstring_ncopy:string too long:a_mbstr.c:158:maxsize=64
Reproduction Steps

Error Log

Environment

CDK CLI Version      :
CDK Framework Version:
RFDK Version:
Deadline Version:
Node.js Version:
OS               :
Language (Version):

Other

This is :bug: Bug Report

Sorry for the delay. Can you share the RFDK code that you used to produce the aforementioned error message?

Because the name of the organization is more than 64 characters and 2 files Fa.csr and Fa.key are not generated by OpenSSL.In addition, the name of the organization in line 3.OU, 2.OU and 1.OU must be in Persian language.thank you very muchYours sincerelyMr. Shokrian
On Wednesday, May 17, 2023 at 12:37:31 PM GMT+3:30<EMAIL_ADDRESS><EMAIL_ADDRESS>wrote:

Hello Mr. DanielI will send you the fa.cnf filePlease create 2 files for me with OpenSSl:1- Fa.csr2-fa.keythank you for Help me
On Tuesday, May 16, 2023 at 11:44:40 PM GMT+3:30, Daniel Neilson<EMAIL_ADDRESS>wrote:

Closed #1039 as completed.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>

HelloMr. DanielI sent the CSR creation error message in the attached fileYours sincerelyMr. Shokrian
On Wednesday, May 17, 2023 at 12:43:23 PM GMT+3:30<EMAIL_ADDRESS><EMAIL_ADDRESS>wrote:

Because the name of the organization is more than 64 characters and 2 files Fa.csr and Fa.key are not generated by OpenSSL.In addition, the name of the organization in line 3.OU, 2.OU and 1.OU must be in Persian language.thank you very muchYours sincerelyMr. Shokrian
On Wednesday, May 17, 2023 at 12:37:31 PM GMT+3:30<EMAIL_ADDRESS><EMAIL_ADDRESS>wrote:

Hello Mr. DanielI will send you the fa.cnf filePlease create 2 files for me with OpenSSl:1- Fa.csr2-fa.keythank you for Help me
On Tuesday, May 16, 2023 at 11:44:40 PM GMT+3:30, Daniel Neilson<EMAIL_ADDRESS>wrote:

Closed #1039 as completed.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>


@mention contributors in release commit messages

Handy way of giving credit, and also letting them know their code made it out to prod

Outdated, from a previous use of this repo.


Prisma infers the wrong type for arrays of timestamps which are null

Bug description
When using an array of date objects which are null as an argument for a query prisma infers the wrong type for the argument. What's weird is that this works for any type other than timestamp with time zone[]
Invalid `prisma.$queryRawUnsafe()` invocation:

Raw query failed. Code: `42846`. Message: `ERROR: cannot cast type integer[] to timestamp with time zone[]`
    at waitForPromises (/home/node/workspace/src/utils.ts:53:11)
    at <anonymous> (/home/node/workspace/src/entrypoints/admin-commands/restore-db.ts:95:7)
    at Proxy._transactionWithCallback (/home/node/workspace/node_modules/@prisma/server-client/runtime/library.js:128:8631)
    at restoreDbCommand (/home/node/workspace/src/entrypoints/admin-commands/restore-db.ts:50:3)
    at main (/home/node/workspace/src/entrypoints/admin-cli.ts:29:5) {
  errors: [
    PrismaClientKnownRequestError:
    Invalid `prisma.$queryRawUnsafe()` invocation:

    Raw query failed. Code: `42846`. Message: `ERROR: cannot cast type integer[] to timestamp with time zone[]`
        at Cn.handleRequestError (/home/node/workspace/node_modules/@prisma/server-client/runtime/library.js:123:6817)
        at Cn.handleAndLogRequestError (/home/node/workspace/node_modules/@prisma/server-client/runtime/library.js:123:6206)
        at Cn.request (/home/node/workspace/node_modules/@prisma/server-client/runtime/library.js:123:5926)
        at l (/home/node/workspace/node_modules/@prisma/server-client/runtime/library.js:128:9968)
        at <anonymous> (/home/node/workspace/src/entrypoints/admin-commands/restore-db.ts:125:13)
        at async Promise.allSettled (index 0)
        at waitForPromises (/home/node/workspace/src/utils.ts:42:19)
        at <anonymous> (/home/node/workspace/src/entrypoints/admin-commands/restore-db.ts:95:7)
        at Proxy._transactionWithCallback (/home/node/workspace/node_modules/@prisma/server-client/runtime/library.js:128:8631)
        at restoreDbCommand (/home/node/workspace/src/entrypoints/admin-commands/restore-db.ts:50:3) {
      code: 'P2010',
      clientVersion: '5.5.2',
      meta: {
        code: '42846',
        message: 'ERROR: cannot cast type integer[] to timestamp with time zone[]'
      }
    }
  ]
}

How to reproduce
Run
await db.$queryRawUnsafe(`
    SELECT * from unnest($1::timestamp with time zone[])
  `, [null])

Expected behavior
The query works
Prisma information

await db.$queryRawUnsafe(`
    SELECT * from unnest($1::timestamp with time zone[])
  `, [null])

Environment & setup

OS: Debian GNU/Linux 12 mcr.microsoft.com/devcontainers/typescript-node:20
Database: PostgreSQL
Node.js version: v20.9.0

Prisma Version
node ➜ ~/workspace (main) $ yarn prisma -v
yarn run v1.22.19
$ /home/node/workspace/node_modules/.bin/prisma -v
Environment variables loaded from .env
prisma                  : 5.5.2
@prisma/client          : 5.5.2
Current platform        : debian-openssl-3.0.x
Query Engine (Node-API) : libquery-engine aebc046ce8b88ebbcb45efe31cbe7d06fd6abc0a (at<EMAIL_ADDRESS>Schema Engine           : schema-engine-cli aebc046ce8b88ebbcb45efe31cbe7d06fd6abc0a (at<EMAIL_ADDRESS>Schema Wasm             : @prisma/prisma-schema-wasm 5.5.1-1.aebc046ce8b88ebbcb45efe31cbe7d06fd6abc0a
Default Engines Hash    : aebc046ce8b88ebbcb45efe31cbe7d06fd6abc0a
Studio                  : 0.494.0
Done in 1.95s.

Same for me, any updates?


WMCore v2.2.0 Validation

Impact of the new feature
WMCore central services
Is your feature request related to a problem? Please describe.
Monthly task
Describe the solution you'd like
Validate central services in cmsweb-testbed and provide the final feedback by the March deadline, specified by the CMSWEB team.
It also includes the creation of the service release notes and the validation check-list twiki.
Describe alternatives you've considered
None
Additional context
None

So this release we have two major services deloyment activities;

Migration to the newst MongoDBAsAService clusters
Full deployment and using MSPileup for the first time in this preproduction validation

all the databases have just been copied as mentioned in https://github.com/dmwm/WMCore/issue/11534#issuecomment-1499505070  and all testbed service redeployed.
I am about to inject the validation workflows  now
FYI: @amaltaro

well due to the badly deployed secrets this deployment just failed. I'll repeat it tomorrow morning

Indeed there was nothing running under the dmwm namespace. I went ahead and redeployed WMCore secrets and services with tag 2.2.0rc7.
Unfortunately, after a few minutes, I see that all services using MongoDB are still failing to run. Error message is [1]
@todor-ivanov could it be that you forgot to update the new mongodb credentials in services_config repository?
For the record, I've been using the following documentation for that (already advertised in the past weeks/months):
https://github.com/dmwm/WMCore/wiki/WMCore-services-upgrade-in-kubernetes
[1]
2023-04-06 23:07:07,295:ERROR:MongoDB: Could not connect to MongoDB server: ['cms-mongo-preprod-node-0.cern.ch:32001', 'cms-mongo-preprod-node-1.cern.ch:32002', 'cms-mongo-preprod-node-2.cern.ch:32003']. Due to unknown reason: Authentication failed., full error: {'ok': 0.0, 'errmsg': 'Authentication failed.', 'code': 18, 'codeName': 'AuthenticationFailed', '$clusterTime': {'clusterTime': Timestamp(1680822426, 1), 'signature': {'hash': b'\xb7\xc8/\xbb\xf4\xc3\xfb\x817\xef\x8f\x8cC\x82\xb9:\xb8 \xb0\x1e', 'keyId':<PHONE_NUMBER>450192385}}, 'operationTime': Timestamp(1680822426, 1)}

Hi @amaltaro Thanks  for acting on that.
It was failing quite badly for me - all the services were failing due to missing config files. I have to figure out what is going on with my setup environment.
As of the changed secrets for the services using MongoDB indeed it is correct. We do have new passwords but AFAIK we  are not supposed to propagate the encrypted secrets files. We should request someone from CMSWeb Team to do so. I am not sure if I even have the correct credentials for doing it. I've never done this before, nor I've ever seen a full set of instructions on how to do so.
@arooshap can you help us in this?

@todor-ivanov I am making the changes now.

So let me put some more details on how  exactly those deployments are failing for me (regardless of where I try, being it preprod or cmsweb-test clusters): [1].  So this simply tells me it cannot import anything from the secrets files. And indeed going and listing the so mounted volume at /etc/sectrets/ gives me a zero sized file for ReqMgr2Secrets.py
_reqmgr2@reqmgr2-c6ccbd585-g59nb:/data$ ls -la /etc/secrets/..data/
total 8
drwxr-sr-x. 2 root 2000   80 Apr  7 12:37 .
drwxrwsrwt. 3 root 2000  120 Apr  7 12:37 ..
-rw-r--r--. 1 root 2000    0 Apr  7 12:37 ReqMgr2Secrets.py
-rw-r--r--. 1 root 2000 6803 Apr  7 12:37 config.py

I did follow all the steps from https://github.com/dmwm/WMCore/wiki/WMCore-services-upgrade-in-kubernetes#deploying-wmcore-secrets  veery carefully , especially the one with deploying secrets.
@arooshap  any idea on  what may cause all this?
[1]
_reqmgr2@reqmgr2-c6ccbd585-g59nb:/data$ /bin/bash /data/run.sh
ln: failed to create symbolic link '/data/srv/current/apps/reqmgr2/data': File exists
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/WMCore/Configuration.py", line 603, in loadConfigurationFile
    modRef = imp.load_module(cfgBaseName, modPath[0],
  File "/usr/local/lib/python3.8/imp.py", line 234, in load_module
    return load_source(name, filename, file)
  File "/usr/local/lib/python3.8/imp.py", line 171, in load_source
    module = _load(spec)
  File "<frozen importlib._bootstrap>", line 702, in _load
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 843, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/data/srv/current/config/reqmgr2/config.py", line 36, in <module>
    from ReqMgr2Secrets import USER_AMQ, PASS_AMQ, AMQ_TOPIC
ImportError: cannot import name 'USER_AMQ' from 'ReqMgr2Secrets' (/etc/secrets/ReqMgr2Secrets.py)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/bin/wmc-httpd", line 3, in <module>
    main()
  File "/usr/local/lib/python3.8/site-packages/WMCore/REST/Main.py", line 558, in main
    cfg = loadConfigurationFile(args[0])
  File "/usr/local/lib/python3.8/site-packages/WMCore/Configuration.py", line 611, in loadConfigurationFile
    raise RuntimeError(msg)
RuntimeError: Unable to load Configuration File:
/data/srv/current/config/reqmgr2/config.py
Due to error:
cannot import name 'USER_AMQ' from 'ReqMgr2Secrets' (/etc/secrets/ReqMgr2Secrets.py)Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/WMCore/Configuration.py", line 603, in loadConfigurationFile
    modRef = imp.load_module(cfgBaseName, modPath[0],
  File "/usr/local/lib/python3.8/imp.py", line 234, in load_module
    return load_source(name, filename, file)
  File "/usr/local/lib/python3.8/imp.py", line 171, in load_source
    module = _load(spec)
  File "<frozen importlib._bootstrap>", line 702, in _load
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 843, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/data/srv/current/config/reqmgr2/config.py", line 36, in <module>
    from ReqMgr2Secrets import USER_AMQ, PASS_AMQ, AMQ_TOPIC
ImportError: cannot import name 'USER_AMQ' from 'ReqMgr2Secrets' (/etc/secrets/ReqMgr2Secrets.py)

And here is the exact error from the `cmsweb/scripts/deploy-secrets.sh file;
./scripts/deploy-secrets.sh: line 128: /afs/cern.ch/user/<username>/bin/sops: No such file or directory

And this is strange, why is this script assuming that I am about to be working from my $HOME as root?  https://github.com/dmwm/CMSKubernetes/blob/master/kubernetes/cmsweb/scripts/deploy-secrets.sh#L128
@arooshap  any ideas?

@todor-ivanov yes, that's strange. The script can definitely be modified.
The difference between two files is that, in the deploy-secrets.sh, you are running this command: $HOME/bin/sops -d $fname > $secretdir/$(basename $fname .encrypted), and for the decrypt-secrets.sh, you are running this command: sops -d $encrypted_file > $DIR/$(basename $encrypted_file .encrypted). So, I think if you just do, sops -d $fname > $secretdir/$(basename $fname .encrypted) instead of $HOME/bin/sops -d $fname > $secretdir/$(basename $fname .encrypted), it should work.
And I have updated the secrets_config repository to include the new changes in mongoDB credentials for the preprod branch.

@todor-ivanov for your first question, the issue was that you did not configure the secrets correctly. That's why you got that error. It should not be a zero sized file.
Can you please try it again and make sure that the secrets you applied are correct? In order to validate that, you can also use this command: kubectl get secret reqmgr2-secrets -n dmwm -o go-template='{{range $k,$v := .data}}{{printf "%s: " $k}}{{if not $v}}{{$v}}{{else}}{{$v | base64decode}}{{end}}{{"\n"}}{{end}}'. And once you have updated the secrets, make sure you restart the deployment using kubectl rollout restart deployment <deployment-name> -n dmwm.
I hope this helps.

Hi @arooshap
I've already found the bug in this script. I am about to make a PR for fixing it soon.
The command you cite is indeed the culprit that breaks everything. But it is not the command that is to blame here but rather:

The test for checking the existence of this command is completely broken here, because:

echo "$(command -v sops)"
/usr/bin/sops

Meaning the command is actually present at the machine.

But Regardless of the result from the test for the rest of the script it is simply assumed that the user has the sops binary installed under the destination  $HOME/bin/sops .

So it is not supposed to be working at all... I simply do not know how it even works for others. Maybe, they have executed the script somehow under different conditions in the past (e.g. previous setup of the lxplus 8 machines, which was missing the executable installed at all),  and it happened to install the sops executable for them under their $HOME  path... I do not know... But starting from scratch in the current case, where in the lxplus cluster one has the file /bin/usr/sops present ... this script is impossible to work.

Here is the fix @arooshap :
https://github.com/dmwm/CMSKubernetes/pull/1348
And now everything works like a charm.

And here is the next obstacle we stumble on this month: [1]
And few more errors related to the above one: [2]
I am about to look further later today....
[1]
2023-04-08 06:04:50,431:ERROR:MSTransferor: Unknown exception updating caches. Error: url=https://cmsweb-testbed.cern.ch:8443/ms-pileup/data/pileup, code=500, reason=Internal Server Error, headers={'Date': 'Sat, 08 Apr 2023 06:04:50 GMT'
, 'Server': 'CherryPy/18.8.0', 'Set-Cookie': 'cms-auth=add2faba041c0d0d1985c050eea6d81f6dcd7abe93cdf5260c529a29a7883d06f0f5163fcec9958c;path=/;secure;httponly;expires=Thu, 01-Jan-1970 00:00:01 GMT', 'Content-Type': 'text/html;charset=utf
-8', 'X-Rest-Status': '403', 'X-Error-Http': '500', 'X-Error-Id': '9df94e0f3bdf373d0f722c452f7b25d0', 'X-Error-Detail': 'Execution error', 'X-Rest-Time': '4367.828 us', 'Content-Length': '745', 'CMS-Server-Time': 'D=35122 t=1680933890394
052', 'Connection': 'close'}, result=b'<!DOCTYPE html PUBLIC\n"-//W3C//DTD XHTML 1.0 Transitional//EN"\n"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\n\n\n    <meta http-equiv="Content-Type" content="text/html; c
harset=utf-8"></meta>\n    <title>500 Internal Server Error</title>\n    \n\n    \n
500 Internal Server Error
\n
Execution error
\n

\n
\n      \n        Powered by CherryPy 18.8.0\n      \n
\n    \n\n'
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/WMCore/MicroService/MSTransferor/MSTransferor.py", line 173, in execute
    self.updateCaches()
  File "/usr/local/lib/python3.8/site-packages/decorator.py", line 232, in fun
    return caller(func, *(extras + args), **kw)
  File "/usr/local/lib/python3.8/site-packages/retry/api.py", line 73, in retry_decorator
    return __retry_internal(partial(f, *args, **kwargs), exceptions, tries, delay, max_delay, backoff, jitter,
  File "/usr/local/lib/python3.8/site-packages/retry/api.py", line 33, in __retry_internal
    return f()
  File "/usr/local/lib/python3.8/site-packages/WMCore/MicroService/MSTransferor/MSTransferor.py", line 131, in updateCaches
    self.pileupDocs = getPileupDocs(self.msConfig['mspileupUrl'], self.pileupQuery)
  File "/usr/local/lib/python3.8/site-packages/WMCore/MicroService/Tools/Common.py", line 119, in getPileupDocs
    data = mgr.getdata(mspileupUrl, queryDict, headers, verb='POST',
  File "/usr/local/lib/python3.8/site-packages/WMCore/Services/pycurl_manager.py", line 363, in getdata
    _, data = self.request(url=url, params=params, headers=headers, verb=verb,
  File "/usr/local/lib/python3.8/site-packages/Utils/PortForward.py", line 67, in portMangle
    return callFunc(callObj, newUrl, *args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/WMCore/Services/pycurl_manager.py", line 353, in request
    raise exc
http.client.HTTPException: url=https://cmsweb-testbed.cern.ch:8443/ms-pileup/data/pileup, code=500, reason=Internal Server Error, headers={'Date': 'Sat, 08 Apr 2023 06:04:50 GMT', 'Server': 'CherryPy/18.8.0', 'Set-Cookie': 'cms-auth=add2faba041c0d0d1985c050eea6d81f6dcd7abe93cdf5260c529a29a7883d06f0f5163fcec9958c;path=/;secure;httponly;expires=Thu, 01-Jan-1970 00:00:01 GMT', 'Content-Type': 'text/html;charset=utf-8', 'X-Rest-Status': '403', 'X-Error-Http': '500', 'X-Error-Id': '9df94e0f3bdf373d0f722c452f7b25d0', 'X-Error-Detail': 'Execution error', 'X-Rest-Time': '4367.828 us', 'Content-Length': '745', 'CMS-Server-Time': 'D=35122 t=1680933890394052', 'Connection': 'close'}, result=b'<!DOCTYPE html PUBLIC\n"-//W3C//DTD XHTML 1.0 Transitional//EN"\n"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\n\n\n    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>\n    <title>500 Internal Server Error</title>\n    \n\n    \n
500 Internal Server Error
\n
Execution error
\n

\n
\n      \n        Powered by CherryPy 18.8.0\n      \n
\n    \n\n'

[2]
2023-04-08 06:04:44,067:INFO:MSTransferor: Updating all local caches...
2023-04-08 06:04:44,128:WARNING:api: url=https://cmsweb-testbed.cern.ch:8443/ms-pileup/data/pileup, code=500, reason=Internal Server Error, headers={'Date': 'Sat, 08 Apr 2023 06:04:44 GMT', 'Server': 'CherryPy/18.8.0', 'Set-Cookie': 'cms
-auth=ce8b8a4d7d8d6a61bd8133baadcf899ab8bb74d1f93d9ed0ef5fec7dc9d4a93b866122facce8a3eb;path=/;secure;httponly;expires=Thu, 01-Jan-1970 00:00:01 GMT', 'Content-Type': 'text/html;charset=utf-8', 'X-Rest-Status': '403', 'X-Error-Http': '500
', 'X-Error-Id': '694585c5d1978da0a8b6f422f6cfa890', 'X-Error-Detail': 'Execution error', 'X-Rest-Time': '8267.641 us', 'Content-Length': '745', 'CMS-Server-Time': 'D=40314 t=1680933884085914', 'Connection': 'close'}, result=b'<!DOCTYPE
html PUBLIC\n"-//W3C//DTD XHTML 1.0 Transitional//EN"\n"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\n\n\n    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>\n    <title>500 Internal Se
rver Error</title>\n    \n\n    \n
500 Internal Server Error
\n
Execution error
\n

\n
\n      \n        Powered by CherryPy 18.8.0\n      \n
\n    \n\n', retrying in 2 seconds...
2023-04-08 06:04:46,130:INFO:MSTransferor: Updating RSE/PNN quota and usage

@todor-ivanov I have just patched the ms-pileup pods in place with: https://github.com/dmwm/WMCore/pull/11539
and things should be working well now.

Thanks @amaltaro

And here is the final validation document:
https://twiki.cern.ch/twiki/bin/view/CMS/WMCore220Validation
I am closing this issue now
FYI: @amaltaro

Here is the release notes - relative to the current version in production - for WMCore 2.2.0 cycle:
https://github.com/dmwm/WMCore/releases/tag/<IP_ADDRESS>
Deployment is planned for tomorrow afternoon, CERN time.


The size of the picture used for training

Hi, do all pictures used for training have to be the same size? If the size is different, does it have an impact on the generation of anchor and the prediction effect of the model? The pictures I used to train here are all 960 * 480, but later I added a lot of pictures with a size of 1920 * 1080. I do n’t know if the inconsistent picture size will have a bad effect on the detection effect of the model , Looking forward to your answer very much, I would appreciate it!

i have same problem!

The answer is no but if you use really large images you may find problems with memory.


Implement accessibility object model (AOM)

Browser support does not yet permit. Keep an eye on https://wicg.github.io/aom/caniuse.html

Bulit-in custom element semantics through element internals
IDREF reflection across shadow boundaries - major accessibility issue currently for the following components:

Tabs
Carousel
Potentially dialog
Potentially mobile version of mega menu

May need to abandon shadow DOM for the above listed components in favor of light DOM manipulation.

See also

https://github.com/whatwg/html/issues/3515
https://github.com/whatwg/html/pull/7934

Updates:

For now, critical accessibility issue has been addressed for carousel and tabs by removing aria-controls altogether. See discussion note in tabs/index.js.
To address the issue on the button component, currently considering converting it from an autonomous custom element to a customized built-in element. See #20
Doing so would in turn address dialog and alert bar.


Revert lib/chef/api_client/registration.rb to use API V0 since it doe…

…sn't support V1.

My only concern here is that one day I assume the V0 API will be deprecated and then decommissioned. The registration class should change at that point to support re-registration via the V1 (or newer) API, as re-registration is still an active use-case for several customers.
:+1: if the use case of re-registration passes though, we just need to be conscientious of this in the future
/cc @jaymzh

@andy-dufour Yeah that is a much larger issue still under discussion. Most of the client code has been edited to support both V0 and V1 but there is still a lot of work to do there before the whole client supported V1, and this is a place where that work would have to happen also.

:+1:

@andy-dufour should we change our monkeypatch to this instead?

Yeah, I'd consider this a regression cause by the default going to v1, and we need to roll back to v0 here to get the old behavior.
The right thing to do is to write the code to use v1 and the keys endpoint in the future.
But lets get this merged right now so we can ship it in 12.6.0 and facebook can stop monkeypatching (and anyone else out there that does this doesn't have a blocker to upgrading).

:+1:

seems to work for me against 12.3.1 server with 12.4.1 client (with this monkey patched into my client.rb, but without @andy-dufour's other fix). Will roll this out.

@jaymzh Yeah this was closed instead of @andy-dufour's fix. This is the correct fix.

are there any tests for this? why was this not caught by regression/functional tests? should we add them now to prevent future breakage?


Timed Messages support

Add support to timed messages from the bot. The messages should be triggered by time and respect a few constraints like:

Minimum number of messages in chat;
Minimum delay between the same timed messages;
Minimum delay between all timed messages;

Resolved in 0.0.8


Large regexes are poorly handled

Figure out how to handle very large regexes--the strategy we're using generates very large class files.
a04107b097ff559542c4e9c2bcd937eed93145dd substantially increased the size of generated regexes, making the problem worse, and required commenting out a previously used test case.

The problem isn't gone, but some recent work to enable use of byteclasses is probably helpful. The regex Holmes.{0,25}Watson|Watson.{0,25}Holmes now generates a 340 KB class, instead of 2MB.

Subsequent updates to encoding make Holmes.{0,25}Watson|Watson.{0,25}Holmes only 245181 bytes.


feat: Added new conditions and actions

Updated rule type definitions to reflect newly added features.

These features are currently in developer preview and as such have not been documented/made widely available. It's possible that we may make changes to them before adding them to api documentation (unlikely but possible) so wondering if it makes sense to have these exposed in this sdk? I am fine either way as long as this is considered and we are OK with that.

Apart from the changesTo, remainsEqual, wasEqual conditions it LGTM

changes is not implemented and should not be available.

:tada: This PR is included in version 1.2.0 :tada:
The release is available on:

GitHub release
npm package (@latest dist-tag)

Your semantic-release bot :package::rocket:


Update AWS SDK for JavaScript (v2) to latest

Getting following warning "(node:3124) NOTE: We are formalizing our plans to enter AWS SDK for JavaScript (v2) into maintenance mode in 2023."

@kddejong (sorry for tagging you, but it looks like you're recently the most active contributor) - any movement on this?

Adding a bump - is something bring planned to remediate this?


add post token test and add .vscode gitignore

📝 相關的 issue / Related Issues

#36

⛏ 變更內容 / Details of Changes

增加 route_token_test.go
增加 gitignore .vscode

完成了 route_token_test.go 的測試部分，使用 mock

Could you please rebase onto the latest development branch?
We have changed the project layout in this PR https://github.com/Ptt-official-app/Ptt-backend/pull/23

Could you please rebase onto the latest development branch?
We have changed the project layout in this PR #23

ok，I will rebase on Monday.

Codecov Report

Merging #37 (fcfb82e) into development (2963132) will increase coverage by 3.45%.
The diff coverage is 33.33%.

@@              Coverage Diff               @@
##           development     #37      +/-   ##
==============================================
+ Coverage         6.23%   9.69%   +3.45%
==============================================
  Files               19      20       +1
  Lines              577     588      +11
==============================================
+ Hits                36      57      +21
+ Misses             538     526      -12
- Partials             3       5       +2

Impacted Files
Coverage Δ

internal/mock/user_record.go
27.27% <27.27%> (ø)

internal/mock/usecase.go
46.66% <100.00%> (+6.66%)
:arrow_up:

internal/delivery/http/route.go
11.36% <0.00%> (+3.40%)
:arrow_up:

internal/delivery/http/route_token.go
48.57% <0.00%> (+40.00%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 2963132...fcfb82e. Read the comment docs.

Could you please rebase onto the latest development branch?
We have changed the project layout in this PR #23

reabse done.  if I need to squash, please tell me

LGTM


Made the package compile in termux on android

To compile the package in the termux app on android you have to compile the sources with the compiler flag "-fPIC". I added this in an special condition branch. The compiled package is working properly within the following constellation jupyter-nodejs -> zeromq.node.

Because of resolving the problem within node-gyp (https://github.com/nodejs/node-gyp/pull/1340), this PR is not needed.


i2.xlarge Storage is inaccurate

The storage size of i2.xlarge is listed as "1800.0 GB".
I believe this should actually be "1x800.0 GB".

Looks like the value is incorrect on https://aws.amazon.com/ec2/previous-generation/
Do you happen to have an i2.xlarge instance active that you can confirm this with?

I don't have one running but if I try to launch a new one I see:
Type: i2.xlarge
vCPUs: 4
Memory (GiB): 30.5
Storage: 1 x 800 (SSD)
On Tue, Feb 28, 2017 at 12:01 PM, Garret Heaton<EMAIL_ADDRESS>wrote:

Looks like the value is incorrect on https://aws.amazon.com/ec2/
previous-generation/
Do you happen to have an i2.xlarge instance active that you can confirm
this with?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/powdahound/ec2instances.info/issues/232#issuecomment-283099743,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AB3E6J5gpiwqXosPAJZWWRATT5yaeGDhks5rhFLRgaJpZM4MOi_B
.

Looks like AWS fixed the typo on their end, so no need for us to add a workaround. :)


Fix Minor Typo: make 'class' lowercase in class description

Related Issue:
N/A
Description of changes:
Fix a minor typo in the description of class_uid where class was uppercased.
From: A Class describes the attributes available in an event.
To: A class describes the attributes available in an event.

I feel like we often capitalize the attribute/object that we are currently defining. Maybe we should move away from this.

That's a good point. I was tempted to encapsulate it in class, but held back on that so as to not have disparity


fix: don't cache failed script

Summary
https://github.com/callstack/repack/issues/770
The root cause was where cache is saving, script Resolver should not save the cache, it should be saved after script loaded successfully.

Test plan
I added a test for failing scenario which expected to The failed script doesn't save on cache and also if scriptLoader called again, expected in second time fetch property should be true too.

Thank you for your contribution @hosseinmd 👏🎉


Some basic models for archive service

I extract some from my work, this is just the basic model entries if you want to enhance some other features based on it.

Are we sure to not use the same model in the indy source code? Gang mentioned it is here
https://github.com/Commonjava/indy/blob/master/addons/folo/model-java/src/main/java/org/commonjava/indy/folo/model/TrackedContent.java

@shokakucarrier HistoricalContentDTO will be one wrapping tracking.


Import SVG from Inkscape...

I tried to import some simple SVG file from Inkscape. But it get only a empty scene.
I also tried DXF without success...

I wrote a pretty interesting python loading routine with svgelements. Based, in part on svgpathtools ( https://github.com/meerk40t/svgelements ), but the entire routine is a pretty hefty bunch of code. It took me a couple months of work, and I still think I more or less did it wrong since I didn't correctly account for the DOM.
Also, codewise nanoSVG is a really solid and compatible ( https://github.com/memononen/nanosvg ) with C code, and would very likely be the best way forward. It's a pretty impressive library. It reads svgs and output quad bezier curves. Having done a lot of work with SVG I would say this is the easiest and likely best way forward. And the library itself is quite impressive.


Group all dependabot deps to avoid failures

As title says

Looks like it is working now. See #1546


mlcube "tmp_submission" was executed during compatibility test

The tmp_submission is behaving weirdly. It seems like an error was thrown when running the compatibility test. This should not be the case, as tmp_submission is only executed when submitting a cube. We need more info on this issue

Resolved by this commit.


can bot assigned can_manage_topics permission pin/close topic?

I found method toggleForumTopicIsPinned/toggleForumTopicIsClosed, but as for the former, It returns error "The method is not available to bots"

Also I encountered a problem, there is, I create a bot help me login a user account on my server; the workflow is, I send phone number to the bot, then the auth code, then the pass if exist; problem occurred in the second step, if the account chatting with the bot and the account to login to server are the same, it will stuck in sending message after receiving auth code from Telegram Service Account.
I tried tg_cli to send the auth code to bot and the same issue occurred. From log I found the send message query kept receiving FLOOD_WAIT_0 error

Also I encountered a problem, there is, I create a bot help me login a user account on my server; the workflow is, I send phone number to the bot, then the auth code, then the pass if exist; problem occurred in the second step, if the account chatting with the bot and the account to login to server are the same, it will stuck in sending message after receiving auth code from Telegram Service Account. I tried tg_cli to send the auth code to bot and the same issue occurred. From log I found the send message query kept receiving FLOOD_WAIT_0 error

sometimes I can send out the auth code, but it would receive PHONE CODE EXPIRED error; resend code would encounter code can't resend error;

@levlam would you please pay some time looking into this issue?

The method toggleForumTopicIsPinned is not available to bots. The method toggleForumTopicIsClosed can be used by bots.
I don't know, what can cause FLOOD_WAIT_0.

The method toggleForumTopicIsPinned is not available to bots. The method toggleForumTopicIsClosed can be used by bots.
I don't know, what can cause FLOOD_WAIT_0.

Will the restriction on bot pinning topic be loosen in the future?
For the second issue, it occurs on both production and test server, no matter tg_cli or official telegram desktop version on linux; it seems like account is restricted on the server side.

well, thx for your answers. I will close this issue.


A syntax fix

Checklist

[ ] The PR conforms to DataHub's Contributing Guideline (particularly Commit Message Format)
[ ] Links to related issues (if applicable)
[ ] Tests for the changes have been added/updated (if applicable)
[ ] Docs related to the changes have been added/updated (if applicable)

Change S3SourceConfig.get_s3_client to S3SourceConfig.s3_client


Defined new revisions for golang dep: github.com/bugsnag/bugsnag-go

Ran component through the scanners since I noticed it had not been harvested yet. PR matches curation site. Closing.


problem with scipy.optimize.linprog method="interior-point"

scipy.optimize.linprog(method="interior-point") does not return a correct answer to even such a simple linear programming problem (see below code):
The problem:
min x1
s.t.
-x1 + x2 <= -1
-x1 - x2 <= 1
The answer should be [x1, x2] = [0, -1] (objective function = 0), but linprog returns [1, 0]  (objective function = 1).
Is this a bug or am I wrong?
Reproducing code example:
from scipy import optimize
import numpy as np

def test():
    """
    min x1
    s.t.
    -x1 + x2 <= -1
    -x1 - x2 <= 1

    the answer should be [x1, x2] = [0, -1] (objective function = 0)
    but linprog returns [1, 0]  (objective function = 1)
    """
    c = np.array([1., 0.])
    G = np.array([[-1., 1.], [-1., -1.]])
    h = np.array([-1., 1.])
    x = optimize.linprog(c, G, h, method="interior-point", options={"disp":True})
    print()
    print(x)

if __name__ == "__main__":
    test()

Error message:

Primal Feasibility  Dual Feasibility    Duality Gap         Step             Path Parameter      Objective
1.0                 1.0                 1.0                 -                1.0                 1.0
0.1436504089458     0.1436504089458     0.1436504089458     0.8617354375388  0.1436504089458     1.235137003524
0.003447933113927   0.003447933113918   0.003447933113918   0.9782408415138  0.003447933113918   1.001317367476
1.833159874731e-07  1.833159869455e-07  1.833159868903e-07  0.9999468570969  1.833159868998e-07  1.000000044834
9.165224151999e-12  9.165817802917e-12  9.1657792467e-12    0.9999500000843  9.165799346942e-12  1.000000000002
Optimization terminated successfully.

     con: array([], dtype=float64)
     fun: 1.0000000000022418
 message: 'Optimization terminated successfully.'
     nit: 4
   slack: array([ -2.19626539e-11,   2.00000000e+00])
  status: 0
 success: True
       x: array([  1.00000000e+00,   2.42044176e-11])

Scipy/Numpy/Python version information:

~~~~
>> import sys, scipy, numpy; print(scipy.__version__, numpy.__version__, sys.version_info)
1.1.0 1.13.3 sys.version_info(major=3, minor=5, micro=5, releaselevel='final', serial=0)
~~~~

@shimodatakaki Thanks for reporting your problem.  Actually, this is not a bug.  I encountered the same problem when I first used linprog, and rereading the docstring gave me the solution.
Unless you change the default by setting the bounds argument appropriately, linprog assumes that each variable must be nonnegative.  This is explained in the description of the bounds argument in the docstring.  Also take a look at the example in the docstring.
To remove that constraint from all the variables, use the bounds argument to set the bounds of each variable to (None, None).  According to the description of bounds,

If a sequence containing a single tuple is provided, then min and max will be applied to all variables in the problem.

so you can use bounds=[(None, None)].  It turns out that the code also accepts the single tuple bounds=(None, None) to accomplish the same thing.
Here's the result of your example, with bounds=(None, None) added to the call of linprog:
In [36]: result = optimize.linprog(c, G, h, method="interior-point", options={"disp":True}, bounds=(None, None))
Primal Feasibility  Dual Feasibility    Duality Gap         Step             Path Parameter      Objective
1.0                 1.0                 1.0                 -                1.0                 0.0
0.1256774040076     0.1256774040076     0.1256774040076     0.8815186667413  0.1256774040076     0.2120640564046
0.0008924919691552  0.0008924919684391  0.0008924919684391  0.9951153633875  0.000892491968591   0.001069500552201
4.514344220663e-08  4.514343683095e-08  4.514343679294e-08  0.9999494219442  4.514343847025e-08  5.342117892493e-08
2.671871897561e-12  2.404895677542e-12  2.404851830107e-12  0.9999467270397  2.333078942807e-12  2.915001573456e-12
Optimization terminated successfully.

In [37]: result.x
Out[37]: array([  2.91500157e-12,  -1.00000000e+00])

Now the result is (approximately) [x1, x2] = [0, -1].

Thank you so much!
I didn't know it. I'll reread linprog documents.


Add HMAC example

@intoverflow Could you do a review of this one?

@flaub @intoverflow still in progress of updating the package, I have quite a little experience with cargo :) I'll tag you once it's working properly

@flaub @intoverflow still in progress of updating the package, I have quite a little experience with cargo :) I'll tag you once it's working properly

We're still open to accepting this PR but we'd like to keep our list of active PR's tidy. So feel free to reopen when this is ready. Closing.


Refactor Phantom#executeCommand, and fix detection of arrow functions

I noticed that command.deferred was set before command was stringified, and, consequently, sent to PhantomJS unnecessarily.
I also fixed the detection of arrow functions. According to the documentation arrow functions lack a prototype. We can consequently detect arrow functions by checking if the variable:

is a function
lacks a prototype

Checklist

[ ] New tests have been added
[x] npm test passes successfully
[ ] Documentation has been updated

@amir20 to review

Looks excellent. I wasn't able to find a way to write a test case for this because everything was transcompiled to es5.
Going to merge this.

... You condition is interesting but the problem is that it also blocks people from changing the context (this) of the function.
For example, I cannot do something like this :
var callback = function(){
// do stuff...
}
page.property('onCallback', function (data) {
  callback(data);
}.bind(this));


Allocations of Frame(Request|Response)Headers

These allocs started showing up recently and it's a bit suspicious

This is only 3002 requests being profiled, notice that these counts are twice that.

by design see: https://github.com/aspnet/Performance/tree/dev/testapp/PooledKestrel to get rid of them

e.g. is controlled by config setting

e.g. is controlled by config setting
A lot of proxy/gateways re-use the connections for different requests from their clients; so a kestrel connection is not necessarily unique to a "into gateway" connection; so the connection can be shared between users - so a mechanism to control some of what is reused on the connection has been introduced; headers being one of these.

Exact PR is https://github.com/aspnet/KestrelHttpServer/pull/608

So why does that result in 2 allocations of FrameRequestHeaders per request?

Ahh, fair point; let me look

Any updates here? this is a pretty significant source of allocations

Doing some Build stuff atm, will have to wait till next week for me to look at it - that work for you?

Doing some Build stuff atm, will have to wait till next week for me to look at it - that work for you?

It would be great to have your help, but I'm sure there are other people who can investigate as well :sunglasses:
@muratg - possible to have someone look at this for RC2?

@mikeharder Do you have some time to look into this?


table能不能扩展树表格和前端自动分页功能?

ElementUI version

OS/Browers version

Vue version

Reproduction Link

Steps to reproduce
What is Expected?
What is actually happening?

https://github.com/njleonzhang/vue-data-tables


Segfault when calling Go function from cgo signal handler

What version of Go are you using (go version)?

$ go version
1.16.3

Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (go env)?
go env Output
$ go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/root/.cache/go-build"
GOENV="/root/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/root/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/root/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GOVCS=""
GOVERSION="go1.16.3"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/root/tmp-curiosity-segv/go.mod"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build37738244=/tmp/go-build -gno-record-gcc-switches"

What did you do?

// cgosignal.go
// Run with: go run cgosignal.go & sleep 1; kill -USR1 %%
package main

/*
#include <stdio.h>
#include <signal.h>
#include <stdlib.h>
#include <unistd.h>

extern double asin(double);
extern double acos(double);

static void sighandler(int signum) {
    fprintf(stderr, "Signal caught, exiting!\n");
    fprintf(stderr, "acos = %lf\n", acos(3.14));
    fprintf(stderr, "Past Go call!\n");
    exit(0);
}

static void main() {
    struct sigaction sigact;
    sigact.sa_handler = sighandler;
    sigemptyset(&sigact.sa_mask);
    sigact.sa_flags = 0;
    sigaction(SIGUSR1, &sigact, NULL);

    fprintf(stderr, "Loaded; waiting for SIGUSR1\n");
    acos(3.14);
    asin(3.14);

    sleep(0xFFFFFFFF);
}
*/
import "C"

//export asin
func asin(x C.double) C.double {
	for {}
	return x
}

//export acos
func acos(x C.double) C.double {
	return x
}

func main() {
	C.main()
}

What did you expect to see?
[1] 27268
Loaded; waiting for SIGUSR1
Signal caught, exiting!
acos = 3.14
Past Go call!
exit status 0
[1]+  Exit 0                  go run cgosignal.go

What did you see instead?
[1] 27268
Loaded; waiting for SIGUSR1
Signal caught, exiting!
unexpected fault address 0xfffffffffffffff8
fatal: morestack on g0
SIGTRAP: trace trap
PC=0x45ce02 m=0 sigcode=128
signal arrived during cgo execution

goroutine 1 [running, locked to thread]:
runtime.abort()
	/usr/local/go/src/runtime/asm_amd64.s:854 +0x2 fp=0xc00004a750 sp=0xc00004a748 pc=0x45ce02
runtime.morestack()
	/usr/local/go/src/runtime/asm_amd64.s:425 +0x25 fp=0xc00004a758 sp=0xc00004a750 pc=0x45b2c5

rax    0x17
rbx    0x6d8840
rcx    0x45e675
rdx    0x17
rdi    0x2
rsi    0x47d19a
rbp    0xc00004a720
rsp    0xc00004a748
r8     0x1
r9     0x706280
r10    0x0
r11    0x202
r12    0xf2
r13    0x0
r14    0x48fd98
r15    0x0
rip    0x45ce02
rflags 0x206
cs     0x33
fs     0x0
gs     0x0
exit status 2
[1]+  Exit 1                  go run cgosignal.go

Notes
I was trying to help out @paultag (https://twitter.com/paultag/status/1380617072921677828) and managed to reproduce the issue without shared libraries involved, just plain cgo signal handler calling Go code.
The only maybe-related issue I found was https://github.com/golang/go/issues/19465 (I'm suspecting something to do with async-signal-safety) which is why I did the repro with SIGUSR1 and not SIGINT (which also has the issue).

have you seen the os/signal section cgo ?

Unfortunately, C signal handlers can only call functions that are async-signal-safe (https://man7.org/linux/man-pages/man7/signal-safety.7.html).  And Go code is never async-signal-safe.  It is never going to be possible to call a Go function from a C signal handler.