503NR/BlackHole during istiod rollouts

Bug description
We are in the process of restarting all workloads one by one to move them to a 1.6 sidecar, following a control plane update.  All applications are identical in terms of their istio, deployment and pod config, just running different image.
We noticed that when one app was patched, the 1.5 pods shutting down started getting 503NR (No route to host) to all services it talks to.   These metrics were recorded from reporter=source, so the source proxy (the 1.5 proxy on the terminating pods).

We have 3 istiod instances, here are the logs from each:
{"level":"info","time":"2020-10-20T18:38:58.573853Z","scope":"ads","msg":"XDS:EDSInc Pushing:2020-10-20T18:11:26Z/248 Services:map[admin.private-advert-service.svc.cluster.local:{}] ConnectedEndpoints:133"}
{"level":"info","time":"2020-10-20T18:38:58.703232Z","scope":"ads","msg":"XDS:EDSInc Pushing:2020-10-20T18:11:26Z/248 Services:map[admin.private-advert-service.svc.cluster.local:{} admin.private-online-ads-admin.svc.cluster.local:{}] ConnectedEndpoints:133"}
{"level":"info","time":"2020-10-20T18:39:07.261877Z","scope":"ads","msg":"ADS:CDS: REQ sidecar~<IP_ADDRESS>~private-advert-service-6cdd8b76cc-rcvr5.private-advert-service~private-advert-service.svc.cluster.local-458 version:"}
{"level":"info","time":"2020-10-20T18:39:07.262842Z","scope":"ads","msg":"CDS: PUSH for node:private-advert-service-6cdd8b76cc-rcvr5.private-advert-service clusters:30 services:825 version:2020-10-20T18:11:26Z/248"}
{"level":"info","time":"2020-10-20T18:39:07.449983Z","scope":"ads","msg":"ADS:CDS: REQ sidecar~<IP_ADDRESS>~private-advert-service-679b6f7c74-qcqcl.private-advert-service~private-advert-service.svc.cluster.local-459 version:"}
{"level":"info","time":"2020-10-20T18:39:07.451000Z","scope":"ads","msg":"CDS: PUSH for node:private-advert-service-679b6f7c74-qcqcl.private-advert-service clusters:30 services:825 version:2020-10-20T18:11:26Z/248"}
{"level":"info","time":"2020-10-20T18:39:07.592162Z","scope":"ads","msg":"EDS: PUSH for node:private-advert-service-6cdd8b76cc-rcvr5.private-advert-service clusters:6 endpoints:19 empty:0"}
{"level":"warn","time":"2020-10-20T18:39:07.592193Z","scope":"ads","msg":"ADS:CDS: ACK ERROR sidecar~<IP_ADDRESS>~private-advert-service-6cdd8b76cc-rcvr5.private-advert-service~private-advert-service.svc.cluster.local-458 Internal:Error adding/updating cluster(s) outbound|53||kube-dns.kube-system.svc.cluster.local: Invalid path: /etc/certs/root-cert.pem, outbound|80||app.vehicle-metric-service.svc.cluster.local: Invalid path: /etc/certs/root-cert.pem, outbound|80||app.private-advert-service.svc.cluster.local: Invalid path: /etc/certs/root-cert.pem, outbound|80||app.stripe-payment-proxy.svc.cluster.local: Invalid path: /etc/certs/root-cert.pem, outbound|9080||admin.private-advert-service.svc.cluster.local: Invalid path: /etc/certs/root-cert.pem, outbound|9080||admin.abtest-allocator.svc.cluster.local: Invalid path: /etc/certs/root-cert.pem, outbound|80||app.abtest-allocator.svc.cluster.local: Invalid path: /etc/certs/root-cert.pem, outbound|9080||admin.stripe-payment-proxy.svc.cluster.local: Invalid path: /etc/certs/root-cert.pem, outbound|9080||admin.search-one-read.svc.cluster.local: Invalid path: /etc/certs/root-cert.pem, outbound|80||app.search-one-read.svc.cluster.local: Invalid path: /etc/certs/root-cert.pem, outbound|9080||admin.stock-management-api.svc.cluster.local: Invalid path: /etc/certs/root-cert.pem, outbound|80||app.stock-management-api.svc.cluster.local: Invalid path: /etc/certs/root-cert.pem, outbound|80||app.security-service.svc.cluster.local: Invalid path: /etc/certs/root-cert.pem, outbound|9080||admin.customer-performance-service.svc.cluster.local: Invalid path: /etc/certs/root-cert.pem, outbound|80||app.customer-performance-service.svc.cluster.local: Invalid path: /etc/certs/root-cert.pem, outbound|9080||admin.unified-registration-system.svc.cluster.local: Invalid path: /etc/certs/root-cert.pem, outbound|80||app.unified-registration-system.svc.cluster.local: Invalid path: /etc/certs/root-cert.pem, outbound|80||app.vehicle-data-service.svc.cluster.local: Invalid path: /etc/certs/root-cert.pem, outbound|9080||admin.vehicle-data-service.svc.cluster.local: Invalid path: /etc/certs/root-cert.pem"}
{"level":"info","time":"2020-10-20T18:39:07.594882Z","scope":"ads","msg":"LDS: PUSH for node:private-advert-service-6cdd8b76cc-rcvr5.private-advert-service listeners:13"}
{"level":"info","time":"2020-10-20T18:39:07.620491Z","scope":"ads","msg":"RDS: PUSH for node:private-advert-service-6cdd8b76cc-rcvr5.private-advert-service routes:5"}
{"level":"warn","time":"2020-10-20T18:39:07.620526Z","scope":"ads","msg":"ADS:LDS: ACK ERROR sidecar~<IP_ADDRESS>~private-advert-service-6cdd8b76cc-rcvr5.private-advert-service~private-advert-service.svc.cluster.local-458 Internal:Error adding/updating listener(s) <IP_ADDRESS>_8088: Invalid path: /etc/certs/root-cert.pem\n<IP_ADDRESS>_9080: Invalid path: /etc/certs/root-cert.pem\nvirtualInbound: Invalid path: /etc/certs/root-cert.pem\n"}
{"level":"info","time":"2020-10-20T18:39:08.601774Z","scope":"ads","msg":"EDS: PUSH for node:private-advert-service-679b6f7c74-qcqcl.private-advert-service clusters:25 endpoints:59 empty:0"}
{"level":"info","time":"2020-10-20T18:39:08.811433Z","scope":"ads","msg":"LDS: PUSH for node:private-advert-service-679b6f7c74-qcqcl.private-advert-service listeners:13"}
{"level":"info","time":"2020-10-20T18:39:08.866546Z","scope":"ads","msg":"RDS: PUSH for node:private-advert-service-679b6f7c74-qcqcl.private-advert-service routes:5"}
{"level":"info","time":"2020-10-20T18:39:53.961439Z","scope":"ads","msg":"XDS:EDSInc Pushing:2020-10-20T18:11:26Z/248 Services:map[admin.private-advert-service.svc.cluster.local:{} app.private-advert-service.svc.cluster.local:{}] ConnectedEndpoints:136"}
{"level":"info","time":"2020-10-20T18:40:03.044181Z","scope":"ads","msg":"XDS:EDSInc Pushing:2020-10-20T18:11:26Z/248 Services:map[admin.private-advert-service.svc.cluster.local:{} app.private-advert-service.svc.cluster.local:{}] ConnectedEndpoints:136"}
{"level":"info","time":"2020-10-20T18:40:04.616757Z","scope":"ads","msg":"XDS:EDSInc Pushing:2020-10-20T18:11:26Z/248 Services:map[admin.private-advert-service.svc.cluster.local:{} app.private-advert-service.svc.cluster.local:{}] ConnectedEndpoints:136"}
{"level":"info","time":"2020-10-20T18:40:14.989001Z","scope":"ads","msg":"XDS:EDSInc Pushing:2020-10-20T18:11:26Z/248 Services:map[admin.private-advert-service.svc.cluster.local:{}] ConnectedEndpoints:137"}
{"level":"info","time":"2020-10-20T18:40:27.046541Z","scope":"ads","msg":"ADS: \"<IP_ADDRESS>:46170\" sidecar~<IP_ADDRESS>~private-advert-service-6cdd8b76cc-rcvr5.private-advert-service~private-advert-service.svc.cluster.local-458 terminated rpc error: code = Canceled desc = context canceled"}
{"level":"info","time":"2020-10-20T18:40:27.711068Z","scope":"ads","msg":"XDS:EDSInc Pushing:2020-10-20T18:11:26Z/248 Services:map[admin.private-advert-service.svc.cluster.local:{}] ConnectedEndpoints:137"}
{"level":"info","time":"2020-10-20T18:40:28.759121Z","scope":"ads","msg":"XDS:EDSInc Pushing:2020-10-20T18:11:26Z/248 Services:map[admin.private-advert-service.svc.cluster.local:{}] ConnectedEndpoints:137"}
{"level":"info","time":"2020-10-20T18:40:31.504353Z","scope":"ads","msg":"XDS:EDSInc Pushing:2020-10-20T18:11:26Z/248 Services:map[admin.private-advert-service.svc.cluster.local:{} app.private-advert-service.svc.cluster.local:{}] ConnectedEndpoints:137"}
{"level":"info","time":"2020-10-20T18:40:34.994675Z","scope":"ads","msg":"XDS:EDSInc Pushing:2020-10-20T18:11:26Z/248 Services:map[admin.private-advert-service.svc.cluster.local:{}] ConnectedEndpoints:137"}
{"level":"info","time":"2020-10-20T18:40:56.833502Z","scope":"ads","msg":"XDS:EDSInc Pushing:2020-10-20T18:11:26Z/248 Services:map[admin.private-advert-service.svc.cluster.local:{}] ConnectedEndpoints:137"}
{"level":"info","time":"2020-10-20T18:40:57.879189Z","scope":"ads","msg":"XDS:EDSInc Pushing:2020-10-20T18:11:26Z/248 Services:map[admin.private-advert-service.svc.cluster.local:{}] ConnectedEndpoints:137"}

