Remember current message in input history

Right now if you start typing something and then press up and then down, the message you were typing is gone. I would prefer the input history to store the current message when you press up (even though it hasn't been sent). I want this because I sometimes accidentally hit the arrow keys while typing on my kinesis.
Additionally, this entry should probably be removed again from the list when you cycle back to it.

This is a duplicate of #65.


Add stampie/stampie 1.0 compatibility

This add support for stampie/stampie 1.0 which now use HTTPlug instead of adapters.

Waiting for #5 to get green tests.


Update get-akse.sh for 'azurestack' repo

Reason for Change:

Issue Fixed:

Credit Where Due:
Does this change contain code from or inspired by another project?

[ ] No
[ ] Yes

If "Yes," did you notify that project's maintainers and provide attribution?

[ ] No
[ ] Yes

Requirements:

[ ] uses conventional commit messages

[ ] includes documentation
[ ] adds unit tests
[ ] tested upgrade from previous version

Notes:

/azp run

#sign-off


Can't find the game when reloading the game from browser

I am running the game locally on chrome.
When I go to localhost:8000 for the first time after launching the docker, the game launches successfully. Here is the logs from the console.
[input] keyboard has been initialized
log.js?v=3:9 [input] joystick has been initialized
log.js?v=3:9 [input] touch input has been initialized
log.js?v=3:9 [ws] <- open connection
log.js?v=3:9 [ws] -> setting ping interval to 2000ms
log.js?v=3:9 [ping] <-> {http://localhost:9000/echo: 5}
log.js?v=3:9 [rtcp] <- received stunturn from worker [{"urls":"stun:stun.l.google.com:19302"},{"urls":"stun:<IP_ADDRESS>:3478"},{"urls":"turn:<IP_ADDRESS>:3478","username":"root","credential":"root"}]
log.js?v=3:9 Added voice track
log.js?v=3:9 [rtcp] ice gathering
log.js?v=3:9 [rtcp] got ice candidate: {"candidate":"candidate:3792981046 1 udp<PHONE_NUMBER> <IP_ADDRESS> 53547 typ host generation 0 ufrag 85jv network-id 1 network-cost 10","sdpMid":"0","sdpMLineIndex":0}
log.js?v=3:9 [rtcp] ice gathering completed
log.js?v=3:9 [rtcp] <- iceConnectionState: connected
log.js?v=3:9 [rtcp] connected...
log.js?v=3:9 [rtcp] <- iceConnectionState: disconnected
log.js?v=3:9 [rtcp] disconnected...
However when I reload the game from browser, I can't see any game in the game window. Here are the logs when it fails to reload.
[input] keyboard has been initialized
log.js?v=3:9 [input] joystick has been initialized
log.js?v=3:9 [input] touch input has been initialized
log.js?v=3:9 [ws] <- open connection
log.js?v=3:9 [ws] -> setting ping interval to 2000ms
I have to run the docker again for launching the game again.
Does anyone know of the issue.
Thanks in advance for your help.

Hi @akh64bit,
Could you please show your Docker logs with coordinator / worker output during this lunch / relunch?

@akh64bit
It sometimes happens because the connection cleaning process is not properly implemented (code bug issue). The worker is panic due to "sending to a closed channel". The bug can be reproduced by keep reloading. I didn't have time to fully fix that.
However, it's still better if you can grab it from the worker log. Don't know if there is easy way to get log from docker now.

The worker is panic due to "sending to a closed channel". The bug can be reproduced by keep reloading. I didn't have time to fully fix that.
Is that specific for Docker? I couldn't reproduce it on a native nix or win, or even WSL2.

@sergystepanov It should not happen frequently as I tried to fix it before. Only one case left when I keep opening the game and reload. (Listed below)
Yes, It is rare, so It might not be the same with the issue he is facing.

goroutine 550 [running]:
github.com/giongto35/cloud-game/pkg/webrtc.(*WebRTC).StartClient.func7(0xc0006283f0, 0xc0005ba120)
        /home/thanh/Desktop/Code/cloud-game/pkg/webrtc/webrtc.go:213 +0x120
created by github.com/pion/webrtc/v2.(*PeerConnection).onTrack
        /home/thanh/go/pkg/mod/github.com/pion/webrtc/v2@v2.2.0/peerconnection.go:265 +0x117
exit status 2

I see. If you'd run workers as a service or use Docker's restart-always option (worker as a separate container) that shouldn't matter to some extent (:
Interesting crash in a sessions map you got there.
I think this ticket is more likely about some core crash on exit as mGBA.

@sergystepanov here are the docker logs after I have launched the docker for the first time.
I0602 22:47:44.483814       6 main.go:37] Initializing coordinator server I0602 22:47:44.483850       6 main.go:38] Coordinator configs {8800 http://localhost:8000   {6601 /coordinator false false}} I0602 22:47:44.485844       6 coordinator.go:45] Starting monitoring server for coordinator I0602 22:47:44.486987       6 coordinator.go:103] Initializing Coordinator Server I0602 22:47:44.488093       6 monitoring.go:81] Monitoring server is disabled via config I0602 22:47:44.655008       7 main.go:29] Initializing worker server I0602 22:47:44.656448       7 worker.go:47] Starting monitoring server for overwork I0602 22:47:44.659548       7 monitoring.go:53] Starting monitoring server at :6601 I0602 22:47:44.659579       7 monitoring.go:75] Prometheus metric is enabled at :6601/worker/metrics I0602 22:47:44.686105       7 storage.go:25] Warn: Failed to create client: dialing: google: could not find default credentials. See https://developers.google.com/accounts/docs/application-default-credentials for more information. I0602 22:47:44.686732       7 worker.go:154] Listening at port: localhost: 9000 I0602 22:47:44.687428       7 handlers.go:95] Worker connecting to coordinator: ws://localhost:8000/wso?zone= I0602 22:47:44.692237       6 handlers.go:87] Coordinator: A worker is connecting... I0602 22:47:44.693182       6 worker.go:41] Worker c7a8297a-cb1a-42a8-8850-80aad3490e46] Generated worker ID I0602 22:47:44.693386       6 worker.go:41] Worker c7a8297a-cb1a-42a8-8850-80aad3490e46] Address:<IP_ADDRESS> I0602 22:47:44.693555       6 worker.go:36] Worker c7a8297a-cb1a-42a8-8850-80aad3490e46] Is public: false zone:  I0602 22:47:44.693715       7 handlers.go:72] Connected to coordinator successfully. &{0xc0003a61c0} <nil> I0602 22:47:44.701944       7 coordinator.go:45] Received serverID  c7a8297a-cb1a-42a8-8850-80aad3490e46
Docker Logs after launching localhost:8000 for the first time
I0602 22:50:25.788816       7 main.go:37] Initializing coordinator server I0602 22:50:25.788883       7 main.go:38] Coordinator configs {8800 http://localhost:8000   {6601 /coordinator false false}} I0602 22:50:25.789079       7 coordinator.go:103] Initializing Coordinator Server I0602 22:50:25.789075       7 coordinator.go:45] Starting monitoring server for coordinator I0602 22:50:25.789140       7 monitoring.go:81] Monitoring server is disabled via config I0602 22:50:25.792917       8 main.go:29] Initializing worker server I0602 22:50:25.793407       8 worker.go:47] Starting monitoring server for overwork I0602 22:50:25.793472       8 monitoring.go:53] Starting monitoring server at :6601 I0602 22:50:25.793484       8 monitoring.go:75] Prometheus metric is enabled at :6601/worker/metrics I0602 22:50:25.797254       8 storage.go:25] Warn: Failed to create client: dialing: google: could not find default credentials. See https://developers.google.com/accounts/docs/application-default-credentials for more information. I0602 22:50:25.797369       8 worker.go:154] Listening at port: localhost: 9000 I0602 22:50:25.797508       8 handlers.go:95] Worker connecting to coordinator: ws://localhost:8000/wso?zone= I0602 22:50:25.799349       7 handlers.go:87] Coordinator: A worker is connecting... I0602 22:50:25.799489       7 worker.go:41] Worker db35d0ea-1267-44cc-abad-1b12588185be] Generated worker ID I0602 22:50:25.799514       7 worker.go:41] Worker db35d0ea-1267-44cc-abad-1b12588185be] Address:<IP_ADDRESS> I0602 22:50:25.799539       7 worker.go:36] Worker db35d0ea-1267-44cc-abad-1b12588185be] Is public: false zone:  I0602 22:50:25.799818       8 handlers.go:72] Connected to coordinator successfully. &{0xc00012e340} <nil> I0602 22:50:25.800488       8 coordinator.go:45] Received serverID  db35d0ea-1267-44cc-abad-1b12588185be I0602 22:50:28.544908       7 handlers.go:161] Coordinator: A user is connecting... I0602 22:50:28.545083       7 browser.go:35] Browser 0b0709bd-8d76-4423-a1e0-f2b9308d1b95] Generated worker ID I0602 22:50:28.545132       7 browser.go:30] Browser 0b0709bd-8d76-4423-a1e0-f2b9308d1b95] Get Room  Zone  From URL /ws?room_id=&zone= I0602 22:50:28.545192       7 browser.go:35] Browser 0b0709bd-8d76-4423-a1e0-f2b9308d1b95] Send sync[http://localhost:9000/echo]http://localhost:9000/echo I0602 22:50:28.592340       8 worker.go:75] &{0xc000398320 0xc00032c400 {} 0x4e4370 false false false false 0xc000154600 {0xc0003b0000 map[] false false} map[Access-Control-Allow-Origin:[*]] true 0 -1 0 false false [] 0 [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0] [0 0 0] 0xc000396070 0} echo I0602 22:50:28.600730       7 browser.go:35] Browser 0b0709bd-8d76-4423-a1e0-f2b9308d1b95] Latency mapmap[0xc0001bc120:12] I0602 22:50:28.621099       7 browser.go:30] Browser 0b0709bd-8d76-4423-a1e0-f2b9308d1b95] Received initwebrtc request -> relay to worker: db35d0ea-1267-44cc-abad-1b12588185be I0602 22:50:28.621727       8 coordinator.go:57] Received a request to createOffer from browser via coordinator I0602 22:50:28.622090       8 webrtc.go:115] === StartClient === I0602 22:50:28.679160       8 webrtc.go:135] Add video track I0602 22:50:28.679869       8 webrtc.go:224] Created Offer I0602 22:50:28.680467       8 coordinator.go:89] Start peerconnection 0b0709bd-8d76-4423-a1e0-f2b9308d1b95 I0602 22:50:28.680773       8 webrtc.go:186] OnIceCandidate: candidate:foundation 1 udp<PHONE_NUMBER> <IP_ADDRESS> 42985 typ host I0602 22:50:28.680979       8 webrtc.go:186] OnIceCandidate: candidate:foundation 1 udp<PHONE_NUMBER> <IP_ADDRESS> 49239 typ srflx raddr <IP_ADDRESS> rport 54310 I0602 22:50:28.681189       7 browser.go:35] Browser 0b0709bd-8d76-4423-a1e0-f2b9308d1b95] Received SDP from worker -> sending back to browser I0602 22:50:28.681308       7 worker.go:41] Worker db35d0ea-1267-44cc-abad-1b12588185be] Received IceCandidate from worker -> relay to browser I0602 22:50:28.681472       7 worker.go:41] Worker db35d0ea-1267-44cc-abad-1b12588185be] Received IceCandidate from worker -> relay to browser I0602 22:50:28.682105       7 worker.go:41] Worker db35d0ea-1267-44cc-abad-1b12588185be] Received IceCandidate from worker -> relay to browser I0602 22:50:28.700084       7 browser.go:35] Browser 0b0709bd-8d76-4423-a1e0-f2b9308d1b95] Received browser answered SDP -> relay to worker I0602 22:50:28.701023       8 coordinator.go:106] Received answer SDP from browser I0602 22:50:28.701475       8 webrtc.go:257] Set Remote Description I0602 22:50:28.702007       8 webrtc.go:170] ICE Connection State has changed: checking I0602 22:50:28.705253       7 browser.go:35] Browser 0b0709bd-8d76-4423-a1e0-f2b9308d1b95] Received IceCandidate from browser -> relay to worker I0602 22:50:28.705857       8 coordinator.go:127] Received remote Ice Candidate from browser I0602 22:50:28.705820       7 browser.go:35] Browser 0b0709bd-8d76-4423-a1e0-f2b9308d1b95] Received IceCandidate from browser -> relay to worker I0602 22:50:28.705985       8 webrtc.go:268] Decoded Ice: candidate:3792981046 1 udp<PHONE_NUMBER> <IP_ADDRESS> 58969 typ host generation 0 ufrag 1dKY network-id 1 network-cost 10 I0602 22:50:28.706147       8 webrtc.go:276] Add Ice Candidate: candidate:3792981046 1 udp<PHONE_NUMBER> <IP_ADDRESS> 58969 typ host generation 0 ufrag 1dKY network-id 1 network-cost 10 I0602 22:50:28.706875       8 coordinator.go:127] Received remote Ice Candidate from browser I0602 22:50:28.707222       8 webrtc.go:268] Decoded Ice: candidate:4169346470 1 udp<PHONE_NUMBER> <IP_ADDRESS> 51376 typ host generation 0 ufrag 1dKY network-id 2 network-cost 50 I0602 22:50:28.707433       8 webrtc.go:276] Add Ice Candidate: candidate:4169346470 1 udp<PHONE_NUMBER> <IP_ADDRESS> 51376 typ host generation 0 ufrag 1dKY network-id 2 network-cost 50 I0602 22:50:28.751873       7 browser.go:35] Browser 0b0709bd-8d76-4423-a1e0-f2b9308d1b95] Received IceCandidate from browser -> relay to worker I0602 22:50:28.752399       8 coordinator.go:127] Received remote Ice Candidate from browser I0602 22:50:28.752473       8 webrtc.go:268] Decoded Ice: candidate:2043357970 1 udp<PHONE_NUMBER> <IP_ADDRESS> 58717 typ srflx raddr <IP_ADDRESS> rport 51376 generation 0 ufrag 1dKY network-id 2 network-cost 50 I0602 22:50:28.752615       8 webrtc.go:276] Add Ice Candidate: candidate:2043357970 1 udp<PHONE_NUMBER> <IP_ADDRESS> 58717 typ srflx raddr <IP_ADDRESS> rport 51376 generation 0 ufrag 1dKY network-id 2 network-cost 50 I0602 22:50:28.753674       8 webrtc.go:170] ICE Connection State has changed: connected I0602 22:50:28.753800       8 webrtc.go:174] ConnectionStateConnected I0602 22:50:28.753841       8 webrtc.go:308] Start streaming I0602 22:50:28.820028       8 webrtc.go:154] Data channel 'game-input'-'824635108826' open. I0602 22:50:28.838337       8 webrtc.go:203] Received Voice from Client
Launching from browser again given the following logs
I0602 22:50:25.788816       7 main.go:37] Initializing coordinator server I0602 22:50:25.788883       7 main.go:38] Coordinator configs {8800 http://localhost:8000   {6601 /coordinator false false}} I0602 22:50:25.789079       7 coordinator.go:103] Initializing Coordinator Server I0602 22:50:25.789075       7 coordinator.go:45] Starting monitoring server for coordinator I0602 22:50:25.789140       7 monitoring.go:81] Monitoring server is disabled via config I0602 22:50:25.792917       8 main.go:29] Initializing worker server I0602 22:50:25.793407       8 worker.go:47] Starting monitoring server for overwork I0602 22:50:25.793472       8 monitoring.go:53] Starting monitoring server at :6601 I0602 22:50:25.793484       8 monitoring.go:75] Prometheus metric is enabled at :6601/worker/metrics I0602 22:50:25.797254       8 storage.go:25] Warn: Failed to create client: dialing: google: could not find default credentials. See https://developers.google.com/accounts/docs/application-default-credentials for more information. I0602 22:50:25.797369       8 worker.go:154] Listening at port: localhost: 9000 I0602 22:50:25.797508       8 handlers.go:95] Worker connecting to coordinator: ws://localhost:8000/wso?zone= I0602 22:50:25.799349       7 handlers.go:87] Coordinator: A worker is connecting... I0602 22:50:25.799489       7 worker.go:41] Worker db35d0ea-1267-44cc-abad-1b12588185be] Generated worker ID I0602 22:50:25.799514       7 worker.go:41] Worker db35d0ea-1267-44cc-abad-1b12588185be] Address:<IP_ADDRESS> I0602 22:50:25.799539       7 worker.go:36] Worker db35d0ea-1267-44cc-abad-1b12588185be] Is public: false zone:  I0602 22:50:25.799818       8 handlers.go:72] Connected to coordinator successfully. &{0xc00012e340} <nil> I0602 22:50:25.800488       8 coordinator.go:45] Received serverID  db35d0ea-1267-44cc-abad-1b12588185be I0602 22:50:28.544908       7 handlers.go:161] Coordinator: A user is connecting... I0602 22:50:28.545083       7 browser.go:35] Browser 0b0709bd-8d76-4423-a1e0-f2b9308d1b95] Generated worker ID I0602 22:50:28.545132       7 browser.go:30] Browser 0b0709bd-8d76-4423-a1e0-f2b9308d1b95] Get Room  Zone  From URL /ws?room_id=&zone= I0602 22:50:28.545192       7 browser.go:35] Browser 0b0709bd-8d76-4423-a1e0-f2b9308d1b95] Send sync[http://localhost:9000/echo]http://localhost:9000/echo I0602 22:50:28.592340       8 worker.go:75] &{0xc000398320 0xc00032c400 {} 0x4e4370 false false false false 0xc000154600 {0xc0003b0000 map[] false false} map[Access-Control-Allow-Origin:[*]] true 0 -1 0 false false [] 0 [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0] [0 0 0] 0xc000396070 0} echo I0602 22:50:28.600730       7 browser.go:35] Browser 0b0709bd-8d76-4423-a1e0-f2b9308d1b95] Latency mapmap[0xc0001bc120:12] I0602 22:50:28.621099       7 browser.go:30] Browser 0b0709bd-8d76-4423-a1e0-f2b9308d1b95] Received initwebrtc request -> relay to worker: db35d0ea-1267-44cc-abad-1b12588185be I0602 22:50:28.621727       8 coordinator.go:57] Received a request to createOffer from browser via coordinator I0602 22:50:28.622090       8 webrtc.go:115] === StartClient === I0602 22:50:28.679160       8 webrtc.go:135] Add video track I0602 22:50:28.679869       8 webrtc.go:224] Created Offer I0602 22:50:28.680467       8 coordinator.go:89] Start peerconnection 0b0709bd-8d76-4423-a1e0-f2b9308d1b95 I0602 22:50:28.680773       8 webrtc.go:186] OnIceCandidate: candidate:foundation 1 udp<PHONE_NUMBER> <IP_ADDRESS> 42985 typ host I0602 22:50:28.680979       8 webrtc.go:186] OnIceCandidate: candidate:foundation 1 udp<PHONE_NUMBER> <IP_ADDRESS> 49239 typ srflx raddr <IP_ADDRESS> rport 54310 I0602 22:50:28.681189       7 browser.go:35] Browser 0b0709bd-8d76-4423-a1e0-f2b9308d1b95] Received SDP from worker -> sending back to browser I0602 22:50:28.681308       7 worker.go:41] Worker db35d0ea-1267-44cc-abad-1b12588185be] Received IceCandidate from worker -> relay to browser I0602 22:50:28.681472       7 worker.go:41] Worker db35d0ea-1267-44cc-abad-1b12588185be] Received IceCandidate from worker -> relay to browser I0602 22:50:28.682105       7 worker.go:41] Worker db35d0ea-1267-44cc-abad-1b12588185be] Received IceCandidate from worker -> relay to browser I0602 22:50:28.700084       7 browser.go:35] Browser 0b0709bd-8d76-4423-a1e0-f2b9308d1b95] Received browser answered SDP -> relay to worker I0602 22:50:28.701023       8 coordinator.go:106] Received answer SDP from browser I0602 22:50:28.701475       8 webrtc.go:257] Set Remote Description I0602 22:50:28.702007       8 webrtc.go:170] ICE Connection State has changed: checking I0602 22:50:28.705253       7 browser.go:35] Browser 0b0709bd-8d76-4423-a1e0-f2b9308d1b95] Received IceCandidate from browser -> relay to worker I0602 22:50:28.705857       8 coordinator.go:127] Received remote Ice Candidate from browser I0602 22:50:28.705820       7 browser.go:35] Browser 0b0709bd-8d76-4423-a1e0-f2b9308d1b95] Received IceCandidate from browser -> relay to worker I0602 22:50:28.705985       8 webrtc.go:268] Decoded Ice: candidate:3792981046 1 udp<PHONE_NUMBER> <IP_ADDRESS> 58969 typ host generation 0 ufrag 1dKY network-id 1 network-cost 10 I0602 22:50:28.706147       8 webrtc.go:276] Add Ice Candidate: candidate:3792981046 1 udp<PHONE_NUMBER> <IP_ADDRESS> 58969 typ host generation 0 ufrag 1dKY network-id 1 network-cost 10 I0602 22:50:28.706875       8 coordinator.go:127] Received remote Ice Candidate from browser I0602 22:50:28.707222       8 webrtc.go:268] Decoded Ice: candidate:4169346470 1 udp<PHONE_NUMBER> <IP_ADDRESS> 51376 typ host generation 0 ufrag 1dKY network-id 2 network-cost 50 I0602 22:50:28.707433       8 webrtc.go:276] Add Ice Candidate: candidate:4169346470 1 udp<PHONE_NUMBER> <IP_ADDRESS> 51376 typ host generation 0 ufrag 1dKY network-id 2 network-cost 50 I0602 22:50:28.751873       7 browser.go:35] Browser 0b0709bd-8d76-4423-a1e0-f2b9308d1b95] Received IceCandidate from browser -> relay to worker I0602 22:50:28.752399       8 coordinator.go:127] Received remote Ice Candidate from browser I0602 22:50:28.752473       8 webrtc.go:268] Decoded Ice: candidate:2043357970 1 udp<PHONE_NUMBER> <IP_ADDRESS> 58717 typ srflx raddr <IP_ADDRESS> rport 51376 generation 0 ufrag 1dKY network-id 2 network-cost 50 I0602 22:50:28.752615       8 webrtc.go:276] Add Ice Candidate: candidate:2043357970 1 udp<PHONE_NUMBER> <IP_ADDRESS> 58717 typ srflx raddr <IP_ADDRESS> rport 51376 generation 0 ufrag 1dKY network-id 2 network-cost 50 I0602 22:50:28.753674       8 webrtc.go:170] ICE Connection State has changed: connected I0602 22:50:28.753800       8 webrtc.go:174] ConnectionStateConnected I0602 22:50:28.753841       8 webrtc.go:308] Start streaming I0602 22:50:28.820028       8 webrtc.go:154] Data channel 'game-input'-'824635108826' open. I0602 22:50:28.838337       8 webrtc.go:203] Received Voice from Client I0602 22:50:49.765989       7 cws.go:155] [!] read: read tcp <IP_ADDRESS>:8000-><IP_ADDRESS>:40638: i/o timeout I0602 22:50:49.766046       7 worker.go:41] Worker db35d0ea-1267-44cc-abad-1b12588185be] Unregister worker from coordinator I0602 22:52:13.349315       7 cws.go:155] [!] read: websocket: close 1001 (going away) I0602 22:52:13.349756       7 browser.go:35] Browser 0b0709bd-8d76-4423-a1e0-f2b9308d1b95] Disconnect from coordinator I0602 22:52:13.417429       7 handlers.go:161] Coordinator: A user is connecting... I0602 22:52:13.417856       7 browser.go:35] Browser 21f815c5-55bb-4b8e-ae1b-deb22a7251bb] Generated worker ID I0602 22:52:13.417896       7 browser.go:30] Browser 21f815c5-55bb-4b8e-ae1b-deb22a7251bb] Get Room  Zone  From URL /ws?room_id=&zone= I0602 22:52:13.417980       7 handlers.go:273] No server found

@akh64bit, thanks.
With these logs I can't really tell what's going on at which point, could you post one continuous log for the period of time starting from container run, then game run, then browser reload, then no games screen?
@giongto35, maybe you have any idea with those logs why socket has timeout?

Thanks @sergystepanov @giongto35 for having a look at the issue.

Oh Thank you @akh64bit so much. I indeed can reproduce with docker build. I will try to investigate it.
@sergystepanov you can try it with make dev.run-docker. I spawned both worker and container in the same docker : D. And yes, this issue seems like the connection between worker and coordinator get crashed
"I0602 22:50:49.765989 7 cws.go:155] [!] read: read tcp <IP_ADDRESS>:8000-><IP_ADDRESS>:40638: i/o timeout"
"I0602 22:52:13.349315 7 cws.go:155] [!] read: websocket: close 1001 (going away)"

Docker never worked for me:
I0604 10:44:36.475602       6 main.go:27] Initializing coordinator server
I0604 10:44:36.475735       6 main.go:28] Coordinator configs {8800 http://localhost:8000   {6601 /coordinator false false}}
I0604 10:44:36.475826       6 coordinator.go:45] Starting monitoring server for coordinator
I0604 10:44:36.475856       6 coordinator.go:103] Initializing Coordinator Server
I0604 10:44:36.475860       6 monitoring.go:81] Monitoring server is disabled via config
I0604 10:44:36.493570       7 main.go:29] Initializing worker server
I0604 10:44:36.496255       7 worker.go:47] Starting monitoring server for overwork
I0604 10:44:36.496322       7 monitoring.go:53] Starting monitoring server at :6601
I0604 10:44:36.496373       7 monitoring.go:75] Prometheus metric is enabled at :6601/worker/metrics
I0604 10:44:36.503159       7 storage.go:25] Warn: Failed to create client: dialing: google: could not find default credentials. See https://developers.google.com/accounts/docs/application-default-credentials for more information.
I0604 10:44:36.503255       7 worker.go:154] Listening at port: localhost: 9000
I0604 10:44:36.503413       7 handlers.go:95] Worker connecting to coordinator: ws://localhost:8000/wso?zone=
I0604 10:44:36.504356       6 handlers.go:87] Coordinator: A worker is connecting...
I0604 10:44:36.504673       6 worker.go:41] Worker b15bf525-c599-4966-b7ef-2d5c58043400] Generated worker ID
I0604 10:44:36.504738       7 handlers.go:72] Connected to coordinator successfully. &{0xc00013e440} <nil>
I0604 10:44:36.504791       6 worker.go:41] Worker b15bf525-c599-4966-b7ef-2d5c58043400] Address:<IP_ADDRESS>
I0604 10:44:36.504861       6 worker.go:36] Worker b15bf525-c599-4966-b7ef-2d5c58043400] Is public: false zone:
I0604 10:44:36.505344       7 coordinator.go:45] Received serverID  b15bf525-c599-4966-b7ef-2d5c58043400
I0604 10:44:51.744979       6 handlers.go:161] Coordinator: A user is connecting...
I0604 10:44:51.745119       6 browser.go:35] Browser 8c2de6ff-ae73-4455-8f3b-76d56a7b9a42] Generated worker ID
I0604 10:44:51.745181       6 browser.go:30] Browser 8c2de6ff-ae73-4455-8f3b-76d56a7b9a42] Get Room  Zone  From URL /ws?room_id=&zone=
I0604 10:44:51.745244       6 browser.go:35] Browser 8c2de6ff-ae73-4455-8f3b-76d56a7b9a42] Send sync[http://localhost:9000/echo]http://localhost:9000/echo
I0604 10:44:51.815963       7 worker.go:75] &{0xc0003115e0 0xc0000fa500 {} 0x4e4370 false false false false 0xc000312f80 {0xc0003c4000 map[] false false} map[Access-Control-Allow-Origin:[*]] true 0 -1 0 false false [] 0 [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0] [0 0 0] 0xc000086230 0} echo
I0604 10:44:51.846526       6 browser.go:35] Browser 8c2de6ff-ae73-4455-8f3b-76d56a7b9a42] Latency mapmap[0xc000110720:37]
I0604 10:44:51.864765       6 browser.go:30] Browser 8c2de6ff-ae73-4455-8f3b-76d56a7b9a42] Received initwebrtc request -> relay to worker: b15bf525-c599-4966-b7ef-2d5c58043400
I0604 10:44:51.865160       7 coordinator.go:57] Received a request to createOffer from browser via coordinator
I0604 10:44:51.865280       7 webrtc.go:115] === StartClient ===
I0604 10:44:51.929312       7 webrtc.go:135] Add video track
I0604 10:44:51.929746       7 webrtc.go:224] Created Offer
I0604 10:44:51.930005       7 coordinator.go:89] Start peerconnection 8c2de6ff-ae73-4455-8f3b-76d56a7b9a42
I0604 10:44:51.930115       7 webrtc.go:186] OnIceCandidate: candidate:foundation 1 udp<PHONE_NUMBER> <IP_ADDRESS> 39337 typ host
I0604 10:44:51.930252       7 webrtc.go:186] OnIceCandidate: candidate:foundation 1 udp<PHONE_NUMBER> <IP_ADDRESS> 54059 typ srflx raddr <IP_ADDRESS> rport 47257
I0604 10:44:51.930485       6 worker.go:41] Worker b15bf525-c599-4966-b7ef-2d5c58043400] Received IceCandidate from worker -> relay to browser
I0604 10:44:51.930539       6 browser.go:35] Browser 8c2de6ff-ae73-4455-8f3b-76d56a7b9a42] Received SDP from worker -> sending back to browser
I0604 10:44:51.930604       6 worker.go:41] Worker b15bf525-c599-4966-b7ef-2d5c58043400] Received IceCandidate from worker -> relay to browser
I0604 10:44:51.930635       6 worker.go:41] Worker b15bf525-c599-4966-b7ef-2d5c58043400] Received IceCandidate from worker -> relay to browser
I0604 10:44:52.012353       6 browser.go:35] Browser 8c2de6ff-ae73-4455-8f3b-76d56a7b9a42] Received browser answered SDP -> relay to worker
I0604 10:44:52.013014       7 coordinator.go:106] Received answer SDP from browser
I0604 10:44:52.013305       7 webrtc.go:257] Set Remote Description
I0604 10:44:52.013446       7 webrtc.go:170] ICE Connection State has changed: checking
I0604 10:44:52.034205       6 browser.go:35] Browser 8c2de6ff-ae73-4455-8f3b-76d56a7b9a42] Received IceCandidate from browser -> relay to worker
I0604 10:44:52.034562       7 coordinator.go:127] Received remote Ice Candidate from browser
I0604 10:44:52.034675       7 webrtc.go:268] Decoded Ice: candidate:1910078557 1 udp<PHONE_NUMBER> c54712b0-76ce-41f3-9ef5-5289a119212e.local 54062 typ host generation 0 ufrag mv6A network-cost 999
I0604 10:44:52.034860       7 webrtc.go:276] Add Ice Candidate: candidate:1910078557 1 udp<PHONE_NUMBER> c54712b0-76ce-41f3-9ef5-5289a119212e.local 54062 typ host generation 0 ufrag mv6A network-cost 999
I0604 10:44:52.058023       6 browser.go:35] Browser 8c2de6ff-ae73-4455-8f3b-76d56a7b9a42] Received IceCandidate from browser -> relay to worker
I0604 10:44:52.058374       7 coordinator.go:127] Received remote Ice Candidate from browser
I0604 10:44:52.058446       7 webrtc.go:268] Decoded Ice: candidate:842163049 1 udp<PHONE_NUMBER> <IP_ADDRESS> 54062 typ srflx raddr <IP_ADDRESS> rport 0 generation 0 ufrag mv6A network-cost 999
I0604 10:44:52.058539       7 webrtc.go:276] Add Ice Candidate: candidate:842163049 1 udp<PHONE_NUMBER> <IP_ADDRESS> 54062 typ srflx raddr <IP_ADDRESS> rport 0 generation 0 ufrag mv6A network-cost 999
I0604 10:45:02.015815       7 webrtc.go:170] ICE Connection State has changed: failed

