ThreadSanitizer: data race in qdr_close_connection_CT src/router_core/connections.c:267

WARNING: ThreadSanitizer: data race (pid=3244)
  Write of size 1 at 0x7b54000c9942 by thread T1:
    #0 qdr_close_connection_CT src/router_core/connections.c:267 (skrouterd+0x4875d8)
    #1 qdr_core_close_connection_CT src/router_core/connections.c:283 (skrouterd+0x487766)
    #2 router_core_thread src/router_core/router_core_thread.c:236 (skrouterd+0x4a382a)
    #3 _thread_init src/posix/threading.c:172 (skrouterd+0x47ad5d)

  Previous read of size 1 at 0x7b54000c9942 by main thread:
    #0 qdr_connection_process src/router_core/connections.c:308 (skrouterd+0x48783c)
    #1 _do_reconnect src/adaptors/http1/http1_server.c:432 (skrouterd+0x43bfcc)
    #2 qd_timer_visit src/timer.c:320 (skrouterd+0x4c587f)
    #3 handle src/server.c:980 (skrouterd+0x4c114e)
    #4 thread_run src/server.c:1095 (skrouterd+0x4c2f57)
    #5 qd_server_run src/server.c:1491 (skrouterd+0x4c3acc)
    #6 main_process router/src/main.c:105 (skrouterd+0x424e5c)
    #7 main router/src/main.c:359 (skrouterd+0x4242ec)

  Location is heap block of size 640 at 0x7b54000c9900 allocated by thread T4:
    #0 posix_memalign <null> (libtsan.so.0+0x32a23)
    #1 qd_alloc src/alloc_pool.c:396 (skrouterd+0x448d09)
    #2 new_qdr_connection_t src/router_core/connections.c:44 (skrouterd+0x486d21)
    #3 qdr_connection_opened src/router_core/connections.c:88 (skrouterd+0x486d21)
    #4 _setup_client_connection src/adaptors/http1/http1_client.c:316 (skrouterd+0x4342da)
    #5 _handle_connection_events src/adaptors/http1/http1_client.c:452 (skrouterd+0x4342da)
    #6 handle_event_with_context src/server.c:780 (skrouterd+0x4c11f9)
    #7 do_handle_raw_connection_event src/server.c:786 (skrouterd+0x4c11f9)
    #8 handle src/server.c:1063 (skrouterd+0x4c11f9)
    #9 thread_run src/server.c:1095 (skrouterd+0x4c2f57)
    #10 _thread_init src/posix/threading.c:172 (skrouterd+0x47ad5d)

I've removed the link to #213 since I believe there's a bigger problem here.  The mere fact that the timer thread is executing the qdr_connection_process() function while the core is busy deleting it is A Bad Thing.  IIUC this should not happen because once the connection teardown is initiated the adaptor should have canceled that timer.  The fact that this is not the case is a big old bug.

@kgiusti I forgot a disclaimer in the original issue. The ThreadSanitizer warning appears for me only when I use relaxed atomics, as in https://github.com/skupperproject/skupper-router/pull/239. I still think there is likely a problem, somewhere, and the default sequentially consistent atomics only mask it, not resolve it, but that fact IMO redelegates this to be even lower priority than the other races.

Here's the race on an unadulterated main branch of the router. So my worries from previous comment have not materialized
https://github.com/skupperproject/skupper-router/runs/5852739930?check_suite_focus=true#step:26:1271
56: WARNING: ThreadSanitizer: data race (pid=3062)
56:   Write of size 1 at 0x7b54000e58c2 by thread T2:
56:     #0 qdr_close_connection_CT /home/runner/work/skupper-router/skupper-router/skupper-router/src/router_core/connections.c:267 (skrouterd+0x48d678)
56:     #1 qdr_core_close_connection_CT /home/runner/work/skupper-router/skupper-router/skupper-router/src/router_core/connections.c:283 (skrouterd+0x48d806)
56:     #2 router_core_thread /home/runner/work/skupper-router/skupper-router/skupper-router/src/router_core/router_core_thread.c:247 (skrouterd+0x4a9b0a)
56:     #3 _thread_init /home/runner/work/skupper-router/skupper-router/skupper-router/src/posix/threading.c:172 (skrouterd+0x47c51d)
56:
56:   Previous read of size 1 at 0x7b54000e58c2 by thread T3:
56:     #0 qdr_connection_process /home/runner/work/skupper-router/skupper-router/skupper-router/src/router_core/connections.c:308 (skrouterd+0x48d8dc)
56:     #1 _do_reconnect /home/runner/work/skupper-router/skupper-router/skupper-router/src/adaptors/http1/http1_server.c:439 (skrouterd+0x43d48c)
56:     #2 qd_timer_visit /home/runner/work/skupper-router/skupper-router/skupper-router/src/timer.c:320 (skrouterd+0x4cbd1f)
56:     #3 handle /home/runner/work/skupper-router/skupper-router/skupper-router/src/server.c:980 (skrouterd+0x4c75ee)
56:     #4 thread_run /home/runner/work/skupper-router/skupper-router/skupper-router/src/server.c:1095 (skrouterd+0x4c93f7)
56:     #5 _thread_init /home/runner/work/skupper-router/skupper-router/skupper-router/src/posix/threading.c:172 (skrouterd+0x47c51d)
56:
56:   Location is heap block of size 640 at 0x7b54000e5880 allocated by thread T5:
56:     #0 posix_memalign <null> (libtsan.so.0+0x32a23)
56:     #1 qd_alloc /home/runner/work/skupper-router/skupper-router/skupper-router/src/alloc_pool.c:396 (skrouterd+0x44a9e9)
56:     #2 new_qdr_connection_t /home/runner/work/skupper-router/skupper-router/skupper-router/src/router_core/connections.c:44 (skrouterd+0x48cdc1)
56:     #3 qdr_connection_opened /home/runner/work/skupper-router/skupper-router/skupper-router/src/router_core/connections.c:88 (skrouterd+0x48cdc1)
56:     #4 _create_server_connection /home/runner/work/skupper-router/skupper-router/skupper-router/src/adaptors/http1/http1_server.c:194 (skrouterd+0x43edf4)
56:     #5 qd_http1_configure_connector /home/runner/work/skupper-router/skupper-router/skupper-router/src/adaptors/http1/http1_server.c:232 (skrouterd+0x43edf4)
56:     #6 qd_dispatch_configure_http_connector /home/runner/work/skupper-router/skupper-router/skupper-router/src/adaptors/http_common.c:167 (skrouterd+0x42928e)
56:     #7 ffi_call_unix64 <null> (libffi.so.6+0x6c03)
56:     #8 qdr_forward_on_message /home/runner/work/skupper-router/skupper-router/skupper-router/src/router_core/forwarder.c:324 (skrouterd+0x49d41c)
56:     #9 qdr_general_handler /home/runner/work/skupper-router/skupper-router/skupper-router/src/router_core/router_core.c:824 (skrouterd+0x4a2fa1)
56:     #10 qd_timer_visit /home/runner/work/skupper-router/skupper-router/skupper-router/src/timer.c:320 (skrouterd+0x4cbd1f)
56:     #11 handle /home/runner/work/skupper-router/skupper-router/skupper-router/src/server.c:980 (skrouterd+0x4c75ee)
56:     #12 thread_run /home/runner/work/skupper-router/skupper-router/skupper-router/src/server.c:1095 (skrouterd+0x4c93f7)
56:     #13 _thread_init /home/runner/work/skupper-router/skupper-router/skupper-router/src/posix/threading.c:172 (skrouterd+0x47c51d)
56:
56:   Thread T2 (tid=3067, running) created by main thread at:
56:     #0 pthread_create <null> (libtsan.so.0+0x5bef5)
56:     #1 sys_thread /home/runner/work/skupper-router/skupper-router/skupper-router/src/posix/threading.c:181 (skrouterd+0x47c9ac)
56:     #2 qdr_core /home/runner/work/skupper-router/skupper-router/skupper-router/src/router_core/router_core.c:122 (skrouterd+0x4a43d1)
56:     #3 qd_router_setup_late /home/runner/work/skupper-router/skupper-router/skupper-router/src/router_node.c:2058 (skrouterd+0x4c29d8)
56:     #4 ffi_call_unix64 <null> (libffi.so.6+0x6c03)
56:     #5 main_process /home/runner/work/skupper-router/skupper-router/skupper-router/router/src/main.c:92 (skrouterd+0x425ebc)
56:     #6 main /home/runner/work/skupper-router/skupper-router/skupper-router/router/src/main.c:359 (skrouterd+0x42531c)
56:
56:   Thread T3 (tid=3069, running) created by main thread at:
56:     #0 pthread_create <null> (libtsan.so.0+0x5bef5)
56:     #1 sys_thread /home/runner/work/skupper-router/skupper-router/skupper-router/src/posix/threading.c:181 (skrouterd+0x47c9ac)
56:     #2 qd_server_run /home/runner/work/skupper-router/skupper-router/skupper-router/src/server.c:1489 (skrouterd+0x4c9f4c)
56:     #3 main_process /home/runner/work/skupper-router/skupper-router/skupper-router/router/src/main.c:105 (skrouterd+0x425f1c)
56:     #4 main /home/runner/work/skupper-router/skupper-router/skupper-router/router/src/main.c:359 (skrouterd+0x42531c)
56:
56:   Thread T5 (tid=3071, running) created by main thread at:
56:     #0 pthread_create <null> (libtsan.so.0+0x5bef5)
56:     #1 sys_thread /home/runner/work/skupper-router/skupper-router/skupper-router/src/posix/threading.c:181 (skrouterd+0x47c9ac)
56:     #2 qd_server_run /home/runner/work/skupper-router/skupper-router/skupper-router/src/server.c:1489 (skrouterd+0x4c9f4c)
56:     #3 main_process /home/runner/work/skupper-router/skupper-router/skupper-router/router/src/main.c:105 (skrouterd+0x425f1c)
56:     #4 main /home/runner/work/skupper-router/skupper-router/skupper-router/router/src/main.c:359 (skrouterd+0x42531c)
56:
56: SUMMARY: ThreadSanitizer: data race /home/runner/work/skupper-router/skupper-router/skupper-router/src/router_core/connections.c:267 in qdr_close_connection_CT

Now I feel better about merging the PR. Good enough I might actually merge it.

I've removed the link to #213 since I believe there's a bigger problem here. The mere fact that the timer thread is executing the qdr_connection_process() function while the core is busy deleting it is A Bad Thing. IIUC this should not happen because once the connection teardown is initiated the adaptor should have canceled that timer. The fact that this is not the case is a big old bug.

After looking at the HTTP/1 adaptor's teardown logic I believe the above statement is completely wrong.  Running qdr_connection_process() via the _do_reconnect timer handler is by-design: it is the only way to handle core connection work once the proactor's raw connection has been closed.
So yeah - TL;DR: @jiridanek fix is definitely the Right Way to Fix This since the I/O and core thread share the reference to the qdr_connection_t object.
Closing this issue as fixed and moving the milestone to 2.0.0 since the fix is present in that release.


Is "HTTP Service Request Queues" metric for IIS Available?

One important metric for IIS is the current requests in the Queue. But it seems I can't find this exported in the IIS collector anywhere?

Hi @basilmusa,
Sorry for the late reply! I believe that it is not exposed since it was not available. Do you have an example query which shows it? It may very well have been added since the initial implementation.