{"level":"info","time":"2020-10-20T18:38:58.574420Z","scope":"ads","msg":"XDS:EDSInc Pushing:2020-10-20T18:11:26Z/249 Services:map[admin.private-advert-service.svc.cluster.local:{}] ConnectedEndpoints:146"}
{"level":"info","time":"2020-10-20T18:38:58.703023Z","scope":"ads","msg":"XDS:EDSInc Pushing:2020-10-20T18:11:26Z/249 Services:map[admin.private-advert-service.svc.cluster.local:{} admin.private-online-ads-admin.svc.cluster.local:{}] ConnectedEndpoints:146"}
{"level":"info","time":"2020-10-20T18:39:04.983477Z","scope":"ads","msg":"ADS:CDS: REQ sidecar~<IP_ADDRESS>~private-advert-service-679b6f7c74-cc57n.private-advert-service~private-advert-service.svc.cluster.local-460 version:"}
{"level":"info","time":"2020-10-20T18:39:04.984612Z","scope":"ads","msg":"CDS: PUSH for node:private-advert-service-679b6f7c74-cc57n.private-advert-service clusters:30 services:825 version:2020-10-20T18:11:26Z/249"}
{"level":"info","time":"2020-10-20T18:39:06.151788Z","scope":"ads","msg":"EDS: PUSH for node:private-advert-service-679b6f7c74-cc57n.private-advert-service clusters:25 endpoints:59 empty:0"}
{"level":"info","time":"2020-10-20T18:39:06.354340Z","scope":"ads","msg":"LDS: PUSH for node:private-advert-service-679b6f7c74-cc57n.private-advert-service listeners:13"}
{"level":"info","time":"2020-10-20T18:39:06.412639Z","scope":"ads","msg":"RDS: PUSH for node:private-advert-service-679b6f7c74-cc57n.private-advert-service routes:5"}
{"level":"info","time":"2020-10-20T18:39:24.148017Z","scope":"ads","msg":"ADS:CDS: REQ sidecar~<IP_ADDRESS>~private-advert-service-6cdd8b76cc-6424j.private-advert-service~private-advert-service.svc.cluster.local-461 version:"}
{"level":"info","time":"2020-10-20T18:39:24.149259Z","scope":"ads","msg":"CDS: PUSH for node:private-advert-service-6cdd8b76cc-6424j.private-advert-service clusters:30 services:825 version:2020-10-20T18:11:26Z/249"}
{"level":"info","time":"2020-10-20T18:39:24.465521Z","scope":"ads","msg":"EDS: PUSH for node:private-advert-service-6cdd8b76cc-6424j.private-advert-service clusters:6 endpoints:19 empty:0"}
{"level":"warn","time":"2020-10-20T18:39:24.465567Z","scope":"ads","msg":"ADS:CDS: ACK ERROR sidecar~<IP_ADDRESS>~private-advert-service-6cdd8b76cc-6424j.private-advert-service~private-advert-service.svc.cluster.local-461 Internal:Error adding/updating cluster(s) outbound|53||kube-dns.kube-system.svc.cluster.local: Invalid path: /etc/certs/root-cert.pem, outbound|80||app.vehicle-metric-service.svc.cluster.local: Invalid path: /etc/certs/root-cert.pem, outbound|80||app.private-advert-service.svc.cluster.local: Invalid path: /etc/certs/root-cert.pem, outbound|80||app.stripe-payment-proxy.svc.cluster.local: Invalid path: /etc/certs/root-cert.pem, outbound|9080||admin.private-advert-service.svc.cluster.local: Invalid path: /etc/certs/root-cert.pem, outbound|9080||admin.abtest-allocator.svc.cluster.local: Invalid path: /etc/certs/root-cert.pem, outbound|80||app.abtest-allocator.svc.cluster.local: Invalid path: /etc/certs/root-cert.pem, outbound|9080||admin.stripe-payment-proxy.svc.cluster.local: Invalid path: /etc/certs/root-cert.pem, outbound|9080||admin.search-one-read.svc.cluster.local: Invalid path: /etc/certs/root-cert.pem, outbound|80||app.search-one-read.svc.cluster.local: Invalid path: /etc/certs/root-cert.pem, outbound|9080||admin.stock-management-api.svc.cluster.local: Invalid path: /etc/certs/root-cert.pem, outbound|80||app.stock-management-api.svc.cluster.local: Invalid path: /etc/certs/root-cert.pem, outbound|80||app.security-service.svc.cluster.local: Invalid path: /etc/certs/root-cert.pem, outbound|9080||admin.customer-performance-service.svc.cluster.local: Invalid path: /etc/certs/root-cert.pem, outbound|80||app.customer-performance-service.svc.cluster.local: Invalid path: /etc/certs/root-cert.pem, outbound|9080||admin.unified-registration-system.svc.cluster.local: Invalid path: /etc/certs/root-cert.pem, outbound|80||app.unified-registration-system.svc.cluster.local: Invalid path: /etc/certs/root-cert.pem, outbound|80||app.vehicle-data-service.svc.cluster.local: Invalid path: /etc/certs/root-cert.pem, outbound|9080||admin.vehicle-data-service.svc.cluster.local: Invalid path: /etc/certs/root-cert.pem"}
{"level":"info","time":"2020-10-20T18:39:24.468403Z","scope":"ads","msg":"LDS: PUSH for node:private-advert-service-6cdd8b76cc-6424j.private-advert-service listeners:13"}
{"level":"info","time":"2020-10-20T18:39:24.493365Z","scope":"ads","msg":"RDS: PUSH for node:private-advert-service-6cdd8b76cc-6424j.private-advert-service routes:5"}
{"level":"warn","time":"2020-10-20T18:39:24.493415Z","scope":"ads","msg":"ADS:LDS: ACK ERROR sidecar~<IP_ADDRESS>~private-advert-service-6cdd8b76cc-6424j.private-advert-service~private-advert-service.svc.cluster.local-461 Internal:Error adding/updating listener(s) <IP_ADDRESS>_8088: Invalid path: /etc/certs/root-cert.pem\n<IP_ADDRESS>_9080: Invalid path: /etc/certs/root-cert.pem\nvirtualInbound: Invalid path: /etc/certs/root-cert.pem\n"}
{"level":"info","time":"2020-10-20T18:39:53.961199Z","scope":"ads","msg":"XDS:EDSInc Pushing:2020-10-20T18:11:26Z/249 Services:map[admin.private-advert-service.svc.cluster.local:{} app.private-advert-service.svc.cluster.local:{}] ConnectedEndpoints:147"}
{"level":"info","time":"2020-10-20T18:40:03.044364Z","scope":"ads","msg":"XDS:EDSInc Pushing:2020-10-20T18:11:26Z/249 Services:map[admin.private-advert-service.svc.cluster.local:{} app.private-advert-service.svc.cluster.local:{}] ConnectedEndpoints:147"}
{"level":"info","time":"2020-10-20T18:40:04.617457Z","scope":"ads","msg":"XDS:EDSInc Pushing:2020-10-20T18:11:26Z/249 Services:map[admin.private-advert-service.svc.cluster.local:{} app.private-advert-service.svc.cluster.local:{}] ConnectedEndpoints:147"}
{"level":"info","time":"2020-10-20T18:40:14.989028Z","scope":"ads","msg":"XDS:EDSInc Pushing:2020-10-20T18:11:26Z/249 Services:map[admin.private-advert-service.svc.cluster.local:{}] ConnectedEndpoints:147"}
{"level":"info","time":"2020-10-20T18:40:27.710887Z","scope":"ads","msg":"XDS:EDSInc Pushing:2020-10-20T18:11:26Z/249 Services:map[admin.private-advert-service.svc.cluster.local:{}] ConnectedEndpoints:147"}
{"level":"info","time":"2020-10-20T18:40:28.759122Z","scope":"ads","msg":"XDS:EDSInc Pushing:2020-10-20T18:11:26Z/249 Services:map[admin.private-advert-service.svc.cluster.local:{}] ConnectedEndpoints:147"}
{"level":"info","time":"2020-10-20T18:40:31.504097Z","scope":"ads","msg":"XDS:EDSInc Pushing:2020-10-20T18:11:26Z/249 Services:map[admin.private-advert-service.svc.cluster.local:{} app.private-advert-service.svc.cluster.local:{}] ConnectedEndpoints:147"}
{"level":"info","time":"2020-10-20T18:40:34.996649Z","scope":"ads","msg":"XDS:EDSInc Pushing:2020-10-20T18:11:26Z/249 Services:map[admin.private-advert-service.svc.cluster.local:{}] ConnectedEndpoints:147"}
{"level":"info","time":"2020-10-20T18:40:56.079555Z","scope":"ads","msg":"ADS: \"<IP_ADDRESS>:49238\" sidecar~<IP_ADDRESS>~private-advert-service-6cdd8b76cc-6424j.private-advert-service~private-advert-service.svc.cluster.local-461 terminated rpc error: code = Canceled desc = context canceled"}
{"level":"info","time":"2020-10-20T18:40:56.834310Z","scope":"ads","msg":"XDS:EDSInc Pushing:2020-10-20T18:11:26Z/249 Services:map[admin.private-advert-service.svc.cluster.local:{}] ConnectedEndpoints:147"}
{"level":"info","time":"2020-10-20T18:40:57.878854Z","scope":"ads","msg":"XDS:EDSInc Pushing:2020-10-20T18:11:26Z/249 Services:map[admin.private-advert-service.svc.cluster.local:{}] ConnectedEndpoints:147"}

{"level":"info","time":"2020-10-20T18:38:58.575231Z","scope":"ads","msg":"XDS:EDSInc Pushing:2020-10-20T18:11:26Z/248 Services:map[admin.private-advert-service.svc.cluster.local:{}] ConnectedEndpoints:182"}
{"level":"info","time":"2020-10-20T18:38:58.703383Z","scope":"ads","msg":"XDS:EDSInc Pushing:2020-10-20T18:11:26Z/248 Services:map[admin.private-advert-service.svc.cluster.local:{} admin.private-online-ads-admin.svc.cluster.local:{}] ConnectedEndpoints:182"}
{"level":"info","time":"2020-10-20T18:39:53.962827Z","scope":"ads","msg":"XDS:EDSInc Pushing:2020-10-20T18:11:26Z/248 Services:map[admin.private-advert-service.svc.cluster.local:{} app.private-advert-service.svc.cluster.local:{}] ConnectedEndpoints:182"}
{"level":"info","time":"2020-10-20T18:40:03.045637Z","scope":"ads","msg":"XDS:EDSInc Pushing:2020-10-20T18:11:26Z/248 Services:map[admin.private-advert-service.svc.cluster.local:{} app.private-advert-service.svc.cluster.local:{}] ConnectedEndpoints:182"}
{"level":"info","time":"2020-10-20T18:40:04.618209Z","scope":"ads","msg":"XDS:EDSInc Pushing:2020-10-20T18:11:26Z/248 Services:map[admin.private-advert-service.svc.cluster.local:{} app.private-advert-service.svc.cluster.local:{}] ConnectedEndpoints:182"}
{"level":"info","time":"2020-10-20T18:40:07.635733Z","scope":"ads","msg":"ADS: \"<IP_ADDRESS>:49616\" sidecar~<IP_ADDRESS>~private-advert-service-6cdd8b76cc-rcvr5.private-advert-service~private-advert-service.svc.cluster.local-82 terminated with stream closed"}
{"level":"warn","time":"2020-10-20T18:40:07.636222Z","scope":"ads","msg":"EDS: Send failure sidecar~<IP_ADDRESS>~private-advert-service-6cdd8b76cc-rcvr5.private-advert-service~private-advert-service.svc.cluster.local-82: rpc error: code = Unavailable desc = transport is closing"}
{"level":"info","time":"2020-10-20T18:40:14.990589Z","scope":"ads","msg":"XDS:EDSInc Pushing:2020-10-20T18:11:26Z/248 Services:map[admin.private-advert-service.svc.cluster.local:{}] ConnectedEndpoints:181"}
{"level":"info","time":"2020-10-20T18:40:24.507327Z","scope":"ads","msg":"ADS: \"<IP_ADDRESS>:45782\" sidecar~<IP_ADDRESS>~private-advert-service-6cdd8b76cc-6424j.private-advert-service~private-advert-service.svc.cluster.local-151 terminated with stream closed"}
{"level":"warn","time":"2020-10-20T18:40:24.507756Z","scope":"ads","msg":"EDS: Send failure sidecar~<IP_ADDRESS>~private-advert-service-6cdd8b76cc-6424j.private-advert-service~private-advert-service.svc.cluster.local-151: rpc error: code = Unavailable desc = transport is closing"}
{"level":"info","time":"2020-10-20T18:40:27.711878Z","scope":"ads","msg":"XDS:EDSInc Pushing:2020-10-20T18:11:26Z/248 Services:map[admin.private-advert-service.svc.cluster.local:{}] ConnectedEndpoints:179"}
{"level":"info","time":"2020-10-20T18:40:28.759746Z","scope":"ads","msg":"XDS:EDSInc Pushing:2020-10-20T18:11:26Z/248 Services:map[admin.private-advert-service.svc.cluster.local:{}] ConnectedEndpoints:179"}
{"level":"info","time":"2020-10-20T18:40:31.503729Z","scope":"ads","msg":"XDS:EDSInc Pushing:2020-10-20T18:11:26Z/248 Services:map[admin.private-advert-service.svc.cluster.local:{} app.private-advert-service.svc.cluster.local:{}] ConnectedEndpoints:179"}
{"level":"info","time":"2020-10-20T18:40:34.995838Z","scope":"ads","msg":"XDS:EDSInc Pushing:2020-10-20T18:11:26Z/248 Services:map[admin.private-advert-service.svc.cluster.local:{}] ConnectedEndpoints:179"}
{"level":"info","time":"2020-10-20T18:40:56.834051Z","scope":"ads","msg":"XDS:EDSInc Pushing:2020-10-20T18:11:26Z/248 Services:map[admin.private-advert-service.svc.cluster.local:{}] ConnectedEndpoints:179"}
{"level":"info","time":"2020-10-20T18:40:57.880219Z","scope":"ads","msg":"XDS:EDSInc Pushing:2020-10-20T18:11:26Z/248 Services:map[admin.private-advert-service.svc.cluster.local:{}] ConnectedEndpoints:179"}

