worker process NNNNN exited on signal 6 (core dumped)

I'm getting an error in my nginx error log every time a virus is found, non-virus infected files works.
terminate called after throwing an instance of 'std::invalid_argument'
  what():  Variable not found.
2022/05/03 17:55:13 [alert] 58731#58731: worker process 58733 exited on signal 6 (core dumped)

Modsecurity debug log it shows
[1651593312] [/] [1] /opt/modsecurity/var/upload//20220503-175512-1651593312-file-6vLB7h

Clamav logs the following:
Tue May  3 17:55:04 2022 -> instream(local): Win.Test.EICAR_HDB-1(e4968ef99266df7c9a1f0637d2389dab:308) FOUND

My antivirus-config.conf looks like this:
egrep -v '(^#|^\s*$)' antivirus-config.conf
SecAction \
 "id:9502020,\
  phase:1,\
  log,\
  pass,\
  t:none,\
  ver:'antivirus-plugin/1.0.0',\
  setvar:'tx.antivirus-plugin_scan_uploaded_file=1',\
  setvar:'tx.antivirus-plugin_scan_request_body=1',\
  setvar:'tx.antivirus-plugin_max_data_size_bytes=1048576',\
  setvar:'tx.antivirus-plugin_network_timeout_seconds=2',\
  setvar:'tx.antivirus-plugin_clamav_connect_type=socket',\
  setvar:'tx.antivirus-plugin_clamav_socket_file=/var/run/clamav/clamd.ctl',\
  setvar:'tx.antivirus-plugin_clamav_chunk_size_bytes=4096'"

I'm currently using ModSecurity v3.0.6 and Modsecurity-nginx v1.0.2on a fully updated ubuntu 20.04 host, I've tried the master branch of both, but the result is the same. The antivirus plugin files are fetched from the master branch as of today.
This may very well be a configuration issue on my side, any excerpts from the rest of the current config will be provided on request.

Perhaps relevant, I get the following error during normal operations in the debug log.
==> ../modsecdebug.log <==
[1651594863] [/auth/resources/retnp/admin/keycloak/templates/kc-tabs-client.html] [1]
[1651594863] [/auth/resources/retnp/admin/keycloak/templates/kc-tabs-client.html] [2] Failed to execute lua script: /etc/nginx/modsec/crs/plugins/antivirus.lua (main) - /etc/nginx/modsec/crs/plugins/antivirus.lua:39: bad argument #1 to 'len' (string expected, got nil)

Are you sure you have newest version of this file?

Thank you for the swift reply!
Yes, that's the latest version of the file, it has got the same checksum as the file has in a newly cloned repo.
ubuntu@dev-rproxy-l02a:/etc/nginx/modsec/crs/plugins$ egrep -v '(^#|^\s*$)' antivirus-before.conf
SecRule TX:antivirus-plugin_enabled "@eq 0" "id:9502099,phase:1,pass,nolog,ctl:ruleRemoveById=9502100-9502999"
SecRule TX:ANTIVIRUS-PLUGIN_SCAN_UPLOADED_FILE "@eq 1" \
    "id:9502110,\
    phase:2,\
    deny,\
    t:none,\
    msg:'Virus %{tx.antivirus-plugin_virus_name} found in uploaded file %{tx.antivirus-plugin_file_name}.',\
    logdata:'Virus %{tx.antivirus-plugin_virus_name} found in uploaded file %{tx.antivirus-plugin_file_name}.',\
    tag:'capec/1000/262/441/442',\
    ver:'antivirus-plugin/1.0.0',\
    severity:'CRITICAL',\
    setvar:'tx.antivirus-plugin_data_type=file',\
    chain"
    SecRule FILES_TMPNAMES "@inspectFile antivirus.lua" "chain"
        SecRule TX:ANTIVIRUS-PLUGIN_VIRUS_NAME "@streq %{tx.antivirus-plugin_virus_name}"
SecRule TX:ANTIVIRUS-PLUGIN_SCAN_REQUEST_BODY "@eq 1" \
    "id:9502120,\
    phase:2,\
    deny,\
    t:none,\
    msg:'Virus %{tx.antivirus-plugin_virus_name} found in request body.',\
    logdata:'Virus %{tx.antivirus-plugin_virus_name} found in request body.',\
    tag:'capec/1000/262/441/442',\
    ver:'antivirus-plugin/1.0.0',\
    severity:'CRITICAL',\
    chain"
    SecRule &FILES_TMPNAMES "@eq 0" \
        "setvar:'tx.antivirus-plugin_data_type=request_body',\
        chain"
        SecRule REQUEST_BODY "@inspectFile antivirus.lua" "chain"
            SecRule TX:ANTIVIRUS-PLUGIN_VIRUS_NAME "@streq %{tx.antivirus-plugin_virus_name}"
ubuntu@dev-rproxy-l02a:/etc/nginx/modsec/crs/plugins$ md5sum antivirus-before.conf
ce7948dca82241493f00083153d72aa3  antivirus-before.conf

Have you set SecTmpSaveUploadedFiles / SecUploadKeepFiles correctly? See Prerequisities on homepage.

Once again, thanks for the quick reply!
Yes, both are set to On, lua-socket is installed and modsecurity is compiled with lua support.
ubuntu@dev-rproxy-l02a:/etc/nginx/modsec$ egrep -r '(SecTmpSaveUploadedFiles|SecUploadKeepFiles)' .
./modsecurity.conf:SecTmpSaveUploadedFiles On
./modsecurity.conf:SecUploadKeepFiles On
ubuntu@dev-rproxy-l02a:/etc/nginx/modsec$ dpkg -l | grep lua-socket
ii  lua-socket:amd64                    3.0~rc1+git+ac3201d-4                 amd64        TCP/UDP socket library for the Lua language

Summary after ./configure for ModSecurity
ModSecurity - v3.0.6 for Linux

 Mandatory dependencies
   + libInjection                                  ....v3.9.2-46-gbfba51f
   + SecLang tests                                 ....a3d4405

 Optional dependencies
   + GeoIP/MaxMind                                 ....found
      * (MaxMind) v
         /usr/lib/x86_64-linux-gnu//libmaxminddb.so, /usr/include/x86_64-linux-gnu/, -DWITH_MAXMIND -I/usr/include/x86_64-linux-gnu/
      * (GeoIP) v1.6.12
         -lGeoIP, -I/usr/include/
   + LibCURL                                       ....found v7.68.0
      -lcurl,  -DWITH_CURL_SSLVERSION_TLSv1_2 -DWITH_CURL
   + YAJL                                          ....found v2.1.0
      -lyajl, -DWITH_YAJL -I/usr/include/yajl
   + LMDB                                          ....not found
   + LibXML2                                       ....found v2.9.10
      -lxml2, -I/usr/include/libxml2 -DWITH_LIBXML2
   + SSDEEP                                        ....found
      -lfuzzy -L/usr/lib/x86_64-linux-gnu/, -DWITH_SSDEEP -I/usr/include
   + LUA                                           ....found v503
      -llua5.3 -L/usr/lib/x86_64-linux-gnu/, -DWITH_LUA -DWITH_LUA_5_3 -I/usr/include/lua5.3

 Other Options
   + Test Utilities                                ....enabled
   + SecDebugLog                                   ....enabled
   + afl fuzzer                                    ....disabled
   + library examples                              ....enabled
   + Building parser                               ....disabled
   + Treating pm operations as critical section    ....disabled

Please try current version of the Lua script: https://github.com/coreruleset/antivirus-plugin/blob/main/plugins/antivirus.lua

Tested.
ubuntu@dev-rproxy-l02a:/etc/nginx/modsec/crs/plugins# md5sum antivirus.lua
f750ed50a2fd88943319b6fece5d19a9  antivirus.lua
ubuntu@dev-rproxy-l02a:/etc/nginx/modsec/crs/plugins# diff antivirus.lua antivirus.lua.old
38,44d37
< 	elseif data_type == "request_body" then
< 		if filename_or_data == nil then
< 			data_size = 0
< 		else
< 			data_size = string.len(filename_or_data)
< 		end
< 		position_from = 1
46,47c39,40
< 		m.log(2, "Antivirus Plugin ERROR: Invalid value for 'tx.antivirus-plugin_data_type', probably a misconfiguration or version mismatch.")
< 		return nil
---
> 		data_size = string.len(filename_or_data)
> 		position_from = 1

Tested using curl from another host, some valued redacted:
curl -v -k 'https://auth.dev.XXX.com/' --form<EMAIL_ADDRESS>                                                                        [13:03.36]
*   Trying <IP_ADDRESS>...
* TCP_NODELAY set
* Connected to auth.dev.XXX.com (<IP_ADDRESS>) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/cert.pem
  CApath: none
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384
* ALPN, server accepted to use http/1.1
* Server certificate:
*  subject: CN=auth.dev.XXX.com
*  start date: Mar 25 04:36:26 2022 GMT
*  expire date: Jun 23 04:36:25 2022 GMT
*  issuer: C=US; O=Let's Encrypt; CN=R3
*  SSL certificate verify result: certificate has expired (10), continuing anyway.
> POST / HTTP/1.1
> Host: auth.dev.XXX.com
> User-Agent: curl/7.64.1
> Accept: */*
> Content-Length: 513
> Content-Type: multipart/form-data; boundary=------------------------265fc8e64f52d276
>
* We are completely uploaded and fine
* Empty reply from server
* Connection #0 to host auth.dev.XXX.com left intact
curl: (52) Empty reply from server
* Closing connection 0

Logfile entries produced from nginx and modsec debug remains the same.
==> modsecdebug.log <==
[1651662569] [/] [1] /opt/modsecurity/var/upload//20220504-130929-1651662569-file-P6lVDm

==> nginx/error.log <==
terminate called after throwing an instance of 'std::invalid_argument'
  what():  Variable not found.
2022/05/04 13:09:29 [alert] 4841#4841: worker process 4842 exited on signal 6 (core dumped)

Clamd still reports that it found a virus at the same time:
Wed May  4 13:09:29 2022 -> instream(local): Win.Test.EICAR_HDB-1(e4968ef99266df7c9a1f0637d2389dab:308) FOUND

Also: nginx was restarted after installing the new dot-lua file.

Ok, so one of the problems is gone. I did an additional little change, can try the current Lua script again? Thank you.

Tested, outcome is the same.
ubuntu@dev-rproxy-l02a:/etc/nginx/modsec/crs/plugins$ md5sum antivirus.lua
7998b742252496cbbda1c9fdfa7234a7  antivirus.lua
ubuntu@dev-rproxy-l02a:/etc/nginx/modsec/crs/plugins$ diff antivirus.lua antivirus.lua.old.2
110c110
< 	if data_type == "file" then
---
> 	if file_handle ~= nil then

nginx restarted
Curl:
curl -v -k 'https://auth.dev.corp.seconag.com/' --form<EMAIL_ADDRESS>
____OUTPUT REMOVED___
> POST / HTTP/1.1
> Host: auth.dev.corp.seconag.com
> User-Agent: curl/7.64.1
> Accept: */*
> Content-Length: 513
> Content-Type: multipart/form-data; boundary=------------------------fefb57aaeb8feb76
>
* We are completely uploaded and fine
* Empty reply from server
* Connection #0 to host auth.dev.corp.seconag.com left intact
curl: (52) Empty reply from server
* Closing connection 0

Logs after curl:
==> modsecdebug.log <==
[1651663515] [/] [1] /opt/modsecurity/var/upload//20220504-132515-1651663515-file-NCP6ao

==> nginx/error.log <==
terminate called after throwing an instance of 'std::invalid_argument'
  what():  Variable not found.
2022/05/04 13:25:15 [alert] 5397#5397: worker process 5398 exited on signal 6 (core dumped)