Also it's probably better to build proper canonical Docker images here, at gh https://github.com/giongto35/cloud-game/packages?package_type=Docker

I just made an investigation.

Try running the container few times subsequently, the app log stucks at different places.
Try spawning the program inside docker, cannot interrupt when the program got frozen => The container got malfunctioned.
Check CPU usage, it was 100%

=> It is due to high CPU usage of my new bad implementation. Container's CPU is capped, so everything inside is frozen.
I think your new Dockerfile should work now as well @sergystepanov
Fixed here: https://github.com/giongto35/cloud-game/pull/191


Table does not show values when the column title has space

Table does not show values when the column title has space
I am not able to bind data which is something like this,
[{"id":0,"Ship  new_Mode":"Delivery Truck","avg_Profit":235.29},{"id":1,"Ship  new_Mode":"Express Air","avg_Profit":149.98},{"id":2,"Ship  new_Mode":"Regular Air","avg_Profit":176.19}]
is an unexpected token at column 13 of the expression [item.Order_ Priority] starting at [Priority].

@sajeetharan i don't understand. Could you please provide a code example?

@samu  Check this plunker http://plnkr.co/edit/scG4nI5Zy7pOgAPXEIoG?p=preview  where avg _Sales has a space

@samu  were you able to check on this?

Hey @sajeetharan, sorry for the delay.
I'm afraid you're trying to use this directive in a way it was not intended to be used. Having a dynamic amount of columns is not supported. Every column you want to used must be explicitly declared, hence you'd need a specific declaration for the avarage sales column.
"avg _Sales" is not going to work either with a space. You'll have to transform your data beforehand and remove that space (or fix the API where this data is coming from in the first place).