There are two services pointing to the same pods:
❯ k -n private-advert-service get svc
NAME    TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
admin   ClusterIP   <IP_ADDRESS>   <none>        9080/TCP   616d
app     ClusterIP   <IP_ADDRESS>     <none>        80/TCP     2y53d

Unfortunately I don't have the proxy logs persisted.
I have been unable to reproduce this by going back and forth again, so it feels like a non-deterministic ordering or race condition of some sort.
[ ] Docs
[ ] Installation
[x] Networking
[ ] Performance and Scalability
[ ] Extensions and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
Expected behavior
No 503NR's during upgrade of data plane
Steps to reproduce the bug
Version (include the output of istioctl version --remote and kubectl version --short and helm version if you used Helm)
1.6.12
How was Istio installed?
Helm
Environment where bug was observed (cloud vendor, OS, etc)

It's worth noting that our process removes the old certificate after the workload has rolled out:
{"timestamp":"2020-10-20T18:38:56.074Z","level":"info","module":"istio-rollout-sidecars","message":"handling namespace private-advert-service"}
{"timestamp":"2020-10-20T18:38:56.139Z","level":"warn","module":"istio-rollout-sidecars","message":"workload requires updating","istioVersion":"eu.gcr.io/at-artefacts/istio/proxyv2:b0ac5af0d118960afc2be74e2fb5391a5de68de7","targetIstioVersion":"eu.gcr.io/at-artefacts/istio/proxyv2:a67042ea4018b0a0c417c0b28aaa9b62","namespace":"private-advert-service","name":"private-advert-service"}
{"timestamp":"2020-10-20T18:38:56.214Z","level":"info","module":"client","message":"rollout triggered","namespace":"private-advert-service","name":"private-advert-service","currentGeneration":339,"targetGeneration":340}
{"timestamp":"2020-10-20T18:38:56.226Z","level":"info","module":"client","message":"rollout complete","namespace":"private-advert-service","name":"private-advert-service","kind":"Deployment"}
{"timestamp":"2020-10-20T18:38:56.279Z","level":"info","module":"istio-rollout-sidecars","message":"deleting 1.5 secret","namespace":"private-advert-service","name":"istio.default"}

But perhaps there's a bit of a race condition because the old workload could still theoretically be terminating.  My understanding of kubernetes was that deleting a mounted certificate after the pod has started doesn't remove it - it'd only stop a new pod scheduling if the secret wasn't available to mount.

ahhhh!
{"timestamp":"2020-10-20T18:38:56.214Z","level":"info","module":"client","message":"rollout triggered","namespace":"private-advert-service","name":"private-advert-service","currentGeneration":339,"targetGeneration":340}
{"timestamp":"2020-10-20T18:38:56.226Z","level":"info","module":"client","message":"rollout complete","namespace":"private-advert-service","name":"private-advert-service","kind":"Deployment"}

Look at the time stamps, it looks like a bug in the script caused this deployment to not actually wait, thus deleting certs for an in-use workload.

@howardjohn could you please reopen this because we just saw it again going from 1.6.12 to 1.6.13, this time it wasn't caused by me so there's definitely something odd going on during istiod deployments.
Struggling to consistently reproduce at the moment however.

This just happened again much more significantly when we rolled istiod:

@howardjohn I've narrowed this down to PILOT_ENABLE_LEGACY_INBOUND_LISTENERS.  When adding or removing that flag, there's a moment where all the sidecars are broken.
The two events above were caused by the removal of PILOT_ENABLE_LEGACY_INBOUND_LISTENERS flowing through the environments now we're rolled out to 1.6
Whilst i'm not hugely concerned (as we won't be bringing that flag back) - It'd be great if someone could confirm the problem we're seeing is only caused by that flag, and can't manifest as a result of other code paths?

Definitely other situations causing this too, this was going from 1.6.13 -> 1.7.4:

I (not too surprisingly) was not able to reproduce this. Do you see this on any environment that we can play around in? Either direct access or we can set up a call perhaps

bringing slack conversation here:
Suspect there are possible multiple issues. focusing on UF,URX first. Observed on 1.6 <-> 1.7 rollback/forward.
Diff on config:
1719c1682
<           "@type": "type.googleapis.com/envoy.api.v2.auth.UpstreamTlsContext",
---
>           "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext",
1738,1739c1701
<               },
<               "initial_fetch_timeout": "0s"
---
>               }
1757,1758c1719
<               },
<               "initial_fetch_timeout": "0s"
---
>               }

Logs:
client disconnected, failure reason: TLS error: Secret is not supplied by SDS

I build a custom image with v2 TLS context and its zero downtime. So seems extremely likely due to ^. Looking into what the "proper" fix is

I can confirm @howardjohn fix for https://github.com/istio/istio/pull/28498 has fixed the majority of the rollout issues we experienced going from 1.6 to 1.7, however we are still seeing some (very small amount) of requests get "BlackHole" (we run REGISTRY_ONLY) as the control plane rolls out, as you can see here:

In this particular example, we have three instances of the source service:

ingress-nginx-external-controller-6b79d9f487-5fk6l (0 failed requests)
ingress-nginx-external-controller-6b79d9f487-mkmcs (2 failed requests)
ingress-nginx-external-controller-6b79d9f487-rn9xk (2 failed requests)

The service they are talking to that failed (zipkin) is being called from the pod itself (nginx) as nginx creates its own traces, and is configured with this DestiniationRule:
apiVersion: networking.istio.io/v1beta1
kind: DestinationRule
metadata:
  name: disable-mtls-to-zipkin
  namespace: istio-system
spec:
  host: zipkin.istio-system.svc.cluster.local
  trafficPolicy:
    tls:
      mode: DISABLE

I started looking at the istio-proxy logs to look for differences on ingress-nginx-external-controller-6b79d9f487-5fk6l (which had no errors).  The logs for the time frame are here:
istio.tar.gz
The main thing I noticed was that on the pods where we saw issues, I also see:
{"level":"error","time":"2020-11-04T14:28:34.620008Z","scope":"citadelclient","msg":"Failed to create certificate: rpc error: code = Unavailable desc = connection error: desc = \"transport: Error while dialing dial tcp <IP_ADDRESS>:15012: connect: connection refused\""}
{"level":"warn","time":"2020-11-04T14:28:34.671159Z","scope":"cache","msg":"resource:default request:2ae1c56d-527a-43f5-b503-da1b47e149b7 CSR failed with error: rpc error: code = Unavailable desc = connection error: desc = \"transport: Error while dialing dial tcp <IP_ADDRESS>:15012: connect: connection refused\", retry in 50 millisec"}
{"level":"error","time":"2020-11-04T14:28:34.671394Z","scope":"citadelclient","msg":"Failed to create certificate: rpc error: code = Unavailable desc = connection error: desc = \"transport: Error while dialing dial tcp <IP_ADDRESS>:15012: connect: connection refused\""}
{"level":"warn","time":"2020-11-04T14:28:34.771605Z","scope":"cache","msg":"resource:default request:2ae1c56d-527a-43f5-b503-da1b47e149b7 CSR failed with error: rpc error: code = Unavailable desc = connection error: desc = \"transport: Error while dialing dial tcp <IP_ADDRESS>:15012: connect: connection refused\", retry in 100 millisec"}
{"level":"error","time":"2020-11-04T14:28:34.771717Z","scope":"citadelclient","msg":"Failed to create certificate: rpc error: code = Unavailable desc = connection error: desc = \"transport: Error while dialing dial tcp <IP_ADDRESS>:15012: connect: connection refused\""}
{"level":"warn","time":"2020-11-04T14:28:34.971865Z","scope":"cache","msg":"resource:default request:2ae1c56d-527a-43f5-b503-da1b47e149b7 CSR failed with error: rpc error: code = Unavailable desc = connection error: desc = \"transport: Error while dialing dial tcp <IP_ADDRESS>:15012: connect: connection refused\", retry in 200 millisec"}
{"level":"error","time":"2020-11-04T14:28:34.971983Z","scope":"citadelclient","msg":"Failed to create certificate: rpc error: code = Unavailable desc = connection error: desc = \"transport: Error while dialing dial tcp <IP_ADDRESS>:15012: connect: connection refused\""}

Unfortunately as the failures are so few, and i'm unable to inconsistently reproduce them, it's quite hard to get any more debug infoo.

Also; istiod logs are filled with
{"level":"error","time":"2020-11-04T14:58:44.376120Z","msg":"error marshaling Any <nil>: proto: Marshal called with nil"}
{"level":"error","time":"2020-11-04T14:58:44.376252Z","msg":"error marshaling Any <nil>: proto: Marshal called with nil"}
{"level":"error","time":"2020-11-04T14:58:44.376524Z","msg":"error marshaling Any <nil>: proto: Marshal called with nil"}
{"level":"error","time":"2020-11-04T14:58:44.376553Z","msg":"error marshaling Any <nil>: proto: Marshal called with nil"}
{"level":"error","time":"2020-11-04T14:58:44.376609Z","msg":"error marshaling Any <nil>: proto: Marshal called with nil"}
{"level":"error","time":"2020-11-04T14:58:44.376622Z","msg":"error marshaling Any <nil>: proto: Marshal called with nil"}
{"level":"error","time":"2020-11-04T14:58:44.376629Z","msg":"error marshaling Any <nil>: proto: Marshal called with nil"}
{"level":"error","time":"2020-11-04T14:58:44.376637Z","msg":"error marshaling Any <nil>: proto: Marshal called with nil"}
{"level":"error","time":"2020-11-04T14:58:44.376649Z","msg":"error marshaling Any <nil>: proto: Marshal called with nil"}
{"level":"error","time":"2020-11-04T14:58:44.376667Z","msg":"error marshaling Any <nil>: proto: Marshal called with nil"}
{"level":"error","time":"2020-11-04T14:58:44.376687Z","msg":"error marshaling Any <nil>: proto: Marshal called with nil"}
{"level":"error","time":"2020-11-04T14:58:44.376808Z","msg":"error marshaling Any <nil>: proto: Marshal called with nil"}
{"level":"error","time":"2020-11-04T14:58:44.376978Z","msg":"error marshaling Any <nil>: proto: Marshal called with nil"}
{"level":"error","time":"2020-11-04T14:58:44.377106Z","msg":"error marshaling Any <nil>: proto: Marshal called with nil"}
{"level":"error","time":"2020-11-04T14:58:44.377185Z","msg":"error marshaling Any <nil>: proto: Marshal called with nil"}
{"level":"error","time":"2020-11-04T14:58:44.377203Z","msg":"error marshaling Any <nil>: proto: Marshal called with nil"}
{"level":"error","time":"2020-11-04T14:58:44.377222Z","msg":"error marshaling Any <nil>: proto: Marshal called with nil"}