This looks like to be a bug in ModSec 3. Maybe it will help me if you can debug it more.
If you would mind doing more debugging, i need to know exact line of Lua script where it crashes (maybe i will be able to bypass it). You can put this line anywhere in the script to see if execution gets there:
m.log(2, "this text will be logged into web server error log")
Using it you can find where exactly it stops and crashes. As data were sent into antivirus, i suggest to start on line 109. For example (i added m.log(2, "DEBUG: X") lines):
        ...
        m.log(2, "DEBUG: 1")
	if data_type == "file" then
		io.close(file_handle)
	end
        m.log(2, "DEBUG: 2")

	local output = ""
	while true do
		local s, status, partial = sck:receive()
		if s then
			output = output .. s
		elseif partial then
			output = output .. partial
		end
		if status == "closed" then
			break
		elseif status == "timeout" then
			m.log(2, "Antivirus Plugin ERROR: Timeout while scanning data.")
			return nil
		end
	end
        m.log(2, "DEBUG: 3")
	sck:close()
        m.log(2, "DEBUG: 4")
        ...

Roger wilco, will get back to you shortly.

The issue seems to be here:
                       m.log(2, "DEBUG: 18")
                        if data_type == "file" then
                                m.log(2, "DEBUG: 19")
                                local real_file_name = "<unknown>"
                                m.log(2, "DEBUG: 20")
                                local files_tmpnames = m.getvars("FILES_TMPNAMES", "none")
                                m.log(2, "DEBUG: 21")
                                for key, tmpfile in pairs(files_tmpnames) do

Output in my logfiles:
==> modsecdebug.log <==
[1651664888] [/] [1] /opt/modsecurity/var/upload//20220504-134808-1651664888-file-Da9eRW
[1651664888] [/] [2] DEBUG: 1
[1651664888] [/] [2] DEBUG: 2
[1651664888] [/] [2] DEBUG: 3
[1651664888] [/] [2] DEBUG: 4
[1651664888] [/] [2] DEBUG: 5
[1651664888] [/] [2] DEBUG: 6
[1651664888] [/] [2] DEBUG: 7
[1651664888] [/] [2] DEBUG: 8
[1651664888] [/] [2] DEBUG: 11
[1651664888] [/] [2] DEBUG: 5
[1651664888] [/] [2] DEBUG: 6
[1651664888] [/] [2] DEBUG: 9
[1651664888] [/] [2] DEBUG: 10
[1651664888] [/] [2] DEBUG: 11
[1651664888] [/] [2] DEBUG: 12
[1651664888] [/] [2] DEBUG: 13
[1651664888] [/] [2] DEBUG: 14
[1651664888] [/] [2] DEBUG: 15
[1651664888] [/] [2] DEBUG: 16
[1651664888] [/] [2] DEBUG: 17
[1651664888] [/] [2] DEBUG: 18
[1651664888] [/] [2] DEBUG: 19
[1651664888] [/] [2] DEBUG: 20

==> nginx/error.log <==
terminate called after throwing an instance of 'std::invalid_argument'
  what():  Variable not found.
2022/05/04 13:48:08 [alert] 6396#6396: worker process 6397 exited on signal 6 (core dumped)

Also, here is my installation of nginx and ModSecurity: https://gist.github.com/np422/c811b699fd5cc06e882b0df668db954d
If you don't speak ansible, the relevant parts are probably the vars definitions and the shell commands on line 76-93

If this is an modsecurity bug, how should I proceed to report it?

Probably a modsec bug but wait, i will try to bypass it today. Thanks for lots of info.

Once again, thanks for the quick response.
If there is anything else I can do to help, just let me know!

Hello!
The latest version of antivirus.lua had a slightly different crash-location.
Here's my current slightly modified version of antivirus.lua with more debug statements and another getvar test inserted.
               m.log(2, "DEBUG: 1")
                if virus_name then
                        m.log(2, "DEBUG: 2")
                        m.setvar("tx.antivirus-plugin_virus_name", virus_name)
                        m.log(2, "DEBUG: 3")
                        if data_type == "file" then
                                m.log(2, "DEBUG: 4")
                                local real_file_name = "<unknown>"
                                m.log(2, "DEBUG: 5")
                                local foo = m.getvar("REMOTE_ADDR")
                                m.log(2, "DEBUG: YY")
                                m.log(2, "DEBUG: XX: " .. foo)
                                local modsec_build = tonumber(m.getvar("MODSEC_BUILD","none"))
                                m.log(2, "DEBUG: ZZ")
                                m.log(2, "DEBUG: 6:" .. modsec_build )
                                -- Because of the bug in v3 version, this feature is supported only in v2.

And the log output it produces
==> modsecdebug.log <==
[1651870955] [/] [1] /opt/modsecurity/var/upload//20220506-230235-1651870955-file-6GWDEH
[1651870955] [/] [2] DEBUG: 1
[1651870955] [/] [2] DEBUG: 2
[1651870955] [/] [2] DEBUG: 3
[1651870955] [/] [2] DEBUG: 4
[1651870955] [/] [2] DEBUG: 5
[1651870955] [/] [2] DEBUG: YY
[1651870955] [/] [2] DEBUG: XX: <IP_ADDRESS>

==> nginx/error.log <==
terminate called after throwing an instance of 'std::invalid_argument'
  what():  Variable not found.
2022/05/06 23:02:35 [alert] 84670#84670: worker process 84672 exited on signal 6 (core dumped)

It seems like getvar works correctly only for some variables, REMOTE_ADDR works, but MODSEC_BUILD and FILES_TMPNAMES do not.
And my current knowledge of modsecurity and it's lua scripting integration is insufficient to pursue the bug further at this time.
Is there any other debing

What about current version of antivirus.lua? :)

The current version crashed at at m.getvars for modsecurity version.
Hence my extended debug version, compare the comment at bottom and you'll
recognize the current version.
On Sat, May 7, 2022, 16:08 azurit @.***> wrote:

What about current version of antivirus.lua? :)
—
Reply to this email directly, view it on GitHub
https://github.com/coreruleset/antivirus-plugin/issues/5#issuecomment-1120216327,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJTALKOTRT6MLL4DVRJ6D3VIZ2NNANCNFSM5U7LWSNQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

But i uploaded a new version 30 minutes ago, see https://github.com/coreruleset/antivirus-plugin/blob/main/plugins/antivirus.lua (without use of MODSEC_BUILD).

Sorry for the delay, I was afk until now.
The new version works beautifully without any nginx worker crashes and the client gets the correct 403 response!
Thank you very much.
The log message generated don't contain the filename of the uploaded file, but this is more cosmetic than functiona. I guess it's due to the difficulties accessing FILES_TMPNAMES.
dev-rproxy-l02a nginx: 2022/05/07 22:15:00 [error] 116874#116874: *1 [client <IP_ADDRESS>] ModSecurity: Access denied with code 403 (phase 2). Matched "Operator `StrEq' with parameter `' against variable `TX:ANTIVIRUS-PLUGIN_VIRUS_NAME' (Value: `Win.Test.EICAR_HDB-1' ) [file "/etc/nginx/modsec/crs/plugins/antivirus-before.conf"] [line "20"] [id "9502110"] [rev ""] [msg "Virus Win.Test.EICAR_HDB-1 found in uploaded file <unknown>."] [data "Virus Win.Test.EICAR_HDB-1 found in uploaded file <unknown>."] [severity "2"] [ver "antivirus-plugin/1.0.0"] [maturity "0"] [accuracy "0"] [tag "capec/1000/262/441/442"] [hostname "<IP_ADDRESS>"] [uri "/"] [unique_id "1651954500"] [ref "v289,67"], client: <IP_ADDRESS>, server: auth.dev.XX.com, request: "POST / HTTP/1.1", host: "auth.dev.XX.com"

From my point of view we this issue can be closed, once again thank you for the very responsive and and quick handling.

Can you be so kind and test again please? You need to update two files: antivirus-before.conf and antivirus.lua.
Unfortunately, file name can't be logged on Modsec v3 as Lua scripts can't access FILES_TMPNAMES collection. But this is a problem only while doing multiple files upload (you don't need to identify file in other cases as there's only one file).

Hello, with the updated two files - it still seems to work just as well.
==> modsecdebug.log <==
[1652098622] [/] [1] /opt/modsecurity/var/upload//20220509-141702-1652098622-file-v0BvrQ

==> nginx/error.log <==
2022/05/09 14:17:02 [error] 170807#170807: *1 [client <IP_ADDRESS>] ModSecurity: Access denied with code 403 (phase 2). Matched "Operator `StrEq' with parameter `' against variable `TX:ANTIVIRUS-PLUGIN_VIRUS_NAME' (Value: `Win.Test.EICAR_HDB-1' ) [file "/etc/nginx/modsec/crs/plugins/antivirus-before.conf"] [line "24"] [id "9502110"] [rev ""] [msg "Virus Win.Test.EICAR_HDB-1 found in uploaded file <unknown>."] [data "Virus Win.Test.EICAR_HDB-1 found in uploaded file <unknown>."] [severity "2"] [ver "antivirus-plugin/1.0.0"] [maturity "0"] [accuracy "0"] [tag "capec/1000/262/441/442"] [hostname "<IP_ADDRESS>"] [uri "/"] [unique_id "1652098622"] [ref "v289,67"], client: <IP_ADDRESS>, server: auth.dev.XX.com, request: "POST / HTTP/1.1", host: "auth.dev.XX.com"

As previous, the upload of virus was tested using curl -v -k 'https://auth.dev.XX.com/' --form<EMAIL_ADDRESS>

Oh sorry, I missed that - will try later!
On Sat, May 7, 2022, 16:45 azurit @.***> wrote:

But i uploaded a new version 30 minutes ago, see
https://github.com/coreruleset/antivirus-plugin/blob/main/plugins/antivirus.lua
(without use of MODSEC_BUILD).
—
Reply to this email directly, view it on GitHub
https://github.com/coreruleset/antivirus-plugin/issues/5#issuecomment-1120221881,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJTALPJX4FDNQTKSVOXVRLVIZ62FANCNFSM5U7LWSNQ
.
You are receiving this because you were mentioned.Message ID:
@.***>


Relax parsing rules for CSV translation files

Fixes https://github.com/godotengine/godot/issues/82002
This PR relaxes the parsing rules in the CSV translation importer, so that CSVs that are not properly formatted don't fail the import. This allows users to change the delimiter options (or set the mode to "keep").
More specifically, this would no longer throw an error for:

CSVs that don't have more than 1 line (this could happen if a non-comma delimiter is set)
CSVs that have keys without the expected number of translations (this could happen if a non-comma delimiter is set but a comma is used elsewhere in the file)

Testing this is a bit tedious at the moment due a crash in import_dock.cpp when reimporting files that don't return a resource from ResourceLoader::load. Fix for that is up here: https://github.com/godotengine/godot/pull/82490

There are no chances of adding unit tests for this? Because this can totally be a thing to be unit tested without too much trouble.

Good idea, I'll add some tests!

Added tests for:

importing a file that has a malformed header row (imports with no data)
importing a file that has a malformed translation row (skips importing the line in question)

I also moved the existing csv import test to this new file. I don't think it belongs in the test_translation.h file.
There didn't seem to be much precedent for these tests, as none of the other importers have tests. It seemed like it might be a good idea to have a folder for things that test pure editor code, as opposed to being shoved into existing files with a bunch of TOOLS_ENABLED conditionals. Then the test files can just be included with a single conditional. In any case, let me know if there's a better way to organize this and I'll update as needed.


In Vite Dev Mode, request.url.port is incorrect