Hi @basilmusa,
Sorry for the late reply! I believe that it is not exposed since it was not available. Do you have an example query which shows it? It may very well have been added since the initial implementation.

It's been some time. I'll check again when i get some time. Thanks.


Updating Dataset task - Bad Request

Getting this error while trying reset the dataset for a PowerBI report. The same task worked fine for uploading the Report but failing while trying update the Dataset for that report:
##[error]The remote server returned an error: (400) Bad Request.

Just to add to this, I received the same error message when trying to update the connectionstring for a report that connects to azure analysis services, which may be relevant here (though you don't say what you were trying to update the connection to point to).
Having a peek at the code reveals that for updating connectionstrings  it uses setalldatasetconnectionsingroup , the docs for which explain this does not work for connections to SQL, AS, OData Feed, and SharePoint.
I suspect a different task type making use of a function calling updatedatasourcesingroup would need to be used to update the server and database properties for SQL, AS, OData Feed, and SharePoint connections.

OOOOOHHH!!!!!!
It is very annoying to find that the Data Source= parameter is mandatory for this task to get the Dataset updated in addition to setting the Server= parameter in the connection string.
Whatever I have used is from Azure connection string directly and it is no where mentioned as a requirement
After setting this parameter the Dataset update task is working

This issue is closed. But is this issue resolved or is it simply not possible to update a dataset connection to Azure Analysis Services?
Provider=MSOLAP;Data Source=asazure://westeurope.asazure.windows.net/aasservername;Initial Catalog=databasename

Hi Prashanth-PS
Can you give an example of a working connection string to Azure Analysis Services?
I cannot get this to work.

Hi Prashanth-PS
Can you give an example of a working connection string to Azure Analysis Services?
I cannot get this to work.

Hi Johnsandersnl
Here is the connection string which worked:
integrated security=False;data source=xxxx.database.windows.net;encrypt=True;connection timeout=30;initial catalog=xx;user id=xxx;server=tcp:xxxx.database.windows.net,1433;persist security info=False;multipleactiveresultsets=False;trustservercertificate=False;Password=xxxxx
However, on the PowerBI portal sometimes it shows as invalid credentials 👎

Hi Prashanth,
This looks like a connection string to SQL Azure. Do you know how to get this component to connect to Azure Analysis Services?

Hi johnsandernl,
is there any progress regarding your issue and what problems are you getting?

Hi,
I am also facing same issue . I am able to upload power BI report to an workspace but unable to update connection of dataset.
Getting Error: Bad request


added new props

I wanted to use this different props and they were not included, so I'm adding them.
Hope I'm able to help! Thanks for making this project.

Hi @deividi86,
Thanks for contributing, but I added the config prop recently that should allow you to pass these options through to Fullcalendar, did that not work for you?
Cheers
Brock

Guess I didn't notice that I could use that, I'm sorry.
I'm going to try working with that later today and I'll get back to you and close this PR.
Thank you!


Disable tracing within the FIPS module

Building master was recently broken if the config includes both 'enable-trace' and 'enable-fips'. Here's some of the errors:
providers/libfips.a(libfips-lib-p_lib.o): In function `EVP_PKEY_free':
/home/jon/work/jaffa/openssl/openssl-vanilla/crypto/evp/p_lib.c:1750: undefined reference to `OSSL_trace_begin'
/home/jon/work/jaffa/openssl/openssl-vanilla/crypto/evp/p_lib.c:1750: undefined reference to `BIO_printf'
/home/jon/work/jaffa/openssl/openssl-vanilla/crypto/evp/p_lib.c:1750: undefined reference to `OSSL_trace_end'
providers/libfips.a(libfips-lib-rsa_lib.o): In function `RSA_free':
/home/jon/work/jaffa/openssl/openssl-vanilla/crypto/rsa/rsa_lib.c:139: undefined reference to `OSSL_trace_begin'
/home/jon/work/jaffa/openssl/openssl-vanilla/crypto/rsa/rsa_lib.c:139: undefined reference to `BIO_printf'
/home/jon/work/jaffa/openssl/openssl-vanilla/crypto/rsa/rsa_lib.c:139: undefined reference to `OSSL_trace_end'
providers/libfips.a(libfips-lib-rsa_lib.o): In function `RSA_up_ref':
/home/jon/work/jaffa/openssl/openssl-vanilla/crypto/rsa/rsa_lib.c:185: undefined reference to `OSSL_trace_begin'
/home/jon/work/jaffa/openssl/openssl-vanilla/crypto/rsa/rsa_lib.c:185: undefined reference to `BIO_printf'
/home/jon/work/jaffa/openssl/openssl-vanilla/crypto/rsa/rsa_lib.c:185: undefined reference to `OSSL_trace_end'

This change removes trace code if FIPS_MODULE is defined, avoiding any missing symbols.

It might be worthwhile modifying the enable-trace test build to include enable-fips as well.  It's in .github/workflows/run-checker-ci.yml

@levitte are you happy with this approach?

Yeah, this is good enough.  I didn't see the need for tracing in the FIPS provider per se...  perhaps we will at some point, but I expect that we will solve that when that time arrives.

This pull request is ready to merge

Thanks!.. Merged to master.


[Request] Input list of album urls

So I tried this program, works awesome. I just request a feature to input a list of album urls so that the program continues without asking for url of each album.
This can be implemented for artists too (list of artist urls)...
I found an issue in reloaded version tho will post it in next issue post.

Thank you for your support. I have updated the updated the reloaded version for accepting a file with urls separated by newline. With this you should be able to specify the file path (relative or absolute) to the program and it should continue downloading all. You can use the below command to achieve this
$ python download_reloaded.py --file PATH_TO_THE_URLS_FILE

Also ensure that the urls are separated by newline and that their are no blank lines in between. Further updates will only be added to the reloaded version where it'll be easier to write tests, create gui  and api later on. The download quality issue with it has been fixed.

From checking both versions norm and reloaded, can you please try program again...
after update it seems everything is broken. I am unable to download anything.
gives output:
"Enter the url: https://www.jiosaavn.com/album/bajirao-mastani/s3tDZwdRQ4I_
...
...
Please paste link of album or playlist
DONE"
from older version...
and new version too gives this error:
"Enter the URL : https://www.jiosaavn.com/album/bajirao-mastani/s3tDZwdRQ4I_
Traceback (most recent call last):
File "/content/Saavn-Downloader/Saavn-Download-Reloaded/download_reloaded.py", line 77, in
obj.run()
File "/content/Saavn-Downloader/Saavn-Download-Reloaded/download_reloaded.py", line 68, in run
album.start_download()
File "/content/Saavn-Downloader/Saavn-Download-Reloaded/album.py", line 61, in start_download
self.getAlbumID()
File "/content/Saavn-Downloader/Saavn-Download-Reloaded/album.py", line 29, in getAlbumID
self.albumID = soup.select(".play")[0]["onclick"]
IndexError: list index out of range"

I hope the issue has been resolved because everything is good on my side.


trunk: 0.18.3 -> 0.18.7

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/thedodd/trunk/releases.
meta.description for trunk is: Build, bundle & ship your Rust WASM application to the web
meta.homepage for trunk is: https://github.com/thedodd/trunk
Updates performed

Rust version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.18.6 with grep in /nix/store/p1b7nx86xrhx7n33vbs9gx9w8by6i7x7-trunk-0.18.6
found 0.18.6 in filename of file in /nix/store/p1b7nx86xrhx7n33vbs9gx9w8by6i7x7-trunk-0.18.6

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
trunk

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/p1b7nx86xrhx7n33vbs9gx9w8by6i7x7-trunk-0.18.6 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A trunk https://github.com/r-ryantm/nixpkgs/archive/9a1e7128d17f344023ca96e93aab8387f8887c9a.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/9a1e7128d17f344023ca96e93aab8387f8887c9a#trunk

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/p1b7nx86xrhx7n33vbs9gx9w8by6i7x7-trunk-0.18.6
ls -la /nix/store/p1b7nx86xrhx7n33vbs9gx9w8by6i7x7-trunk-0.18.6/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

trunk

Maintainer pings
cc @freezeboy for testing.

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/thedodd/trunk/releases.
meta.description for trunk is: Build, bundle & ship your Rust WASM application to the web
meta.homepage for trunk is: https://github.com/thedodd/trunk
Updates performed

Rust version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.18.7 with grep in /nix/store/2jy6fmgyiqmv5b5rrdcn5avrgbanz6x4-trunk-0.18.7
found 0.18.7 in filename of file in /nix/store/2jy6fmgyiqmv5b5rrdcn5avrgbanz6x4-trunk-0.18.7

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
trunk

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/2jy6fmgyiqmv5b5rrdcn5avrgbanz6x4-trunk-0.18.7 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A trunk https://github.com/r-ryantm/nixpkgs/archive/5ce8266600d2dc4f904ded4a3a479f1c95bf20e8.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/5ce8266600d2dc4f904ded4a3a479f1c95bf20e8#trunk

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/2jy6fmgyiqmv5b5rrdcn5avrgbanz6x4-trunk-0.18.7
ls -la /nix/store/2jy6fmgyiqmv5b5rrdcn5avrgbanz6x4-trunk-0.18.7/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

trunk

Maintainer pings
cc @freezeboy for testing.


Calling make and new builtins in global scope segfaults on Linux

The following program sample.go triggers a panic:
package main

import "fmt"

var foo = make([]int, 1)

func main() {
	for _, v := range foo {
		fmt.Println(v)
	}
}

Expected result:
$ go run ./sample.go
0

Got:
$ yaegi ./sample.go
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0xb1 pc=0x609733]

goroutine 1 [running]:
github.com/containous/yaegi/interp.nodeType(0xc0000aa540, 0xc0000adcc0, 0xc0000dcb00, 0xc0000adb40, 0x1, 0x1497b20)
        /home/chris/Code/go/src/github.com/containous/yaegi/interp/type.go:322 +0x1cf3
github.com/containous/yaegi/interp.nodeType(0xc0000aa540, 0xc0000adcc0, 0xc0000dca00, 0x3, 0xc0001a0cb8, 0xeeab40)
        /home/chris/Code/go/src/github.com/containous/yaegi/interp/type.go:248 +0x114d
github.com/containous/yaegi/interp.(*Interpreter).gta.func1(0xc0000dc800, 0xc000187da8)
        /home/chris/Code/go/src/github.com/containous/yaegi/interp/gta.go:48 +0x532
github.com/containous/yaegi/interp.(*node).Walk(0xc0000dc800, 0xc000187da8, 0x0)
        /home/chris/Code/go/src/github.com/containous/yaegi/interp/interp.go:106 +0xc9
github.com/containous/yaegi/interp.(*node).Walk(0xc0000dc700, 0xc000187da8, 0x0)
        /home/chris/Code/go/src/github.com/containous/yaegi/interp/interp.go:110 +0x70
github.com/containous/yaegi/interp.(*node).Walk(0xc0000dc200, 0xc000187da8, 0x0)
        /home/chris/Code/go/src/github.com/containous/yaegi/interp/interp.go:110 +0x70
github.com/containous/yaegi/interp.(*Interpreter).gta(0xc0000aa540, 0xc0000dc200, 0xc0000a4668, 0x4, 0x7, 0xc0000a4668)
        /home/chris/Code/go/src/github.com/containous/yaegi/interp/gta.go:17 +0xf4