For the logs about failed CSR, that should be unknown to envoy. From its perspective it just seeings that there is a 2s window where it request a secret and didn't get one. I could see that making envoy unhappy (it shouldn't, but seems a plausible bug), but if it was the cause I would expect 2s outage likely.

I've not been able to recreate the BlackHole/Zipkin one and have had 1.7 on a cluster for 24 hours with 400 different apps and about 300 deployments, and haven't seen any other errors.
I'm going to close this issue as sorted, for anyone coming to this the fix will be released in 1.7.5.


migrate wine-devel

https://github.com/caskroom/homebrew-cask/pull/31769

https://github.com/caskroom/homebrew-cask/pull/30079


delete check too eager?

Flow version: 0.109.0
Expected behavior
No error
Actual behaviour
Following code:
/* @flow */

const ob1 = { a: 1 };
const { ...ob2 } = ob1;
delete ob2.a;

Gives following error:
5: delete ob2.a;
          ^ Cannot delete `ob2.a` because undefined [1] is incompatible with number [2].
References:
5: delete ob2.a;
   ^ [1]
3: const ob1 = { a: 1 };
                    ^ [2]

repo:
https://flow.org/try/#0PQKgBAAgZgNg9gdzCYAoVBjOA7AzgFzDgCMBGMAXjAG8wBDALjHIF8BuTHAmsAOn5IAmMC0pEyHACYBTGNPzTxg3nTZA
In many many cases this is valid way of reducing the properties of an object that is then passed forward and causes unnecessary friction when the intention is clear. I saw multiple similar cases in our code base. It's of course debatable how Flow should work in this case.

The above can be worked around by this:
/* @flow */

const ob1 = { a: 1 };
const { a, ...ob2 } = ob1;

Which is essentially equal to above, but often times linter lints against this since a would be unused variable.

I don't think this is a bug, ob1 is actually inferred to {| a: number |}. When you spread that into ob2, it also retains the same type as ob1.
If in ob2 you plan to optionally have a then you can add refine the type as you spread like so
try-flow


nyxt: 3.11.6 -> 3.11.7

Description of changes

Changelog: https://nyxt-browser.com/article/release-3.11.7.org
Highlight

This pr may break some packages due to quri upgrade,  a widely used package.
quri cannot be updated in lisp module scope due to widely using. We also cannot update the one in nyxt simply. Because It is not only a dependency of nyxt, but also the ones in other nyxt deps, and all lispLibs are propagatedBuildInptus causing there are multilpe quri in the environment.
To use the correct quri, I make a new scope for nyxt.
The mesa on master is 24.0.7 which is different from the one on  my machine (24.0.6). So I haven't test the nyxt update.

Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Result of nixpkgs-review pr 316427 run on x86_64-linux 1

9 packages built:

nyxt
sbclPackages.history-tree
sbclPackages.nclasses
sbclPackages.nfiles
sbclPackages.njson
sbclPackages.nkeymaps
sbclPackages.nsymbols
sbclPackages.nyxt
sbclPackages.prompter

Wait, did quri upgrade actually break anything initially? (Looking at the upstream which seems to add a default-old-behaviour parameter for a corner case)

Hmm - here's a refactor idea. Maybe we should move nyxt out of packages.nix. It doesn't fit anymore - it was removed from quicklisp and is now being developed at a faster phase using tip of trunk libraries. But there's no buildLispApplication right now. browsers/nyxt/default.nix. It makes buildScript awkward (also in stumpwm).

Wait, did quri upgrade actually break anything initially?

Yes. If I override quri on the top scope and run nixpkgs-review, 240 packages need to rebuilding and  many of them are broken.

Hmm - here's a refactor idea. Maybe we should move nyxt out of packages.nix. It doesn't fit anymore - it was removed from quicklisp and is now being developed at a faster phase using tip of trunk libraries. But there's no buildLispApplication right now. It makes buildScript awkward (also in stumpwm).

I agree on a refactor. In fact most nyxt dependencies are different from the quicklisp ones. It is a good idea to move nyxt out of the lisp modules and package it in a seperate file.
However, there are some issues should be fixed. At first, I don't know why the building process finds the built files in submodules in the nix store path instead of the tmp build path. Another question on buildLispApplication.

I don't know why the building process finds the built files in submodules in the nix store path instead of the tmp build path

Situation: package P depends on D:
Normally D compiles itself first. Fasl and D.asd are written to store. P finds D.asd during build, loads its Fasl and compiles Itself as well. However if P depends on slashy subsystem D/sub, build of P will attempt to compile sources of D/sub and write into immutable store. This appears as if it's finding them there, but they don't exist yet. It's usually a path with -tmp suffix and the error is "permission denied". The reason is that ASDF looks for defsystem form of uncompiled D/sys in D.asd.
Though it could also happen with normal systems, because we're currently removing undeclared .asds after build instead of before...
It may be your situation. Maybe not - if you post build script I will help.

Normally D compiles itself first. Fasl and D.asd are written to store. P finds D.asd during build, loads its Fasl and compiles Itself as well. However if P depends on slashy subsystem D/sub, build of P will attempt to compile sources of D/sub and write into immutable store. This appears as if it's finding them there, but they don't exist yet. It's usually a path with -tmp suffix and the error is "permission denied". The reason is that ASDF looks for defsystem form of uncompiled D/sys in D.asd.

Thanks, let me try to find a way to avoid this.
I will try to build nyxt without dependencies in lisp modules in another pr in the future, so close this pr.
By the way, in the unstable branch, fset is broken which is one of the dependencies of nyxt.

here's a refactor idea. Maybe we should move nyxt out of packages.nix.

related: https://github.com/NixOS/nixpkgs/issues/302795 by one nyxt developer


Expose input mapper to players?

Hi, my first issue submission so apologies for any mistakes.  A feature suggestion.
Is there any way to expose the input map window to the players of the game, so they can see / customise the controls themselves?  Since Godot already has this feature as part of the editor, it would be nice to save developers a little effort and allow it to be used in games.  You could add additional functions to let devs reskin or modify the window to suit their game, but exposing it by default for all games would make those quick gamejam games just a bit more functional and friendly.
Anyways, I hope such a thing already exists, but if not, please consider this suggestion.  Thanks!

I think the editor interface is too powerful for anyone to use in-game. You can already do it with code using the InputMap singleton.

No, it's not a good idea. In most games the input map has an integrated design that fits the game style.
There no need to provide a default window by default, but someone could easily add such feature to the assetlib.

There no need to provide a default window by default

When searching for related issues, I came across another issue where someone was trying to automatically detect the keyboard layout and remap WASD to the equivalently located keys.  A commentor in that issue mentioned how it was annoying that many Godot games had hardcoded inputs and there needed to be an educational campaign to devs that not all keyboards are QWERTY.  So far in my personal experience, every Godot games I've tried has hardcoded inputs and do not provide any ingame information on what keys they use - I have to load it up in the editor and check the project settings.  The same goes for all of the Godot sample projects.
Rather than requiring every new game to reinvent the wheel (or to know of the existence of the tool in the assetlib) surely it would raise the quality of all Godot games instantly if at lease some level of input mapping was provided by default?  And allow game devs to customise to fit their game style if and when they want to do it?

The input are not required to be hardcoded, you already have the possibility to define a set of actions and their default mapping using the InputMap Singleton. You just have to create a custom window if you want to reassign the mapping in games.
In any case, I'm against providing this as a built-in thing. For me it's out of the scope of the engine as it is already simple enough to map inputs. And if someone needs a default window to map the inputs, I think to should be made available through the assetlib.

I don't think adding such a tool would solve the problem, because the game developer would have to call it from somewhere anyway. It would also have some defaults that most of the time won't suit the game style and have to be tweaked. Many won't bother adding it (even if the discover it exists).
We can improve the docs and maybe add a tutorial about how to make your own remap screen. But I don't think that providing a default tool will solve the issue.

You just have to create a custom window if you want to reassign the mapping in games.

I think the point was to avoid having to do this, avoid having to write more and more code when in some instances Godot's might work fine. If they wanted the input mapper to look or function differently than Godot's, then sure I understand, but...

I'd be up for this, personally. Not because of the same reason of so many inputs being hardcoded, but because it would be easy to drop in and use until a dev can get their own version of an input mapper up and running.

it would be easy to drop in and use until a dev can get their own version of an input mapper up and running.

Yes, that's the point of the assetlib. For me, this use case is very specific, used only for prototypes. As it is not required in most games, there's no strong need for it to be built-in. And as it can be easily done in the assetlib, that where, IMHO, it belongs.

We have a very short Splash screen tutorial. May be input mapping dialog tutorial can be added to it since remapping inputs in splash screen also makes sense for small games that you directly start game play after splash screen.

This feature is not difficult to self-code in gdscript and you only have to do one time. One of the best things about godot is that your script code is easily reusable. Code that input-mapping that you need one time and apply to all your games... easy. It´s better to do yourself than using other people scripts, if you code that, you know how it works, what it do and how adapt it to new kinds of input. And control is one of the most important things that a game have... you should not give that responsability to the unity asset store.

Engine input mapper is too big for common games, and won't fit game aesthetics with a theme that won't fit the custom ones because games are weird on input menu, and some even change according to connected devices.
I'm more for fixing it in the documentation, even with a demo or plugin in the asset lib, managing input actions can be confusing, the tool is powerful but lacks of documentation on common use cases.
The last 2 sections here http://docs.godotengine.org/en/3.0/tutorials/inputs/inputevent.html#actions can be expanded in their own pages with examples.

I'm not sure to understand what's asked for here. Have the full editor InputMap GUI available in games? IMO that's overkill, too complex for most games, and it would look out of place.
Instead you can implement your own InputMap remappings GUI in a few lines of code and a couple Controls. There's even an official demo about it: https://github.com/godotengine/godot-demo-projects/tree/master/gui/input_mapping

I'm not sure to understand what's asked for here. Have the full editor InputMap GUI available in games? IMO that's overkill, too complex for most games, and it would look out of place.

Apologies for the late reply.  I was away on a trip.
I take the point that the built-in editor is overkill for games.  But I still think it's better for everyone if some sort of input mapping was provided by default, especially if it only takes "a few lines of code."
Here is my reasoning:

Almost every game should have rebindable inputs, for reasons of accessibility, differing keyboard/gamepad layouts, and simple comfort, yet so many games neglect this important UI feature.

If Godot implements a simple input rebind window by default, available for any game, what would the outcome be?
--> For the 10% of games where the devs are motivated enough to implement their own appropriately skinned UI, there is no change - these devs can and will still do it.
--> For the 10% of games where it's a deliberate design decision to prevent input remapping, this feature can be turned off in the options.  There is no change.
--> For the 80% of games which deserve input mapping but the dev neglects to implement it, we will get input mapping where none existed before.  Players are happy, devs are happy, no-one is unhappy.

So in my point of view, this is a change that will make many people happy, and no-one unhappy.  It's just easy to argue for the status quo for those that don't personally benefit.  But if the feature already existed, no-one would argue for it to be removed.    So I feel the arguments against are mostly just inertia.