Yes i have fixed that way, thanks for the reply


[Bug] Build App With Pake CLI complains "Node.js 16 actions are deprecated."

Search before asking

[X] 我在 issues 列表中搜索，没有找到类似的内容。
I searched in the issues and found nothing similar.

Pake version
0e0bbc7
System version
GitHub Action/Build App With Pake CLI
Node.js version
Node.js 16
Minimal reproduce step

Followed https://github.com/tw93/Pake/wiki/Online-Compilation-(used-by-ordinary-users)
Created GitHub Action
Ran "Build App With Pake CLI" for Windows, Mac and Ubuntu.

What did you expect to see?
Build file.
What did you see instead?
Build file (good!) plus warning:

Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20...

Anything else?
I don't know if this is a big problem.
Are you willing to submit a PR?

[ ] I'm willing to submit a PR!

建议使用Node18版本

Thank you for the suggestion.
感谢您的建议
I am following these instructions. 中文版
Is it still possible to change the version of Node.js?
是否还可以更改 Node.js 的版本?
Perhaps I shouldn't worry about it.
也许我不应该担心

改了node18和node20都会报这个错误

Indeed it is

I know, this includes something you can ignore, it won't affect actual usage, should be some dependencies of GitHub Action itself.

this does not work anymore. i need to use the cli way


Handoff

Implement handoff to another bot/host in conjunction with this PR for chatroom and this PR for Helpdesk-Assistant

There's something wrong with the github action for checking which files changed; the test conversations all pass locally so I'm going to merge this


Update project and implements latest changes

Implement changes need
update configs

Also, it's not working on --turbo mode. Please check.
Thanks


Match changelog to release branch

Closes
Code Changes

[ ] list your code changes here

Steps to Confirm

[ ] list any manual steps taken to confirm the changes

Pre-Merge Checklist

[ ] All CI Pipelines Succeeded
Documentation:

[ ] documentation complete, PR opened in fidesdocs
[ ] documentation issue created in fidesdocs

[ ] Issue Requirements are Met
[ ] Relevant Follow-Up Issues Created
[ ] Update CHANGELOG.md