github.com/containous/yaegi/interp.(*Interpreter).Eval(0xc0000aa540, 0xc0000a2200, 0x73, 0x273, 0xc0000a2200, 0x73, 0x0, 0xc2f260)
        /home/chris/Code/go/src/github.com/containous/yaegi/interp/interp.go:240 +0x104
main.main()
        /home/chris/Code/go/src/github.com/containous/yaegi/cmd/yaegi/yaegi.go:77 +0x2e3

So far as I can tell, this happens whenever you try to use builtins like make or new outside of functions. You can also get this crash by running yaegi interactively and attempting to use make outside of a function definition.
Also, this is a really cool project. Thanks so much for your work on it!

As workaround you define explicit type:
package main

import "fmt"

var foo []int = make([]int, 1)

func main() {
	for _, v := range foo {
		fmt.Println(v)
	}
}

Fixed by #358


"Command existed"

Line 107 of articles/virtual-machines/linux/run-command.md says Command existed with code: # but I think it should probably say Command exited with code: #. I don't know if the typo exists in the logging also or only in the documentation.

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

ID: 792f4871-0d07-624f-7daf-02de97121e13
Version Independent ID: b70d481f-b351-bb38-cb49-1cda63422968
Content: Run scripts in a Linux VM in Azure using action Run Commands - Azure Virtual Machines
Content Source: articles/virtual-machines/linux/run-command.md
Service: virtual-machines
GitHub Login: @nikhilpatel909
Microsoft Alias: erd

@ajorg
Thanks for reporting this! We have created a PR for this issue and the changes should go live soon.


Added release tasks

Added two tasks to tasks.py, release and release_tests.
Applied black formatter

FYI invoke tasks named "release" and "release_tests" are required for internal packaging / distribution. These tasks shouldn't affect external users at all.


ci: added jira-sync workflows

Added jira-sync workflows to enable syncing issues reported on github to jira

Looks good to me, but I've not done this before so added @rvesse as a reviewer as well to see if he can spot any potential issues.


cache the nodes produced by SequenceNode.getitem

With the current SequenceNode implementation, every call to __getitem__ returns a new Node instance. Here's a contrived example:
import autograd.numpy as np
from autograd import grad

def f(tup):
    x = np.array([tup[0] for _ in xrange(100)])
    return np.sum(x)

grad(f)((1.,))  # more than 100 nodes created

An alternative, implemented here, is to make SequenceNode cache the Nodes returned from its __getitem__ method. In the above example, that means only 5 nodes are created (independent of the size of the xrange).
This memoized version can reduce the graph overhead by cutting out redundant nodes (meaning both memory and time savings, at least in some cases). In addition, it makes the traced graph cleaner; this came up as I was playing with translating the autograd graph into other representations, and I was annoyed by having many Nodes refer to the same sequence element.
However, this implementation introduces some new costs. In addition to requiring a new dict for each SequenceNode instance and a lookup in that dict for each call to SequenceNode.__getitem__, my implementation also introduces an isinstance(idx, slice) check. Unfortunately, slices in Python are not hashable even though they are isomorphic to 3-tuples.
If those costs are too high for common use cases, I can solve my graph representation problem in other ways.
By the way, I think this implementation makes sense because our SequenceNodes are immutable, since this code throws an error on the master branch:
def f(lst):
    lst[1] = 5.
    return sum(lst)
grad(f)([1., 2., 3.])  # TypeError: does not support item assignment

Thoughts?

This is an interesting idea. But it does invite the question: what's so special about __getitem__? In Autograd, all functions are pure and all nodes are immutable, so why not memoize everything? Maybe we should? Or is there a reason that __getitem__ is different? Perhaps we expect it to be called particularly frequently? Or is it easier to memoize than other functions because its arguments can be more easily hashed and compared for equality/identity?
When we know we're going to use a value several times, we usually just store it in a variable:
def f(tup):
    element = tup[0]
    x = np.array([element for _ in xrange(100)])
    return np.sum(x)

Do you have a case where doing this would be awkward?
I didn't realize slices couldn't be hashed. That seems quite silly. It looks like the idea was proposed a few years ago and rejected by Guido mostly because slices can be created with special syntax which could lead to confusion: "x[:] should mean slicing, not getitem."

Wow good point about memoizing everywhere! I think within a single make_vjp function, getitem would be called with the same argument values more often than other functions. However it might not be any cheaper to hash indices than ndarray addresses; that is, while we could further reduce node duplication by memoizing all functions on the values of their ndarray arguments, we could cover a common case by just memoizing on the ndarray addresses, and that doesn't require reading the whole array. (But maybe we can get away with only reading part of the array, since this is only an optimization.)
I'd also say that changing SequenceNode (or the sequence_take primitive) is a lot easier than changing all functions, and I have a use case for it now. Maybe a vague argument for it being special is that tuples are somehow special: sometimes we rewrite function signatures to take one tuple argument instead multiple arguments (like we do in multigrad, which is a good model for my use case), yet it can incur a lot of node duplication overhead. Same goes for primitives that package up "multiple return values" in tuples: I don't like those causing overheads.

If you're making __getitem__ calls from your own code, an easy solution might be to skip the syntactic sugar and use your own memoized getter function. That way we don't have to modify Autograd.
But if you're talking about __getitem__ calls from within functions defined by Autograd, I can see the case for Autograd taking care of memoization.
Also, it's a pretty small change. I don't have a problem with merging it.
I wasn't really being serious about memoizing everywhere but maybe it's worth thinking about. Any functional language could do it, but they usually don't. Presumably part of the reason is that it's a lot of memory to tie up when you have no idea whether it's ever going to be used again. But in Autograd we pay that price anyway so maybe the downside isn't so big.

I just discovered there's a wrapper in the standard library for doing this kind of caching https://docs.python.org/3/library/functools.html#functools.lru_cache. It won't work for the non-hashable slices in this use case but could come in handy elsewhere.


HTML Collection laravelcollective/html": "5.2.*"

Can you make the syntaxBuilder to build the laravelcollective/form?

I think that it's a good idea, in my apps I've been editing the generated forms to use the laravelcollective/form components. And another approach that I've been using is to use a view partial for the form, if you think better, basic CRUDs have the same form to Create and Update operations, so make sense to me use just one form. What do you think about it?


Named import in @module-federation/typescript cannot be consumed from ESM

I have a Next.js project with a next.config.mjs file as ESM with type checking turned on. When trying to import the named export from @module-federation/typescript, I am presented with the following error:
import { FederatedTypesPlugin } from '@module-federation/typescript';
         ^^^^^^^^^^^^^^^^^^^^
SyntaxError: Named export 'FederatedTypesPlugin' not found. The requested module '@module-federation/typescript' is a CommonJS module, which may not support all module.exports as named exports.
CommonJS modules can always be imported via the default export, for example using:

I can solve it by using default import and accessing the plugin from there, but then typescript complains, because the types say the default export is the plugin.
import _FederatedTypesPlugin from '@module-federation/typescript';
const { FederatedTypesPlugin } = _FederatedTypesPlugin;
//      ^
// Property 'FederatedTypesPlugin' does not exist on type 'typeof FederatedTypesPlugin'.ts(2339)

Is there any possibility of getting this package published with better ESM compatability? @module-federation/next-mf works just fine when importing, so maybe that setup can be reused for the typescript package?

can you share us the TS configuration you are using?

Hi @jakst,
the native-federation-typescript plugin is now part of the module-federation organization!
See it here: https://www.npmjs.com/package/@module-federation/native-federation-typescript
Did you had the opportunity to try it?

No sorry, I have switched jobs since raising the issue and don't have the same use case anymore, so I will leave this for others to pick up.

@ScriptedAlchemy imo we could close this for now, and reopen if someone will have more details, what you think?

We still need to fix this issue. But making low priority for now


Update glossary terms

Summary
This is a…

[ ] Correction
[x] Addition
[ ] Restructuring
[x] Minor / simple change (like a typo)
[ ] Other

Description of the Change

Remove the extra MBID references and ensure that links titles contain the name of the entity instead of a raw MBID value
Add definition for medium
Definition tweaks

This is great work.  Thanks for the contributions.


Can't seem to reliably subscribe/unsubscribe

So I am calling PushNotifications.start(getApplicationContext(), "API-KEY"); in my Application class, then in one of my activities I call:
public void initPusherFCM() {
        //create subscription channel key
        String subKey = "app." + this.user.getUuid();
        //get list of current subscriptions
        Set<String> subscriptions = PushNotifications.getSubscriptions();

        //if not already subbed to subKey channel
        if (!subscriptions.contains(subKey)) {
            //unsubscribe from any other channels
            PushNotifications.unsubscribeAll();
            //subscribe to subkey channel
            PushNotifications.subscribe(subKey);
        }
    }

The problem I have encountered is that unsubscribe and subscribe don't seem to reliably work, and my subscriptions don't seem properly tracked.
I do get these logs
PushNotificationsAPI: Successfully subscribed to interest 'CHANNEL1'
PushNotificationsAPI: Successfully unsubscribed to interest 'CHANNEL2'

However, when I reopen the app I am again subscribed to CHANNEL2 and not CHANNEL1.
A full flow of what I have done:

Added Pusher code and subscribed to CHANNEL2
Tested pushing a message to CHANNEL2, which worked fine
Used above code to unsubscribe from CHANNEL2 and subscribe to CHANNEL1
Tested pushing a message to CHANNEL1, which worked fine
Closed and opened the app, upon opening I was subscribed to CHANNEL2 and not CHANNEL1. So the subscription changes I made have been forgotten.
Tested opening and closing the app multiple times, tested closing app completely. Every time I open the app I am always subscribed to only CHANNEL2.

Hopefully the issue is clear, it's been a long day!

Hi @CallumCoombes,
I followed your steps and couldn't replicate the issue. Can you try this with a new app and paste the source code?
Also, which version of the SDK are you using? If you're not using the latest, can you try that one?

Closing as stale. Feel free to follow up with more info though!


PRs to fix patches in r-buildpack upstream project

./api/r-buildpack/jobs/create_bosh_pre_start.sh
./api/r-buildpack/ig_resolver/patch_job_mf.sh

relates with #12


Better support for custom PositionProperty implementations