Godot is a game engine, it's meant to provide the tools to make a game, not the game itself. It's up to the user to implement such system, not to Godot. Next we're going to have people asking for a built-in inventory system, a built-in skills system, a built-in idontknowwhat... These take time both to keep up to date, and a bloating everyone's game for few lazy programmers.
My point of view is the following, in most games, people will want to implement their own system, so they don't need another built-in mapping system that increase the executable size for nothing. For those who wants to have a default built-in input making, they just have to find one on the asset store. For those who don't care, they wouldn't have used it anyway, and forcing them to have a popup window for inputs when their game starts (like Unity does) is a pretty bad idea. I prefer to let users choose what they want for their game instead of forcing them to use a built-in input mapping system.

And here is when we return to the mandatory default input actions that probably we don't need :D :D :D. No its joke, don't want to change conversation way...

Godot is a game engine, it's meant to provide the tools to make a game, not the game itself. It's up to the user to implement such system, not to Godot. Next we're going to have people asking for a built-in inventory system, a built-in skills system, a built-in idontknowwhat... These take time both to keep up to date, and a bloating everyone's game for few lazy programmers.

@groud I don't want to get into a back and forth argument, but since your views are quite common I think it would be useful to address them.
First of all, we're not forcing anyone.  Like I said, it should be an option that can be turned off in settings.  Also, it doesnt have to be so in-your-face as a popup window on startup.  It can just be a hotkey that's rebindable in project settings, like F12 or Alt-F12.  It doesn't have to be pretty, it doesn't have to integrated, it just has to be available.
As for your slippery slope argument, doesn't that apply to anything?  Why do we have localisation support? Why do we have high-level multiplayer? Why aren't we all just coding in assembler?  You could argue that localisation and multiplayer are integral parts of games, but that's exactly what I'm trying to say - input remapping (and accessibility in general) is extremely fundamental and deserves to be available in all games.
The problem with accessibility issues is that it's so easy for people to dismiss them if they don't understand.   or the worst, "Why don't you play a different game?".   For the player who can't play a game because it doesn't support her keyboard layout, or doesn't accomodate his physical abilities, your ideologies are meaningless.  Your stance against bloat is meaningless, and blaming "lazy" game developers is meaningless.  The only thing that matters is, if Godot has this feature, they can play the game.  If not, they can't, or at least not easily.
If you wanted to apply slippery slope again, you might ask, "Well, why stop there?  Why not include colour-blindness mode support by default?".  Well, maybe we should.  I imagine Godot would get nothing but acclaim to be the first engine to offer universal colourblindness mode support.  But at the very least, I would like people to not reject things out of inertia or ideology, but instead consider things on a cost-benefit basis.
In this case:

The cost:  Not too much.  According to another commentor, "just a few lines of code."
The benefit: Which games will benefit?  Like I said, a big majority of games deserve input remapping but don't have it.  So most games will benefit.  Which players will benefit?  Whilst many people will benefit somewhat in terms of comfort, there's a minority of people who really need this feature, and it will be a huge help to them.

Anyways, I hope this will convince everyone that this is a low-hanging fruit that will be very helpful to some people.  I'm just getting started with Godot, but I'm willing to try to help implement if I can get some guidance on how to do so.

IMO, this issue should be handled in two ways:

better docs and tutorials: show how to properly handle input, including key mapping, and use it as default in all tutorials
make sure it is easy to create a custom UI for key mapping on top of the engine features

A default "key mapping" UI is probably too much and better suited to a plugin/asset lib/third-party GitHub repo, IMO. Depends too much on a game.
It's like with input handling:
We include ways to handle input, like move_and_slide, so you can build your own game-specific logic on top of it. But we don't include a default "top-down" character controller, or a "2d sidescrolling platformer controller", but the tools to make such a thing yourself. Having those would be cool, but they too would better fit in the asset lib or a plugin. Again, IMO.

Well again:

Instead you can implement your own InputMap remappings GUI in a few lines of code and a couple Controls. There's even an official demo about it: https://github.com/godotengine/godot-demo-projects/tree/master/gui/input_mapping

There's an official demo for it, and it's quite simple. If game developers don't provide input remapping possibility in their games, I don't see how we can force it on them. It's a matter of education, not features.
I'm not against improving things, but we need to properly define what needs to be done to improve things.

If game developers don't provide input remapping possibility in their games, I don't see how we can force it on them. It's a matter of education, not features.

I'm sad to hear that.  Hopefully one day you guys will change your minds.  I see no problem with a game engine having some universal system settings exposed to the user, just like Adobe Flash does, or a game emulator.  It's not a library or a toolkit, after all, it's a game engine.  Anything that gives the player more power over his experience rather than leaving it all to the dev is a good thing imo.
Relying on education basically means the problem will never be solved.  It's like opt-in vs. opt-out for organ donation.  The majority of "supply" don't care about the issue one way or another, but for the small minority of "demand", it's very important indeed.  Having an opt-in system and spending lots of effort on advertising will only improve the situation a bit, but it will never solve it, unlike an opt-out system.

It's not a library or a toolkit, after all, it's a game engine. Anything that gives the player more power over his experience rather than leaving it all to the dev is a good thing imo.

That's where you are wrong, a game engine is a toolkit. It's not up to us to decide what should be available to the player or not, but to the game developer.

Anything that gives the player more power over his experience rather than leaving it all to the dev is a good thing imo.

It's not up to the player to decide, it's up to the developer to choose what is player is allowed to do or not. We provide a tool to make games, not a game template.

Shrug, whatever you want to call it, it's the same type of thing as Adobe Flash - which gives the user some universal system options.  We're not going to agree on this, probably.

Closing, as this discussion seems to be finished.
OP and devs seems to just disagree about this raised point:

Anything that gives the player more power over his experience rather than .. the dev is a good thing

Godot places a high value on freedom for developers. See the MIT license. You could do far worse things with Godot than not implementing key-remapping. Thats the price of freedom. Godot hopefully will never force developers to do anything, even for a good cause, merely encourage developers to do the right thing.
Hope that doesn't discourage you from using it. :)


Add traditional chinese test zh-tw

The test runs ok however the grammer logic for chinese is a little weird. For example we put "am"/"pm" before time, and we say "midnight 2:00" instead of "2:00 pm"... etc. But I guess every language has its own grammer rule, it is too difficult to fit them all in one library.

The 'midnight 2:00'/'2:00 PM' should be able to be fixed by this line.
https://github.com/timrwood/moment/blob/master/lang/zh-tw.js#L8
longDateFormat : {
    //LT : "h:mm A", old
    LT : "A h:mm", // new
    L : "DD/MM/YYYY",
    LL : "D MMMM YYYY",
    LLL : "D MMMM YYYY LT",
    LLLL : "dddd, D MMMM YYYY LT"
},