Description Of Changes
Write some things here about the changes and any potential caveats

this pre-empts what we will be changing in the release 2.3.0 PR, to avoid merge conflicts and allow that PR to merge smoothly into main


-Better and elegantly connect strings.

Better and elegantly connect strings using fmt.Sprintf

I signed it! @googlebot


Fix for double encoding of the timestamp in the params

Fixes #257
Stops the double encoding of the text string with the clean_string() method as the .isoformat() on the datetime object returns valid string already.
By calling the clean_string() method we got a double encoded timestamp that broke the Amazon MWS calls.
This is a confirmed working fix by testing against a couple of live endpoints, and confirmed the bug existed by getting the MWS errors back.
The code that breaks the calls appears to be in Develop branch as well - I've not investigated too hard as to why the different versions give different results as this was more an emergency fix to get a working version out onto pypi.
@GriceTurrble FYI but I'm going to merge this and push out to pypi ASAP

@Bobspadger, not sure if you already tested with other data types, but apparently the root cause is that both clean_params_dict and calc_request_description can run clean_string.
You fixed it for dates, but if clean_value is called with a string, it will be double encoded. Maybe the correct fix is for calc_request_description to no longer encode parameters, but to expect that its input has been already encoded (using clean_params_dict).


GUI: File name align with common other files.

"server_overview.robot"
"server_power_operations.robot"

Make sense to change the above file as well.


A few changes to support linux.

Turns out only minor changes are necessary. Also remove a few trailing whitespaces.

☺


Helpful scripts for submitting composite tasks

@mxgrey should we consider merging this in so that users can look at how composite tasks can be submitted?

@Yadunund Is this ready to review? i can help to test it and review it.

@Yadunund I think it's ready

I just cleaned up all the utils scripts in rmf_demos_tasks, and update the docs respectively. Previously we have many "kinda duplicated" scripts, and it can get a little bit confusing to users. To sum it up, we will now have 5 types of scripts, compatible with task v2:

dispatch_patrol
dispatch_clean
dispatch_action
dispatch_delivery
cancel_task

The dispatch_xxx scripts can also accept -robot -fleet as input args, to support direct robot_task_request assignment
For detailed info, can refer to the readme here
Feel free to test those scenarios out again. If no issue with this, hopefully we can merge this to main as soon as possible.

Thanks for the changes @youliangtan.
Github won't let me approve this PR since I'm the original author. But we can merge this one once someone else does so.


Bug: Search bar animation issue

Noticing the same search bar animation glitch whenever clicking on the header logo to go back to the home screen

Unfortunately that is not fixable at this point because it picking up the css styles sequentially and for the fragment of the second the template's css will be applied to the search box before manual css takes over.


Fix dead links

Link to the tutorial on how to contribute now 404's, Here is an archive of it. Should probably rewrite it as a markdown file as the original content is not creative commons (that I know of)
http://web.archive.org/web/20220328053958/https://love.edwardcharl.es/contributing-to-the-freeside-srl/

Will now close this issue as we have the original organisation back, a new how to contribute will eventually be made for that.


PRODX-21945 Fixed Selective sync UX issues

Link to the ticket
Main changes:

Added 'Synchronize future projects' checkboxes for syncAll bool in SynchronizeBlock and in SelectiveSync Table
Added Cloud.ignoredNamespaces where we store all unchecked projects
Added logic to ExtendedCloud, which updates Cloud.ignoredNamespaces  and Cloud.syncedNamespaces in it got new project. Depending on syncAll we're choosing where to move new project ignored or synced
Fixed issue when SelectiveSync table isn't updated after new data come (eg when Cloud disconnected=> we reconnect it and go to SelectiveSync view before EC.dataFetch is finished)

👀

One last thing (aside from the twisty issue I pointed out): We should always sort namespaces alphabetically based on name, with the exception of always putting the "default" namespace at the top of the list.
So if we had default, a-namespace, and some-namespace, they would be listed as:

default
a-namespace
some-namespace

The default namespace is where MCC puts the mgmt cluster, so it's treated a little bit special. It always exists since it's the default namespace in Kubernetes.
Let's do this only when we present the namespaces in the UI (in components), not in Cloud or ExtendedCloud since they don't need them to be sorted.

Fixed last issue and added sorting for namespaces


Add more information to the info window

Should display some more information in the information window, such as aperture and exposing time.

Note: I would have loved to also add the name of the lens to the info displayed.  But unfortunately, this is proprietary information that is not easily accessible from the exif data.  One would need to maintain a lens data base with attributes set by each of the lenses, see for instance the Image::ExifTool perl module.


New spec for api-version 2017-03-15-preview

This checklist is used to make sure that common issues in a pull request are addressed. This will expedite the process of getting your pull request merged and avoid extra work on your part to fix issues discovered during the review process.
PR information

[X] The title of the PR is clear and informative.
[X] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For information on cleaning up the commits in your pull request, see this page.
[X] Except for special cases involving multiple contributors, the PR is started from a fork of the main repository, not a branch.
[X] If applicable, the PR references the bug/issue that it fixes.
[X] Swagger files are correctly named (e.g. the api-version in the path should match the api-version in the spec).

Quality of Swagger

[X] I have read the contribution guidelines.
[X] My spec meets the review criteria:

[X] The spec conforms to the Swagger 2.0 specification.
[X] The spec follows the guidelines described in the Swagger checklist document.
[X] Validation tools were run on swagger spec(s) and have all been fixed in this PR.

Note, there were some errors produced by Validation tools but I don't believe they applicable since my change is very minor (only added Features property on the Workspace for new the api-version, we need the new version because ARM requires the new version). I mainly referenced work done from following PR: https://github.com/Azure/azure-rest-api-specs/pull/662.

@haitch - please review

@sw47 Please see our contribution guideline section  https://github.com/Azure/azure-rest-api-specs/blob/master/.github/CONTRIBUTING.md#filenames-and-folder-structure, this will make the review process faster.