Reproduction
https://github.com/patdx/remix-vite-request-url-issue
System Info
System:
    OS: Linux 6.6 Fedora Linux 39 (Workstation Edition)
    CPU: (4) x64 Intel(R) Core(TM) i5-4690 CPU @ 3.50GHz
    Memory: 10.66 GB / 23.40 GB
    Container: Yes
    Shell: 5.9 - /usr/bin/zsh
  Binaries:
    Node: 20.9.0 - /run/user/1000/fnm_multishells/39998_1706767571052/bin/node
    Yarn: 1.22.19 - /run/user/1000/fnm_multishells/39998_1706767571052/bin/yarn
    npm: 10.4.0 - /run/user/1000/fnm_multishells/39998_1706767571052/bin/npm
    pnpm: 8.14.3 - /run/user/1000/fnm_multishells/39998_1706767571052/bin/pnpm
  Browsers:
    Chrome: 121.0.6167.139
  npmPackages:
    @remix-run/dev: ^2.5.1 => 2.5.1
    @remix-run/node: ^2.5.1 => 2.5.1
    @remix-run/react: ^2.5.1 => 2.5.1
    @remix-run/serve: ^2.5.1 => 2.5.1
    vite: ^5.0.0 => 5.0.12

Used Package Manager
pnpm
Expected Behavior
In Vite Dev Mode, in Remix Loaders and Actions, new URL(request.url).port should be the port of the dev server, which is port 5173 by default.
Actual Behavior
The value of new URL(request.url).port is actually the port of the requesting web browser app.
I believe this is happening because the Vite Dev Handler is coded to use the Origin header when it exists over the Host header. The Origin header indicates the origin (scheme, hostname, and port) that caused the request.
The Host and Origin will conveniently have the same port number for a standard Remix Web App. However, if you are connecting to a Remix server from a browser web app on a different port, both port numbers would be different.
I'm not sure that it is ever necessary to use the Origin to calculate the request.url. Similar to the createRemixRequest() function maybe it is better to only use the host heaader or possibly x-forwarded-host

Good find! Definitely something we can fix. Just curious, is this causing any errors or problems in your app? Seems odd to depend on the port

@pcattori yes, it is causing an error for me. My Remix app API routes return absolute urls inside their responses referring to other resources on the server. The generated URLs are now incorrect in Vite dev mode.
So, I'm working on an application with two parts:

Remix-powered admin dashboard and API server (Port 5173 in Dev Mode)
Angular SPA for end users (Port 4200 in Dev Mode)

The Angular app gets its data from the Remix app's API routes.
The relevant parts of the Remix app looks like this:
app/
├─ routes/
│  ├─ api.locations.ts
public/
├─ images/
│  ├─ pizza-planet.jpg

The Angular SPA fetches data from the Remix app at http://localhost:5173/api/locations, and the Remix app returns the following json:
[{
  "id": 1,
  "name": "Pizza Planet",
  "thumbnail": "http://localhost:5173/images/pizza-planet.jpg"
}]

The Remix API server gives back the absolute URL so the Angular app can just plop that url into an <image src="..." /> and it will simply work regardless of where the Angular app is served from.
So internally the Remix app code looks like this:
// /app/routes/api.locations.ts
export function loader({ request }) {
  return json({
    id: 1,
    name: "Pizza Planet",
    thumbnail: new URL("/images/pizza-planet.jpg", request.url).toString(),
  });
}

This is working fine in Remix Prod mode, and Remix Old Dev Mode. But in Remix Vite Dev Mode, when the Angular app requests the locations, it returns thumbnail url incorrectly as:
http://localhost:4200/images/pizza-planet.jpg

With the 4200 coming from the Origin header of the HTTP Request. Port 4200 maps back to the Angular Dev Server, but the image is actually served by Remix, so this URL doesn't actually load the image, it just returns a 404 error.
I feel that recent JavaScript libraries are converging around having the Request.url match the Host header  URL This is the case in Cloudflare Workers/Pages Functions, H3, and Hono. While it would not be feasible to account for every case of upstream reverse proxy (which may lead to headers like x-forward-host), I think it would be good to support some basic use cases like above, which could be done by reading the Host header and ignoring the Origin header. Hopefully this explanation makes a little more sense?


test: paths should resolve without sandbox directories

Overview
I have been trying to figure out whether this issue is in SWC or rules_swc. For now I am going to leave this here since it is a simple reproduction of the issue I am seeing. For a more in depth reproduction of this working outside Bazel, please see: https://github.com/jackvincentnz/bazel-swc-paths-bug-repo
Motivation

Minimal reproduction of sandbox paths being present in transpiled javascript after swc transpilation of .ts imports using tsconfig paths.
Bundling the transpiled sources is impossible because the resolved path is not accessible to another downstream action.

Type of change

Reproduction of issue

Test plan

New test cases added

Summary
Sandbox paths are present in transpiled sources when the module being transformed is nested from the baseUrl configured in .swcrc.
E.g. we expected to see paths resolved to their relative paths:
const _moduleB = require("../moduleB");

But instead we see a sandbox path:
const _moduleB = require("../../../../../../../../../../private/var/tmp/_bazel_jack.vincent/bfa0af320da1536c766f4c861b78e1af/sandbox/darwin-sandbox/6/execroot/aspect_rules_swc/examples/paths/src/modules/moduleB");

build --modify_execution_info=SWCTranspile=+no-sandbox doesn't seem to make this pass, as mentioned it might in https://github.com/swc-project/swc/issues/4057#issuecomment-1118001633

This will be fixed by #216 which was unblocked yesterday thanks to an upstream fix in SWC


Improve run git script

This PR improves the npm run git <subcommand> script without changing any fundamental behavior.

Clearer output marking each per-module execution
Slightly easier to update in the future

looks good to me.
npm run git pull (looking diff from running npm run pull though...):

and npm run git status:

Changes have been made to make npm run pull give the same output as npm run git pull. Additionally, all scripts concerning the package now use packages.txt as a master list of repository URL and package directory, meaning there is only one file to update in the event of package changes (new package/URL change/etc)

tried it out, I like it


Launching Mupen64plus GLES3 or Parallel64 Retroarch cores through Daijisho causes inputs to not register

I encountered this glitch two days ago, if you launch a game through Daijisho when M64P GLES3 or Parallel64 is selected, the controls on your device will no lomger register, or if they do, they will register in an extremely delayed manner. This effect persists even when not launching a game through Daijisho, as long as you do it once the effect will persist.  The only fix I've found is to completely uninstall retroarch and all of its installation folders, then reinstalling it.

This is a known issue when launching into the N64 corrs from a front-end. Here's the issue being mentioned back in 2016
Launching the Retroarch Quick Menu restores the controls. I'll recommend creating an touch screen overlay

I also encountered this, I guess the issue is in RA rather than the frontend or emulator itself?

I also encountered this, I guess the issue is in RA rather than the frontend or emulator itself?

Seems like it.

@AncientCarthage Trying to narrow it down with the help from RA, which device are you using when you experience the issues with inputs not registering? I have a Retroid Pocket 3+ myself.

@magneticchen It could be device specific or a Daijishou issue, do you have any possibility to test this on a different device than Retroid Pocket? https://github.com/libretro/RetroArch/issues/15109#issuecomment-1477056234

Hello. I've tried it myself seems like the core has several issues with several games.

I'm seeing similar problems on an Odin Lite, Android 11. I posted detailed testing information in the linked thread. From what I can tell this is not a Daijishou issue since I can repro the exact same problem with LaunchBox. I'm wondering for others experiencing this problem - do other front ends have the same issue with RA?

The issue is most likely how RetroArch starts to recognize a controller connected. It's inconsistent between games & controllers on the N64 cores when launched from a front-end.
Here's the apparent fix:

Open RetroArch by itself > Settings > Input > Polling Behavior > Early > Save Configuration

Or if you want to save it per core

RetroArch Quick Menu > RetroArch Main Menu > Settings > Input > Polling Behavior > Early > RetroArch Quick Menu > Overrides > Save Core Override