LT is the localized time format. This is also used in `moment.calendar'.

Sorry I didn't make myself clear. We have more than just am/pm. Rouphly during 0-4 we call it midnight, 5-11 we call it morning, 12 we call it noon. 13-17 we call it afternoon, 18-24 we call it evening. We do use am/pm but only on digital clock and it is in English.

Ah, I see.
We do have that in english as well, "8 in the morning, 2 in the afternoon, 6 in the evening, 9 at night, etc." I wonder how many other languages have this and if it would be a good addition to the library.

Cool, I'm watching this project and if someday you decided to add this feature I'm glad to support :)

I suppose I could just add support for using a function instead of a token string for the localized formats.
moment.longDateFormat.LT = function(m) {
    if (m.hour() < 4) {
        return "h:mm [in the early morning]";
    } else {
        return "etc"
    }
}

I will definitely add chinese support for this feature :)


Can't create handler inside thread that has not called Looper.prepare()

Hi,
as far as I understand, this library is useful when we need a permission from a service, and most of the times when I have services in background I do not have access to a UI context, and I use the application context.
and it is giving me this exception:
[java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
                                                                               at android.os.Handler.<init>(Handler.java:200)
                                                                               at android.os.Handler.<init>(Handler.java:114)
                                                                               at com.permissioneverywhere.PermissionRequest.enqueue(PermissionRequest.java:61)
                                                                               at com.shygunsys.pocketcyber.locationservice.TLocationManager.updateLocation(TLocationManager.java:153)
                                                                               at com.shygunsys.pocketcyber.locationservice.TLocationManager.reset(TLocationManager.java:348)
                                                                               at com.shygunsys.pocketcyber.syncService.ShygunLocationSyncServicePost.DoSync(ShygunLocationSyncServicePost.java:88)
                                                                               at com.shygunsys.pocketcyber.syncService.TShygunSyncService.doInBackground(TShygunSyncService.java:139)
                                                                               at com.shygunsys.pocketcyber.syncService.TShygunSyncService.doInBackground(TShygunSyncService.java:33)
                                                                               at android.os.AsyncTask$2.call(AsyncTask.java:295)
                                                                               at java.util.concurrent.FutureTask.run(FutureTask.java:237)
                                                                               at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
                                                                               at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
                                                                               at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
                                                                               at java.lang.Thread.run(Thread.java:818)]

any idea how to resolve it?

@muhammad-naderi in your case, try to use method call() instead of enqueue(). I have just tested, it works.(Also I have no ideas why it works)

with the .call() I will have no Notification then!, which is the main reason I'm using this library bro!
or am I missing something ?

Still call is not what I want, I need the enque model working
if would be the best if you can give it some time,
as far as I know creating a UI related object (eg notification) may be handled by handlers and ...
you may check this out:
http://stackoverflow.com/questions/3875184/cant-create-handler-inside-thread-that-has-not-called-looper-prepare


Facing shape mismatch issue with conv in MobilenetV2

Describe the bug
Facing The width of the first tensor must be equal to the height of the second tensor. with conv in MobilenetV2 unit test cases.
To Reproduce
Steps to reproduce the behavior:

Checkout keerthanar/mobilenetv2_unittest_cases
Run pytest tests/ttnn/unit_tests/operations/test_new_conv2d.py::test_conv_mobilenetv2_matmul_issue

Please complete the following environment information:

WH n150

This bug has been fixed in the smanoj/segformer_bias_fix branch

Hi @sankarmanoj-tt ,
I checkedout smanoj/segformer_bias_fix branch, and tried running the test. But the error persists.

Did you rebuild after checking out the branch?

Yes, I rebuilt the repo after checking out the branch.

@keerthana-r-mcw doesn't look like this issue is resolved! why is it closed?

@keerthana-r-mcw Please checkout this branch and try. smanoj/fix_matmul_validation

Hi @sankarmanoj-tt , The test is working with this branch.
Thanks!

@keerthana-r-mcw @sankarmanoj-tt the error message is there for a reason. There are corner cases where the output may be incorrect if the assertion is not satisfied.
You need to change the model or underlying conv code to make the shapes line up.


Orderable document list causes the native list search input field to disappear

Sanity's native list interface has a search input field shown, like this:

But when orderable document list is used, this is missing:

Any luck getting this the filter to show?

I'm getting the same thing as well as "Published" and "Edited" icons are not showing for each item as shown in @toddpadwick screenshot above.

Having the same issue here.

SAME

It also removes the status indicators: https://github.com/sanity-io/orderable-document-list/issues/96

Is there an update on this issue? The default search field is innocent and should stay. If the search field is interfering the functionality, the custom ordering controls (6 dots, drag & drop) can be disabled when the search field filtering is in use.


[Flink-26112][k8s]Port getRestEndpoint method to the specific service type subclass

What is the purpose of the change
This pull request is meant to improve the implementation of Fabric8FlinkKubeClient#getRestEndpoint. It's mainly done threes things

Refactor the FlinkKubeClient interface getService and updateServiceTargetPort to deal with service name directly which will eliminate the unnecessary enum of KubernetesService.ServiceType.
Port Fabric8FlinkKubeClient#getRestEndpoint method to the specific service type subclass
Remove the implicit behavior to use the Service externalIP as the address of the Endpoint which is the purpose of FLINK-17232.  I think it can be safely removed as i comments in the jira. Please correct me if I'm wrong. Or If I need to create a separate pull request for that issue, please let me know.

Verifying this change
This change is already covered by existing tests Fabric8FlinkKubeClientTest
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (no)
The serializers: (no)
The runtime per-record code paths (performance sensitive): (no)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: (yes)
The S3 file system connector: (no)

The code in LoadBalancerService and NodePortService is a bit duplicated, It's comes from the default fallback logic of the LoadBalancer service . I think it can be improved by remove the default fallback as describe in link and FLINK-17231. So in this PR, I keep the duplicated code.
Please help to take a review when you are free @wangyang0918

@flinkbot run azure

@wangyang0918  Can we move forward this PR, since 1.15 has been released

@wangyang0918 Previously the externalIP will be try when the loadBalancer is null code. For the LoadBalancerService the behavior is not changed, But for the NodePort it will only look for the nodeIp:nodePort as endpoint now code
But In my test, the status#loadBalancer is not null for each service type, So the behavior of the NodePort will not change actually. The situation is a bit confused, it mainly caused by the previous implicit behavior I think.  Please let me know if you have better suggestion.

@flinkbot run azure


Expose TextViewHighlighter to older macOS's

I couldn't find a reason not to make TextViewHighlighter available to macOS 10.13+  (which incidentally is my app's deployment target ;)), so I did!

Thank you!
Yikes tho 10.13, pre-concurrency…


[Bug]: Input fields on form widget takes two TAB keystrokes to switch focus

Is there an existing issue for this?

[X] I have searched the existing issues

Description
When I press the TAB keystroke on a form widget's input field, the focus does not shift to the next input field. However, pressing TAB again does shift the focus.
Steps To Reproduce

Add a form widget
Add 2-3 input fields to the form widget
Focus on the first input field and press the TAB key
Notice that the focus does not shift to the second input field
Press TAB again
Notice that the focus shifts to the second input field now

Public Sample App
No response
Version
Cloud

This happens because labels are also coming under tabs weirdly, we need to fix that. Thanks for bringing this up.


upgraded thoughtworks.xstream and springframework

Fixed and merged by https://github.com/droolsjbpm/droolsjbpm-build-bootstrap/commit/958534599c356978f825a592844df720a3807e92


Cannot Change Color of Imported Vehicle

CARLA version: 0.9.15
Platform/OS: Ubuntu 22.04
Problem you have experienced: I have imported a new car (newer Ford Mustang) into CARLA using this guide. I have applied a car paint material instance to the body (child of M_CarPaint_Master) and added recommended colors to VehicleFactory, as shown in the images below. However, when I change the 'color' attribute using Python API, while the attribute changes (e.g. color changes from '17,23,18' to '25,44,24', the car paint itself does not have any visible changes. I've tried to compare it to other cars where the color can be changed but couldn't find anything of value. Am I missing something?

Hi @GoodarzMehr
The propFactory searches the material to change the color by slot name. You just need to name the slot material where you have the paint car material "Bodywork_Mat"

Thanks for the issue, we will add this information in our documenttion.


add GruvboxLight theme

add Gruvbox Light (medium) theme based on lib/styles/themes/gruvbox-dark.js and https://github.com/morhetz/gruvbox

That's nice, thank you!


performance issue +100 table

Hi,
I'm using typegraphql-prisma for 134 tables.
Generation time is 60sec, and server start time is ~20-~30sec.
It's bit hard to development in each change.
Is there any improvement for this.
Thanks.

Is there any improvement for this.

No, there's not.
Duplicate of #10 🔒


Add Default Prefix to New Fee Estimation Constant Names

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#1256  👈
#1252 : 1 other dependent PR (#1255 )
#1253
feature/proof-of-stake

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @tholonious and the rest of your teammates on  Graphite

Merge activity

Apr 22, 10:39 PM EDT: @tholonious started a stack merge that includes this pull request via Graphite.


add liveness/readyness enpoints

Adding a liveness/readyness endpoint would be great for deployment with Kubernetes. I could publish my helm chart if someone is interested.

There's the /status endpoint already available, does that work for you? It just returns 200 OK.
If not, please share a few more details about what you expect from this endpoint, I'm not familiar with Kubernetes or helm.

@benedikt-bartscher as described in my previous comment, I need more details to make sure that what I implement is actually useful.
I'm closing this for now to keep the issue tracker clean, but I can reopen this once I have feedback from you or anyone else who's interested in this feature.

Just to add my 2 cents to this: I was wondering the exact same thing and even thought of making a PR to add a health endpoint to the server, but then discovered through inspecting the code that it was in fact already there! It just wasn't documented anywhere in the README or the wiki. Perhaps it would be a good idea to add documentation concerning all available endpoints on the flexo server?


Issue with IP address detecting

Page: https://dots-tutorial.moetsi.com/multiplayer/host-or-join-a-multiplayer-session-on-lan-unity-netcode#updating-build-configurations
Code Snippet:
//
// INITIALIZE ALL THE TEXT FIELD WITH NETWORK INFORMATION
//
m_HostName = Dns.GetHostName();
// "best tip of all time award" to MichaelBluestein
// https://forums.xamarin.com/discussion/comment/1206/#Comment_1206
// somehow this is the best way to get your IP address on all the internet
foreach (var netInterface in NetworkInterface.GetAllNetworkInterfaces()) {
    if (netInterface.NetworkInterfaceType == NetworkInterfaceType.Wireless80211 ||
        netInterface.NetworkInterfaceType == NetworkInterfaceType.Ethernet) {
        foreach (var addrInfo in netInterface.GetIPProperties().UnicastAddresses) {
            if (addrInfo.Address.AddressFamily == AddressFamily.InterNetwork) {

                m_MyIp = addrInfo.Address;
            }
        }
    }
}

//Now we set our VisualElement fields
m_GameName.value = m_HostName;
m_GameIp.text = m_MyIp.ToString();

Well, it's definitely not a bad idea to check all network devices and find those that can support the required connection, BUT what would happen when you have multiply devices that satisfy the requirement? You would use the last one (which in my case was Bluetooth which I turn off a long time ago)
Find device Ethernet with IP 169.___.___.__3
Find device Local Area Connection* 1 with IP 169.___.___.__9
Find device Local Area Connection* 2 with IP 169.___.___.__7
Find device Ethernet 2 with IP 169.___.___._87
Find device Wi-Fi with IP 192.___.___.__3
Find device Bluetooth Network Connection with IP 169.___.___.__8

Used IP 169.___.___.__8  Bluetooth Network Connection

The quick solution will be to check if that device is turned ON
if (netInterface.OperationalStatus == OperationalStatus.Up &&   <---- Added this line
    (netInterface.NetworkInterfaceType == NetworkInterfaceType.Wireless80211 ||
    netInterface.NetworkInterfaceType == NetworkInterfaceType.Ethernet)) {

The right solution would be to allow users to pick from the available list of devices where they can establish a connection. I mean that not everybody wants to broadcast their game over Bluetooth. (I think this is too much for a tutorial, but it's worth mentioning)

Also, a link https://forums.xamarin.com/discussion/comment/1206/#Comment_1206 is broken for me

@Lrakulka we made a note about the limitations of the approach here including enumerating the option from your comment above:

@adammpolak you are referring to this page https://dots-tutorial.moetsi.com/multiplayer/broadcast-a-multiplayer-game-in-netcode while I am referring to https://dots-tutorial.moetsi.com/multiplayer/host-or-join-a-multiplayer-session-on-lan-unity-netcode#now-lets-implement (Now I see that the logic has duplicate code for finding IP UdpConnection.cs and HostGameScreen.cs)
Netherweless, I think that adding the proposed check netInterface.OperationalStatus == OperationalStatus.Up is worth
because if the logic tries to use a device that is currently DOWN, it will not throw any exception, you will just get an empty main scene (it took a while even for me to find out that it's not Unity or preview package issue, but just incorrect connection).

Updated @Lrakulka , thank you for the tip!


don't use Clang modules in the "only re-export public symbols" check

Cherry-pick of #66610

Explanation: When an underlying Clang module is present, the [-symbol-graph]-minimum-access-level flags for SymbolGraphGen are overridden by the "export-import only public symbols" check. This PR changes the latter check to require that symbols and export-imported modules come from the same compiler for the symbol to be considered re-exported.
Scope: Affects users who want to view internal symbols in a symbol graph but also have Clang code in their project.
Issue: rdar://110399757
Risk: Low. The change in behavior should only affect underlying Clang modules; other behavior around export-imports should be unaffected, as is normal compilation.
Testing: A test has been added to ensure that [-symbol-graph]-minimum-access-level continues to work as expected in the presence of an underlying Clang module. Existing tests continue to pass.
Reviewer: @daniel-grumberg

@swift-ci Please test


provide install/doctor script

also run as postinstall script - https://docs.npmjs.com/misc/scripts
check if all dependencies are installed and on which versions (yo, gulp, bower, sass, SDKs, ...)
depending on available skds provide options

ios

ios-deploy version https://github.com/phonegap/phonegap-cli/issues/94#issuecomment-82087521

build in troubleshooting help, see #123

Check out cordova requirements https://issues.apache.org/jira/browse/CB-8898

node -v
npm -v
npm list -g generator-m-ionic
cordova -v # returns version number of globally installed cordova CLI
gulp --cordova ' -v' # returns version number of locally installed cordova CLI, mind the space _ in ' -v'

ionic info - http://ionicframework.com/docs/cli/info.html


Emancipation from serialbox via HDF5 for C-style variants

Draft/POC implementation HDF5 input and reference reading for C-style variants to not rely on serialbox for those variants.
Before I am tempted to over-engineer this I thought I'd make a Draft PR to allow for some comments/feedback and to allow a discussion about a potential restructuring/refactoring of the C-style variants.
Tested on

AC with Intel and NVHPC
LUMI via cray toolchain

Obviously more testing necessary before thinking about merging this.
Some hacks in the CMakeLists.txt due to problems with HDF5 on AC.

Additional remark: Since this will allow to always build the C variant, the verify_targets.sh script should be updated to always include the C variant in the expected_targets, i.e., remove the conditional on the io flag here:
https://github.com/ecmwf-ifs/dwarf-p-cloudsc/blob/60825eaece99c4305b5039aeeaa698eec93abb68/.github/scripts/verify-targets.sh#L11-L16

@reuterbal Thanks for pointing out how to change the CMake integration!
Should we rewrite/refactor Serialbox/HDF5 for this variant or wait for the overall ("C" variant) refactoring?

I'll make it a separate PR.


New package: Trufflesuite.Ganache.Beta version 2.6.0-beta.3

- [X] Have you signed the Contributor License Agreement?

[X] Have you checked that there aren't other open pull requests for the same manifest update/change?

[ ] Have you tested your manifest locally with winget install --manifest <path>?
[X] Does your manifest conform to the 1.0 schema?

Microsoft Reviewers: Open in CodeFlow

If it doesn't install in %LOCALAPPDATA% or %USERPROFILE%, it's Scope: machine, otherwise, it's Scope: user.

Thanks for this.


Fix:check if config for node starter on github is up-to-date[EOA-6854]

This configuration is in amqp section.


Increase number of forward tokens for isolation tasklists

What changed?
Increase number of forward tokens for isolation tasklists

Why?
Fix the latency degradation for scalable tasklists with isolation

How did you test it?
staging2 test

Potential risks

Release notes

Documentation Changes

Pull Request Test Coverage Report for Build 018879ae-c690-48d4-8d5a-ee4361ee1081

11 of 11 (100.0%)  changed or added relevant lines in 2 files are covered.
71 unchanged lines in 12 files lost coverage.
Overall coverage increased (+0.01%) to 57.29%

Files with Coverage Reduction
New Missed Lines
%

common/persistence/executionManager.go
2
78.94%

common/task/fifoTaskScheduler.go
2
87.63%

common/task/weightedRoundRobinTaskScheduler.go
2
89.12%

service/frontend/workflowHandler.go
2
60.24%

service/history/task/transfer_standby_task_executor.go
2
86.51%

service/matching/matcher.go
2
90.29%

common/persistence/nosql/nosqlplugin/cassandra/workflow.go
3
59.1%

common/persistence/statsComputer.go
5
93.57%

common/persistence/nosql/nosqlExecutionStore.go
9
62.54%

service/history/shard/context.go
9
66.7%

Totals

Change from base Build 01886f46-77ea-4306-8d9c-5f71c79fbe8a:
0.01%

Covered Lines:
87059

Relevant Lines:
151963

💛  - Coveralls


chore: Clean up V2 Helm chart

What type of PR is this?
/kind cleanup

What this PR does / why we need it:
Addresses feedback from Andy on corresponding changes to the upstream repo:

Removes unnecessary namespace metadata from the StorageClass instances.
Remove the pullPolicy override from the side-by-side values.

Which issue(s) this PR fixes:

Requirements:

[x] uses conventional commit messages

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

Special notes for your reviewer:
Release note:
none

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
7 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-1.7%) to 42.925%

Files with Coverage Reduction
New Missed Lines
%

pkg/azdiskschedulerextender/azdiskschedulerextender.go
7
55.02%

Totals

Change from base Build<PHONE_NUMBER>:
-1.7%

Covered Lines:
182

Relevant Lines:
424

💛  - Coveralls


Show dialog when renaming a file and the destination already exists

Fixes #2689
This PR:

Fixes pasting files to hidden folders
Fix rename dialog not showing when an item with the same name already exists
Fix file list not updating in recycle bin when new files are deleted
Fix a case in which the "empty folder" text was visible after pasting files into a folder with a redo operation

@gave92 Is it posible to use the the availible buttons in the status center instead of the dialog?

@yaichenbaum should I have buttons? could you share a screenshot?

@yaichenbaum should I have buttons in the status center? could you share a screenshot?

They are hidden by default, but you can display them and choose an action when updating a banner.

Aha found them. I wasn't aware of the possibility, I don't think they are used anywhere atm, right?
If it's acceptable I'd keep this PR as is and tackle the possibility to use the status banner instead of the dialogs another time

Aha found them. I wasn't aware of the possibility, I don't think they are used anywhere atm, right?

There is one error that will cause them to show but it's not common.

@gave92 Should it work when creating a new file with the same name?

@tsvietOK no just in case of renaming for now. Creating a new file with the same name should result in "File (2)" at the moment

If it's acceptable I'd keep this PR as is and tackle the possibility to use the status banner instead of the dialogs for rename and the other operations another time.

I got confused with copy/paste with the same file name, a dialog is the proper solution for solving rename conflicts.

@yaichenbaum What about to add button like "Cancel", "Do nothing" or "Skip"?

@yaichenbaum What about to add button like "Cancel", "Do nothing" or "Skip" to the dialog?

It looks like there is already one for skip and cancel, a "Do nothing" option would be helpful.

@yaichenbaum There is no "Cancel" option

Yeah, cancel currently can only be done by pressing Escape key

Yeah, cancel currently can only be done by pressing Escape key (possibly not intuitive for every user)

By the way, it is not always working.

@tsvietOK Meaning that sometimes the dialog does not close upon pressing Escape? Or that is closes but some operation is done anyway?

@gave92 dialog does not close when pressing Escape/

@tsvietOK does it seem something specific to the rename dialog? Or have you seen this behavior on other dialogs?

@gave92 That's strange, now it is working.


Case Sensitivity - show warning?

It seems istanbul is using the require() global function for code coverage.
As a mistake, in one of my models I used a capital letter, as follows:
require('my_module');

And in one case I used:
require('my_Module');

As a result, some functions were reported as not covered by istanbul (I verified they were running by printing a console message in them).
It would be nice if istanbul could check the case sensitivity of the path against the file loaded, and possibly warn about it.
p.s.

I'm currently using windows, which is why the require even worked, of course.
There is an issue on node regarding require and case sensitivity (https://github.com/joyent/node/issues/2621 ), but in my opinion the 'require' function shouldn't be changed.

I don't think this is actually istanbul's job to do this warning, we would have to do a ton of logic to determine if a module path was in a different case (it could be any part of the path that could be different). We would have to process every file in a really hacky way in order to even guess at what you wanted us to warn about. I think tossing the coverage in, like we do, with the "unknown" file is the best way as it's not really hacky.

Not really sure what you mean by "tossing the coverage in".
Currently, the result is nothing is logging a warning, and when looking at the coverage reported by istanbul, some code shows as not covered, even though it is.
This makes the user believe the problem is with istanbul, and not with the case sensitive issue (at least until he finds out)
Also, I don't think the logic should be very complex. A simple map of lowrecased filenames with an existence test should suffice. Something like:
var uniqueFiles = {};
..
Module._extensions[ext] = function (module, filename) {
  var uniqueFilename = path.resolve(fileName).toLowerCase();
  if (uniqueFiles[uniqueFilename]) {
    // log warning; We have two files with the same unique name
    // 'uniqueFilename' and 'uniqueFiles[uniqueFilename]'
  } else {
    uniqueFiles[uniqueFilename] = true;
  }
  ...
};

Note: I used a map and not an array in here since as far as I know, the object lookup performance should be better than array. It can be changed to array though, of course.

I had this problem also and it took me many hours to figure out that a file was being "required" with one letter in a different case than the real file name.
I think a warning is not realy necessary. What I think is the best solution is to ignore the file case on Windows enviroments.

Changed the subject so I can find this issue later :)
When you have 2 require statements with different casing, node actually loads the module twice with 2 different names into its cache. (IMO, this is an issue if there is module-level state that the library relies on).
All of istanbul's require hooks and coverage reporting should actually work correctly.
The reason it doesn't work is bizzare. istanbul's file matcher is implemented as a cache of all seen file names and for istanbul to instrument a file the file needs to be part of the filename cache that it loads and in this case, it isn't.
The implementation of istanbul's file matcher has always been suspect from day 1 and I never bothered to fix it. It is slow and bloated because it looks at all filesystem files whether they are used or not. This needs to be changed to nuke the internal cache and actually do a pattern match when a filename is encountered.
Working on this soon since it will fix other performance problems as well.

I am facing same issue. Is there any update on this fix?


Food Website

Hello sir,
I want to add my project of food website in this repo. Please assign me the issue so that I can work on this issue

@avinash201199 @Shu12388y Please assign me this issue

@apu52 start working


Snapshot release readme tweak

#255  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @rbro112 and the rest of your teammates on  Graphite


Add Users.DeleteUser() method

Description
Documentation
Does this require changes to the WorkOS Docs? E.g. the API Reference or code snippets need updates.
[ ] Yes

If yes, link a related docs PR and add a docs maintainer as a reviewer. Their approval is required.

Current dependencies on/for this PR:

main

PR #246

PR #247   👈

This comment was auto-generated by Graphite.


Update Node 16 -> 20

Thank you for creating such a fantastic tool! 😍
I have been finding it extremely useful.
Since Node version 16 has become deprecated, could you please consider updating it to version 20?
see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/
GitHub shows such a warning.

Sure, thanks for letting me know.
will do it soon.

Thank you for your contribution. I merged your changes and release v1.0.25.
You can use the latest version
- name: Jest coverage comment
  uses: MishaKav/jest-coverage-comment@main

or
- name: Jest coverage comment
  uses<EMAIL_ADDRESS>


remove deprecated connection options

During the deployment modes story we centralized around one custom grpc connection option.
https://github.com/opentdf/platform/blob/32c09c3993bee369401537a9370478dc519ec415/sdk/options.go#L205-L209
This issue is to track removal of the following deprecated options.
https://github.com/opentdf/platform/blob/32c09c3993bee369401537a9370478dc519ec415/sdk/options.go#L116-L135
https://github.com/opentdf/platform/blob/32c09c3993bee369401537a9370478dc519ec415/sdk/options.go#L174-L178
Acceptance Criteria:

Update tests where needed

we will probably need a custom connection for ERS once its split out. moving this ticket to next sprint once that is completed, we can work this one


Show results on specific pattern only

Hey there!
Was wondering if it's possible to fetch only a specific pattern for the results, like "show me only the FIXME list" or "TODO and CHANGED only, please".
If I'm not missing something, the only way I found to do this it's a custom edit in the .sublime-project file where you specify only the patterns you are interested in. Is there a more convenient way to achieve the same thing?
Thanks a lot! :)

You are right, the only way to do this currently is editing the settings JSON.

Oh I see! Well tedius but at least effective


[Add] Save postcard locally

The user must have the option to save the image file locally.
API suggestions: dom-to-image + file saver.

Done.


Add support for Philo as MSO

Please follow the guide below

You will be asked some questions and requested to provide some information, please read them carefully and answer honestly
Put an x into all the boxes [ ] relevant to your issue (like this: [x])
Use the Preview tab to see what your issue will actually look like

Make sure you are using the latest version: run youtube-dl --version and ensure your version is 2018.08.28. If it's not, read this FAQ entry and update. Issues with outdated version will be rejected.

[x] I've verified and I assure that I'm running youtube-dl 2018.08.28

Before submitting an issue make sure you have:

[x] At least skimmed through the README, most notably the FAQ and BUGS sections
[x] Searched the bugtracker for similar issues including closed ones
[x] Checked that provided video/audio/playlist URLs (if any) are alive and playable in a browser

What is the purpose of your issue?

[ ] Bug report (encountered problems with youtube-dl)
[ ] Site support request (request for adding support for a new site)
[x] Feature request (request for a new functionality)
[ ] Question
[ ] Other

The following sections concretize particular purposed issues, you can erase any section (the contents between triple ---) not applicable to your issue

If the purpose of this issue is a bug report, site support request or you are not completely sure provide the full verbose output as follows:
Add the -v flag to your command line you run youtube-dl with (youtube-dl -v <your command line>), copy the whole output and insert it here. It should look similar to one below (replace it with your log inserted between triple ```):
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: [u'-v', u'https://www.aetv.com/shows/the-first-48/season-17/episode-19', u'--cookies', u'cookies.txt']
[debug] Encodings: locale UTF-8, fs UTF-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2018.08.28
[debug] Python version 2.7.13 (CPython) - Linux-4.9.0-8-amd64-x86_64-with-debian-9.5
[debug] exe versions: ffmpeg 3.2.12-1, ffprobe 3.2.12-1
[debug] Proxy map: {}
[aenetworks] the-first-48/season-17/episode-19: Downloading webpage
[aenetworks]<PHONE_NUMBER>564: Downloading JSON metadata
ERROR: This video is only available for users of participating TV providers. Use --ap-mso to specify Adobe Pass Multiple-system operator Identifier and --ap-username and --ap-password or --netrc to provide account credentials.
Traceback (most recent call last):
  File "/home/jlick/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 792, in extract_info
    ie_result = ie.extract(url)
  File "/home/jlick/bin/youtube-dl/youtube_dl/extractor/common.py", line 502, in extract
    ie_result = self._real_extract(url)
  File "/home/jlick/bin/youtube-dl/youtube_dl/extractor/aenetworks.py", line 144, in _real_extract
    url, video_id, requestor_id, resource)
  File "/home/jlick/bin/youtube-dl/youtube_dl/extractor/adobepass.py", line 1409, in _extract_mvpd_auth
    raise_mvpd_required()
  File "/home/jlick/bin/youtube-dl/youtube_dl/extractor/adobepass.py", line 1374, in raise_mvpd_required
    'and --ap-username and --ap-password or --netrc to provide account credentials.', expected=True)