I wrote my own PositionProperty class.  (It's very simple, it just wraps a collection of timestamped locations and gives the most recent one at or before the requested time -- kind of like TimeIntervalCollectionPositionProperty but less complex.)
I looked at the code for most of the other implementations, and in all cases getValue is implemented as a call to getValueInReferenceFrame, which calls PositionProperty.convertToReferenceFrame.  This function is marked @private in the JSDoc, and not included in the TypeScript typings.
My first suggestion would be to remove this @private decoration and add type information to the method.  Implementing classes generally want to use this method to translate to the correct reference frame after determining the (probably fixed-frame) "initial" value.
My second suggestion is to convert the PositionProperty class-like to a real inheritable (ES6) base class, using abstract-like conventions, and refactor common implementations up into it.  I think you've been avoiding real classes, which is fine, but it would be nice to reduce the workload for subclasses.

@mramato Any ideas about exposing PositionProperty.convertToReferenceFrame?


tf.contrib.factorization.KMeansClustering training on CPU and not GPU

I am currently running tensorflow-gpu 1.9 avx2 with cuda 9.2. When I train the model below, I notice that my CPU usage is 99% but my Tesla M60 usage is at 0%.
def input_fn():
    return tf.train.limit_epochs(tf.convert_to_tensor(points, dtype=tf.float32), num_epochs=1)

kmeans = tf.contrib.factorization.KMeansClustering(num_clusters=num_clusters, use_mini_batch=False)
num_iterations = 20

previous_centers = None
for _ in range(num_iterations):
    kmeans.train(input_fn)
    cluster_centers = kmeans.cluster_centers()
    print('score:', kmeans.score(input_fn))

# map the input points to their clusters
cluster_indices = list(kmeans.predict_cluster_index(input_fn))

`

Okay I moved it to stack overflow
When I run tf.test.gpu_device_name() I get this
2018-07-18 15:28:47.105452: I c:\users\user\source\repos\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:1392] Found device 0 with properties:  name: Tesla M60 major: 5 minor: 2 memoryClockRate(GHz): 1.1775 pciBusID: 0000:00:1e.0 totalMemory: 7.44GiB freeMemory: 7.12GiB 2018-07-18 15:28:47.105846: I c:\users\user\source\repos\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:1471] Adding visible gpu devices: 0 2018-07-18 15:28:47.852029: I c:\users\user\source\repos\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:952] Device interconnect StreamExecutor with strength 1 edge matrix: 2018-07-18 15:28:47.852268: I c:\users\user\source\repos\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:958]      0  2018-07-18 15:28:47.852440: I c:\users\user\source\repos\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:971] 0:   N  2018-07-18 15:28:47.852859: I c:\users\user\source\repos\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:1084] Created TensorFlow device (/device:GPU:0 with 6874 MB memory) -> physical GPU (device: 0, name: Tesla M60, pci bus id: 0000:00:1e.0, compute capability: 5.2

Correct, it seems that the kernels are only implemented in CPU. They are using eigen, so it's possible that they also work in GPU, if you register them. Could you try that?

@drpngx can you elaborate how to go about this? I am using Python 3.6

So, the way it works is that the low-level operations are called kernels. The kernels are wrapped into ops. The ops define the interface, and the kernels define the implementation.
What we have in clustering_ops is that the kernels are registered for CPU only. You could try to register them for GPU, and then rebuild. Typically you also need to make other changes so that might some effort, particularly if you haven't worked with tensorflow internals before.
If you just want KMeans, it's really just a bunch of vector distance computations. You could just do that by hand using off-the-shelf tensorflow operators, all of which should already be implemented on GPU.

@drpngx I was able to implement the KMeans training using tensorflow operators
`class KmeansTensorflow:
def init(self, input_matrix, num_clusters):
self._input = input_matrix.todense()
self._num_clusters = num_clusters
def train(self):
    k = self._num_clusters
    # centroid initialization
    start_pos = tf.Variable(self._input[np.random.randint(self._input.shape[0], size=k), :],
                            dtype=tf.float32)
    centroids = tf.Variable(start_pos.initialized_value(), 'S', dtype=tf.float32)

    # populate points
    points = tf.Variable(self._input, 'X', dtype=tf.float32)
    ones_like = tf.ones((points.get_shape()[0], 1))
    prev_assignments = tf.Variable(tf.zeros((points.get_shape()[0],), dtype=tf.int64))

    # distance function
    p1 = tf.matmul(
        tf.expand_dims(tf.reduce_sum(tf.square(points), 1), 1),
        tf.ones(shape=(1, k))
    )
    p2 = tf.transpose(tf.matmul(
        tf.reshape(tf.reduce_sum(tf.square(centroids), 1), shape=[-1, 1]),
        ones_like,
        transpose_b=True
    ))
    distance = tf.sqrt(tf.add(p1, p2) - 2 * tf.matmul(points, centroids, transpose_b=True))

    # assign each point to a closest centroid
    point_to_centroid_assignment = tf.argmin(distance, axis=1)

    # recalculate the centroid (mean)
    total = tf.unsorted_segment_sum(points, point_to_centroid_assignment, k)
    count = tf.unsorted_segment_sum(ones_like, point_to_centroid_assignment, k)
    means = total / count

    # continue if there is any delta
    is_continue = tf.reduce_any(tf.not_equal(point_to_centroid_assignment, prev_assignments))

    with tf.control_dependencies([is_continue]):
        loop = tf.group(centroids.assign(means), prev_assignments.assign(point_to_centroid_assignment))

    sess = tf.Session()
    sess.run(tf.global_variables_initializer())

    # 1000 iterations or no delta
    has_changed, cnt = True, 0
    while has_changed and cnt < 1000:
        cnt += 1
        has_changed, _ = sess.run([is_continue, loop])
    # see how the data is assigned
    res = sess.run(point_to_centroid_assignment)
    print(list(res))

`
But I have been having trouble with making a prediction method. That's why I thought about using tf.contrib.factorization.KmeansClustering

Nice! For the runtime, you just need the nearest centroid?

@drpngx Yes given an input, I want to find which cluster it belongs in. I'm fairly new to tensorflow

so if you compute the distance from your point to every centroid, then it should just be tf.argmin.

Chiming in here:
I've been using KMeansClustering with a single GPU, and I do see activity on the GPU
when I look via nvidia-smi, so now after reading this thread I'm puzzled because I'm using
the standard pre-canned KMeansClustering.
But, that's not why I found this issue. I'm here because I'd like to distribute training of KmeansClustering via tf.contrib.distribute.MirroredStrategy.
I've tried to set up distributed training with the following code:
import tensorflow as tf
import multiprocessing

def parse_fn(record):
    '''
    features={
        'feats': tf.FixedLenFeature([], tf.string)
    }
    parsed = tf.parse_single_example(record, features)
    feats= tf.convert_to_tensor(tf.decode_raw(parsed['feats'], tf.float64))

    return {'feats': feats}

def my_input_fn(tfrecords_path, model):
    dataset = (
        tf.data.TFRecordDataset(tfrecords_path)
        .apply(
            tf.contrib.data.map_and_batch(
                map_func=parse_fn,
                batch_size=4096,
                num_parallel_batches=multiprocessing.cpu_count()
            )
        )
        .prefetch(4096)
    )

    return dataset

### Multi-GPU training config ###
distribution = tf.contrib.distribute.MirroredStrategy()
run_config = tf.estimator.RunConfig(train_distribute=distribution)

train_spec_kmeans = tf.estimator.TrainSpec(input_fn = lambda: my_input_fn('train.tfrecords'))
eval_spec_kmeans = tf.estimator.EvalSpec(input_fn = lambda: my_input_fn('eval.tfrecords') )

KMeansEstimator = tf.contrib.factorization.KMeansClustering(
    num_clusters=1024,
    feature_columns = [tf.feature_column.numeric_column(
        key='feats',
        dtype=tf.float64,
        shape=(806,),
    )],
    model_dir = '/tmp/tf',
    use_mini_batch = True,
    config = run_config)

tf.estimator.train_and_evaluate(KMeansEstimator, train_spec_kmeans, eval_spec_kmeans)

However, when I set up the training to use  tf.contrib.distribute.MirroredStrategy, it crashes
with the following Error:
2018-07-30 11:42:05.948549: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1435] Adding visible gpu devices: 0, 1, 2, 3
2018-07-30 11:42:05.948629: I tensorflow/core/common_runtime/gpu/gpu_device.cc:923] Device interconnect StreamExecutor with strength 1 edge matrix:
2018-07-30 11:42:05.948646: I tensorflow/core/common_runtime/gpu/gpu_device.cc:929]      0 1 2 3
2018-07-30 11:42:05.948660: I tensorflow/core/common_runtime/gpu/gpu_device.cc:942] 0:   N Y Y Y
2018-07-30 11:42:05.948669: I tensorflow/core/common_runtime/gpu/gpu_device.cc:942] 1:   Y N Y Y
2018-07-30 11:42:05.948676: I tensorflow/core/common_runtime/gpu/gpu_device.cc:942] 2:   Y Y N Y
2018-07-30 11:42:05.948687: I tensorflow/core/common_runtime/gpu/gpu_device.cc:942] 3:   Y Y Y N
2018-07-30 11:42:05.949163: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1053] Created TensorFlow device (/device:GPU:0 with 14867 MB memory) -> physical GPU (device: 0, name: Tesla V100-SXM2-16GB, pci bus id: 0000:00:1b.0, compute capability: 7.0)
2018-07-30 11:42:05.949304: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1053] Created TensorFlow device (/device:GPU:1 with 14867 MB memory) -> physical GPU (device: 1, name: Tesla V100-SXM2-16GB, pci bus id: 0000:00:1c.0, compute capability: 7.0)
2018-07-30 11:42:05.949936: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1053] Created TensorFlow device (/device:GPU:2 with 14867 MB memory) -> physical GPU (device: 2, name: Tesla V100-SXM2-16GB, pci bus id: 0000:00:1d.0, compute capability: 7.0)
2018-07-30 11:42:05.950061: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1053] Created TensorFlow device (/device:GPU:3 with 14867 MB memory) -> physical GPU (device: 3, name: Tesla V100-SXM2-16GB, pci bus id: 0000:00:1e.0, compute capability: 7.0)
Traceback (most recent call last):
  File "/home/ubuntu/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 1567, in _create_c_op
    c_op = c_api.TF_FinishOperation(op_desc)
tensorflow.python.framework.errors_impl.InvalidArgumentError: Shape must be rank 1 but is rank 2 for 'cond/cond_1/concat' (op: 'ConcatV2') with input shapes: [0], [?,806], [].

In this case, TF finds all four of my GPUs, but the shape of the data is off.
I run this exact same code without MirroredStrategy everything works fine (but I do have to add an Iterator object back in).
Thoughts?

@yuefengz is that a bug in the MirroredStrategy?

@yuefengz and @drpngx - here's what I'm seeing from nvidia-smi
when I run KMeansClustering without the MirroredStrategy
All four GPUs have a Python process on them, but only one seems
to perform any computation.

If I do run training with MirroredStrategy, then training crashes and
I get the above mentioned Error message.
Ideas?

This is a friendly ping for @yuefengz and @drpngx :)

One more friendly ping for @yuefengz :smiley_cat:

One more friendly ping for @yuefengz :wave:

Nagging Assignee @yuefengz: It has been 14 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Do you where does this concat op come from? cc @agarwal-ashish

Nagging Assignee @drpngx: It has been 15 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

It has been 14 days with no activity and the awaiting response label was assigned. Is this still an issue?


Thoughts on How To Geometry

I think the geometry generation issue might be more complicated than we've been assuming.
Consider a linear molecule ABC where we are appending atoms D and E.  We specify the position of D with a bond (CD), angle (BCD), and torsion (ABCD).  Similarly, we then can specify the position of E with a bond (DE), angle (CDE), and torsion (BCDE).
When computing the Jacobian, we had previously been assuming that we just need individual Jacobian determinants for each (bond,angle,torsion), and then these can be multiplied.  But I'm not certain this is the case, since the position of atom E will depend not only on (r_{DE}, \theta_{CDE}, \phi_{BCDE}) but also on the (r_{CD}, \theta_{BCD}, and \phi_{ABCD}) used to place atom D.  Doesn't that mean we would have to form the whole Jacobian matrix for each branched chain of atoms we are sprouting and then take the determinant of the whole thing?  Or is it guaranteed we can decompose it into individual (bond,angle,torsion) Jacobians?
There is someone who can certainly help us with this if we get stuck: Vageli Coutsias, now at Stony Brook.  We should first review his paper on kinematic loop closure, since I think there are some of the same challenges there.  He's one of my oldest collaborators and I think would be thrilled to help us out here.

As we discussed today, we have concluded that the Jacobian determinats should indeed be multiplicative for each atom added.
I wonder if we can exploit libraries that turn Cartesian coordinates onto internal coordinates or Z-matrix representations instead of writing our own. On the other hand, there are usually multiple ways the Z-matrix can be constructed based on different spanning trees of the molecular graph, so a scheme that picks an arbitrary Z-matrix may not be helpful. We also need to compute the Jacobian determinant for the same (bond, angle, torsion) representation, so we may just have to work out the geometry ourselves.

This code example shows how to compute the Cartesian coordinates of a new atom given the bond, angle, and torsion coordinates to three previous atoms.

Cool, thanks, I'll give this a try! I think it's going to be easy for me to just calculate the determinant of the Jacobian myself from this.

Ok, I think the latest commit in #8 makes the geometries more reasonable (also verified that ``cartesian(internal(xyz)) = xyz`). Here are 50 configurations of n-pentane that were generated from propane. They aren't great, but the energies are much lower than before, and I think some angles are reasonable (but correct me if I'm wrong).
Also, I'm wondering if maybe we should add the ability to soften bonds and angles to alchemy? Or is that not sufficiently general-purpose?