Copy over all the files from 2015-11-01-preview to 2017-03-15-preview folder.
Commit this change as `git commit -n “Initial commit”
Now make changes that are relevant for new api-version 2017-03-15-preview
Now commit the changes “Changes for new api version 2017-03-15-preview”
Push the changes to your fork (git push origin )
Send a PR

@anuchandy  - addressed the comment. Closing this PR, please refer to this one one: https://github.com/Azure/azure-rest-api-specs/pull/1791


Prevent post-navigation autoscrolling

When a service has a dependency issue, where the dependency isn't running, hitting "fix" brings the user to the dependency's page, but scrolls to the bottom instead of just showing the user the "start" button. The user then has to scroll back to the top of the page to actually fix the dependency issue.

This is not unique to the example above. Angular appears to be autoscrolling for all navigation if the previous page was scrolled down.


JumpToStep

Is there any known bug on JumpToStep? It makes my Arduino Leonardo freeze. Up() and Down() work fine.

I never encountered that bug, and I have no setup to test right now.
The JumpToStep method is simple.
while (CurrentStep != step)
		{
			if (CurrentStep > step)
			{
				Down(false);
			}
			else
			{
				Up(false);
			}
		}

The only reason this is could be locking is if Up() or Down() are not doing what they're supposed to. Does it lock every time, or only if you JumpToStep(X9_STEPS)?

Found it! There was a bug, on Down(): the CurrentStep couldn't reach 0, so the while loop on JumpToStep() never exited.
Pull the latest update (1d17580dabe4c42f06bde6aa68e96d68e9a3c96e) and it's fixed.
Thank you for your feedback.


Issue3 integrate tubular common

Coverage decreased (-1.9%) to 94.426% when pulling 87f274e5bdfbbc6e82c33e91b3929450f73d099b on Issue3-IntegrateTubularCommon into a2ba3a4644e8266f87248664151a871db1b689ac on master.


Fix MVC packages being broken on CoreCLR

Mvc is currently broken on CoreCLR because it is
inheriting dependencies from Microsoft.AspNet.Mvc.Common but the resulting
dependency to Microsoft.AspNet.Mvc.Common is then erased at pack time.
This change moves the dependencies down and makes the shared package
only depend on System.Runtime.

#2507
/cc @rynowak

:shipit:

:watch:


Question 5-# of delinquent tax parcels

The instructions for this problem lists this:
Use function: 'sum()'
Use variable: 'amtdelinqt'
I used this code:
sum(downtown$amtdelinqt)
[1] 5045969
When I look at the actual column under that variable it shows 9 parcels that are delinquent and they do not add up to that dollar amount either.

Thank you

Of course! @danafuller

Sorry to open this back up, but it still isn't working out for me.  This is what I am seeing as the output.  I can't figure out a way to sum it without getting the above results that I already posted about.
downtown$amtdelinqt
[1]       0.00       0.00       0.00
[4]       0.00       0.00       0.00
[7]       0.00       0.00       0.00
[10]       0.00   15106.84       0.00
[13]       0.00       0.00       0.00
[16]       0.00       0.00     838.70

@jacobtnyoung I am not sure if the above would notify you since it was closed unless I tagged you, so I am trying that.

Hi @danafuller. You might post a screen shot. It looks like you have might have changed the downtown data object. Try typing this:
rm( list = ls() ) # to clear the workspace

#load the libraries.
library( geojsonio )
library( sp )
library( rgdal )

#load the data.
URL <- "https://raw.githubusercontent.com/DS4PS/Data-Science-Class/master/DATA/downtown-syr.geojson"
downtown <- geojson_read( URL, what="sp" )

# now show the variable:
downtown$amtdelinqt

This should print out the variable amtdelinqt for each row of the data file.

I did all of the above and it yielded the same result.  I just attached 3 screenshots because it just continued sequentially until a section labeled 388.  Does this make sense?

Hi @danafuller! I see. It is printing out correctly. It just cuts it to three columns in the print out because of how large the text is.
What it is printing is a vector. it just displays that way.
But, I am still not sure what your question is. Perhaps you could clarify. (sorry!)

No problem!  I think the question is asking the number of delinquent tax parcels.  So I am assuming there is code that sums it up like sum(), but that is not adding the number of parcels.  I can count them manually, but I don't think that is what you are looking for?

@danafuller you can use sum(), like this: sum(downtown$amtdelinqt) but that returns the sum of the amounts.
If you want a count, you need to specify a condition. Something like: sum(downtown$amtdelinqt != 0)

!= This operator is really throwing me off.  Sorry and thanks!

Hi @danafuller. You might want to review the operators from the readings for this week. The != operation says "not equal to". So sum( downtown$amtdelinqt != 0 ) says to sum the values of downtown$amtdelinqt for cases in which it is not equal to zero. Make sense?


Issue when processing space-separated data

System information

OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Linux Ubuntu 16.04
Modin installed from (source or binary): pip3 install modin
Modin version: 0.2.5
Python version: 3.5.2
Exact command to reproduce: df = pd.read_csv(filename, header=None, delim_whitespace=True)

Describe the problem

I have a space-separated data file.
Using pandas, I can separate the values:
Processing file: data/data_1_1_36598.csv
                  0                     1                 2   3           4           5    6           7
0           0.169881  <IP_ADDRESS>:36598  <IP_ADDRESS>:80  32  0xdb0d77fb  0xdb0d44fb   10<PHONE_NUMBER>

But when using modin, the values are not separated into different columns:
Processing file: data/data_1_1_36598.csv
                                                         0
0        0.169881371 <IP_ADDRESS>:36598 <IP_ADDRESS>...

Source code / logs

HI @DavyCao thanks for posting this. I am able to reproduce this with the values you provided.
It works for some datasets, but not others. This is an interesting one, I will get it fixed. Thanks again for finding this!

@DavyCao I just commited the fix for this in #314. If you'd like to try it right now, you install via the github (docs on how to do that here)


Http2ConnectionHandler channelWritabilityChanged & other H2 related questions

Hi,
Recently I've been trying to use Http2 implementation in Netty and came across a few issues/questions.
What I'm trying to do
Using Http2 I'd like to send DATA frames without using any of the Http1. Basically I would like to establish a single stream and send DATA frames back and forth.
channelWritabilityChangedSignal
As I tried to change the returned DATA frame size I quickly arrived at OutOfMemory error, due to slow reader/ window size combination. I followed the advice to listen to channelWritabilityChanged signal, but it doesn't work as expected in the current Http2ConnectionHandler implementation.
Expected behavior
channelWritabilityChanged is fired when underlying stream and the channel are writable
Actual behavior
channelWritabilityChanged is fired when underlying channel is writable, but it does not mean the stream is writable, because internally DefaultHttp2ConnectionEncoder buffers and only sends as much data as the current flow controller allows.
The code below generates the following output:
listening on <IP_ADDRESS>:8080
Stream writability changed 3 true
Stream writability changed 3 false
Channel writability changed false
Channel writability changed true
Stream writability changed 3 true
Stream writability changed 3 false
Stream writability changed 3 true
Stream writability changed 3 false
Stream writability changed 3 true

which indicates that although Channel is always writable, stream might not be.
Steps to reproduce
Once established, send DATA frames faster than client can process and/or window settings allow.
Minimal yet complete reproducer code (or URL to code)
Server
package io.netty.example.http2.writability;

import io.netty.bootstrap.ServerBootstrap;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.PooledByteBufAllocator;
import io.netty.channel.*;
import io.netty.channel.epoll.EpollEventLoopGroup;
import io.netty.channel.epoll.EpollServerSocketChannel;
import io.netty.channel.socket.SocketChannel;
import io.netty.handler.codec.http2.*;

import java.util.Queue;
import java.util.concurrent.ConcurrentLinkedQueue;

public final class ServerMain {
    private static class ConnectionHandler extends Http2ConnectionHandler implements Http2FrameListener {

        private Queue<Integer> pendingWrites = new ConcurrentLinkedQueue<>();

        protected ConnectionHandler(Http2ConnectionDecoder decoder, Http2ConnectionEncoder encoder, Http2Settings initialSettings) {
            super(decoder, encoder, initialSettings);
            encoder.flowController().listener(new Http2RemoteFlowController.Listener() {
                @Override
                public void writabilityChanged(Http2Stream stream) {
                    System.out.println("Stream writability changed " + stream.id() + " " + encoder.flowController().isWritable(stream));
                }
            });
        }

        @Override
        public void channelWritabilityChanged(ChannelHandlerContext ctx) throws Exception {
            System.out.println("Channel writability changed " + ctx.channel().isWritable());
            writeIfPoissible(ctx);
            super.channelWritabilityChanged(ctx);
        }

        @Override
        public int onDataRead(ChannelHandlerContext ctx, int streamId, ByteBuf data, int padding, boolean endOfStream) throws Http2Exception {
            pendingWrites.add(streamId);
            writeIfPoissible(ctx);
            return data.readableBytes() + padding;
        }

        private void writeIfPoissible(ChannelHandlerContext ctx) {
            while (!pendingWrites.isEmpty() && ctx.channel().isWritable()) {
                int streamId = pendingWrites.poll();
                ByteBuf response = ctx.alloc().directBuffer(100_000_000);
                response.writerIndex(response.capacity());
                encoder().writeData(ctx, streamId, response, 0, false, ctx.voidPromise());
            }
            flush(ctx);
        }

        @Override
        public void onHeadersRead(ChannelHandlerContext channelHandlerContext, int i, Http2Headers http2Headers, int i1, boolean b) throws Http2Exception {

        }

        @Override
        public void onHeadersRead(ChannelHandlerContext channelHandlerContext, int i, Http2Headers http2Headers, int i1, short i2, boolean b, int i3, boolean b1) throws Http2Exception {

        }

        @Override
        public void onPriorityRead(ChannelHandlerContext channelHandlerContext, int i, int i1, short i2, boolean b) throws Http2Exception {

        }

        @Override
        public void onRstStreamRead(ChannelHandlerContext channelHandlerContext, int i, long l) throws Http2Exception {

        }

        @Override
        public void onSettingsAckRead(ChannelHandlerContext channelHandlerContext) throws Http2Exception {

        }

        @Override
        public void onSettingsRead(ChannelHandlerContext channelHandlerContext, Http2Settings http2Settings) throws Http2Exception {

        }

        @Override
        public void onPingRead(ChannelHandlerContext channelHandlerContext, long l) throws Http2Exception {

        }

        @Override
        public void onPingAckRead(ChannelHandlerContext channelHandlerContext, long l) throws Http2Exception {

        }

        @Override
        public void onPushPromiseRead(ChannelHandlerContext channelHandlerContext, int i, int i1, Http2Headers http2Headers, int i2) throws Http2Exception {

        }

        @Override
        public void onGoAwayRead(ChannelHandlerContext channelHandlerContext, int i, long l, ByteBuf byteBuf) throws Http2Exception {

        }

        @Override
        public void onWindowUpdateRead(ChannelHandlerContext channelHandlerContext, int i, int i1) throws Http2Exception {

        }

        @Override
        public void onUnknownFrame(ChannelHandlerContext channelHandlerContext, byte b, int i, Http2Flags http2Flags, ByteBuf byteBuf) throws Http2Exception {

        }
    }
    private static class ConnectionBuilder extends AbstractHttp2ConnectionHandlerBuilder<ConnectionHandler, ConnectionBuilder> {

        @Override
        public ConnectionHandler build() {
            return super.build();
        }

        @Override
        protected ConnectionHandler build(Http2ConnectionDecoder decoder, Http2ConnectionEncoder encoder, Http2Settings initialSettings) throws Exception {
            ConnectionHandler handler = new ConnectionHandler(decoder, encoder, initialSettings);
            frameListener(handler);
            return handler;
        }
    }

    public static void main(String[] args) throws Exception {
        EventLoopGroup loopGroup = new EpollEventLoopGroup();
        try {
            ServerBootstrap b = new ServerBootstrap()
                    .group(loopGroup)
                    .channel(EpollServerSocketChannel.class)
                    .childHandler(new ChannelInitializer<SocketChannel>() {
                        @Override
                        protected void initChannel(SocketChannel ch) throws Exception {
                            ch.pipeline().addLast(new ConnectionBuilder().build());
                        }
                    })
                    .childOption(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT);

            Channel ch = b.bind("<IP_ADDRESS>", 8080).sync().channel();
            System.out.println("listening on <IP_ADDRESS>:8080");
            ch.closeFuture().sync();
        } finally {
            loopGroup.shutdownGracefully();
        }
    }
}

Client
package io.netty.example.http2.writability;

import io.netty.bootstrap.Bootstrap;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.PooledByteBufAllocator;
import io.netty.channel.*;
import io.netty.channel.epoll.EpollEventLoopGroup;
import io.netty.channel.epoll.EpollSocketChannel;
import io.netty.channel.socket.SocketChannel;
import io.netty.handler.codec.http2.*;
import io.netty.util.ReferenceCountUtil;
import io.netty.util.Version;

import java.lang.reflect.Field;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;

import static io.netty.handler.codec.http.HttpResponseStatus.OK;

public class ClientMain {

    public static void main(String[] args) throws InterruptedException, TimeoutException, ExecutionException {
        Version.main(args);
        EventLoopGroup eventLoop = new EpollEventLoopGroup();
        CompletableFuture<Void> connectionFuture = new CompletableFuture<Void>();
        Channel channel = new Bootstrap()
                .group(eventLoop)
                .channel(EpollSocketChannel.class)
                .option(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT)
                .handler(new ChannelInitializer<SocketChannel>() {
                    @Override
                    protected void initChannel(SocketChannel ch) throws Exception {
                        ch.pipeline()
                                .addLast(new Http2ConnectionHandlerBuilder()
                                        .frameListener(new Http2FrameListener() {
                                            @Override
                                            public int onDataRead(ChannelHandlerContext ctx, int streamId, ByteBuf data, int padding, boolean endOfStream) throws Http2Exception {
                                                return data.readableBytes() + padding;
                                            }
                                            @Override
                                            public void onHeadersRead(ChannelHandlerContext ctx, int streamId, Http2Headers headers, int padding, boolean endOfStream) throws Http2Exception {
                                            }
                                            @Override
                                            public void onHeadersRead(ChannelHandlerContext ctx, int streamId, Http2Headers headers, int streamDependency, short weight, boolean exclusive, int padding, boolean endOfStream) throws Http2Exception {
                                            }
                                            @Override
                                            public void onPriorityRead(ChannelHandlerContext ctx, int streamId, int streamDependency, short weight, boolean exclusive) throws Http2Exception {
                                            }
                                            @Override
                                            public void onRstStreamRead(ChannelHandlerContext ctx, int streamId, long errorCode) throws Http2Exception {
                                            }
                                            @Override
                                            public void onSettingsAckRead(ChannelHandlerContext ctx) throws Http2Exception {
                                            }
                                            @Override
                                            public void onSettingsRead(ChannelHandlerContext ctx, Http2Settings settings) throws Http2Exception {
                                            }
                                            @Override
                                            public void onPingRead(ChannelHandlerContext ctx, long data) throws Http2Exception {
                                            }
                                            @Override
                                            public void onPingAckRead(ChannelHandlerContext ctx, long data) throws Http2Exception {
                                            }
                                            @Override
                                            public void onPushPromiseRead(ChannelHandlerContext ctx, int streamId, int promisedStreamId, Http2Headers headers, int padding) throws Http2Exception {
                                            }
                                            @Override
                                            public void onGoAwayRead(ChannelHandlerContext ctx, int lastStreamId, long errorCode, ByteBuf debugData) throws Http2Exception {
                                            }
                                            @Override
                                            public void onWindowUpdateRead(ChannelHandlerContext ctx, int streamId, int windowSizeIncrement) throws Http2Exception {
                                            }
                                            @Override
                                            public void onUnknownFrame(ChannelHandlerContext ctx, byte frameType, int streamId, Http2Flags flags, ByteBuf payload) throws Http2Exception {
                                            }
                                        })
                                        .server(false)
                                        .build())
                                .addLast(new ChannelInboundHandlerAdapter() {
                                    @Override
                                    public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
                                        // TODO: tests are using INSTANCE but it is not public, should we use onSettings instead?
                                        Field field = Http2ConnectionPrefaceAndSettingsFrameWrittenEvent.class.getDeclaredField("INSTANCE");
                                        field.setAccessible(true);
                                        if (evt == field.get(null)) {
                                            ctx.pipeline().remove(this);
                                            connectionFuture.complete(null);
                                        }
                                    }});
                    }
                })
                .connect("<IP_ADDRESS>", 8080)
                .sync()
                .channel();
        connectionFuture.get(5, TimeUnit.SECONDS);
        System.out.println("connected");
        Http2ConnectionHandler handler = channel.pipeline().get(Http2ConnectionHandler.class);

        final int streamId = 3;
        // send headers first to establish the stream
        Http2Headers headers = new DefaultHttp2Headers().status(OK.codeAsText());
        headers.add(HttpConversionUtil.ExtensionHeaderNames.STREAM_ID.text(), String.valueOf(streamId));
        ChannelFuture headersFuture = handler.encoder().writeHeaders(channel.pipeline().firstContext(), streamId, headers, 0, false, channel.voidPromise());
        handler.flush(channel.pipeline().firstContext());
        headersFuture.await(5, TimeUnit.SECONDS);
        System.out.println("sent headers");

        channel.eventLoop().scheduleAtFixedRate(() -> {
            final ByteBuf byteBuf = channel.pipeline().firstContext().alloc().directBuffer(1);
            byteBuf.writerIndex(byteBuf.capacity());
            boolean needToRelease = true;
            try {
                handler.encoder().writeData(channel.pipeline().firstContext(), streamId, byteBuf, 0, false, channel.voidPromise());
                handler.flush(channel.pipeline().firstContext());
                System.out.println("Sent client message");
                needToRelease = false;
            } catch (Exception e) {
                System.err.println("An exception occurred." + e.toString());
            } finally {
                // Netty calls release for write requests automatically, we do it here in case of an Exception
                if (needToRelease) {
                    ReferenceCountUtil.release(byteBuf);
                }
            }
        }, 0, 500, TimeUnit.MILLISECONDS);
    }
}

I tried to pack everything in a single class, hopefully it's still readable.
Preface not being sent, unless I force it.
As you can see from the Client code above I have a TODO because it's not clear how should we know that we sent preface and received server setting. Another workaround I have actually been using is to send Http2Settings.defaultSettings() and wait for ack. I can see in wireshark that client sends MAGIC frame with preface, and settings twice:

default settings together with MAGIC frame
settings I wrote

I dug the code a little bit and it looks like it should do that. I found that https://github.com/netty/netty/blob/643d521d5e21bcfd9d5e1bc3c3a642ecbddb5596/codec-http2/src/main/java/io/netty/handler/codec/http2/Http2ConnectionHandler.java#L888-L893 line, and it's either the comment is wrong or it's a bug.
Expected behavior
preface string is send once the Http2 channel becomes active
Actual behavior
preface isn't being sent
I think ideally I should have created a new issue, but the code will be identical to the one here.
Am I doing it correctly?
While working with Http2 implementation it feels so alien to the rest of Netty, including the book on Netty, and it begs the question - am I using it correctly?
For example, usually one has Handlers, and is able to process data in a pipeline like fashion, whereas here we have FrameListener interface and the Http2ConnectionHandler, so the only way to move data from the FrameListener along the pipeline is to ctx.fireChannelRead(data.retain());, is it correct?
In order to write data, we usually call ctx.write whereas here we have separate encoder.writeData, do we need to flush?
Again, usually if I override channelWritabilityChanged signal I don't have to call super version, if I don't want signal to be propagated along the pipeline, although the code https://github.com/netty/netty/blob/643d521d5e21bcfd9d5e1bc3c3a642ecbddb5596/codec-http2/src/main/java/io/netty/handler/codec/http2/Http2ConnectionHandler.java#L422-L434 here seems to be doing more than just event propagation, so do I have to call the super version? Do I call it first, or after my business logic?
Netty version
for the sake of the test I pulled the latest github version
4.1.37.Final-SNAPSHOT

JVM version (e.g. java -version)
openjdk version "11.0.3" 2019-04-16
OpenJDK Runtime Environment (build 11.0.3+7-Ubuntu-1ubuntu218.04.1)
OpenJDK 64-Bit Server VM (build 11.0.3+7-Ubuntu-1ubuntu218.04.1, mixed mode, sharing)

OS version (e.g. uname -a)
Ubuntu 18.04
kernel 4.15.0-51-generic

@carl-mastrangelo @ejona86 can you have a look ?

Hello,
Any updates on that? I'd imagine pretty much everybody who's generating a modest load should be affected by the same issue


Update Version

Comment:
Want to update this to the latest version of the library? See https://github.com/gazpachoking/jsonref/issues/53

Yes, I'd very much appreciate a current release in conda.  I just discovered JSONRef and am loving it. I'm currently releasing conda packages of my tool, and apparently can't bundle pip dependencies up with a conda package, although conda allows specifying pip deps in an environment.yaml file...

@gazpachoking - I'm also looking to get jsonref updated on conda-forge as it is a dependency of https://github.com/conda-forge/mappyfile-feedstock/
I also am not familiar with conda forge updates.. The maintainers are listed as @chapmanb and @marcelotrevisani
As I understand it if the current pull requests are closed - https://github.com/conda-forge/jsonref-feedstock/pulls then a bot will open a new one with for jsonref 1.1 and once that is merged it should be available in conda-forge.
If granted access to this repo I can attempt this myself, but I think that would require a maintainer to add me.

agreed - would be great if this was up-to-date on conda


Delete unnecessary files

@goaaats these files seem to do nothing and weren't referenced anywhere. hence, i deleted them. it's best to keep repository clean and tidy.


How to get current user for web API request ?

From @Awd60 on September 6, 2017 17:32
How to get current user for web API request ?
this example does not work
var claims = ((ClaimsIdentity)User.Identity).Claims;
Copied from original issue: aspnet/Identity#1416

From @Awd60 on September 7, 2017 8:28
We are using AAD to register App for WebAPI.  (Active Directory Authentication)

How are you authenticating to the webapi?

And how are you getting the AAD token? What are you doing with it after? How are you sending it with each request to the api endpoint?

From @Awd60 on September 13, 2017 9:19
We are using standard Azure authentication.

Application itself does not handle authentication and rely for Azure .

From @Awd60 on September 13, 2017 9:29
Issue was closed by my mistake

Azure App Services "Easy Auth" is currently not supported with ASP.NET Core, but we are investigating what it would take to make it work. We'll update this issue when we have news.

Closing because there is no further action on this issue. We don't have any new info from the Easy Auth experts.


Make it possible to create a pack that is visible at creation

Another thing I need for solderhelper to work without hacks before the api is done.
It keeps the current functionality where packs are created as hidden by the user, but you can send an additional parameter to the body and the pack will become visible.

Does this also work if hiddenis missing from the input soesn't have the field?

It checks for a truthy value, so it should

LGTM :shipit:

Whoop whoop, only one pr left and I can stop using a site scrapper to interact with solder !


🐛 Torch stays on after closing the camera

What's happening?
Hi,
I use the torch while taking pictures but the torch still stays on when closing the camera.
It worked fine with version 3.6.7 but the bug is active since then.

I didn't try (⚠ your issue might get ignored & closed if you don't try this)
Additional information

[ ] I am using Expo
[ ] I have enabled Frame Processors (react-native-worklets-core)
[X] I have read the Troubleshooting Guide
[X] I agree to follow this project's Code of Conduct
[X] I searched for similar issues in this repository and found none.

I need the logs.
I cannot help you without logs.
You need to grab the adb logcat logs


az login fails: json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

This is autogenerated. Please review and update as needed.
Describe the bug
Command Name
az login
Errors:
The command failed with an unexpected error. Here is the traceback:
Expecting value: line 1 column 1 (char 0)
Traceback (most recent call last):
  File "/anaconda/envs/azureml_py38/lib/python3.8/site-packages/requests/models.py", line 971, in json
    return complexjson.loads(self.text, **kwargs)
  File "/anaconda/envs/azureml_py38/lib/python3.8/json/__init__.py", line 357, in loads
    return _default_decoder.decode(s)
  File "/anaconda/envs/azureml_py38/lib/python3.8/json/decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/anaconda/envs/azureml_py38/lib/python3.8/json/decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/anaconda/envs/azureml_py38/lib/python3.8/site-packages/knack/cli.py", line 233, in invoke
    cmd_result = self.invocation.execute(args)
  File "/anaconda/envs/azureml_py38/lib/python3.8/site-packages/azure/cli/core/commands/__init__.py", line 663, in execute
    raise ex
  File "/anaconda/envs/azureml_py38/lib/python3.8/site-packages/azure/cli/core/commands/__init__.py", line 726, in _run_jobs_serially
    results.append(self._run_job(expanded_arg, cmd_copy))
  File "/anaconda/envs/azureml_py38/lib/python3.8/site-packages/azure/cli/core/commands/__init__.py", line 697, in _run_job
    result = cmd_copy(params)
  File "/anaconda/envs/azureml_py38/lib/python3.8/site-packages/azure/cli/core/commands/__init__.py", line 333, in __call__
    return self.handler(*args, **kwargs)
  File "/anaconda/envs/azureml_py38/lib/python3.8/site-packages/azure/cli/core/commands/command_operation.py", line 121, in handler
    return op(**command_args)
  File "/anaconda/envs/azureml_py38/lib/python3.8/site-packages/azure/cli/command_modules/profile/custom.py", line 122, in login
    return profile.login_with_managed_identity(username, allow_no_subscriptions)
  File "/anaconda/envs/azureml_py38/lib/python3.8/site-packages/azure/cli/core/_profile.py", line 234, in login_with_managed_identity
    msi_creds = MSIAuthenticationWrapper(resource=resource)
  File "/anaconda/envs/azureml_py38/lib/python3.8/site-packages/msrestazure/azure_active_directory.py", line 592, in __init__
    self.set_token()
  File "/anaconda/envs/azureml_py38/lib/python3.8/site-packages/azure/cli/core/auth/adal_authentication.py", line 75, in set_token
    super().set_token()
  File "/anaconda/envs/azureml_py38/lib/python3.8/site-packages/msrestazure/azure_active_directory.py", line 596, in set_token
    self.scheme, _, self.token = get_msi_token_webapp(self.resource, self.msi_conf)
  File "/anaconda/envs/azureml_py38/lib/python3.8/site-packages/msrestazure/azure_active_directory.py", line 548, in get_msi_token_webapp
    token_entry = result.json()
  File "/anaconda/envs/azureml_py38/lib/python3.8/site-packages/requests/models.py", line 975, in json
    raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

To Reproduce:
Steps to reproduce the behavior. Note that argument values have been redacted, as they may contain sensitive information.

az account clear as recommended in issue 20853 here
az login --identity

Expected Behavior
Environment Summary
Linux-5.15.0-1017-azure-x86_64-with-glibc2.10, Ubuntu 20.04.4 LTS
Python 3.8.5
Installer: PIP

azure-cli 2.40.0

Extensions:
ml 2.7.1

Dependencies:
msal 1.18.0b1
azure-mgmt-resource 21.1.0b1

Additional Context

@jiasli for awareness

https://github.com/Azure/azure-cli/issues/20853 is caused by MSAL cache, but this issue seems to be caused by managed identity endpoint returning empty result.

Taking extra steps to login to AML compute first (prompted when opened notebook) allowed me to login.


Fix go mod tidy after go.mod file update

Missed doing a proper go mod tidy after the change of go.mod the commit https://github.com/ppc64le-cloud/kubetest2-plugins/commit/4cd2dbdd052e930fdfb47042fb831965711185f2
This fails all the jobs that use kubetest2-tf.
@mkumatag

/lgtm
/approve


"ethereum_labels" tabel should foreign key into "ethereum_addresses.address", not "ethereum_addresses.id"

Current schema is highly inconvenient at write time as well as at query time.
We ran into issues where some crawlers (etherscan, coinmarketcap) were explicitly setting ethereum_addresses.id when they wrote data into database. This breaks autoincrementing keys in Postgres. See this stackexchange post for more details: https://dba.stackexchange.com/a/243455

https://github.com/bugout-dev/moonstream/issues/230 invalidates this issue.
The reason we are thinking to make a UUID primary key for addresses is that we want to have some flexibility in handling the same address being active on different Ethereum-based networks (e.g. Ethereum mainnet, Ethereum Ropsten, Matic, Binance Smart Chain, etc.).


ETCM-790 [content] Deploying Smart Contracts with Truffle [DOCS] add screenshots

Looks good to me!


Diagnose CLI should load appsignal.py if present

To provide a complete picture in the diagnose report, the diagnose CLI should load the __appsignal__.py config file. Without it, we have an incomplete configuration and can't properly diagnose it with all the information.
To do

[ ] Load the __appsignal__.py file in the diagnose CLI when it's found and make sure it's config is part of the diagnose report.

This might also be useful for the demo CLI.


Fix esi on noncached pages and when Content type is application/json

This branch disables ESI processing on non cached pages (ttl = 0) and responses with Content-Type application/json.
This also fixes an issue with session messages disappearing on non cached pages. (eg account/login)
If you enter the wrong password on account/login the message you don't get any message due to this line. It removes all messages from the session and when madecache/varnish/messages tries to render the message block there is nothing left.

A bunch of changes have been made to the varnish stuff lately, i would suggest merging master into your fork andto see if the problem persists. Regarding ESI, the syntax 0x2 allows for escaped ESI attributes


React Swiper is broken inside Popup

Framework7 version: 3.2
React.js version: 16.4
Platform and Target: all
https://jsfiddle.net/0kauo6rf/

Describe the bug
Swiper works in main view but is broken inside Popup
To Reproduce

Go to https://jsfiddle.net/0kauo6rf/
Try the swiper in the main view. Should be working
Click on "Popup with swiper" button to launch Popup with Swiper.
Try the swiper in the Popup. Is NOT working.

Expected behavior
Swiper inside of Popup should work.
Actual Behavior
Swiper inside of Popup is broken.

This is how Swiper works - it must be initialized when it is visible. Otherwise call its update() method on popup open or enable its observer and observeParents properites

Thanks, the observer + observeParents strategy works. That should be done automatically in the React component or at least given a prop and highlighted in the documentation for React.


Update references to type objects

Fixes #905.
(Also fixes a cross-link, which I believe should be to the typeof operator rather than anonymous object creation expressions...)
cc @KalleOlaviNiemitalo
We may need to do a little more - or less - in expressions.md, given that the previous paragraph does talk about "type object" - although it has System.Type earlier in the paragraph.

("Type object" would also be valid, based on §C.5 Library Type Abbreviations.)

Yup, that's what I had at one point - but I wanted to be consistent with surrounding paragraphs which use System.Type quite a bit. We could update them all at some point, but arguably System.Type helps to be unambiguous (in a way that Int32 doesn't need help with).


Multiple servers in one config

I would like to have support for multiple servers in a single project. The first 'directory' in the tree could simply be the server identifier (maybe a 'name' or 'label' option in the config).
The config could be transferred to an array to support this.
[{
    "protocol": "sftp",
    "host": "server.com"
},{
    "protocol": "sftp",
    "host": "my.domain.net"
}]

would be a great feature!

see https://github.com/mgrenier/remote-ftp/issues/122

see https://github.com/mgrenier/remote-ftp/issues/44

See #469


Selu: Now supports scalars

This PR allows Selu to now support scalars (since dl.where is now fixed)

This change is

Nice. once small comment

Review status: 0 of 2 files reviewed at latest revision, 1 unresolved discussion, some commit checks failed.

src/math/unary_ops_test.ts, line 1492 at r1 (raw file):

      let expected;
      if (aValue > 0) {

Since aValue is hard-coded to 1, no need for this if statement. Actually, might be good to add another unit test that tests with aValue < 0 (basically break up this if statement in two unit tests)

Comments from Reviewable

 Thanks for synching multiple times and for your understanding as we got through these big changes.

Review status: 0 of 2 files reviewed at latest revision, 1 unresolved discussion.

Comments from Reviewable


ObjectProperty missing the subobjects property

See documentation, this was added in https://github.com/elastic/elasticsearch/pull/86166 for 8.3

Closing in favor of https://github.com/elastic/elasticsearch-specification/issues/1714


pip installing requirements file leads to error

Hello guys,
I tried pip installing the requirements file, but I'm getting an error because the specified version of bazel seems to not exist:
(base) pwengert@Peters-Macbook-Pro AI-Bind-main % pip install -r requirements.txt
...
ERROR: Could not find a version that satisfies the requirement bazel==<IP_ADDRESS>00723 (from versions: none)
ERROR: No matching distribution found for bazel==<IP_ADDRESS>00723
Do you know where I could get this file?
Best,
Peter

Hi Peter,
The packages for which there's no matching distribution available, you can skip installing most of them (e.g., bazel, dataclasses, mkl-fft etc.). AI-Bind should run fine without them. However, some of them are required for development purposes.
You do need tensorflow-gpu==1.12.0. Check the CUDA and other requirements here: https://www.tensorflow.org/install/pip. I have also summarized the CUDA and GPU setting I used in the README file.
Thanks,
Ayan

Hi Peter,
Can you try the attached requirements file?
Thanks,
Ayan
requirements.txt

This new requirements file worked!
Thank you so much!


Rethink taskflow exception raising and reporting

This is something I didn't really think of before when taskflow was a separate component. We raise an exception every time a taskflow fails, whether it is an unexpected crash or an completely expected situation, like the checksum validation failing for a landing zone.
Because of this, error logs and sentry get flooded by benign "exceptions" which are really completely ok situations. Sure, the landing zone still needs to go into FAILED state and the user notified, but these are not software failures to be logged as errors.
TBD: Best way to handle this? Simply ignoring the exceptions in Sentry is the obvious first step, but we might also reconsider when to raise these zone failures as errors and when not. And how to make that distinction.
Comments are welcome, I will think of approaches myself.

One thing to add: we should also rethink the internal process where we always raise FlowSubmitException from the API instead of the actual exception type.
I've already had to come up with a workaround for detecting the exception type to avoid a lot of yak shaving, see #1847.


merge fork into upstream

the developments from our fork need to be merged into upstream for v1.0
this ticket is BLOCKED until all the other tickets for this version have been closed

has been merged into c4dt-main upstream which is sufficient to close this ticket


BSOD Error

Sometimes whenever i disconnect Controller 1 it goes BSOD.

REALLY OFFTOPIC, but i thought your name was another one of those scams lmao
El dom., 26 mar. 2023 15:36, TaxEvasionCommiter @.***>
escribió:

Sometimes whenever i disconnect Controller 1 it goes BSOD.
—
Reply to this email directly, view it on GitHub
https://github.com/FlavioFS/ParsecSoda/issues/84, or unsubscribe
https://github.com/notifications/unsubscribe-auth/APCTFE5OHNM5H6CVE2IBVH3W6CEB5ANCNFSM6AAAAAAWIKYFHU
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


[CLI]: Opaque "The wandb backend process has shutdown" after several hours

Describe the bug
I can't provide a reproduction because it happens intermittently after several hours of training.
Here's the stack-trace:
contrastive_train-contrastive_train-1  |                           Exception in thread NetStatThr:
contrastive_train-contrastive_train-1  | Traceback (most recent call last):
contrastive_train-contrastive_train-1  |   File "/root/micromamba/envs/video-rec/lib/python3.8/threading.py", line 932, in _bootstrap_inner
contrastive_train-contrastive_train-1  |     self.run()
contrastive_train-contrastive_train-1  |   File "/root/micromamba/envs/video-rec/lib/python3.8/threading.py", line 870, in run
contrastive_train-contrastive_train-1  |     self._target(*self._args, **self._kwargs)
contrastive_train-contrastive_train-1  |   File "/root/micromamba/envs/video-rec/lib/python3.8/site-packages/wandb/sdk/wandb_run.py", line 152, in check_network_status
contrastive_train-contrastive_train-1  |     status_response = self._interface.communicate_network_status()
contrastive_train-contrastive_train-1  |   File "/root/micromamba/envs/video-rec/lib/python3.8/site-packages/wandb/sdk/interface/interface.py", line 138, in communicate_network_status
contrastive_train-contrastive_train-1  |     resp = self._communicate_network_status(status)
contrastive_train-contrastive_train-1  |   File "/root/micromamba/envs/video-rec/lib/python3.8/site-packages/wandb/sdk/interface/interface_shared.py", line 405, in _communicate_network_status
contrastive_train-contrastive_train-1  |     resp = self._communicate(req, local=True)
contrastive_train-contrastive_train-1  |   File "/root/micromamba/envs/video-rec/lib/python3.8/site-packages/wandb/sdk/interface/interface_shared.py", line 226, in _communicate
contrastive_train-contrastive_train-1  |     return self._communicate_async(rec, local=local).get(timeout=timeout)
contrastive_train-contrastive_train-1  |   File "/root/micromamba/envs/video-rec/lib/python3.8/site-packages/wandb/sdk/interface/interface_shared.py", line 231, in _communicate_async
contrastive_train-contrastive_train-1  |     raise Exception("The wandb backend process has shutdown")
contrastive_train-contrastive_train-1  | Exception: The wandb backend process has shutdown
contrastive_train-contrastive_train-1  | Exception in thread ChkStopThr:
contrastive_train-contrastive_train-1  | Traceback (most recent call last):
contrastive_train-contrastive_train-1  |   File "/root/micromamba/envs/video-rec/lib/python3.8/threading.py", line 932, in _bootstrap_inner
contrastive_train-contrastive_train-1  |     self.run()
contrastive_train-contrastive_train-1  |   File "/root/micromamba/envs/video-rec/lib/python3.8/threading.py", line 870, in run
contrastive_train-contrastive_train-1  |     self._target(*self._args, **self._kwargs)
contrastive_train-contrastive_train-1  |   File "/root/micromamba/envs/video-rec/lib/python3.8/site-packages/wandb/sdk/wandb_run.py", line 170, in check_status
contrastive_train-contrastive_train-1  |     status_response = self._interface.communicate_stop_status()
contrastive_train-contrastive_train-1  |   File "/root/micromamba/envs/video-rec/lib/python3.8/site-packages/wandb/sdk/interface/interface.py", line 127, in communicate_stop_status
contrastive_train-contrastive_train-1  |     resp = self._communicate_stop_status(status)
contrastive_train-contrastive_train-1  |   File "/root/micromamba/envs/video-rec/lib/python3.8/site-packages/wandb/sdk/interface/interface_shared.py", line 395, in _communicate_stop_status
contrastive_train-contrastive_train-1  |     resp = self._communicate(req, local=True)
contrastive_train-contrastive_train-1  |   File "/root/micromamba/envs/video-rec/lib/python3.8/site-packages/wandb/sdk/interface/interface_shared.py", line 226, in _communicate
contrastive_train-contrastive_train-1  |     return self._communicate_async(rec, local=local).get(timeout=timeout)
contrastive_train-contrastive_train-1  |   File "/root/micromamba/envs/video-rec/lib/python3.8/site-packages/wandb/sdk/interface/interface_shared.py", line 231, in _communicate_async
contrastive_train-contrastive_train-1  |     raise Exception("The wandb backend process has shutdown")
contrastive_train-contrastive_train-1  | Exception: The wandb backend process has shutdown

Additional Files
No response
Environment
Collecting environment information...
PyTorch version: 1.12.0+cu116
Is debug build: False
CUDA used to build PyTorch: 11.6
ROCM used to build PyTorch: N/A
OS: Ubuntu 20.04.4 LTS (x86_64)
GCC version: (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0
Clang version: Could not collect
CMake version: Could not collect
Libc version: glibc-2.31
Python version: 3.8.13 (default, Mar 28 2022, 11:38:47)  [GCC 7.5.0] (64-bit runtime)
Python platform: Linux-4.15.0-193-generic-x86_64-with-glibc2.17
Is CUDA available: True
CUDA runtime version: 11.6.124
GPU models and configuration:
GPU 0: NVIDIA A100-PCIE-40GB
GPU 1: NVIDIA A100-PCIE-40GB

Nvidia driver version: 515.65.01
cuDNN version: Could not collect
HIP runtime version: N/A
MIOpen runtime version: N/A
Is XNNPACK available: True
Versions of relevant libraries:
[pip3] numpy==1.22.4
[pip3] pytorch-ranger==0.1.1
[pip3] torch==1.12.0+cu116
[pip3] torch-optimizer==0.1.0
[pip3] torchdata==0.4.0
[pip3] torchmetrics==0.7.3
[pip3] torchvision==0.13.1a0+bddbd7e
[conda] Could not collect
Pillow/Pillow-SIMD version: 7.0.0.post3
Postfix means using pillow-simd

My requirements.txt:
attrs==22.1.0
av==9.2.0
pyarrow==9.0.0
boto3==1.24.60
botocore==1.27.60
certifi==2<IP_ADDRESS>
charset-normalizer==2.1.0
click==8.1.3
coolname==1.1.0
docker-pycreds==0.4.0
docstring-parser==0.14.1
einops==0.4.1
einops-exts==0.0.3
fsspec==2022.7.1
gitdb==4.0.9
GitPython==3.1.27
idna==3.3
importlib-metadata==4.12.0
importlib-resources==5.9.0
jmespath==1.0.1
jsonschema==4.7.2
lmdb==1.3.0
mosaicml==0.9.0
numpy==1.22.4
packaging==21.3
pathtools==0.1.2
# We will install pillow-simd instead
# Pillow==9.2.0
portalocker==2.5.1
promise==2.3
protobuf==3.20.1
psutil==5.9.1
py-cpuinfo==8.0.0
pyDeprecate==0.3.2
pyparsing==3.0.9
pyrsistent==0.18.1
python-dateutil==2.8.2
pytimeparse==1.1.8
pytorch-ranger==0.1.1
PyYAML==6.0
repackage==0.7.3
requests==2.28.1
remote_pdb==2.1.0
ruamel.yaml==0.17.21
ruamel.yaml.clib==0.2.6
# crashes too much
# scalene==1.5.11
s3transfer==0.6.0
sentry-sdk==1.9.5
setproctitle==1.3.2
shortuuid==1.0.9
six==1.16.0
smmap==5.0.0
tabulate==0.8.9
transformers==4.21.2
timm==0.6.7
torch==1.12.0+cu116
torch-optimizer==0.1.0
torchdata==0.4.0
torchmetrics==0.7.3
# Need to install this manually
# torchvision==0.13.1a0+bddbd7e
tqdm==4.64.0
typer==0.6.1
typing_extensions==4.3.0
urllib3==1.26.11
wandb==0.12.21
yahp==0.1.3
zipp==3.8.1

pytest==7.1.3

Additional Context
No response

Hi @vedantroy, could you try requiring the latest wandb version which is 0.13.3? In versions > 0.13.0 we introduced a new method of handling the backend processes which increases the reliability and may solve this for you.
Thank you,
Nate

Hi @vedantroy, could you try requiring the latest wandb version which is 0.13.3? In versions > 0.13.0 we introduced a new method of handling the backend processes which increases the reliability and may solve this for you.
Thank you, Nate

Will try, and let you know the results.


Create CRDs for Network Instance Set

Create CRDs for Network instance Set
Refer to this document

Closing as obsolete, as we have moved to using composition of resources inside a package, and then using PackageVariant/PackageVariantSet resources to actuate the distribution across cluster topologies.
See also https://docs.google.com/document/d/1wtA5BJnn1GGq-yWa7FUAOrCJuyQqifB3f4ky-IePIzo/edit#heading=h.atc9ypf4hfox


Write a GO program to find area of a cube

Description
Write a GO program to find area of a cube
Area of cube = 6 × Side^2
Side : 2

Area : 24

How to contribute

Save the solution in program/find_area_of_a_cube.go file
Add find_area_of_a_cube.go file in find-area-of-a-cube folder

!assign


License?

Just curious, am I glancing over the license statement? Is it missing, or does is this project not intended to be open sourced?

Not open sourced for now. Yet. :(

OSS would be awesome !


Redirect to home page if url provided is empty

Flask crashes if url is empty so a check added to prevent this situation

What exactly crashes? Can you demonstrate the appropriate payload to cause a crash?

Click on "Shorten link" without providing a url

Correct. Are you sure your code fixes the issue?

In this specific situation, code expected that URL would be correct. So when it tries to generate a unique URL it concatenates 'str' and 'int' ('Invalid URL' and 400). With this patch, the simplest solution is provided, checking if one of these two exist before proceeding with the link generation

Added proper json response that covers API issue.

This works indeed but it seems too hacky. I will try to come up with something so we can avoid a code refactor after this merge.. :-)

The issue has been resolved with commit 0e64e761a63e4acd1f2507e29352f0e00e1240bc in a more sophisticated way. Thanks for submitting this Pull Request as well as this bug!


Updates on the code release?

Hi,
I'd be interested in having a look at the code... Is there an updated timeframe for its release?
Thanks :)

Almost done! Just wrapping up some README stuff and should publish in the next couple days

thanks for the update :) Looking forward to it!


CORGI-374: Fix (some of our) daily errors

@RedHatProductSecurity/corgi-devs Initial PR which fixes timeouts for Errata Tool tasks, and maybe fixes IntegrityErrors when creating ComponentNodes.
I'm not sure if the second part will really fix the issue, so split this off here for review + discussion. I'll have another PR after lunch with more fixes for other errors.

Ah, nice, I was looking at that exact get_or_create on cnodes as part of CORGI-348. I guess this PR addresses that issue as well then.

Oops. I just saw that error in today's email and finally had a revelation about the cause - didn't realize we had a separate ticket. I think this should fix it, but not 100% sure. Maybe we can leave that ticket open a few more days and see if the IntegrityError keeps happening.
Thanks for reviewing! I'll review your PR as soon as I get back from lunch.


unsupport Content-Type: application/x-www-form-urlencoded ?

only support json with http post ?

only support json with http post ?

I'm sorry, I don't understand the question. I think you're asking about an error you saw when hand-writing a request. Twirp only supports POST, and the Content-Type header must be either application/protobuf or application/json (https://twitchtv.github.io/twirp/docs/spec_v5.html#requests)


Timestamp always starts with 1969

Hi my json time values starts from 1996, But the timeline always starts with 1969. How could I remove the unwanted timestamp?

Can you post an example (possibly a reduced version of your data) that does this?


modules: Add Sound Open Firmware module

Add the Sound Open Firmware project as a Zephyr module under
modules/audio/sof.
Signed-off-by: Andy Ross<EMAIL_ADDRESS>

Agreed, but dont we need to remove the unused CONFIG_SMP here ? SOF used to use this but now uses the Zephyr CONFIG_MULTICORE which should be n atm.

Zephyr does not have CONFIG_MULTICORE, we do have CONFIG_SMP

Agreed, but dont we need to remove the unused CONFIG_SMP here ? SOF used to use this but now uses the Zephyr CONFIG_MULTICORE which should be n atm.

Zephyr does not have CONFIG_MULTICORE, we do have CONFIG_SMP

Agreed, but dont we need to remove the unused CONFIG_SMP here ? SOF used to use this but now uses the Zephyr CONFIG_MULTICORE which should be n atm.

Zephyr does not have CONFIG_MULTICORE, we do have CONFIG_SMP

ok - it looks like we made that change in error as SOF also used CONFIG_SMP in the past. This can be reverted for SOF v1.7. @lyakh fyi - need to realign with Zephyr here (I've no recollection why we made this change now).

Agreed, but dont we need to remove the unused CONFIG_SMP here ? SOF used to use this but now uses the Zephyr CONFIG_MULTICORE which should be n atm.

Zephyr does not have CONFIG_MULTICORE, we do have CONFIG_SMP

ok - it looks like we made that change in error as SOF also used CONFIG_SMP in the past. This can be reverted for SOF v1.7. @lyakh fyi - need to realign with Zephyr here (I've no recollection why we made this change now).

Agreed, but dont we need to remove the unused CONFIG_SMP here ? SOF used to use this but now uses the Zephyr CONFIG_MULTICORE which should be n atm.

Zephyr does not have CONFIG_MULTICORE, we do have CONFIG_SMP

ok - it looks like we made that change in error as SOF also used CONFIG_SMP in the past. This can be reverted for SOF v1.7. @lyakh fyi - need to realign with Zephyr here (I've no recollection why we made this change now).

@lgirdwood @nashif ok, but we cannot add an SMP config to SOF as long as we have to support both native and Zephyr building, right? Same for MP_NUM_CPUS which is equivalent to our CORE_COUNT or MAX_CORE_COUNT. We could rename MULTICORE to SOF_SMP and do something like
config SOF_SMP
    default SMP if ZEPHYR

if that's even possible. But in general until we completely switch over to Zephyr we need that duplication?

Agreed, but dont we need to remove the unused CONFIG_SMP here ? SOF used to use this but now uses the Zephyr CONFIG_MULTICORE which should be n atm.

Zephyr does not have CONFIG_MULTICORE, we do have CONFIG_SMP

ok - it looks like we made that change in error as SOF also used CONFIG_SMP in the past. This can be reverted for SOF v1.7. @lyakh fyi - need to realign with Zephyr here (I've no recollection why we made this change now).

@lgirdwood @nashif ok, but we cannot add an SMP config to SOF as long as we have to support both native and Zephyr building, right? Same for MP_NUM_CPUS which is equivalent to our CORE_COUNT or MAX_CORE_COUNT. We could rename MULTICORE to SOF_SMP and do something like
config SOF_SMP
    default SMP if ZEPHYR

if that's even possible. But in general until we completely switch over to Zephyr we need that duplication?

Agreed, but dont we need to remove the unused CONFIG_SMP here ? SOF used to use this but now uses the Zephyr CONFIG_MULTICORE which should be n atm.

Zephyr does not have CONFIG_MULTICORE, we do have CONFIG_SMP

ok - it looks like we made that change in error as SOF also used CONFIG_SMP in the past. This can be reverted for SOF v1.7. @lyakh fyi - need to realign with Zephyr here (I've no recollection why we made this change now).

@lgirdwood @nashif ok, but we cannot add an SMP config to SOF as long as we have to support both native and Zephyr building, right? Same for MP_NUM_CPUS which is equivalent to our CORE_COUNT or MAX_CORE_COUNT. We could rename MULTICORE to SOF_SMP and do something like
config SOF_SMP
    default SMP if ZEPHYR

if that's even possible. But in general until we completely switch over to Zephyr we need that duplication?

The PR is good to go.  SOF needs to chnage back to CONFIG_SMP and this must be set to n until @andyross is happy with the SMP support on Intel xtensa DSP.

Agreed, but dont we need to remove the unused CONFIG_SMP here ? SOF used to use this but now uses the Zephyr CONFIG_MULTICORE which should be n atm.

Zephyr does not have CONFIG_MULTICORE, we do have CONFIG_SMP

ok - it looks like we made that change in error as SOF also used CONFIG_SMP in the past. This can be reverted for SOF v1.7. @lyakh fyi - need to realign with Zephyr here (I've no recollection why we made this change now).

@lgirdwood @nashif ok, but we cannot add an SMP config to SOF as long as we have to support both native and Zephyr building, right? Same for MP_NUM_CPUS which is equivalent to our CORE_COUNT or MAX_CORE_COUNT. We could rename MULTICORE to SOF_SMP and do something like
config SOF_SMP
    default SMP if ZEPHYR

if that's even possible. But in general until we completely switch over to Zephyr we need that duplication?

The PR is good to go.  SOF needs to chnage back to CONFIG_SMP and this must be set to n until @andyross is happy with the SMP support on Intel xtensa DSP.


Update livereload version from @0.8.0 @0.8.1

Please, update livereload dependency from @0.8.0 to @0.8.1 to fix security alert from github.
main problem was in ws dependency, which is used by livereload, but livereload already fix this issue in @0.8.1, if you update thi dependency version it will fix this problem auto.
Thx!

I will keep 0.8.0 until proper confirmation that v0.8.1 works and is safe.
https://github.com/thgh/rollup-plugin-livereload/pull/25


Slider within ng-repeat to generate images not working

In this case, the slider shows a grey background.

You have div's under your ul. Try putting the ng-repeat in the li instead, and get rid of the div between the ul and the li, because that might be confusing for the script.

Very good! Thaks! :D


add vscodeWithConfiguration, vscodeExts2nix, vscodeEnv

move mktplcExtRefToFetchArgs to file in order to be shared with the new derivations(privately)

Motivation for this change
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[ X ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ X ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ X ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ X ] Fits CONTRIBUTING.md.

Notify maintainers
cc @jonringer @zimbatm
fix based on @zimbatm comments in https://github.com/NixOS/nixpkgs/pull/76427

Just a rough look so far but this looks like a vscode-with-extensions but just with mutable directories so that extensions can work without "heavy" patching instead of a vscodeWithConfiguration (which refers to the configuration file settings.json at first glance to me).

@eadwu I might not completely understand your comment(feel free to correct me) but in general:
vscode with extension installs the extensions in nix store, sometimes the extensions needs mutate files in the extension folder. base on the nix philosophy you don't want directories in the nix store to be altered. but you want to have to ability declaratively declare extensions that wont change or alter too. the problem here that vscode have in general 1 target extensions folder so in order to get the best of the both worlds(and to be able to use vscodeExts2nix which will get you the extensions that were chosen from vscode interface into a nix expression) you need to have an extensions folder that vscode could install new/update extensions into it.

outdated look at PR https://github.com/NixOS/nixpkgs/pull/76427