ExtractorError: This video is only available for users of participating TV providers. Use --ap-mso to specify Adobe Pass Multiple-system operator Identifier and --ap-username and --ap-password or --netrc to provide account credentials.

If the purpose of this issue is a site support request please provide all kinds of example URLs support for which should be included (replace following example URLs by yours):

Single video: https://www.aetv.com/shows/the-first-48/season-17/episode-19 (When using Philo as activated service provider.)

Note that youtube-dl does not support sites dedicated to copyright infringement. In order for site support request to be accepted all provided example URLs should not violate any copyrights.

Description of your issue, suggested solution and other information
I use the video streaming service Philo for channels such as A&E. I can also access A&E through my web browser by "signing in" with Philo as my service provider. After activation, I'm able to play videos that would normally be locked. In addition, Philo doesn't use a login and password to sign in but instead uses a one-time password sent to a mobile phone.
Currently youtube-dl doesn't appear to support Philo as an MSO. Even if it did, the current code requires a login and password, which isn't used on Philo. I tried using youtube-dl with complete cookies and no authentication but it doesn't work. Please consider adding support for Philo as MSO for aetv.com as it is an increasingly popular "skinny bundle" streaming service.
Philo has a free trial available.

I have added support for Philo in the repo I forked. I have submitted a pull request for this, too.
If you don't want to wait till the pull request is approved, you may go ahead and clone the forked repository in my account: https://github.com/Aniruddh-J/youtube-dl
You need to switch to Philo branch for Philo MSO support.