Sweet!  The angles are totally what I would expect now.

Also, I'm wondering if maybe we should add the ability to soften bonds and angles to alchemy? Or is that not sufficiently general-purpose?

Great idea.  What's the best way to do this---specify the HarmonicBondForce entry indices as a list?  Same with angles and torsions?  Or how should we specify which ones are to be softened?
Here, I think we want to turn them on from zero over a series of stages.  Presumably, we would want to turn on the bonds, angles, and torsions that we didn't use in drawing the atomic positions.

They aren't great, but the energies are much lower than before, and I think some angles are reasonable (but correct me if I'm wrong).

The only other way I see to fix this is to include all valence terms involving atoms added prior, draw p(r), and then compute p(theta,phi | r) for a fine grid and then use this integral to compute the RJMC criteria.

Ok, I think we've decided to extend the geometry proposal to incorporate the energies from all angles and torsions when drawing from the p(phi) distribution.

Correct!   In calculating the logp of the proposal, it is trivial to calculate logp(torsion_choice). However, the actual logp_position can depend on which torsion was chosen. Does this matter if I always choose a torsion randomly?

Covered in other issues.


Automated Tests

The first automated test was created. This test checks if the main page shows up in the application.
:ballot_box_with_check: Definition of Done checklist

[x] Meaningful title and valuable description in pull request
[x] Code change tested manually if not covered by automated tests
[x] Pull request linked to one or more issues/stories
[x] Acceptance criteria of the linked stories satisfied
[x] Code change comprehended by those who approved it
[x] State of target branch maintained or improved after the code change

It should be noted that the newly added test does not run automatically on CI, which means that while the test exists it provides limited value since it is not run every time someone introduces a change.

Thank you for telling us, we are looking into CI so we can integrate it into GitHub.


Refs #32074 -- Fixed CommandTests.test_subparser_invalid_option on Python 3.10+.

Python 3.10.0rc1 changed the error messages issued by argparse on
invalid choice to include the argument name.  Update the expected test
output to account for that.

@mgorny Thanks :+1:


OpenCL Bus error

I write a test python script using GPU
but there is something wrong
the python script:
`
import lightgbm as lgb
import numpy as np
params = {'max_bin': 63,
'num_leaves': 255,
'learning_rate': 0.1,
'tree_learner': 'serial',
'task': 'train',
'is_training_metric': 'false',
'min_data_in_leaf': 1,
'min_sum_hessian_in_leaf': 100,
'ndcg_eval_at': [1,3,5,10],
'sparse_threshold': 1.0,
'device': 'gpu',
}
train_x = np.array([[1],[1],[0],[1],[1],[0],[0],[0]])
train_y = np.array([1,1,0,1,1,0,0,0])
val_x = np.array([[1],[0],[1],[1]])
val_y = np.array([1,0,1,1])
test_x = [1,0,1,0]
tr_dt = lgb.Dataset(train_x, label=train_y)
val_dt = lgb.Dataset(val_x, label=val_y)
gbm = lgb.train(params, tr_dt, 4, valid_sets=[tr_dt,val_dt])
but when I run it, BUS ERROR:
[LightGBM] [Info] This is the GPU trainer!!
[LightGBM] [Info] Total Bins 2
[LightGBM] [Info] Number of data: 8, number of used features: 1
[LightGBM] [Info] Using GPU Device: GeForce GTX 1080, Vendor: NVIDIA Corporation
[LightGBM] [Info] Compiling OpenCL Kernel with 16 bins...
Bus error
`
what's happen and what can I do to deal with it?
Thanks

@ai7603 Please make sure you're using the latest version of LightGBM and drivers for your GPU.
I remember we had a fix for cases with extremely small number of bins recently.
Ping @huanzhang12 for further investigation.


bug (universal.sh): root owned .ssh and .local directories

I'm really not sure how this happened, running fedora 40 with the systemd install.
Setup sshnpd first, then realized I didn't have openssh-server installed so I went back and added it to the machine.

Both .local/ and .ssh/ were owned by root. We also had a similar issue with .sshnp earlier today.
I'm thinking we should add a step to universal.sh which executes mkdir -p <dir> on all directories we use (.atsign, .local/bin, .sshnp, .ssh) at the beginning, and then chown -R user:user <dir> | chown -R user <dir> towards the end of installation.

I just did a device install using 5.3.0 universal.sh onto a freshly installed (default) Fedora 40 Server:

.ssh is certainly a problem. In my case .local is as expected.

was this closed in #1153 ? @XavierChanth

was this closed in #1153 ? @XavierChanth

Should be


Destructure Event without need to know its structure.

Addresses #37
Atspi separates events by bus-type signature and groups them accordingly in enum structures, which in the end are grouped by the Event enum.
This event tree allows atspi to emit a conveniently typed heterogeneous variety of events using the same stream event::event_stream().
To some users, the way we structured these events may be of little interest and may obscure or muddle their goal of obtaining the final type.
This PR allows users to hide the nested enum structure altogether. The only thing they need to know is the event of interest.
The let-else allows users to bind by naming the type and calling its try_from implementation on the nested event,
which succeeds or continues to the next event in the case of a mismatch.
    while let Some(Ok(ev)) = stream.next().await {
        let Ok(change)  = <StateChangedEvent>::try_from(ev) else { continue };

	// Do interesting things with `change` the `StateChangedEvent`.
    }

A follow-up commit in this PR adds two examples using the tokio and the async-std executors to demonstrate a basic atspi usage.
cargo run --example focused-async-std
# or
cargo run --example focused-tokio

There is currently no way to de-structure Available, Cache, or Listener sub-enums. Only the EventInterface::* type. Is this ok, or do we want it for all subtypes?
If so, we should move more code to auto-generation.

There is currently no way to de-structure Available, Cache, or Listener sub-enums.

There was, but you deleted them:
#[rustfmt::skip]
impl TryFrom<Event> for AddAccessibleEvent {
    type Error = AtspiError;
    fn try_from(ev: Event) -> Result<Self, Self::Error> {
        if let Event::Cache(CacheEvents::Add(event)) = ev {
            Ok(event)
        } else {
            Err(AtspiError::Conversion("invalid type"))
        }
    }
}

#[rustfmt::skip]
impl TryFrom<Event> for RemoveAccessibleEvent {
    type Error = AtspiError;
    fn try_from(ev: Event) -> Result<Self, Self::Error> {
        if let Event::Cache(CacheEvents::Remove(event)) = ev {
            Ok(event)
        } else {
            Err(AtspiError::Conversion("invalid type"))
        }
    }
}

#[rustfmt::skip]
impl TryFrom<Event> for AvailableEvent {
    type Error = AtspiError;
    fn try_from(ev: Event) -> Result<Self, Self::Error> {
        if let Event::Available(event) = ev {
            Ok(event)
        } else {
            Err(AtspiError::Conversion("invalid type"))
        }
    }
}

#[rustfmt::skip]
impl TryFrom<Event> for EventListenerRegisteredEvent {
    type Error = AtspiError;
    fn try_from(ev: Event) -> Result<Self, Self::Error> {
        if let Event::Listener(EventListenerEvents::Registered(event)) = ev {
            Ok(event)
        } else {
            Err(AtspiError::Conversion("invalid type"))
        }
    }
}

#[rustfmt::skip]
impl TryFrom<Event> for EventListenerDeregisteredEvent {
    type Error = AtspiError;
    fn try_from(ev: Event) -> Result<Self, Self::Error> {
        if let Event::Listener(EventListenerEvents::Deregistered(event)) = ev {
            Ok(event)
        } else {
            Err(AtspiError::Conversion("invalid type"))
        }
    }
}

I will reinstate these in event/mod.rs so they will accompany their respective events. I am not too worried about these conversions becoming invalidated by changes in type or enum structure because, if those change, the conversions will fail to build. We would notice before harm is done.
code generation
We should expect upstream to revise signatures and a few deprecations but I expect event types to stay the same, but there might be exceptions.  Their methods might change (signatures). Thinking of IsEnabled again.
These conversions however will probably go mostly untouched, unless we decide to refactor enums.
When changes arrive, we want to swap the generated interfaces easily. Then regenerate identified events and impls and restore docs.
Should we physically reorder such that it is clear to us (or future maintainers) what not to touch because it is regenerated?
eg. having a folder called auto or something similarly named?

There was, but you deleted them:

Whoopsie! Good catch!

Should we physically reorder such that it is clear to us (or future maintainers) what not to touch because it is regenerated?

Having a comment that the file is auto-generated should be sufficient.

Some "manual" auto-generation techniques needed to be used here because of how we name our structs, etc.
This should be able to go away once we have all of that auto-generated as well. Thoughts on this method?
My main concern is that new signals will come along which will not implement these, and I don't want to forget.
Since Rust doesn't have parameterized tests at the moment, we can't exhaustively test all sub, and sub-sub-enums, etc. for a working implementation of this trait.
So I've switched this one over to use auto-generation with some hacks in there for now. With the long-term goal to be to remove them and use nearly-fully auto-generated code.

I think that's it. You can now destructute events without all the outer types.


Missing source information causing "identical line collapsing" in VsCode Debug Console

Hello everyone,
TLDR:
"Ominisharp console output" is not providing "Source Information" to VsCode
https://github.com/microsoft/vscode/issues/141218
Description (using browser)
Yesterday we noticed that when debugging inside VsCode some code that tried to write to StdOut, these lines could be collapsed.
This is the same things that you could see on Chromium-based browser.
Remember for later that the first example is not grouping while the second one is.

This can also be tempered with:

In VsCode
Javascript:

C# / F#:

Settings ?
We opened an issue on VsCode and we were hinted at:

issue is ... we did not knew or set it, meaning we were running with the default value all along and still have 2 different output on the same settings which lead us here:
From @weinand => https://github.com/microsoft/vscode/issues/141218

If console output provides source information (in the following screenshot on the right hand side), then lines are only collapsed if their source is identical. @isidorn is this correct?
The following example shows that identical lines are collapsed in Node.js for the loop but not for individual console.log statements:

If a debug extension does not provide source information, then identical are always collapsed. This seems to be the case for C# and F#.

fine with me
IIRC @333fred suggested me to post here i might have misunderstood ;)

@gregg-miskelly Please have a look.