I tested it on my end with Rogue Squadron (since that's the only game I can get to always reproduce the issue) and it seems to work.
If your still following this issue try the setting mentioned above and see if it works.

Closing this issue as the above message fixes the issue when launched from a frontend


Setup Integration testing with different ES versions

To make sure the whole module keeps working with different released versions and snapshot builds we need Integration testing.
This test would install an existing release or snapshot and do some simple tests:

[ ] Service management
[ ] Plugin installation
[ ] Plugin removal
[ ] Template insert
[ ] Cleanup

This is to catch issues like #368 and any future issues.
Testing with:

CentOS 6
CentOS 7
Debian 7
Debian 8
Ubuntu 14.04

ES releases:
Latest released:

1.1.x
1.2.x
1.3.x
1.4.x
1.5.x
1.6.x

Snapshot branches:

Master_nightly
1.x_nightly
1.6_nightly
1.5_nightly
1.4_nightly
1.5_nightly
1.2_nightly
1.1_nightly

Done with #380


TN058 and cross-dll singletons

It is time to update this article. Clearly C++ MFC  has proved its worth and is now begrudgingly been given top-shelf precedence by the likes of C++ ISO standard people like Herb Sutter and by implementing MFC on ARM64 May 11th, 2018. This was all predictable by a good architect.
TN058 needs some attention though. Over the years MFC pundits have categorically warned against using same-process global variables in different DLLs. But what if your project architecturally needs and protects an object singleton as is the case in my project? This article does not address that, and I wish it would. Please consider an update. Thank you.

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

ID: 9a509de5-c1a1-6a8a-db5d-8aa48cbb6994
Version Independent ID: 51778cfa-fe57-614d-4f8a-6011e07f3370
Content: TN058: MFC Module State Implementation
Content Source: docs/mfc/tn058-mfc-module-state-implementation.md
Product: visual-cpp
GitHub Login: @mikeblome
Microsoft Alias: mblome

@mikeblome C++ does not, nor will it have, any concept of processes and it wasn't before C++11 that threads came about. The DLL is therefore still far ahead in its ability to reference count its existence regardless of whether it is instantiated in a new process or multiple times within the same process. But MFC's TN058 article only addresses difficulties in the past in accessing global variables. Today's C++ has self-destroying smart pointers potentially making any cross-process object safely usable. Cross-process COM has never worked well because its architecture only dealt with binaries and the marshalling of same. Today's C++ not only generates source code on the fly (templates), but guarantees object safety (smart pointers) regardless of its context (thread or process). Given this, MS ought to see MFC as a strength and update its classes and articles like TN058 to reflect these developments.
But MFC is in serious need of updating. Although Jeff Prosise long ago correctly described MFC's message maps as a more efficient virtual constructor implementation, they are implemented as macros. Macros are on their way out of the C++ language. MFC could be written much more cleanly today by using modern C++17 constructs. For example, in my apps I routinely pass std::tuple data across threads without leaks using std::unique_ptr and variadic templates. This kind of modern C++ code improvement ought to be added to the MFC infrastructure so developers don't have to do it themselves.
Whereas, as Bjarne Stroustrup created C++ as C with classes, MFC is C++ with processes. If Microsoft really wants to develop tools for Any Developer, Any App, Any Platform, then it needs to rescue MFC from cultural bias before it squanders its lead. The advent of ARM64 MFC is testimony that at least some of MS architects have gotten it right.
But there is a bug in MFC that involves cross-DLL access and objects, the stuff of TN058. I have posted it on the Visual Studio Developer Community under the title, "Handler never reached from PostThreadMessage" in mainframe exe". I have also written and posted sample code that illustrates the problem along with attached screen shots.

Thanks for the clarification. I have forwarded this to the MFC experts. The developercommunity site is the proper place to raise the issue, and I see you do have the attention of Microsoft people on that thread. If you have a specific idea for how to improve this topic, you are welcome to make a pull request by clicking the Edit button on the page.


Addresses question on public cert use case

Added text and reference to doc article about uploading and using a public cert in a web app.

@stefsch : Thanks for your contribution! The author, @cephalin, has been notified to review your proposed change.

#sign-off
@stefsch Use the azure-docs-pr repo in the future instead. The azure-docs one is for community contributors.


include KMT tests in pipeline.run

What does this PR do?
Runs KMT tests when using inv pipeline.run
Motivation
The command should run all tests.
Additional Notes

Possible Drawbacks / Trade-offs

Describe how to test/QA your changes

/merge


Invalid input: root must be an object

I tried to implement the reboot and shutdown method from HetznerCloud\Servers but I keep getting the error : exception 'Exploriment\HetznerCloud\Exceptions\ApiInvalidInput' with message 'invalid input: root must be an object' in /home/hvbeta/public_html/modules/addons/hv_hetzner/vendor/exploriment/hcloud-php/src/Http.php:123
I tried to check the input of the request method from Http class and it looks ok :
string(6) "597685" string(31) "servers/597685/actions/shutdown"
array(0) { }
array(0) { }

I also tried the API from Hetzner directly with curl and it works, so the problem must be somewhere at the method that sends the request, but I cannot figure out where.

Should be fixed!

Yes, it works now! Thank you again!


[occm] remove SGs from non-existent nodes ports on Update

What this PR does / why we need it:
Update applyNodeSecurityGroupIDForLB() to also lookup ports that have the SG tag and detach the SG from the ports
that aren't belonging to the ports of the current list of Nodes.
This will ensure ports are cleaned up if a Node is being removed from a Loadbalancer.
Which issue this PR fixes(if applicable):
fixes #2695
Release note:
When a Node is removed from a load balancer, we'll now ensure that its ports don't have the security group associated
with the load balancer.

/cc dulek mdbooth

This hasn't got any traction, and we even have concerns about it so I'll just close it for now.
/close


Draft: Use a nixpkgs fork with the python-env-venv patch from cwp

This is not meant for merge as-is; it's more of a "here's something we could do" to move along the python-rewrite branch.

Use the patchset from https://github.com/NixOS/nixpkgs/pull/275701 in a nixpkgs fork (https://github.com/mcdonc/nixpkgs/tree/nixos-23.11-python-env-venv) to fix Python venv generation and library loading.

Additional minor features: add a --keep-going flag to devenv test and handle ctrl-C gracefully during test runs.

Two languages don't work for reasons I can't quite figure out: swift and julia.  Neither compiles properly in my runs.
You'll want to do a "cachix use apex" before trying to do anything with this branch.  I've populated that cache with all the packages I could build from running all of the tests.

Here's a similar branch which proves that it also works with a fork of nixpkgs-unstable:
https://github.com/mcdonc/devenv/tree/python-rewrite-nixpkgs-unstable-env-venv-fixed-pkgs

This is now part of #1005


⚠ SceneTime has degraded performance

In 37237b2, SceneTime ($ST) experienced degraded performance:

HTTP code: 200
Response time: 2807 ms

Resolved: SceneTime performance has improved in 3d482e4 after 7 minutes.


Pick up service discovery interface change

@xichen2020 @robskillington

Coverage decreased (-0.03%) to 78.163% when pulling b21993d6718cd340618c15aa1a62999b6e2150b4 on chao-sd-change into 9fb4e91d765c1190019bd5f37af2ce13b869a20d on master.

Coverage decreased (-0.1%) to 78.067% when pulling e9999313c2490bf71dd69f4ecb608971ecb0dec6 on chao-sd-change into 9fb4e91d765c1190019bd5f37af2ce13b869a20d on master.


What do you think about adding two call backs to libcontainer

This goes back to the tmpfs patches I have been trying to get through, where I want to grab the content off of the underlying file system and put it on the new tmpfs file system.
I was thinking of a call back like premount/postmount  callbacks, perhaps where premount returns a
reference which is passed to postmount.
Then we could back up the contents of the mount on directory to memory and untar the memory on to the new tmpfs in postmount.

I'm +1 on hooks that shell out to specified scripts.  Should something like that work or what type of callbacks were you thinking about?

pre-mount and post-mount hooks would encourage hooks after every ns setup. @rhatdan  Would it be enough to have a pre-setup and post-setup hook and not tie it to a specific ns setup?
Ideally, we would also need destroy hooks to clean the setup that is not automatically cleared by ns destruction.

Well the hooks I am looking for here are not for NS setup, but more for mounting each file system within the mnt namespace.   Since all of the namespaces are usually handled within a single clone. I am not sure what a Pre Namespace would do for you.  I guess a post namespace might be handy.
Google was looking for something a little more elaborate, where they would like to examine the content of the mnt namespace after PID 1 has stopped running.  But I think that is beyond the scope of this issue.

i'm +1 for adding hooks to external scripts too. It can be helpful in many cases for example, manipulating the rootfs directory ( backup / mount tmpfs / mount ecryptfs ) before the container is running.
fwiw, here's the existing hook structure for lxc http://man7.org/linux/man-pages/man5/lxc.container.conf.5.html. It has two specific hooks for mount namespace ( and a few more ), pre-mount where namespace is setup but pivot root is not run, and mount after pivot root is finished.

So in PR#11254 we took a stab at using channels and callbacks for implementation of PreMount/PostMount hooks.   Both failed, because of the way docker and libcontainer communicate.  We would like to move this forward, and were wondering if people had other ideas with some concrete examples of how it could be done.

We discussed in #docker-dev map[string]exec.Cmd, where key defines place of call exec.Cmd, we can pass whole container config or its parts to such cmds as env.

https://github.com/docker/libcontainer/pull/495

#495 was merged


Added flutter_drawing_board

#641
https://github.com/JideGuru/flutter_drawing_board
A simple drawing app made with Flutter

please merge my pr

Already added


Forked aria2 self-terminate in FreeBSD

'aria2' process spawned by subprocess routines self-terminates after execution.  This behaviour is known under FreeBSD environment.

Fixed with commit aa76b2ee4ca0a9412ab7329af901b91884d10412

Close this issue for now.  Expect better solution.


fix watch of single object

Closes #6480
I added an integration test to hopefully keep this working in the future. It's been broken for a very long time.

LGTM


different background image for smartphones

Using media query (see below) I'm setting up a different background image for the case when the site is viewed on a smartphone.

However when the image is switched (when I reach 480px) the image (which has different dimensions) is not shown correctly.  I think it is still using some sort of zoom stuff from the image that was shown before?  Not sure how to explain this...  I think I need to reset somethings when the image is switched?
Any ideas?
Thanks,
Kevin

would also love to know how to do this correctly.

I would also want to know how to fix this.

You could use [jQuery Browser Plugin] (https://github.com/gabceb/jquery-browser-plugin) to detect the device and then just use a simple if statement to define the image.
var backgroundsrc = ($.browser.mobile == true) ? 'path/to/mobile/image.jpg' : 'path/to/desktop/image.jpg';

$('#element').backstretch(backgroundsrc);

If you require it work for multiple images you could always put the path to the images in data attributes on the elements.

$('.backstretchelement').each(function(event){
    var imagesize = ($.browser.mobile == true) ? 'mobile' : 'desktop';
    $(this).backstretch($(this).data(imagesize));
});


rsa.setPrivateString is not a funtion

I just tried example given in read me.  Can someone help whether i'm missing something else?
Actual use case is , i get the token as a param in url which is  rsa encrypted. I need to decrypt it with a private certificate.

What's your code looks like.
On Wed, Oct 18, 2017 at 10:14 PM, sreeksp<EMAIL_ADDRESS>wrote:

I just tried example given .
[image: screen shot 2017-10-18 at 10 13 04 pm]
https://user-images.githubusercontent.com/15642935/31755179-9df8aaf2-b451-11e7-99f8-945625009cfd.png
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/z-hao-wang/react-native-rsa/issues/11, or mute the
thread
https://github.com/notifications/unsubscribe-auth/ABjVg1NSVmbe0jxjzrr5J-1rUjUhgRc4ks5sttrIgaJpZM4P-tXD
.

--
Hao Wang

   handleOpenURL = (event) => {
   console.log(event);
   let url = event.url;
   let params = url.split('param=')[1].split('&');
   //this.navigate(event.url);
   console.log(params);
   let privateKey = `privatekey`
   rsa.setPrivateString(privateKey);
   let decrypted = rsa.decrypt(params);
   console.log(decrypted);

There might be some encoding issue or the encrypted data isn't in the right format.
I would suggest to try to compare he date you are decrypting with the encrypted by this lib.
var rsa = new RSAKey();
rsa.setPublicString(publicKey);
var originText = 'sample String Value';
var encrypted = rsa.encrypt(originText);
Then compare the encrypted string with your string

so, now i'm getting JSON parse error. does react-native-rsa support passing .pem file as private key

It does not support import pem key.
You will need to pass in the raw key components.
On Thu, Oct 19, 2017 at 11:39 AM, sreeksp<EMAIL_ADDRESS>wrote:

so, now i'm getting JSON parse error. does react-native-rsa support
passing .pem file as private key
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/z-hao-wang/react-native-rsa/issues/11#issuecomment-337999458,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABjVg9ruWQW-QVgCF7ylcB2tW-BvWgPoks5st5d_gaJpZM4P-tXD
.

--
Hao Wang

is rsa.setPrivateSting() expecting the raw key components to be in json format?

@z-hao-wang i have a pem file which holds the rsa private key. Can you help me in which  format do i need to pass? or can you give a working example where you pass the raw contents of pem file to rsa.setPrivateString(). This is my code.
  var rsa = new RSAKey();
    console.log(JSON.stringify(app.privateKey));
    rsa.setPrivateString(JSON.stringify(app.privateKey));
    var decrypted = rsa.decrypt(externalUrlParams[0]);
    console.log(decrypted);

i'm getting Invalid rsa private key. But the same privateKey works in my other node application(using crypto2).

check the test file, it contains format.
https://github.com/z-hao-wang/react-native-rsa/blob/master/__tests__/index.spec.js
const publicKey = '{"n":"860d193f420329a5db6cd7eee62f8dbdc710fbbfb87065f6a05de5b5a25af6320889767f7809d8fa167c0df1142bd329033407af06e51482bec5854e9af121a914402aff868589ef7db7924e478a2bed38d7367e4338ca23f57b6214e7bfcfd43102eb85570c7bfd1a3442909878cb82047227371d5cd8d7c7190332ebff0a6f","e":"10001"}';
const privateKey = '{"n":"860d193f420329a5db6cd7eee62f8dbdc710fbbfb87065f6a05de5b5a25af6320889767f7809d8fa167c0df1142bd329033407af06e51482bec5854e9af121a914402aff868589ef7db7924e478a2bed38d7367e4338ca23f57b6214e7bfcfd43102eb85570c7bfd1a3442909878cb82047227371d5cd8d7c7190332ebff0a6f","e":"10001","d":"30ae6114cfec461bad6c019f08890c7876ea7c024c00c586a306767d57d0a0c7dac1d0fec9a109e3087754b8d0127a44d29cfa8d5d7ba3cf376893d8cffbf1b4e6b33177d09ce0bd8a61b1661ccc828fd5ec65a7fb58f5960cbb5e85c44db1bf117c96bdfdaa220ffae415db689d0bea080f4e6c644156ecf643e7437e122301","p":"c1211509d92f269b070c4df3dada4a57f821a1fbcae230e60f354ab5af1ceb2651f526678f88e473fcf3347472c385b6b631ad1ebc705ca13d8f735aa3da639f","q":"b1b0986137bdfa6890d62a5e3aebf38554066dd36ec6cc5dcc9d91cf3a7dffa5d5767daaaebaecdff8cfa1f33428e02db4611b3a56f761201bba4b02d1c36731","dmp1":"66cc792a58d4643438b82ff61114086672c95433767697989d97bc40a1093f9192266f5ec86411563bda289da348b7afdda2eb8764be5a4fe938a62a24f565f9","dmq1":"60fb9c0fe3d6c327f3759126614e8b59c824c228d69b96cbd3746533101fd93af0297e297cb8f5b4c11ec2abf55a2211901438423d59441fbc428fd2781f08e1","coeff":"30065dadc7da627b6c564f6ece12040a18b7073822620f2cda8093e7083be82a1fa9f9922543b4c650750d8040ee6dda4ec67fbf161b6eb501bb1ee7f2079635"}';

As long as you can extract data with same format, you will be able to use them.
So that means you can try to find some libs to extra raw data from a pem key.

@z-hao-wang i was able to get is this formar
{
        "n": "AKxBNuRe-IobWh3BWnS3XkkHg6R0NSjw7fr_LMugmayY9_fIXMAndjMQBpYAoqlTH3Zz3J9bi9bzj0Wmej8ZQkvA-QgbmyzVhHnk_lQjvqSkszvhle6Z735Z8S5DcH8ceRyeYJWXgJX9eqrhfh3dFzvMZNsZId1W6LVAnm5tCioeNIZo72PZK8yyoNJTbRLUOOsv_yxvR7sHrdp8lXM5kWLsTrbOpjN8E4S6lj7bgBzyLuzy3JfcF3g4nXN1D6yLnJ4iRpGIPxl5RsnfJLYyVSiG-7CYnLu7Gk_yZheZpczVm0wUtotFRziV4DsoNGUNccktJgCQXELLDwlFMrZA5xM",
        "e": "AQAB",
        "d": "RRrUnsHLC_z1JkLPu0tlM_8jvPIx8X7Wun9sxTRk8m1b7bggHaa3ML0ZJ0yR9UQ3txm8ROJBM7b6n4KuQGotwp5kSfBpTI9MWmqX7cF5ViwNC9TwhYyUHCiRLXI4y4XswKJ5NQpWt9W9RJi6M9ji3Uaen5dxko6vRSfrZ3mvPj2_blW5HV8j3RIzJ3942CzQw2IX_hQWhityFxTwGY3f3Rh05jpI-SowJlOTIheOHqlR2VFTLTYIvmoZJduFzxlM4t5W3VzGZl_KmC1apNh2N3xPcmimq_YsrDqN5GgkNhuh_WTTB7pa3qsQlFPKnwylLc2LviQafiR-yunolImCwQ",
        "p": "ANL1Mi2H3rH4xwPYa7vVBCVqWEMrX6z872uNBXiVr0XKQQV0kHv5D3HKr28iqpJUgWPysjXCrOIendzNSRgiOpyCnQMHVK1vCncM-HdGrjNUcecqmXOEzABoME5VoeYQZqLIH8vCykJwOg436L7vQHN1zoRb8qo2kaU_c48lPalL",
        "q": "ANEIiXKSU6cpCfNsJozAWQFkEmUceqAiXVlLuN0VpNfu5SRtcXdZW0mVjX6vqHSsrTvmFf_rVWWF-gWMEhH_tkNoGSsfc13px1Q8kg6CdARihtEAXi6BZI9Ox_QDpuN3u2xVnv7V52IrCDVBj0-TaGP-NFvQUPacpn7JYjdE96RZ",
        "dp": "EzUN94VKamvbOudmj7iKYxm2pY76bBavedxiJiOCzNjoaKW_TfpURKkOphDC9QXKrh33ydtKwF_HQcZTJGZhbcSapR7yv8O_cS12Je4CiFvk7wY66ICrzlGuLEOxtO_DWIjeFEBNCBWNw6OlhlTkSl7sibKRepvzUNdhHyRl49c",
        "dq": "AJWkCuFeJ0yPcHQ2hBJW0GDShuijTpW8hB8cuiZrDCsY9ijxwDy0V0mCKlz62xlLVGiA-lbO3b9j_exirbz81jnDF-FrDme4p92Bzv1cHjnVXrXYEZQxRQ_iUfo5cwt790xCryO3dYEtVR7q4_EPkbejj0_6_TrOQdKZ0BnI4Y9h",
        "qi": "ALlFBlvCRspXYBOXf0XM5V0Q4t1vAxgcfNaKi4h612UZDF2GluYIwtuF-uJlxYvhRxq1gzmgP5-Z9gblMb6d8ysWfWPl2RWGYNw0nwOYhWI1_cWRNpfH7W-OY2kHmB3G1bHnf5PxUb-1JL2PvfXSfZ8JY1_xKqYSoSORJYQh2Z7D"
 }

This is giving the decrypted value as null. i converted the pem file to json web key. Anything i'm missing? i see that the sample you shared is a little different

Looks like you are using base64 encoded data. Make sure convert them to hex strings.
Hao Wang

On Oct 23, 2017, at 12:51 PM, sreeksp<EMAIL_ADDRESS>wrote:
@z-hao-wang i was able to get is this formar
{
"n": "AKxBNuRe-IobWh3BWnS3XkkHg6R0NSjw7fr_LMugmayY9_fIXMAndjMQBpYAoqlTH3Zz3J9bi9bzj0Wmej8ZQkvA-QgbmyzVhHnk_lQjvqSkszvhle6Z735Z8S5DcH8ceRyeYJWXgJX9eqrhfh3dFzvMZNsZId1W6LVAnm5tCioeNIZo72PZK8yyoNJTbRLUOOsv_yxvR7sHrdp8lXM5kWLsTrbOpjN8E4S6lj7bgBzyLuzy3JfcF3g4nXN1D6yLnJ4iRpGIPxl5RsnfJLYyVSiG-7CYnLu7Gk_yZheZpczVm0wUtotFRziV4DsoNGUNccktJgCQXELLDwlFMrZA5xM",
"e": "AQAB",
"d": "RRrUnsHLC_z1JkLPu0tlM_8jvPIx8X7Wun9sxTRk8m1b7bggHaa3ML0ZJ0yR9UQ3txm8ROJBM7b6n4KuQGotwp5kSfBpTI9MWmqX7cF5ViwNC9TwhYyUHCiRLXI4y4XswKJ5NQpWt9W9RJi6M9ji3Uaen5dxko6vRSfrZ3mvPj2_blW5HV8j3RIzJ3942CzQw2IX_hQWhityFxTwGY3f3Rh05jpI-SowJlOTIheOHqlR2VFTLTYIvmoZJduFzxlM4t5W3VzGZl_KmC1apNh2N3xPcmimq_YsrDqN5GgkNhuh_WTTB7pa3qsQlFPKnwylLc2LviQafiR-yunolImCwQ",
"p": "ANL1Mi2H3rH4xwPYa7vVBCVqWEMrX6z872uNBXiVr0XKQQV0kHv5D3HKr28iqpJUgWPysjXCrOIendzNSRgiOpyCnQMHVK1vCncM-HdGrjNUcecqmXOEzABoME5VoeYQZqLIH8vCykJwOg436L7vQHN1zoRb8qo2kaU_c48lPalL",
"q": "ANEIiXKSU6cpCfNsJozAWQFkEmUceqAiXVlLuN0VpNfu5SRtcXdZW0mVjX6vqHSsrTvmFf_rVWWF-gWMEhH_tkNoGSsfc13px1Q8kg6CdARihtEAXi6BZI9Ox_QDpuN3u2xVnv7V52IrCDVBj0-TaGP-NFvQUPacpn7JYjdE96RZ",
"dp": "EzUN94VKamvbOudmj7iKYxm2pY76bBavedxiJiOCzNjoaKW_TfpURKkOphDC9QXKrh33ydtKwF_HQcZTJGZhbcSapR7yv8O_cS12Je4CiFvk7wY66ICrzlGuLEOxtO_DWIjeFEBNCBWNw6OlhlTkSl7sibKRepvzUNdhHyRl49c",
"dq": "AJWkCuFeJ0yPcHQ2hBJW0GDShuijTpW8hB8cuiZrDCsY9ijxwDy0V0mCKlz62xlLVGiA-lbO3b9j_exirbz81jnDF-FrDme4p92Bzv1cHjnVXrXYEZQxRQ_iUfo5cwt790xCryO3dYEtVR7q4_EPkbejj0_6_TrOQdKZ0BnI4Y9h",
"qi": "ALlFBlvCRspXYBOXf0XM5V0Q4t1vAxgcfNaKi4h612UZDF2GluYIwtuF-uJlxYvhRxq1gzmgP5-Z9gblMb6d8ysWfWPl2RWGYNw0nwOYhWI1_cWRNpfH7W-OY2kHmB3G1bHnf5PxUb-1JL2PvfXSfZ8JY1_xKqYSoSORJYQh2Z7D"
}
This is giving the decrypted value as null. i converted the pem file to json web key. Anything i'm missing? i see that the sample you shared is a little different
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

you can use this site to http://tomeko.net/online_tools/hex_to_base64.php to convert attrributes in PEM key to HEX format and format according to this
private key
{
"n":"BC4B9C6454C5FA515E55CE0338882D800254D994497A9D269BA7C7AEC8566A1FC510B6E9636FAA95FAA1047FC335B25F708452945F2A47B3BC57CE8D489FB0D123408740A2E468662A276245F67C39ADFC333916013C3B04D05AA5F2886D093E7212FEA5B606809FF881C6C1F0D1CBD8C59C144017D9F5AE206C",
"e":"010001",
"d":"1EF8E0F4AFED10CBA994BB9A54063255C80C64EDBB586BD919E9733310C90613CBBA801BCBBB6677DD0DF74B7CB4AC6E7E77858DDA497E19D6752B089A558A23D3E4378E54E35927B3B85AFAACDB5664F38C79B97401B09132064C7482A090032CDC657A9EDFE4502456B4BB684CCFB845539846F24AB42AF877E51CAC3184E1",
"p":"F3D846CC801E22756BD954C09DCDA41C62579296C7F76543A725DF47091E98AEA4F10F2C5A94FFC877215C4B969FB210C9F3EBE2B60CFBCB2A9B6774FCBEE4B5",
"q":"C5AE7689B02D01308E6D9EE134D29A805C8E1B9321725268A9BD994AE9DC4B0BEEF59D3C450F964F154DF6555DB485C28B30E7FEE676AA8790652F8D2006A30B",
"dmp1":"0EED72881A5FBDE44A51E7AA52FEBFC92D0C07614BA48D8272BD12CA1A78D107FFF8F1E0D93ABDDDDBCD23054D9741235DF99CBB2841EB3828C792B1CAB734F1",
"dmq1":"92A084963E923336B3FE8581A02FB2A01186EAD72850E6E5713A0C113003D1BA8945AF9A3BD382F727E34B1B28C5350E0736806E66BD9061BB6E026658,
"coeff":"C573B3AD4093BE519556530A5220C10E0C0A00E3E74FE8021AF03765E96F49643DC47F7C912972EA7B9521BC5E4724DEBB613F2F011B9BA31F8B3A06D71D"
}
public key
{
"n":"BC4B9C6454C5FA515E55CE0338882D800254D994497A9D269BA7C7AEC8566A1FC510B6E9636FAA95FAA1047FC335B25F708452945F2A47B3BC57CE8D489FB0D123408740A2E468662A276245F67C39ADFC333916013C3B04D05AA5F2886D093E7212FEA5B606809FF881C6C1F0D1CBD8C59C144017D9F5AE20",
"e":"010001"
}
coeff =

closing


Sum and big sum symbols wrongly rendered (math equations)

Hi. First, thanks for the great work on pdf.js.
I regularly encounter display issues with LaTeX sum and big sum symbols which are often wrongly rendered.
For example on this article (end of page 2) (but any other fails similarly):

It's probable just a zoom issue : the \sum (big sigma) symbol does not scale as the rest of the equation. E.g. the first screen-shoot has a low zoom (80%) while the second one is at 250%.
(Note: I'm using Firefox v42 on XUbuntu 15.10 but the issue is not new)

Closing as duplicate of #2594.


margin support attribute add to support older version than api 17

What happened?
add android:layout_marginLeft="4dp" attribute to support older version than api 17
Reproduction steps
Steps to reproduce the behavior:

1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

Expected behavior
to support older version add margin support attribute
Screenshots
No response
Version
1.1.0 (Default)
Version (If not available above)
No response
What devices are you seeing the problem on?
Mobile
Device Name, Android Version and Screen Size
andoroid 10
Additional context
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

I want to work on this issue #96 under CodePeak'23


Update SMP.swift

Fix issue that crashed in large ETH amount in BInt.init()

Thank you for your contribution and your issue. This helps me and others a lot. Im merging it


fix: update buckets submodule to allow skipping auth policy

Description
Update the buckets submodule to allow skipping the authorization policy, also add the ability to skip here via the fscloud submodule as the fscloud submodule calls buckets, also remove s3 endpoint output on fscloud submodule that was incorrectly there
Release required?

[ ] No release
[x] Patch release (x.x.X)
[ ] Minor release (x.X.x)
[ ] Major release (X.x.x)

Release notes content
Add an argument to the fscloud and buckets submodules to allow them to skip IAM authorization policy creation
Run the pipeline
If the CI pipeline doesn't run when you create the PR, the PR requires a user with GitHub collaborators access to run the pipeline.
Run the CI pipeline when the PR is ready for review and you expect tests to pass. Add a comment to the PR with the following text:
/run pipeline

Checklist for reviewers

[ ] If relevant, a test for the change is included or updated with this PR.
[ ] If relevant, documentation for the change is included or updated with this PR.

For mergers

Use a conventional commit message to set the release level. Follow the guidelines.
Include information that users need to know about the PR in the commit message. The commit message becomes part of the GitHub release notes.
Use the Squash and merge option.

/run pipeline

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


[Doc] Modules Update

This pull request has automatically created by PinpointAutoBot
Updated Item : [google-http-client] has been updated
*Updated item list may differ if this PR is updated*

Codecov Report

Merging #5660 into master will decrease coverage by <.01%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #5660      +/-   ##
==========================================
- Coverage   40.57%   40.57%   -0.01%
==========================================
  Files        2902     2902
  Lines       87342    87342
  Branches    11550    11550
==========================================
- Hits        35443    35438       -5
- Misses      48824    48825       +1
- Partials     3075     3079       +4

Impacted Files
Coverage Δ

.../profiler/sender/StandbySpanStreamDataStorage.java
72.88% <0%> (-3.39%)
:arrow_down:

...rc/main/java/com/navercorp/pinpoint/test/Item.java
70% <0%> (-3.34%)
:arrow_down:

...cluster/zookeeper/ZookeeperClusterDataManager.java
62.5% <0%> (-2.21%)
:arrow_down:

...om/navercorp/pinpoint/rpc/codec/PacketDecoder.java
57.44% <0%> (-2.13%)
:arrow_down:

...orp/pinpoint/rpc/server/DefaultPinpointServer.java
79.22% <0%> (-1.06%)
:arrow_down:

...point/rpc/client/DefaultPinpointClientHandler.java
72.07% <0%> (-0.33%)
:arrow_down:

...java/com/navercorp/pinpoint/rpc/DefaultFuture.java
74.16% <0%> (+1.66%)
:arrow_up:

...ofiler/sender/StandbySpanStreamDataSendWorker.java
83.58% <0%> (+2.98%)
:arrow_up:

...pc/server/LoggingServerMessageListenerFactory.java
100% <0%> (+10%)
:arrow_up:

...p/pinpoint/rpc/stream/StreamChannelRepository.java
85% <0%> (+10%)
: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 a95eeb7...a6edd2a. Read the comment docs.


Hello in simple javascript we have color picker but here is we have not?

Angular:
ng2-semantic-ui:
Semantic UI:
how i can you use color picker

Hi, sorry for the slow reply. I'm confused as to what you mean - are you asking about whether there is a colour picker in the library? Thanks!

Yes i'm asking is there option for color picker?


sudo install does not guarantee to have ROOTSYS set

When building the package, one needs ROOTSYS to be set. The problem is that when doing sudo python setup.py install, ROOTSYS is not preserved by sudo, and so I get :
cohen@arago:~/sources/python/root_numpy$ sudo python setup.py install
Traceback (most recent call last):
File "setup.py", line 45, in
"root-config is not in PATH and ROOTSYS is not set. "
RuntimeError: root-config is not in PATH and ROOTSYS is not set. Is ROOT installed and setup properly?
cohen@arago:~/sources/python/root_numpy$ which root-config
/home/cohen/sources/root-svn/bin/root-config
cohen@arago:~/sources/python/root_numpy$ echo $ROOTSYS
/home/cohen/sources/root-svn
I am surprised that I did not have this problem with other python packages though

The problem is that you are not set the ROOTSYS enviroment variable. So I suggest write like that in your terminal:
export ROOTSYS=PATH
PATH= path where you put in your root folder (for me is: export ROOTSYS=/home/ubuntu/Downloads/root-6.04.02/)
then copy and save this comande to .bashrc hidden file to get  permanent variable.
And try to install only after that with
sudo ROOTSYS=$ROOTSYS python setup.py install


📃: Add Valid Parentheses Checker:

:red_circle: Title :  Valid Parentheses Checker:
:red_circle: Aim : It checks if the given string containing just the characters '(', ')', '{', '}', '[' and ']'  is valid.
A valid Parentheses means :

Open brackets must be closed by the same type of brackets.
Open brackets must be closed in the correct order.
Every close bracket has a corresponding open bracket of the same type.

:red_circle: Tech Stack Used : HTML , CSS , JS
Screenshots 📷
N/A

:white_check_mark: To be Mentioned while taking the issue :

Full name : Anshika
What is your participant role? GSSOC

Happy Contributing 🚀
All the best. Enjoy your open source journey ahead. 😎

@Anshika14528 go ahead.


add support for field id

Closes #20
Part of #44
This commit adds id option on parquet tag which is in the form of id={n} where n is an int32 denoting a field it.
The underlying infrastructure was already there. We just add api for users to define and access field id to the parquet schema.
Example
type MySchema struct {
	A string `parquet:"a,id=2"`
}

Will set column a field id to 2.
Printing
I wasn't so sure how to show the field id in the printed schema. I settled with showing the id next to the field name. I am open to any suggestions on how to improve field id printing.
The above schema is printed as
message {
	required binary a = 2 (STRING);
}

So, I'm struggling with my technical interviews, I need something to  release my frustration. The goal is to close #44 and support protocol buffers.
Supporting field id is crucial to supporting protocol buffers. We can have the underlying machinery work consistently with protocol buffer field ids and leave the option to choose column names to the users camelCase or  legacy snake_case or whatever the feel like mapping into.
I'm still not sure how we will address oneof fields though, maybe discourage them and not support them all together ?

@achille-roussel PTAL: I addressed the feedback
Thanks for the review.

@achille-roussel PTAL: I addressed all the feedback

@achille-roussel PTAL: I addressed your feedback.

Sorry for the extra commit. I just forgot to simplify id parsing.


Add more fields for the scoring table.

It might be a good idea to add extra scoring for the scoring field so the scores can be very specific.
For example, a cloth helmet with intellect would be scored as SPELL but a plate helmet with intellect would be scored also with SPELL where it should be HYBRID, adding extra fields would allow the user to score them differently.

It would be great to add the possibility of a more powerful enchantment, so along with the re-roll item it complements perfectly.

This was solved a long time ago.


#13782: Adding a timeout for clang-tidy

Ticket
#13782
Problem description
Adding a timeout for clang-tidy in case a big PR causes it to run a long time.
What's changed
timeout and continue on error for clang-tidy analyze step
Checklist

[ ] Post commit CI passes
[ ] Blackhole Post commit (if applicable)
[ ] Model regression CI testing passes (if applicable)
[ ] Device performance regression CI testing passes (if applicable)
[ ] New/Existing tests provide coverage for changes

does the commenting time take a while or?
wouldn't a timeout cause the job to fail?

nvm

does the commenting time take a while or? wouldn't a timeout cause the job to fail?

I've seen it taking 30 minutes on big prs.


Add containers streaming API

This adds streaming functionality via GRPC to not overload the message size limit.  The containers.Store interface needs work because I'm not happy with it but help is needed.  We need to make sure the client works will older daemons so we cannot replace the default implementation easily so we we will have figureout how we want to handle this client list command.
Fixes #2320
Signed-off-by: Michael Crosby<EMAIL_ADDRESS>

Codecov Report

Merging #2347 into master will decrease coverage by 0.01%.
The diff coverage is 25%.

@@            Coverage Diff             @@
##           master    #2347      +/-   ##
==========================================
- Coverage   44.99%   44.98%   -0.02%
==========================================
  Files          92       92
  Lines        9336     9344       +8
==========================================
+ Hits         4201     4203       +2
- Misses       4457     4463       +6
  Partials      678      678

Flag
Coverage Δ

#linux
49.26% <25%> (-0.03%)
:arrow_down:

#windows
41.23% <25%> (-0.02%)
:arrow_down:

Impacted Files
Coverage Δ

errdefs/grpc.go
71.05% <0%> (-3.95%)
:arrow_down:

metadata/containers.go
47.65% <0%> (-0.33%)
:arrow_down:

errdefs/errors.go
100% <100%> (ø)
: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 80272bb...248a544. Read the comment docs.

I wonder if we could make the call and if we get a not found, we fallback to the List implementation?

Ok, pushed an update that cleaned this up more.  Now the method name on the Store is just Stream and it returns channels for the results and errors, it's modeled after the events subscribe.  The client method is ContainersStream and has the same channel output

What is the advantage of the streaming approach vs adding limit/offset to the request? My primary concern is that we will need to do the same change for content, snapshotters, and anything else which returns a list. This will establish the API pattern of how we return these lists.

@dmcgowan ya I know.  I think streaming is a little easier to handle state server side than managing when a request has already seen what containers/etc.  Because containers, snapshotters, etc can come and go, with an offset, how do you manage that between requests? We still have some of the problem with streaming where it can return a container that was later removed but we can atleast say that the stream returns all valid containers at the time the stream was initiated.
Now that I think of it more, it would almost be better that some of the list commands support just returning the ids and when you need to interact with something you have to do a Get on that id which returns if it exists or not at the time you start doing actions on it.  I'm not sure though.

@mcluseau actually if we remove the Spec any type from the container it will probably reduce the response size greatly as in the general usecase, the majority of the data is on the spec.  In the kube case, I think they add a lot of labels/extensions with pod info so it may not be a as major but much less than what it is today.
This is another option but we would still have a limit based on number of containers at some point, even if that point is 10k-100k containers.

@crosbymichael I like the ListStream approach, reducing the response size is more at the optimization level (a non-primary goal; if the list can be done the manager can clean the containers). If container IDs are UUID, 16 bytes, then the limit is already 1M containers with the current default limit. And even if we consider a limit of 10k, we're talking about 10k gets as soon as we want the name or the image the container is running. We may then introduce a batch get but that's kind of coming back to the issue of "how many is safe". Streaming is, I think, the safest and simplest solution.

@crosbymichael Just to confirm. This won't break backward compatibility, right?
Docker CE 17.11 will still work with containerd 1.2?

@Random-Liu it should not break compat.  But I will also verify

@crosbymichael Are we going to use this in Docker? Do we need to handle unimplemented error in Docker? What is the version guarantee between Docker and containerd, given that containerd api version is not changed.

I'll update this PR this week to handle fallback.

Looks mostly good. I have a few nits. Hope I didn't re-hash old concerns.

@stevvooe  @Random-Liu  @estesp can you review again?

@estesp updated


Replace absolute URLs with template declarations

This is a feature request to allow templates to be referenced by their declarations instead of file names.
One thing I was surprised about is that angular-meteor uses absolute path references instead of referencing templates by there declared name; if you consider that meteor is built around the idea of finding templates regardless of which files they are in or where those files are located.
I reference the example in the Meteor-Angular Socially App Tutorial - step 21.13. This example shows the absolute path of templateUrl to be '/packages/socially-browser/client/auth/login/login.html'.
Imagine you could instead define templates for use within angular-meteor with the following syntax:
blaze template syntax:
<template name="auth/login.html">
</template>

And/Or angular template syntax :
<script type="text/ng-template" id="/auth/login.html">
</script>

The consumer of the package could then reference the template, not by the absolute path to the file location in the package but simply with the package name followed by the template name as follows:
If those templates where declared in the socially-browser package;
templateUrl: 'socially-browser/auth/login.html'

If those templates where declared directly in the app:
templateUrl: '/auth/login.html'

The benefits of changing angular-meteor to allow templates to be accessed by definition instead of absolute path are:

Templates would no longer be dependant on where they are located
It would allow package authors to move files around in their package without breaking backwards compatibility
It would help with the confusion of including package names & prefixes as discussed in #958
Templates can be grouped by function into a single file, if needed. Great for small or related templates
It starts to feel and act a lot more like a meteor package should, where you don't need to worry about where your files are located (within reason of course)

Many thanks for the great work on this package!

https://github.com/Urigo/angular-meteor/pull/1313 actually addresses the issue.
Once it is implemented your module (in this example a UI-router state)

import './main.html'

angular.module(module.name)
  .config(($stateProvider) => {
    $stateProvider.state('sign-in', {
      controller: SignInStateController,
      controllerAs: 'signInStateCtrl',
      parent: 'unauthenticated',
      templateUrl: 'imports/ui/states/sign-in/main.html',
      url: '/sign-in'
    })
  })

Could be replaced as

import myTemplateUrl from './main.html'

angular.module(module.name)
  .config(($stateProvider) => {
    $stateProvider.state('sign-in', {
      controller: SignInStateController,
      controllerAs: 'signInStateCtrl',
      parent: 'unauthenticated',
      templateUrl: myTemplateUrl
      url: '/sign-in'
    })
  })

The one thing I kind of wish it could do, but am not sure where in the code it would be is to NOT load it up immediately as an option.  So it would return a promise rather than a URL.


Update ReadMe, User Guide and Developer Guide

resolve #72

LGTM! Thanks for improving the wording / removing traces of AB3.


I think DiagnosticListener could be doumented better

Thanks for documentation. It is very helpful but I think, it is not very clear about how to create a new DiagnosticSource instance and How we can only subscribe to that specific instance (It is a DiagnosticListener which implemented IObservable<KeyValuePair<string,object>>  so we can directly subscribe to an special observer) instead of subscribing to all diagnostic sources through static property AllListeners of DiagnosticListener class (As you know it is also an IObservable<System.Diagnostics.DiagnosticListener> so need an extra subscription  to an intermediate Observer (which implements IObserver<DiagnosticListener>)). So I think we can do the work more simpler there.
Also What about the DiagnosticSource in previous version which is subscribed to using DiagnosticName attribute ? Is that approach useful in new version of .Net or it is obsolete?!
Thanks

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

ID: 65f3736e-83fa-ed03-a964-e21d23f52663
Version Independent ID: d6e9578b-62de-00ca-ffb0-81d4a3551bc5
Content: DiagnosticSource and DiagnosticListener
Content Source: docs/core/diagnostics/diagnosticsource-diagnosticlistener.md
Product: dotnet-fundamentals
GitHub Login: @tommcdon
Microsoft Alias: tommcdon

@davmason  @tarekgh  would one of y'all mind taking a look?

Ping on @davmason @tarekgh

The doc https://github.com/dotnet/runtime/blob/main/src/libraries/System.Diagnostics.DiagnosticSource/src/DiagnosticSourceUsersGuide.md has some useful information.
I am wondering, why using DiagnosticSource? I suggest looking at https://learn.microsoft.com/en-us/dotnet/core/diagnostics/distributed-tracing to see the more updated ways to handle tracing in general.

Thanks for your guidelines.
I am just a learner and I am try everything I see in .Net and .Net documentation. If there is more usable tools over there I will use them by sure but I want to be familiar with all available options.  I do not close this issue but you could do it if it should.
Thanks again

If you are a new learner to the space, I suggest you avoid using DiagnosticSource and instead use ActivitySource. the distributed tracing link I pasted above it good to start from there.

Thank you. I do consider your recommendation and also I closed the issue.


Maybe return a different error for invalid usage files?

I just spent 10 minutes debugging the following:
Usage :
  main hello [--name=<name>]
  main bye [--name=<name>]

Note the extra space between Usage and :.  It'd be cool if the API exposed a more strict parser, e.g. optionsWithUsageFileStrict that reports an error on an invalid docopt file,

Nevermind, I found optionsWithUsageFileDebug which is documented on github but not on hackage. Apologies for the noise!


fix: improve slippage error message

What is the purpose of the change
The error message for slippage is confusing because we have a bug. It should be this:
https://github.com/osmosis-labs/osmosis-frontend/blob/5abb4d43936d145eca2c93135c6d56b7db70ee50/packages/web/localizations/en.json#L779
but users see this:

Fixed and tested by hardcoding an inappropriately high slippage:

I think we have more languages than this?

e.g. we are missing ru.json and ja.json @p0mvn

I think we have more languages than this?

e.g. we are missing ru.json and ja.json @p0mvn

I deleted all translations other than en.json and ran yarn machine-translate and yarn lint:fix.
I can tell that ru.json is already translated correctly

I think we have more languages than this?

e.g. we are missing ru.json and ja.json @p0mvn

I deleted all translations other than en.json and ran yarn machine-translate and yarn lint:fix.
I can tell that ru.json is already translated correctly

👍


Missing profitable corrupts.

Currently normal level 3 enlighten has about 60-70c +EV per try to corrupt maybe you want to add those gems.

Interesting, thanks for the report. I'll check the data that I'm getting in from poe.ninja for enlighten and get back to this issue.

My calculation is not based on the enlighten gem itself but buying "the enlighten" card.
Cost of Gem is 390c if it bricks (87.5%) the average loss is about ~253c(not accurate), if it hits (12.5%) its 228c profit

Hey! Haven't forgotten about this, I just haven't got around to taking a good look until now. There are a few things going on here.
1, this program isn't (and won't be for the forseeable future) calculating turning in div cards in any capacity. That part of the calculation isn't going to be in this tool. If you figure out that buying cards and flipping them is profitable, awesome!, but that's just not the goal of this tool. I'll figure out the second half of the equation.
2, I dug in and you're absolutely correct, right now the 'exceptional' gems aren't working with the corrupt part of the calculations. Some of this logic is an easy fix and some of it is slightly less trivial, but it is doable.
(A side note - I have a 'disallowed gems' variable, which disallows those gems from the lens calculations, because they tend to cause issues with the way gem cost selection is done, and aren't really meaningful qualities so no real profit there anyways)

I'm going to tag?? this issue appropriately and leave it up as a feature request to add exceptional gems to the corrupt calculations.

I'm going to tag?? this issue appropriately and leave it up as a feature request to add exceptional gems to the corrupt calculations.

Do whatever you want with my information :) My div card example was just my specific use case I think the calculation woudnt have been that different without them.
Really cool programm, I enjoyed it this league.

Note to self while implementing this -
Partially implemented but poe.ninja 'any' qual syntax needs to be parsed correctly and passed through corrupt op gem sorting logic. Right now it is not working due to the 'any' quality being interpreted as 0 across the board upon initial JSON parse (in Controller.load_gems_from_json).


Implemented showing mute state in action bar

When Kodi is muted a mute menu item is added to the action bar which can
be used to unmute Kodi. The mute icon is only displayed when Kodi is muted.
I'm not yet convinced this is the best solution. Another solution could be using a snackbar at the bottom to show the mute state. For instance like the example at material.google.com shows.
However, I'm afraid some users might find the snackbar solution annoying and don't consider the mute state to be that important.
This should fix issue #199

Well I wasn't really sure this is the best solution and I've taken a good look at other players and think adding a playbar at the bottom while something is playing on Kodi is a much better solution. This allows the user to browse the library and be able to control what's playing and change other things like volume. IMO this improves the UX as the current implementation requires switching between library and remote. So yeah, only showing the mute state seems a bit awkward. I just see this as a first step towards including the playbar...
Regarding your remark that I included this in the BaseActivity. I see it's also used by *HostActivity.java, I guess we should separate this and add a new BaseActivity in the host package.
You say you don't like to apply the observer mechanism to the whole app. Are you worried about resources? If so, we could make users disable the feature in the settings screen.
Other stuff remarks:

I wanted it to look different than normal action items. But couldn't find any good colors.
I did this to make sure the mute state is always shown as the leftmost item. I agree this makes
adding/changing the menu items shown as actions more difficult.

Adding a playbar at the botton is probably a good idea. I personally don't feel the need for it (particularly considering that there are always notifications), but i can appreciate it's usefulness.
There are some things that must be discussed about that before commiting to one:

Which actions to show. At first sight i would say the same as the ones present in the notification (play/pause/ff/rw), and probably introduce the mute/unmute, but it must be done in a way that looks good.
What happens to the "play" buttons on the details screen. They have to migrate upwards, and that might make them a little bit too high...
This shouldn't really be in BaseActivity. Something like PlayerControlActivity or similar would be better (and it should inject the interface on the root view). Ideally this would be done via composition instead of inheritance, but that might be a little clumsy, if we have to "forward" all the lifecycle events to it (haven't thought this through).

Regarding the other questions:

Yes, my worry about the observer mechanism being in the whole app is about resources. It's not that i think that it consumes a lot of resources, it doesn't, but i feel that it wasn't justified... A playbar on the other hand justifies it.

I've created a mockup showing a volume, previous, play/pause, and next button.
The image at the left (the kodi image is just an example) is used to show the poster of what is
currently playing. The volume button will show the mute state and will popup a dialog showing a
slide bar representing volume level and allows the user to change the volume. It will disappear
after a few seconds (3?).

I think we can just let it move up. Haven't tested it, but I think there is enough room even on lowres devices.

I've been tempted to refactor the org.xbmc.kore.ui package a few times before. I think we should now just go for it and redesign the ui package. And I think we should do this before implementing the playbar. I will create a new PR that will move the activities and fragments into their own packages and we can use that PR to discuss/develop a workable solution.

Ok, alternatively can you look at, for instance, how Google Play Music does it:

The control bar is simpler, with an image, the currently playing item, and just a Play/pause button. I prefer this version as it looks better to me, and i'm not sure that the fwd/rwd/volume buttons are essential in this context.
It doesn't solve the original issue on this PR (showing the mute status), but that could be a button that appears on the right side of play/pause, only if the mute status is on.
Some other random thoughts:

Just to make sure that we're on the same page, this bar would only appear if something is playing, right.
The FAB can indeed be pulled up, but only if the bar is showing up, and should return to its normal position if there's nothing playing.
Technically how do you see this being implemented? Specifically, the "injection" of the control bar in the view?

I do think the playbar should include the most used buttons for the given media type currently playing. Especially playing music I find next and prev handy while browsing my music collection. Now I have to switch to the remote and hit back again to continue browsing.
For me the preferred buttons for the different media types would be:

Music: volume, play/pause, next, previous
Music video: volume, play/pause, next, previous
TV show: volume, play/pause
Movie: volume, play/pause
PVR: volume, play/pause

Including the current playing info as the google music player does might not leave enough room to include all my preferred buttons. However, besides changing the buttons depending on what is playing, we could also include the current playing item info depending on the available space. For instance, we could use the following criteria:

sw320dp: Show only the buttons for music. show media info as well for other types
sw400dp: Show poster and buttons for music. Show poster, media info and buttons for other types
sw600dp: Show poster, media info and buttons for all types

Random answers ;):

Yup
Indeed
That's why we need to refactor the ui package first. Using a common activity (PlaybarActivity?) for all activities that need to display the playbar, we can easily add it as hidden in the layout.

Do you use the volume on Kodi? I tend to leave it as is and just use the tv/home theater remote for sound. Maybe it's just me, but my usage pattern doesn't really rely on Kodi's volume.
On another note, we could brainstorm some other ideas for this, like making it more like the Navigation drawer, including the now playing info, control buttons, and remote buttons:

either a new full navigation drawer to the right. This has the advantage that would be technically easy, just another nav drawer, but has the disadvantage that it would be hard to discover by new users.
2.a control bar on the bottom with minimum buttons, that would open to reveal more actions on a swipe up action. This would be more works, as i believe that the existing nav drawer mechanism wouldn't fit here, but would be more discoverable.

Not sure if this was clear.

I primarily use Kodi to control my AV volume as I do not want to use a separate remote or physically access to the receiver (which is kinda hard as I put it out of view, (yes because of my spouse and kids). So for me, volume control is essential.
I don't like your idea of having another navigation bar on the right. I don't think it is a common UX pattern. I do like the idea of being able to pull up the control bar on the bottom. That would definitely be a nice UX pattern. ( This might eventually even replace the remote activity completely and free up some room in the action bar :) )
Btw, i intended this PR to discuss this. I prefer using PRs for this, as we can more easily discuss implementations as well. Just to be clear, when I finish refactoring the code and we have some agreement on how to implement this, I will update this PR.

Yeah, a navigation bar on the right isn't common and would be somewhat confusing. I just brought it up because it would be straightforward to implement, but it's not worth it.
A bottom control bar that could be pulled up is nicer but more work. It can be made in stages nevertheless. By the way, i don't think it should replace the remote screen, because it would always miss the "Now playing" fragment, which i find useful. I was thinking that the bar shouldn't even slide up to occupy all the screen, just to the middle or so, and just show the remote buttons, the now playing info and control buttons.
In any case, the question remains: what should be shown on the "collapsed" bar. Looking at your proposal 3 posts up, i think we only diverge on the "volume" button (i agree with showing up fw/rwd if music is playing). What about just showing the volume button if the sound is muted, and touching it would unmute the sound and make it disappear? This would cover the most "urgent" need regarding volume control and in normal conditions there would be space for the usual now playing info.

I think showing the volume button only when muted is a good solution. We can then show the volume (as we do on the NowPlayingFragment) when the user pulls the control bar up.

I found this library that implements a sliding panel. https://github.com/umano/AndroidSlidingUpPanel
I've created a simple version using the library. See commit 16f0f300c09b7fe370b1529d4a3c1ea3a0ebe68e
Below image shows the panel collapsed:

Here you see it pulled up:

I do think showing the mute status is confusing in the above setup.
I use the volume muted icon for indicating the volume is muted and also for allowing the user to mute the volume. One option would be to use a different color for the indicator. I would prefer RED but that looks horrible on the day theme. Any suggestions are appreciated.

I think it looks great.
Regarding the mute button, i feel that what we discussed ealier is the best solution - only show the mute button in the collapsed panel if volume is muted, otherwise hide it. As for the color, i would go with the R.color.accent_default, just like in the Now Playing fragment (note that under this proposal, the button would always be colored). It's enough to catch the user's attention IMO.

Yay, 215 days and 17 PRs later, I finally finished the now playing panel.

The slideup panel is only displayed when something is
playing. It starts collapsed showing the media poster
and title of what is currently playing.

Media controls implemented are volume, progress, shuffle,
repeat and play/pause for all items. Next and previous are only
available when a music item is playing.

In collapsed mode the panel will display the mute button only
if Kodi is muted. The mute button in expanded mode is always
visible.

Panel is enabled by default. Users can disable the panel
in Settings

Implemented listening to Player.OnPropertyChanged notifications
to update shuffle and repeat button states.

Nice! From a quick test, everything looks to be working. Just think that the collapsed bar size could be bigger. I believe that Google Play's bar is somewhat bigger, but i'll check it.
I'll test it for a few more days, and take a look at the code and merge it afterwards.
Guess it's time for a new release, what do you think?

Yes, a new release would be nice.

From the tests and looking at the code everything seems good.
I have some doubts about the layout of the notification, namely:

In the collapsed state it should be bigger and with more margin between the widgets;
The expanded state is somewhat cluttered... Honestly i'm not a fan of having the volume slider there as i believe it isn't that relevant, but i believe that you find it particularly useful, so i'll leave at that. But if including the progress and the volume is relevant, i'd argue that having the full play/stop/ff/rwd, etc is as relevant and the full row of controls should be present (so that the expanded bar mimics the control section on the now playing fragment).

I'll merge this now and will do a few experiments in the next few days to it.

Regarding your doubts:

I guess you're right. I tried to keep it small to keep as much room available for the lists. But people with large hands will probably find the buttons too small.
Again you are right that we should actually add more controls. In fact, I want the NowPlayingPanel to include everything from the NowPlayingFragment (replacing it). I think that it will improve UX considerably if we add the NowPlayingFragment and PlaylistFragment to the NowPlayingPanel and have the RemoteActivity only show the RemoteFragment.


Bug: Cli cannot detect already installed flavours if not on the first position in flavours.yaml file.

Description of the issue

The cli cannot detect when the user reinstalls the same flavour again but its position is not first in flavours.yaml file.

Current  behaviour
If the contents of the flavours.yaml file is:
app_name: helix
installed_flavour:
    flavour: mocha
app_name: helix
installed_flavour:
    flavour: latte

and if the user tries to reinstall the latte variant, it should throw an error since latte is installed already but it instead throws the error:
Error: yaml: unmarshal errors:
  line 4: mapping key "app_name" already defined at line 1
  line 7: mapping key "app_name" already defined at line 1
  line 5: mapping key "installed_flavour" already defined at line 2
  line 8: mapping key "installed_flavour" already defined at line 2
--- snipped ---

Expected behaviour
The cli should detect that the latte variant is already installed and instead throw the error:
Flavour latte already exists for helix
exit status 1

A good start approach in solving this would be to understandthe MakeFlavour function:
https://github.com/catppuccin/cli/blob/b0a050535705e70f2493606fc8dd382ff87ae088/internal/utils/utils.go#L406
Acceptance criteria
Any changes should be made on the dev branch and the PRs should be opened against the dev branch itself.

#27 takes care of this. Closing.


Can't communicate between clients

using testing.js to send a ping does not work on IP addresses other than 'localhost', regardless of port

I sorted it


Add E2E tests for agreements

Part of https://github.com/opencollective/opencollective/issues/4894
### To be tested
- [ ] Create an agreement
- [ ] Edit agreement
- [ ] Delete the agreement
- [ ] Agreement appears on expense page for admins

@Betree I was unable to add tasks to the list so:

[ ] Add agreements to different different fiscal hosts, make sure agreements are segregated across fiscal hosts.
[ ] Add agreements to different collectives in the same fiscal host, add expenses to each collective and make sure that each collective only sees its agreement(s)


Reverts to using the upstream release action

We needed to fork the softprops/action-gh-release to get fixes merged. These have now been addressed upstream, so we no longer need to use our fork.

Hopefully nothing is broken :crossed_fingers:, as we can only see that once the release workflow runs. Easy to revert if it is...


Add User Story

Problem description
Add user story
Expected action

Additional context

linked to https://github.com/camaraproject/NetworkSliceBooking/pull/13

Thorsten, you may just go to "PR" first, then go to "Files Changed", then "Review Changes", and remeber to submit. Then we can see it.

Aha, Obviously, I forgot to do the final step. I have submitted my comments on the closed PR now.

See it now. It was so detailed. Thanks! Will solve them later.

One Issue one PR. I open a new Issue where @ShutingQing can handle @tlohmar 's review.


Added Contributor and Admin in README.md

Hey @arpit456jain
Please Review
Fix : #35

move the contributor section below the project admin section

Done @arpit456jain


chore: update httpcore to version 4.4.8

Checklist

[x] the individual contributor license agreement is signed
[x] commit message follows commit guidelines

Description of change

updates httpcore to latest version.

Rebased off current master and tested locally. Changes look good.


Update registry.yaml

Added myself to registry.yaml file.

@MuhammedNihad Your page.json seems invalid

Hello @fatih-yavuz. I fixed validation. Do I need to create new PR?

Hello @fatih-yavuz. I fixed the validation error in page.json. Re-run action jobs will be enough, right? or do I need to create a new PR?


Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './v4' is not defined by "exports"

My current project refuses to start because of that error, therefore I tried

Delete node_modules and yarn.lock
Reinstall deps
Updates deps

Still having the issue. I created a new empty package outside the monorepo with Yarn.
index.ts
import { generateKeys } from 'paseto-ts/v4';

const localKeyBuffer = generateKeys('local');

package.json
{
  "name": "test",
  "version": "1.0.0",
  "license": "MIT",
  "dependencies": {
    "paseto-ts": "^1.4.3",
    "ts-node": "^10.9.1",
    "typescript": "^5.1.5"
  },
  "scripts": {
    "dev": "ts-node --transpile-only index.ts"
  }
}

I get the same error. :crying_cat_face:
Tested with Node v18.14.2 and v19.9.0, paseto-ts v1.3.0 and 1.4.3.
It's probably not your package, as I could use it previously, but is there something that comes to mind? I'm at a loss and a web search didn't reveal much, except the steps I already tried. I need the local variant your package implements as it's the only one supporting it :)

Hi,
Here's a codesandbox link that works fine:
https://codesandbox.io/s/typescript-playground-export-forked-9yplpy?file=/index.ts
Could it be something about ts-node? I don't use it myself.

Hi, I'm going to close this as I can't replicate but please feel free to reopen with a test case.


Plugin conversion

Converted all plugins to Python so in the future when we convert all arguments to JSON, we don't have to suffer through making that work with Bash.

This branch was renamed as I wanted to get the changes out there and it's going to take me a while to do the rest, but it is viable at this point in time.

"We could go the easy route and unify the codebase, but that's boring and too easy" I accidentally argued against myself in the discord

Remove all the try/excepts that I could (or rather that you pointed out)


Fix -race build

Looks like 16.10 isn't on the supported list, and something got pulled.

Just FROM ubuntu? Would be even better to use https://github.com/GoogleCloudPlatform/distroless

Probably worth looking in to at some point.  For now I just need to unblock, and wanted minimal change.  I've raised #158


Add a confirmation before opening links

Is your feature request related to a problem? Please describe.
if you are trying to focus on a terminal and click on a link, it opens the link immediately
Describe the solution you'd like
add a confirmation or a setting to follow links

Sure 👍, I will add a confirmation before opening any link