I have added support for Philo in the repo I forked. I have submitted a pull request for this, too.
If you don't want to wait till the pull request is approved, you may go ahead and clone the forked repository in my account: https://github.com/Aniruddh-J/youtube-dl
You need to switch to Philo branch for Philo MSO support.

@Aniruddh-J Excuse my ignorance, but I'm wanting to try your Philo repo.  I've cloned it but I'm not sure what to do next.
Do I have to build youtube-dl from the cloned repo?  Sorry to be so burdensome, but could you point me to something that tells me how to do this?   Really would like to use youtube-dl with Philo.
Thanks!

This been merged yet? Asking cause I'm looking into watching content from A&E Networks using a trial of Philo

This been merged yet?

No, you have to build your own youtube-dl with the pull-request added (which is what I do) or use one of the custom forks that is both updated and includes the pull. You can't use the above fork version as-is because the A&E extractor in it is outdated.

@faizjamil it's been added to https://github.com/yt-dlp/yt-dlp

@faizjamil it's been added to https://github.com/yt-dlp/yt-dlp

I see thanks.
In the case that I need to use Philo to authenticate to download an episode of a show on History Channel, how would I go about doing that?
I get this error in particular

ERROR: This video is only available for users of participating TV providers. Use --ap-mso to specify Adobe Pass Multiple-system operator Identifier and --ap-username and --ap-password or --netrc to provide account credentials.

In the case that I need to use Philo to authenticate to download an episode of a show on History Channel, how would I go about doing that?

Discovery channels (such as History) don't use MSO. Instead you need to authenticate on the channel web site in a web browser, export cookies to a cookies.txt file (there are extensions to do this), then use youtube-dl's "--cookies cookies.txt" option. To make this even more of a challenge, Discovery authentication tokens expire after about 15 minutes so you have to reload the page and export cookies for each download.

Any update on this? Downloaded the latest version of yt-dlp, tried to download first-48 episodes using extracted --cookies (Netscape) and also --cookies-from-browser. Neither of them give results.
$ yt-dlp https://play.aetv.com/shows/the-first-48/season-22/episode-9 --cookies-from-browser chrome

[Cookies] Extracting cookies from chrome
[Cookies] Extracted 4169 cookies from chrome
[aenetworks] /shows/the-first-48/season-22/episode-9: Downloading JSON metadata
[aenetworks]<PHONE_NUMBER>941: Downloading JSON metadata
[aenetworks]<PHONE_NUMBER>941: Retrieving Session
ERROR: [aenetworks] shows/the-first-48/season-22/episode-9: This video is only available for users of participating TV providers. Use --ap-mso to specify Adobe Pass Multiple-system operator Identifier and --ap-username and --ap-password or --netrc to provide account credentials.

yt-dlp https://play.aetv.com/shows/the-first-48/season-22/episode-9 --cookies ${PWD}/c.txt
[aenetworks] /shows/the-first-48/season-22/episode-9: Downloading JSON metadata
[aenetworks]<PHONE_NUMBER>941: Downloading JSON metadata
[aenetworks]<PHONE_NUMBER>941: Retrieving Session
ERROR: [aenetworks] shows/the-first-48/season-22/episode-9: This video is only available for users of participating TV providers. Use --ap-mso to specify Adobe Pass Multiple-system operator Identifier and --ap-username and --ap-password or --netrc to provide account credentials.

I've also tried regular --ap-mso Philo --ap-username<EMAIL_ADDRESS>--netrc and when it prompts for the code I have nothing to give it.

This works for me with current yt-dlp+Philo+A&E (cookies from Chrome):
--cookies cookies.txt --ap-mso=Philo --ap-username= --ap-password=None
 is the Philo account registered 10 digit phone number (no leading 1, no dashes), e.g.<PHONE_NUMBER>
If it asks for a code and you don't get one on your phone within a couple of minutes, just leave it blank and it'll probably work.

This isn't the YT-DLP repo.


online validation

please create validate php file if he on remote server and you edit him online .

Sorry @GandjaFuzz this isn't something I am looking to add at this time. Mainly due to limited time for this project and knowledge of the Nova API


Peg orderbook prices to a specific public key

Currently:
Orderbook right now autoselects the lowest price printed in the orderbook, indifferent from which server or what price is being printed. Right now, if someone sets an order with a price much lower than current prices on a server with empty wallets, it can render the dicoapp unusable.
Expected:
In the original dicoapp there was a parameter that could set a specific pubkey of a server to pull prices from. That way, price front running is blocked.
STEPS TO REPRODUCE:
In the original app there was a file like this:

~/dicoapp/imports/api/config$ cat tokenconfig.js  let tokenconfig = {     dICOtoken: {         name: 'GLX Token',         shortcode: 'GLXT',         siteurl: 'https://glx.co',         supporturl: 'https://glx.co',         pricebob: 'b30ab074d57e2aa0f639ae9bc5965792ceb6270c64561a612e421c43b2a4fd13',         netid: 0,         seed: '<IP_ADDRESS>'     } };

Pricebob parameter would read prices only from one pubkey. If the parameter was set to 0 it would be null and just read the first price printed in the orderbook.

Moved it here:
https://github.com/KomodoPlatform/dicoapp-e/issues/3


feat: initial support string_view and binary_view,  supports layout and basic construction + tests

Which issue does this PR close?

Closes #5469
Rationale for this change

Initially support StringViewArray and BinaryViewArray, mainly for adding layout and basic construction and tests for these two new types of array.
Note: This implementation is primarily based on these two PRs [#4585 datafuselabs/databend/pull/14662]
What changes are included in this PR?

Add two new types of arrays.
Are there any user-facing changes?
Yes

Hi @alamb , I added more tests for your kindly comments, PTAL again.

Hi @alamb @tustvold , I modified the code as you guys suggested and added more tests, PTAL again.

🚀  I filed a bunch of follow on tickets:
IPC format support for StringViewArray and BinaryViewArray #5506
https://github.com/apache/arrow-rs/issues/5507
https://github.com/apache/arrow-rs/issues/5508
https://github.com/apache/arrow-rs/issues/5509
https://github.com/apache/arrow-rs/issues/5510
https://github.com/apache/arrow-rs/issues/5511
https://github.com/apache/arrow-rs/issues/5513


sabnzbd Change service to systemd

The old style of jobs.service name wasn't working for me in systemd

cc @wbreejen

Don't know how to cc the maintainer of this service, can't find the account on github. Looks fine to me. Thanks.


has authority and islocalPlayer early initialization

Initialize hasAuthority and isLocalPlayer before calling Start and isLocalPlayer

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


Get the names of generated classes in an attempt

jsonschema2pojo generates Java classes recursively based on every existed object in the json string.
for example with a json result like this:
{
    "error": {
        "message": "A view with the same name already exists.",
        "code": 5162
    }
}

and the given class name as View, it generates View.java and Error.java files using below code:
mapper.generate(codeModel, className, packageName, apiResultString);

codeModel.build(new File("src").getAbsoluteFile());

How could we get a list of the names (or classes) which are generated based on nested objects in json body, so we know which classes are added to our package in addition to the root one explicitly named by us?
An issue is when I pass a plural name as class name to mapper.generate() (e.g. listDevices which is a json array in the first level, and objects in the second level) , jsonschema2pojo automatically singularizes it (i.e listDevice), so can't accurately reference the file name to compile that. What's the workaround for this?
Thanks

Any Idea?

Try JCodeModel#packages(), then call JPackage#classes() on each ¯_(ツ)_/¯

@joelittlejohn Thanks a lot and ✌(ツ)


feat(components): add support for unbind method in components

This allows component to release its state (custom subscriptions, timeouts, etc) when the view is unbound.
Check https://github.com/mikeric/rivets/issues/553#issuecomment-183061249 for more information

cc: @blikblum @Leeds-eBooks @mikeric @Duder-onomy

:+1:


Setup and cleanup tasks should support variables

At the moment, the different attributes of the commands exe-run, delete-file ... must be literals. It should be possible to use variables and formatted values for the attributes such as path, name or arguments or timeout. The attribute connection-string is not expected to support it.

An alpha version is available at https://ci.appveyor.com/project/Seddryck/nbi/builds/24847734/artifacts #1.21.0-alpha.1+36
This version doesn't support take into account relative paths (the base path is not included)!

A second alpha version fixing two bugs related to the connection-string not provided to the command but also reimplementing the notion of BasePath is available at https://ci.appveyor.com/project/Seddryck/nbi/builds/24848129/artifacts
1.21.0-alpha.1+38

Beta available at https://ci.appveyor.com/project/Seddryck/nbi/builds/24917349/artifacts or upgrade package via Update-Package NBi.Framework -version 1.21.0-beta0047.
Documentation updated.


Growatt update make PV power numbers fail

After update from Growatt, the generated power went from zero to huge numbers.
new version :

HA numbers :

Numbers on Growatt server page is correct :

Got an "Unknown" new mqtt entity with ok numbers though.

Got an "Unknown" new mqtt entity with ok numbers though.

I have exactly the same issue...did your ever solve it?