the question is ... does it only affect debug.console.collapseIdenticalLines (the fact that it's missing source information) ?

Proving source references is optional, so, if VS Code had a place where it was requiring them (which I don't think it does), that would be a bug in VS Code.

fine for me l, just double checking

I think we (VS Code) should consider not to collapse lines if there is no source info available.


Update scripting.md

@catslovedata : Thanks for your contribution! The author(s) have been notified to review your proposed change.

rejected


Add plus pattern in Java

Description
Task

For the given input n the number of rows printed should be 2*n-1 for ex:

Note

Filename should be Pattern33.java

@Vishal21121 can you assign me this issue?

ok


next_release: don't nag when release services people changed the next…

… release date just before the merge day

Coverage decreased (-0.04%) to 28.443% when pulling cdebd2db33e23c82d1c30a41a4e0f6d9946dc7bb on calixteman:next_release into fcb2fb9ce5f9f8518bccb725bae53923b03987d9 on mozilla:master.


[Item] Soul Core

Soul Core
Builds from: Urn of Shadows, Diffusal Blade 1, Soul Booster, recipe (~1000g?)/boss item.
Cost: 7225g or more
Stats:
•	500 health
•	500 mana
•	10 strength
•	10 intelligence
•	25 agility
•	50% mana regen
Abilities:
•	Rejuvenation Mote(Active: target ground): drop an orb on the ground that basic dispels and heals over time a hero that picks it up. The healing effect is lost if the effected hero takes damage from an enemy hero.
Gains charges every time an enemy hero dies within 1400 units. Only the closest Soul Core to the dying hero gains a charge. Starts with 8 charges
Cast range: 300
Charge gain radius: 1400
Total heal: 600
Heal duration: 8
Cooldown: 7
•	Mana Oppression(Passive): each spell cast burns the mana from enemies around you overtime, and dealing 1 times magical damage per burned mana, stacks independently.
Radius: 600
Total mana burned: 40
Duration: 5
Burned mana as damage: 100% (magical)

Modified and added. Closed.


Any plans to put this on PyPi?

Hi,
Great work on YoloX! Are there any plans to put this on PyPi as an installable package? It would make it easier to version than cloning the repo.
Thanks

We have a experimental whl on pypi now, you might try pip install yolox to install it now.
However, the whl only works on some platform and I'm trying a jit compile method to make the whl works on most platforms.

Excellent, thanks! I hope you get it working on all platforms soon!

Do you plan to upload your pretrained weights to torch hub?

Do you plan to upload your pretrained weights to torch hub?

We are trying now. Thanks for your suggestion :)


fix incorrect reference comparing in case of dev mode build

In dev mode with react-static (using WebPack 3) I get issues with this condition - somehow the object references get split, and the condition will not match.
This is my proposal 🙂

Sorry that I did not tend to this earlier. I find it unfortunate that a module bunding system would break the assumed "guarantees" of CommonJS/ES6 modules.

Can you change the module name back to "react-dynamic-swiper"?


Move version validation tests into separate package

Changes
This commit cleans up tests in pkg/apis/version by moving them
into a separate package. This encourages black-box testing.
No functional changes.
/kind cleanup
Submitter Checklist
As the author of this PR, please check off the items in this checklist:

n/a Has Docs included if any changes are user facing
n/a Has Tests included if any functionality added or changed
[x] Follows the commit message standard
[x] Meets the Tekton contributor standards (including
functionality, content, code)
[x] Has a kind label. You can add one by adding a comment on this PR that contains /kind <type>. Valid types are bug, cleanup, design, documentation, feature, flake, misc, question, tep
n/a Release notes block below has been updated with any user facing changes (API changes, bug fixes, changes requiring upgrade notices or deprecation warnings)
n/a Release notes contains the string "action required" if the change requires additional action from users switching to the new release

Release Notes
NONE

LGTM. Thanks Lee.

/retest

/lgtm


jetton comment cannot be parsed

Send jetton tranfer transaction with comment
comment, _ := wallet.CreateCommentCell("hello world!")
transferPayload, _ := tokenWallet.BuildTransferPayloadV2(to, w.Address(), amountTokens, tlb.MustFromTON("0.1"), comment, nil)
However, the refs field of transferPayload is empty and does not contain a comment cell. When I get tx.IO.In.AsInternal().Body.RefsNum() through api.SubscribeOnTransactions, it is 0, so I can't get the comment.
I modified the flag of the ForwardPayload field of the jetton.TransferPayload structure from tlb:"either . ^" to tlb:"either ^ ." or tlb:"maybe ^", the refs field of transferPayload obtained through tokenWallet.BuildTransferPayloadV2 is not 0. When I get tx.IO.In.AsInternal().Body.RefsNum() through api.SubscribeOnTransactions, it is not 0, so I can get the comment.
So why does this happen? What is the correct way to use it? Thank you.

either . ^ tries to pack your data to the same cell if it is enough free bits, if not - it will be saved as a reference, so it is normal behaviour, short comment can be stored in the same cell with previous data, this way transaction will be cheaper.
If for some reason you want to store payload as reference you can do it by wrapping your cell to comment = cell.BeginCell().MustStoreRef(comment).EndCell()

This issue has been resolved, thanks!


Update Dockerfile

Removed unnecessary comments and blank lines.
Removed the rm command for /etc/apt/apt.conf.d/docker-clean as it's not required.
Removed redundant rm commands in the runner-base stage.
Added comments for better code understanding.
Adjusted spacing and indentation for improved readability.

not relevant anymore, thanks for the help!


[vm image list] SKU field gets mangled in table output

** Bug / How to reproduce / Expected behavior **
$ az vm image list --publisher RedHat --offer RHEL --sku 6.10 --all --location westcentralus -o table
Offer    Publisher      Sku  Urn                               Version
-------  -----------  -----  --------------------------------  ---------------
RHEL     RedHat         6.1  RedHat:RHEL:6.10:6.10.2018071006  6.10.2018071006

Sku column shows 6.1 instead of 6.10. Is az treating the Sku as a number and leaving the zero off?
Environment summary
Ubuntu 18.04 with deb from azure CLI repo:
$ dpkg -l azure-cli
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                         Version             Architecture        Description
+++-============================-===================-===================-==============================================================
ii  azure-cli                    2.0.42-1~bionic     all                 Azure CLI

JSON looks good:
$ az vm image list --publisher RedHat --offer RHEL --sku 6.10 --all --location westcentralus
[
  {
    "offer": "RHEL",
    "publisher": "RedHat",
    "sku": "6.10",
    "urn": "RedHat:RHEL:6.10:6.10.2018071006",
    "version": "6.10.2018071006"
  }
]

@paulmey - run this in CloudShell with
boris@Azure:~$ az --version
azure-cli (2.0.42)

It seems to look ok
boris@Azure:~$ az vm image list --publisher RedHat --all --location EastUS2
Offer                 Publisher    Sku       Urn                                       Version
--------------------  -----------  --------  ----------------------------------------  ---------------
RHEL                  RedHat       6.10      RedHat:RHEL:6.10:6.10.2018071006          6.10.2018071006

Could this be formatting (width of the terminal window) issue?

More tests:
az vm image list --publisher RedHat --offer RHEL --all --location westcentralus
works as expected - looks like above
Offer                 Publisher    Sku       Urn                                       Version
--------------------  -----------  --------  ----------------------------------------  ---------------
RHEL                  RedHat       6.10      RedHat:RHEL:6.10:6.10.2018071006          6.10.2018071006

however, specifying SKU produces the result in the original comment:
boris@Azure:~$ az vm image list --publisher RedHat --offer RHEL --all --location westcentralus --sku 6.10
Offer    Publisher      Sku  Urn                               Version
-------  -----------  -----  --------------------------------  ---------------
RHEL     RedHat         6.1  RedHat:RHEL:6.10:6.10.2018071006  6.10.2018071006

I suppose it is table output trimming logic tries to minimize the number of output chars in the SKU column - note number of dashes under the word "Sku" in both cases.

Also funny that it is right-aligned when it show '6.1' vs left-aligned when it shows '6.10'. I bet that when you don't specify the SKU, the column includes more variety, including values that cannot be converted to numbers and the table library picks a more general string format instead of a number format for the column...

The number got tweaked by the tabluate. It is only line fix by disabling the automatic number parse, which is the right thing. CLI is never a math/scientific computation application, and it should just keep whatever server returns


Group with selection are not created.

Could you elaborate more? I can't reproduce the issue on my end.

I think I know your mistake, you probably forgot to issue a "bower update" as the new update relies on a new feature in pandora.


Error Message "Operation Not Supported" when setting max_tx_rate/rate or min_tx_rate

Environment

ConnectX-5 Mellanox Card
OS: Ubuntu 16.04.6 LTS
Kernel: 4.4.0-87-generic
Mellanox OFED driver version: 4.5-1.0.10
Mellanox Modules Loaded Include:

mlx5_ib
mlx5_core
mlxfw
mlx4_ib
mlx4_en
mlx4_core
mlx4_compat

Setup

The setup that was followed was from documentation from both the 4.5 OFED manual as well as from the Mellanox community articles including https://community.mellanox.com/s/article/howto-configure-rate-limit-per-vf-for-connectx-4-connectx-5.
We have enabled SRIOV via the following command and the Virtual Functions are working correctly mlxconfig -d /dev/mst/mt4119_pciconf0 set SRIOV_EN=1 NUM_OF_VFS=4.
We are able to communicate to other hosts via the ib_send_bw command.
Following the 2019 guide presented here we made sure to enable the mlx4_core parameter in the file /etc/modprobe.d/mlx4.conf by adding in the following line and restarting the machine:

options mlx4_core debug_level=1 enable_qos=1 enable_vfs_qos=1

Problem
After issuing the following command to change the max bandwidth we received an error.
Command
ip link set dev enp4s0f0 vf 1 rate 1000

Error
RTNETLINK answers: Operation not supported

The same error occurs for both of the following commands as well:
ip link set dev enp4s0f0 vf 1 min_tx_rate 1000
ip link set dev enp4s0f0 vf 1 max_tx_rate 1000

Problem was solved by upgrading to MOFED 4.6
Install via the mlnxofedinstall file in the MOFED 4.6 directory.


Update tickList.ts

ya

@a-straus may I know why this hasn't been approved?
I saw issue #52 that you removed the net liquidity invariant and it worked. I wonder if you found a bug in that made you close the PR?

@emadtps
I honestly don't remember.  I think because I didn't write tests?  Also because I never got any response from the Uni team about the issue here so didn't want to assume what was going on


javascript client

All the projects using nerd require the same fixes over and over every time the API changes, it's time to start thinking of having an asynchronous javascript library for that.
We could start moving code bit a bit as the needs of fixing bugs require to touch the frontend.

Actually are we talking about a client here or a reusable library for displaying entity fishing result in a web front-end?


Replace Integer with Long in documentation

Seem that Integer field no more exists and should be replaced using Long .
Just documentation update to make example work with current master branch status

Sorry it was just a case of that field type not being implemented yet, I have to go through the types and make sure we have a class for each.


Where to document the package itself?

on readthedocs :stuck_out_tongue_winking_eye:

Oooh yeah, good idea! Run r2readthedocs into a different branch and serve that via readthedocs!! Thanks!

https://github.com/ropensci-review-tools/ropensci-review-tools/issues/16 now resolved, and this package documented at https://ropensci-review-tools.readthedocs.io/en/latest/dashboard/dashboard.html


thread.lock serialization error when passing a custom function to a local cluster

I'm using dask 0.14.0, distributed 1.16.0, and python 2.7.11 (all installed via conda) on MacOS 10.11.6. When I try to run certain custom Python functions that call various other packages with binary extensions on a local cluster via the following code,
from distributed import Client, LocalCluster

def func(x):
    # my custom function

args = # some list of args

lc = LocalCluster(10)
c = Client(lc)
results = c.gather(c.map(func, args))
lc.close()

I observe the following exception:
Traceback (most recent call last):
  File "process.py", line 151, in <module>
    results = c.gather(c.map(func, args))
  File "/Users/lebedov/anaconda2/lib/python2.7/site-packages/distributed/client.py", line 885, in map
    loose_restrictions, priority=priority, resources=resources)
  File "/Users/lebedov/anaconda2/lib/python2.7/site-packages/distributed/client.py", line 1455, in _graph_to_futures
    'tasks': valmap(dumps_task, dsk3),
  File "/Users/lebedov/anaconda2/lib/python2.7/site-packages/toolz/dicttoolz.py", line 84, in valmap
    rv.update(zip(iterkeys(d), map(func, itervalues(d))))
  File "/Users/lebedov/anaconda2/lib/python2.7/site-packages/distributed/worker.py", line 601, in dumps_task
    return {'function': dumps_function(task[0]),
  File "/Users/lebedov/anaconda2/lib/python2.7/site-packages/distributed/worker.py", line 568, in dumps_function
    b = dumps(func)
  File "/Users/lebedov/anaconda2/lib/python2.7/site-packages/distributed/protocol/pickle.py", line 54, in dumps
    return cloudpickle.dumps(x, protocol=pickle.HIGHEST_PROTOCOL)
  File "/Users/lebedov/anaconda2/lib/python2.7/site-packages/cloudpickle/cloudpickle.py", line 706, in dumps
    cp.dump(obj)
  File "/Users/lebedov/anaconda2/lib/python2.7/site-packages/cloudpickle/cloudpickle.py", line 146, in dump
    return Pickler.dump(self, obj)
  File "/Users/lebedov/anaconda2/lib/python2.7/pickle.py", line 224, in dump
    self.save(obj)
  File "/Users/lebedov/anaconda2/lib/python2.7/pickle.py", line 286, in save
    f(self, obj) # Call unbound method with explicit self
  File "/Users/lebedov/anaconda2/lib/python2.7/site-packages/cloudpickle/cloudpickle.py", line 264, in save_function
    self.save_function_tuple(obj)
  File "/Users/lebedov/anaconda2/lib/python2.7/site-packages/cloudpickle/cloudpickle.py", line 317, in save_function_tuple
    save(f_globals)
  File "/Users/lebedov/anaconda2/lib/python2.7/pickle.py", line 286, in save
    f(self, obj) # Call unbound method with explicit self
  File "/Users/lebedov/anaconda2/lib/python2.7/pickle.py", line 655, in save_dict
    self._batch_setitems(obj.iteritems())
  File "/Users/lebedov/anaconda2/lib/python2.7/pickle.py", line 687, in _batch_setitems
    save(v)
  File "/Users/lebedov/anaconda2/lib/python2.7/pickle.py", line 286, in save
    f(self, obj) # Call unbound method with explicit self
  File "/Users/lebedov/anaconda2/lib/python2.7/site-packages/cloudpickle/cloudpickle.py", line 264, in save_function
    self.save_function_tuple(obj)
  File "/Users/lebedov/anaconda2/lib/python2.7/site-packages/cloudpickle/cloudpickle.py", line 317, in save_function_tuple
    save(f_globals)
  File "/Users/lebedov/anaconda2/lib/python2.7/pickle.py", line 286, in save
    f(self, obj) # Call unbound method with explicit self
  File "/Users/lebedov/anaconda2/lib/python2.7/pickle.py", line 655, in save_dict
    self._batch_setitems(obj.iteritems())
  File "/Users/lebedov/anaconda2/lib/python2.7/pickle.py", line 687, in _batch_setitems
    save(v)
  File "/Users/lebedov/anaconda2/lib/python2.7/pickle.py", line 331, in save
    self.save_reduce(obj=obj, *rv)
  File "/Users/lebedov/anaconda2/lib/python2.7/site-packages/cloudpickle/cloudpickle.py", line 604, in save_reduce
    save(state)
  File "/Users/lebedov/anaconda2/lib/python2.7/pickle.py", line 286, in save
    f(self, obj) # Call unbound method with explicit self
  File "/Users/lebedov/anaconda2/lib/python2.7/pickle.py", line 655, in save_dict
    self._batch_setitems(obj.iteritems())
  File "/Users/lebedov/anaconda2/lib/python2.7/pickle.py", line 687, in _batch_setitems
    save(v)
  File "/Users/lebedov/anaconda2/lib/python2.7/pickle.py", line 331, in save
    self.save_reduce(obj=obj, *rv)
  File "/Users/lebedov/anaconda2/lib/python2.7/site-packages/cloudpickle/cloudpickle.py", line 604, in save_reduce
    save(state)
  File "/Users/lebedov/anaconda2/lib/python2.7/pickle.py", line 286, in save
    f(self, obj) # Call unbound method with explicit self
  File "/Users/lebedov/anaconda2/lib/python2.7/pickle.py", line 655, in save_dict
    self._batch_setitems(obj.iteritems())
  File "/Users/lebedov/anaconda2/lib/python2.7/pickle.py", line 687, in _batch_setitems
    save(v)
  File "/Users/lebedov/anaconda2/lib/python2.7/pickle.py", line 286, in save
    f(self, obj) # Call unbound method with explicit self
  File "/Users/lebedov/anaconda2/lib/python2.7/pickle.py", line 606, in save_list
    self._batch_appends(iter(obj))
  File "/Users/lebedov/anaconda2/lib/python2.7/pickle.py", line 642, in _batch_appends
    save(tmp[0])
  File "/Users/lebedov/anaconda2/lib/python2.7/pickle.py", line 331, in save
    self.save_reduce(obj=obj, *rv)
  File "/Users/lebedov/anaconda2/lib/python2.7/site-packages/cloudpickle/cloudpickle.py", line 604, in save_reduce
    save(state)
  File "/Users/lebedov/anaconda2/lib/python2.7/pickle.py", line 286, in save
    f(self, obj) # Call unbound method with explicit self
  File "/Users/lebedov/anaconda2/lib/python2.7/pickle.py", line 655, in save_dict
    self._batch_setitems(obj.iteritems())
  File "/Users/lebedov/anaconda2/lib/python2.7/pickle.py", line 687, in _batch_setitems
    save(v)
  File "/Users/lebedov/anaconda2/lib/python2.7/pickle.py", line 331, in save
    self.save_reduce(obj=obj, *rv)
  File "/Users/lebedov/anaconda2/lib/python2.7/site-packages/cloudpickle/cloudpickle.py", line 604, in save_reduce
    save(state)
  File "/Users/lebedov/anaconda2/lib/python2.7/pickle.py", line 286, in save
    f(self, obj) # Call unbound method with explicit self
  File "/Users/lebedov/anaconda2/lib/python2.7/pickle.py", line 655, in save_dict
    self._batch_setitems(obj.iteritems())
  File "/Users/lebedov/anaconda2/lib/python2.7/pickle.py", line 687, in _batch_setitems
    save(v)
  File "/Users/lebedov/anaconda2/lib/python2.7/pickle.py", line 306, in save
    rv = reduce(self.proto)
TypeError: can't pickle thread.lock objects

There seems to be a way to address this when using dask's own interfaces; is there some way to use the serializable lock with a custom function?
The package I'm calling from within my function, incidentally, is SimpleElastix.

SimpleElastix looks like a very nice project, I wish it had been around when I was starting with medical image registration four years ago!

Are you depending on a threading.Lock within your function, either directly or indirectly (such as if the function depended on global variables)?
One way to check this is to try the following:
cloudpickle.dumps(func)

Apparently there is some indirect dependence (i.e., I'm not using threading explicitly); cloudpickle.dumps(func) chokes when I run it in the same namespace in which I defined func().

Yeah, there isn't much that Dask can do here.  The easiest thing to do is
to make the function more easily serializable.  Generally this means making
it self-contained so that it doesn't depend on or affect any variable that
it doesn't take as an explicit input.
On Fri, Mar 17, 2017 at 9:58 AM, Lev E. Givon<EMAIL_ADDRESS>wrote:

Apparently there is some indirect dependence (i.e., I'm not using
threading explicitly); cloudpickle.dumps(func) chokes when I run it in
the same namespace in which I defined func().
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/dask/dask/issues/2096#issuecomment-287360721, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AASszFNioUatBl_DV5z3GhWDlbPYqS0Wks5rmpGcgaJpZM4Mgl_5
.

dill seems to be able to serialize threading.Lock objects, but wrapping the code in a context created with dask.set_options(func_loads=dill.loads, func_dumps=dill.dumps) doesn't seem to have any effect (i.e., according to the trace, cloudpickle.dumps is still being used). Am I missing something?
with dask.set_options(func_loads=dill.loads, func_dumps=dill.dumps):
    lc = LocalCluster(10)
    c = Client(lc)
    results = c.gather(c.map(func, args))
    lc.close()

The distributed scheduler only uses cloudpickle.
Generally you probably should avoid serializing threading.Lock objects if
possible.
On Fri, Mar 17, 2017 at 11:12 AM, Lev E. Givon<EMAIL_ADDRESS>wrote:

dill seems to be able to serialize threading.Lock objects, but wrapping
the code in a context created with dask.set_options(func_loads=dill.loads,
func_dumps=dill.dumps) doesn't seem to have any effect (i.e., according
to the trace, cloudpickle.dumps is still being used). Am I missing
something?
with dask.set_options(func_loads=dill.loads, func_dumps=dill.dumps):
lc = LocalCluster(10)
c = Client(lc)
results = c.gather(c.map(func, args))
lc.close()
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/dask/dask/issues/2096#issuecomment-287381525, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AASszBt6l7fdLW1MxUTj_RfcxupyTSWkks5rmqLigaJpZM4Mgl_5
.

Seems like the problem was a global logger instance that I was accessing in my function.

Thanks for reporting @lebedov .  Hopefully this issue is helpful for other people in the future.

@lebedov I have the same error I wanted to use Map.apply() to log every record which doesn't have all fields properly mapped or has some null values and then create an alert in cloudwatch to spot check them all, is it possible to log the individual record from mapping function or how I can do that?

@annvakulchyk I was able to log by creating  a logger instance inside the function I passed to Client.map


Adding blindspot option, v0.9 compat, more default actions

This pull request is a hodgepodge of changes including

Addition of default pedestrian model
Ability to define a vehicle blind spot by direction and angular width
Compat with POMDPs v0.9
Some changes to default idm values (specifically setting V_des = 15 m/s for vehicles and 1m/s for ped)
Changes to the intersection navigation logic to track leading vehicles if they have a small relative t position but are in a different lane

This looks good to me—nothing should impact our use of the framework. Thanks for getting it up to speed with POMDPs v0.9!


Datadog - Profiler

Description
#1120
This enables the Datadog Profiler on our Datadog Dashboard.  A profiler shows how much “work” each function is doing by collecting data about the program as it’s running. For example, if infrastructure monitoring shows your app servers are using 80% of their CPU, you may not know why. Profiling shows a breakdown of the work, and successful completion opens up other valuable functionality on Datadog.
Overview - From Datadog Profiler Documentation
Type of change

[ ] New feature (non-breaking change which adds functionality)

Have Profiles set up similar to what is available on vagov.ddog-gov.com(You'll have to have looged into the okta dashboard for this link to work)

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

[ ] Successful Dev deployment
[ ] Data showing up on our dashboard

Checklist

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] My changes generate no new warnings
[ ] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules

Hey @ldraney could you please look into why this PR showed up as a ticket on Zenhub..?

It should be noted that this ticket does not implement the optional DD_VERSION in the task definitions, as this won't be accurate because we don't yet have a way to automatically update this value dynamically according to latest release, tag, etc.  a SPIKE will be needed, if we see value in correlating APM output by our app versions, to have comparative performance metrics, etc.


Add missing space for kubelet args in Prepare-Node.ps1

There was no space before --cert-dir. As a result, the command-line arg had no effect and kubelet could not start.
Fixes #5857

@rajnkamr @XinShuYang I am curious about why this was not detected by our Windows CI?

@rajnkamr @XinShuYang I am curious about why this was not detected by our Windows CI?

This script is mainly used during the testbed deployment, and our CI jobs never test it. Although I validated this script manually during the review of #5071, the issue could be introduced in the last few rounds of code update.

/skip-all


Package request: hyprload

Project description
A Hyprland plugin manager
Metadata

homepage URL: https://github.com/Duckonaut/hyprload
source URL: https://github.com/Duckonaut/hyprload
license: none
platforms: linux

Hyprload is superseded by the builtin hyprpm, or by the HM option hyprland.plugins.


Generalize constant handlers for multi-buffer objects

Paired with @mattjj

I'll take a look tomorrow, but I suspect the issue is here: https://github.com/google/jax/blob/8ded7ad895760699b325fee138f63edbd1826b62/jax/_src/lax/control_flow.py#L96-L97

Hmm that's all avals and jaxprs though, should be unrelated to the xla lowering...


microsoft web enabled bot is not working suddenly stopped working

Bot Info

Bot handle:
App ID:
SDK Platform:
SDK Version:
Active Channels:
Deployment Environment:

Issue Description

Code Example

Reproduction Steps

Expected Behavior

Actual Results

Hi @ReenaPatel2410
Please fill out the template, so we can better assist you.


Animations on mobile not working correctly

Description
CSS transitions not working on all browsers & devices. Test look & feel of transitions & animations on Android, OSX, PC, iOS, multiple browsers, fix issues.

Possibly an iOS - Chrome bug, this is taking back seat for now

Closing, handled browsers, this is a chrome + iOS issue. Go safari!


fix type definition

used typescript
added nextjs 14 route handler to encapsulate backend api and create extra layers between frontend and backend
removed src directory
updated dependencies to latest
fixed type definition

Please see previous attempts. Right now we're not going to do this if not only for the amount of time it would take to review this.


Feature request: No baseURL option.

In our project we are setting the base url in an interceptor and therefore I do not want to prepend the url with anything at all.
The feature request: To add a way of not prepending the svg url with anything at all.
I have already implemented this locally be setting .forRoot({baseUrl: null}) and then checking this in the inline-svg>getAbsoluteUrl() method and simply returning the original url.
I'm happy to submit a PR if you think this functionality would be valuable to others.

Yeah, feel free to submit a PR! Make sure to update the documentation too.

Great, I'll take a look over the next few days.
On Mon, 12 Aug 2019, 18:26 Eugene<EMAIL_ADDRESS>wrote:

Yeah, feel free to submit a PR! Make sure to update the documentation too.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/arkon/ng-inline-svg/issues/115?email_source=notifications&email_token=AGEMDRLXE43GM3KFQWR3TMTQEGFKZA5CNFSM4ILB3NDKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD4DCI2Y#issuecomment-520496235,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGEMDRISE4K4ADCIMBYRUHDQEGFKZANCNFSM4ILB3NDA
.

Hi there, I do not think it is good approach, because with new release v9.1.0, our app does not work now. We set fake baseUrl option in InlineSVGModule and then in HttpInterceptor replace it with real one (which fetches ngx-config), but now svg requests never reach interceptor...

@arkon

@emzet For future reference, leaving comments on unrelated/closed issues isn't a good way to bring up issues.


Improve chart titles/labelling

From Phillip:

Its is also not entirely clear what the data is, is it the last weeks average of usage on weekdays and at the >weekend, or over a longer period of time – a Chart Title including dates in the chart might help make this >clearer?

Also clarify that the meter selection is meters, and not a date

Also clarify:

The date start and end date on the graphs is different for Twerton between the electricity and (missing) >gas graphs – are the graphs going to be day to date, i.e. if we bring the web page up on a Tuesday, is the >last bar a Tuesday, or will it be the last day for which we have data, or will it be a fixed DOY e.g. Saturday


brew install authzed/tap/zed returning error

What platforms are affected?
macos
What architectures are affected?
amd64, arm64
What SpiceDB version are you using?
N/A
Steps to Reproduce
command brew install authzed/tap/zed
Expected Result
fix the brew install error
Actual Result

@ayushgupta2959 sorry I realized you meant zed, please open in the zed repository


Enable sandbox mode for all requests

I have the following file that handles my sendgrid set up.
import sgMail from '@sendgrid/mail';

const sendGridApiKey = process.env.SENDGRID_API_KEY;

if (!sendGridApiKey) {
  throw new Error('The sendgrid api key has not been set in the environment variables');
}

sgMail.setApiKey(sendGridApiKey);

export { sgMail };

After setting my api key I need to be able to do something like this to enable sandbox mode on all requests
sgMail.enableSandbox(process.env.NODE_ENV !== 'production')

The absolute best solution would be not having to add a line of code like that at all but be able to generate an api key specifically for sandbox mode (similar to how Stripe has test keys). I really don't want to use my live production key in staging and development environments. Thanks!

I can see this was marked as non-library issue. Where is the correct place to open this issue?

Hello @malimccalla,
We will route this request to the proper location internally on your behalf and update you here on any progress. Thank you!
With best regards,
Elmer

Internal tracking#: CL-2681

Is anyone working on this?

I want this feature as well. Any plans on implementing it soon?

In case anyone else runs across this, a solution could be to implement a server which mocks the appropriate sendgrid endpoints. The example setup for the mock endpoint:
sgClient.setApiKey(SOME_KEY);
sgClient.setDefaultRequest('baseUrl', 'MOCK_SERVER_ENDPOINT');
sgMail.setClient(sgClient);

The point being that the library will run all its validation logic (as it would in sandbox mode), and one can simply return dummy data/results from the mock server all while ignoring the api key (since the mock server doesnt have to validate the key).
But I am just doing this for unit tests (and rather simple use cases) and I therefore am not sure how it would scale to bigger dev/stage environments with more complex setups in which more complex and accurate server responses are required.


[ENG-5746] Phase 4: Fix RegistrationEmbargoApprovalDisapprovalViewsTestCase.test_GET_approve_with_valid_token_redirects

Purpose
Fix test_GET_approve_with_valid_token_redirects
Changes

Fixed LegacyRegistrationEmbargoApprovalDisapprovalViewsTestCase.test_GET_approve_with_valid_token_redirects: by asserting that there weren't any redirects
Fixed RegistrationEmbargoApprovalDisapprovalViewsTestCase.test_GET_approve_with_valid_token_redirects by changing patch of redirect and fixing assert value.

QA Notes
Please make verification statements inspired by your code and what your code touches.

Verify
Verify

What are the areas of risk?
Any concerns/considerations/questions that development raised?
Documentation

Side Effects

Ticket
https://openscience.atlassian.net/browse/ENG-5746

Looks good, merged!


How to select date range with two touches?

I need to select date range with two touches - first will be first date, and second will be last. When I try call selectRange() function after second touch it hangs, because he try to select all date cells in range, and make an infinity cycle. Please, give me some hint. Thanks!

ok. can you join me here? https://gitter.im/patchthecode/JTAppleCalendar

without you providing more information, I will not know what you have done with your code

ok, i"ll join now

User selected date inside the did select delegate (without disabling delegate triggers). Therefore this causes an infinite loop. This is expected. Closing this issue now.


Validate query form

Input fields in the query form need to be validated before the form is submitted.
Cases to keep in mind for validation:

Age

[x] minAge < maxAge
[x] ~both minAge and maxAge must be non-negative~
~currently, min property of the input element enforces this but this can't be tested inside the AgeField.cy.js test~

Should the validations fail, the user shouldn't be able to submit the form, Perhaps the button becomes disabled and the field with the issue is highlighted and an informative message is given to the user.
Implementation

[x] Implement displayToast method to be called from inside the validateQueryForm

display an informative message using bootstapvue toast

[x] Implement validateQueryForm method

To be called when the submitQuery button Is clicked
Call displayToast method if there is an error otherwise call  submitQuery method

[x] Update QueryForm.cy.js to test the above functionalities

[x] ~both minAge and maxAge must be non-negative~
~currently, min property of the input element enforces this but this can't be tested inside the AgeField.cy.js test~

Given the current implementation of validation (validateQueryForm), I think it's unnecessary to include validation that can be handled by HTML attributes.


everything set to zero

@rultor release, tag is 0.0.42

@rultor release, tag is 0.0.42

@yegor256 OK, I will release it now. Please check the progress here

@rultor release, tag is 0.0.42

@yegor256 Done! FYI, the full log is here (took me 5min)


Support GUI

https://wails.io/

https://wails.io/

Allow right mouse button menu bar selection to switch versions.


stream data for teleoperation

Streaming is reported to be slower than unitary in python https://grpc.io/docs/guides/performance/#python


Connect to a sqlite db

I try to connect explorer 0.7 to a sqlite3 db with adbc 0.1.
 db = Kino.start_child({Adbc.Database, driver: :sqlite, uri: "file:local_path/file.db"})

throws the error:

{:error,
%ArgumentError{
message: "driver sqlite is not available (see Adbc moduledocs to learn how to install a driver)"
}}

Alternatives:
I tried to use an interpolated absolute path and even:
db = Kino.start_child({Adbc.Database, driver: :sqlite, uri: ":memory:"})

all throw the same error. I got exqlite with fetch_all working. But that list of a list can not be used to create a DataFrame. Plus, how would I get the column  names?

You must install the driver. Please see steps in the docs: https://hexdocs.pm/adbc/Adbc.html#module-installation :)


enhancement(router): enable lazy load feature when navigating to route

Load module with id configure.ts/js in the base folder from route.
It will enable to lazy load features/plugin/element.
import configurationLoaderStep then in app.ts
config.addPreActivateStep(new ConfigurationLoaderStep(this.aurelia));

example configure.ts
import { FrameworkConfiguration } from 'aurelia-framework';

export function configure(config: FrameworkConfiguration) {
    return config
        .globalResources('./ad-content/about')
        .apply();
}

Enhancement aurelia/framework#427

The idea here is great. One problem is that we can't have a dependency on the framework from inside the router. This is something that probably needs to be implemented inside of the framework, in a duck typed way. It would also be good to unify this with view resources somehow so that views could "require" configuration. Finally, we'd probably want the framework to apply the configuration, rather than have the developer do that, so it matches normal feature modules more. I'm closing this for now, but I'd love to see another PR that addresses the feedback above. I'm sure the community would love this.

Hi @EisenbergEffect
Sorry, I don't have an idea on how it will unify with view resources and others thing maybe you can give some light on how to do it? Technically how Aurelia repo relates to each other seems a magic to me.
Thank you.