kube-proxy ProxyLoop() contends on mutex with iptables sync loop

By looking why sometime my sites magicaly slow down for a short period of time I got that :
each 5 seconds dns query are jumping from < 2 ms to that ...
until [[ 0 -eq 1 ]]; do  dig mysql-change @<IP_ADDRESS>  | grep -E "time: [0-9]{3,}" && date; done
;; Query time: 2187 msec
Wed Jul 29 13:39:31 UTC 2015
;; Query time: 2114 msec
Wed Jul 29 13:39:36 UTC 2015
;; Query time: 1890 msec
Wed Jul 29 13:39:41 UTC 2015
;; Query time: 1874 msec
Wed Jul 29 13:39:46 UTC 2015
;; Query time: 1930 msec
Wed Jul 29 13:39:51 UTC 2015
;; Query time: 1942 msec
Wed Jul 29 13:39:56 UTC 2015
;; Query time: 2350 msec
Wed Jul 29 13:40:01 UTC 2015
;; Query time: 2469 msec
Wed Jul 29 13:40:06 UTC 2015
;; Query time: 1898 msec
Wed Jul 29 13:40:11 UTC 2015
;; Query time: 2083 msec
Wed Jul 29 13:40:16 UTC 2015
;; Query time: 2110 msec
Wed Jul 29 13:40:21 UTC 2015
;; Query time: 1921 msec
Wed Jul 29 13:40:26 UTC 2015
;; Query time: 2023 msec
Wed Jul 29 13:40:31 UTC 2015
;; Query time: 1836 msec
Wed Jul 29 13:40:36 UTC 2015
;; Query time: 2182 msec
Wed Jul 29 13:40:41 UTC 2015
;; Query time: 2079 msec
Wed Jul 29 13:40:46 UTC 2015
;; Query time: 2066 msec
Wed Jul 29 13:40:51 UTC 2015
;; Query time: 1905 msec
Wed Jul 29 13:40:56 UTC 2015
;; Query time: 1999 msec
Wed Jul 29 13:41:01 UTC 2015
;; Query time: 1855 msec
Wed Jul 29 13:41:06 UTC 2015
;; Query time: 2043 msec
Wed Jul 29 13:41:11 UTC 2015
But it's not over, curl on ip gives me that :
until [[ 0 -eq 1 ]]; do curl -I <IP_ADDRESS>:9200 -s -w '%{time_total}' -o /dev/null | grep -E "^[1-9]" && date; done
2.083
Wed Jul 29 13:50:16 UTC 2015
2.247
Wed Jul 29 13:50:21 UTC 2015
1.874
Wed Jul 29 13:50:26 UTC 2015
2.019
Wed Jul 29 13:50:31 UTC 2015
2.006
Wed Jul 29 13:50:36 UTC 2015
1.718
Wed Jul 29 13:50:41 UTC 2015
1.954
Wed Jul 29 13:50:46 UTC 2015
2.065
Wed Jul 29 13:50:51 UTC 2015
1.896
Wed Jul 29 13:50:56 UTC 2015
1.968
Wed Jul 29 13:51:01 UTC 2015
1.556
Wed Jul 29 13:51:05 UTC 2015
There is something wrong in the way kube-proxy is working/updating. It's a real source of troubles on my side.

With further analysis anything run good on docker part, checking directly the virtual ip address of docker pod always return in time!
checked on coreos and default kubernetes debian image.

Open question :
Why using iptables to handle alone the inter-cluster communication instead of routing? each pod has it's own ip, it doesn't suffer from iptables refresh slowness, as well as missing rule. Nodes forwarding work great and on gce, it's ok to do so.
Skydns might handle pod ip as RR dns A record and all that mess will run smoother.
Currently I do have dbs with replication, php with some dependancies to other pods, so you can easily understand how high I'm dependant to a clean and really fast network.
I've got ~150 services wich lead to 2s with complete network stale, with 375 services it would take the whole refresh loop, and with more services what would happens?
I've got the feeling that generating a complete ipfile and injecting with iprestore will do less harm.
It's somehow important that kube team is looking at that. Production ready isn't really true on my case.

http://docs.k8s.io/v1.0/user-guide/services.html#why-not-use-round-robin-dns
There is not enough information here to properly address your issue.  What Kubernetes version, what OS, what cloud, how did you do setup, what network overlay if any, etc.
Running on my own cluster, for example:
root@af0e40b6c43d:/# dig +search @<IP_ADDRESS> kubernetes.default

; <<>> DiG 9.9.5-3ubuntu0.4-Ubuntu <<>> +search @<IP_ADDRESS> kubernetes.default
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 44773
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;kubernetes.default.svc.cluster.local.  You'll have to run more than 5000 loops. That's why I filtered on time > 1s.
Good points on DNS RR. But it's the easiest way to handle multiple endpoints while real balancing is WIP.
So I'm on a full 1.0.1 cluster  with 1 master, 12 nodes : 11 coreos, 1 debian. The gce nodes are all  on same power : n1-highmem-2.
The installation is from a kube-up on release 1.0.1 package.
2 Modifications has been made on kubelet pkg to fit my need : a relocation of safe_format_and_mount shell script and a safe parameter on iptables (-w switch) and that's all for coreos.
The debian node is full stock, "only" there to perform debug tasks and analysis as I send here.
The debian master is full stock too except the installation of ... htop .
The tests provided is from the debian node, as I know it is the main OS.
I've got:
104 pods (2 kubedns pods)
102 rc
151 svc
19 namespaces
17 external lb.
No overlays , nothing special, I stood as close as possible to upstream, even on the coreos installation.
We are not live now, so I still have time to debug anything you want and test whatever would make differences.

We know kube-proxy has a long-tail problem, but it's not usually
multi-second.  See the "histogram" below.  Your point about doing
iptables-restore in one shot is taken.
root@af0e40b6c43d:/# for i in $(seq 1 100000); do curl -Ik
https://kubernetes.default -s -w '%{time_total}' -o /dev/null; echo; done |
sort | uniq -c
171 0.014
14170 0.015
39305 0.016
19709 0.017
9367 0.018
4064 0.019
2361 0.020
1163 0.021
691 0.022
564 0.023
1097 0.024
981 0.025
2267 0.026
725 0.027
351 0.028
175 0.029
98 0.030
75 0.031
55 0.032
47 0.033
95 0.034
204 0.035
275 0.036
98 0.037
33 0.038
55 0.039
229 0.040
183 0.041
100 0.042
37 0.043
30 0.044
35 0.045
32 0.046
16 0.047
14 0.048
6 0.049
14 0.050
16 0.051
9 0.052
18 0.053
16 0.054
14 0.055
7 0.056
14 0.057
10 0.058
6 0.059
12 0.060
10 0.061
7 0.062
9 0.063
11 0.064
8 0.065
8 0.066
6 0.067
17 0.068
6 0.069
5 0.070
5 0.071
26 0.072
29 0.073
16 0.074
7 0.075
8 0.076
7 0.077
4 0.078
2 0.079
3 0.080
1 0.081
2 0.082
1 0.085
1 0.086
3 0.091
4 0.092
1 0.094
2 0.095
4 0.096
1 0.099
1 0.102
1 0.104
1 0.107
2 0.108
1 0.111
1 0.115
2 0.119
2 0.129
1 0.138
1 0.141
1 0.142
2 0.143
4 0.144
3 0.145
6 0.146
3 0.147
8 0.148
12 0.149
25 0.150
24 0.151
26 0.152
28 0.153
37 0.154
33 0.155
36 0.156
36 0.157
34 0.158
30 0.159
40 0.160
25 0.161
32 0.162
29 0.163
35 0.164
22 0.165
17 0.166
17 0.167
16 0.168
14 0.169
17 0.170
11 0.171
11 0.172
9 0.173
8 0.174
8 0.175
6 0.176
8 0.177
5 0.178
6 0.179
3 0.180
7 0.181
5 0.182
6 0.183
4 0.184
3 0.185
3 0.186
3 0.187
4 0.188
3 0.189
1 0.190
1 0.191
2 0.192
1 0.193
1 0.194
1 0.196
2 0.197
2 0.198
1 0.201
1 0.203
1 0.204
1 0.205
1 0.211
2 0.216
1 0.222
1 0.224
1 0.225
1 0.361
1 0.373
2 0.374
1 0.378
1 0.379
1 0.381
1 0.383
1 0.388
1 0.389
2 0.391
1 0.960
On Wed, Jul 29, 2015 at 11:50 AM, bnprss<EMAIL_ADDRESS>wrote:

@thockin https://github.com/thockin you're not running enough samples,
to be sure to have a least one pass on kube-proxy refresh. You'll have to
run more than 5000 loops. That's why I filtered on time > 1s.
Good points on DNS RR. But it's the easiest way to handle multiple
endpoints while real balancing is WIP.
So I'm on a full 1.0.1 cluster with 1 master, 12 nodes : 11 coreos, 1
debian. The gce nodes are all on same power : n1-highmem-2.
The installation is from a kube-up on release 1.0.1 package.
2 Modifications has been made on kubelet pkg to fit my need : a relocation
of safe_format_and_mount shell script and a safe parameter on iptables (-w
switch) and that's all for coreos.
The debian node is full stock, "only" there to perform debug tasks and
analysis as I send here.
The debian master is full stock too except the installation of ... htop .
The tests provided is from the debian node, as I know it is the main OS.
I've got:
104 pods (2 kubedns pods)
102 rc
151 svc
19 namespaces
17 external lb.
No overlays , nothing special, I stood as close as possible to upstream,
even on the coreos installation.
We are not live now, so I still have time to debug anything you want and
test whatever would make differences.
—
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/kubernetes/issues/11977#issuecomment-126056005
.

I was thinking more on iptables-restore, and I don't really see how to use
it safely.  There's no compare-and-swap optimistic concurrency mode and
there's no way I can see to load just a single chain - only whole tables.
This makes it very awkward to use for our "check if it exists and if not
add it" mode, especially if anyone else is using the NAT table.  Consider:
kube-proxy reads state of -t nat
kube-proxy iterates over state, checking for each rule it needs
user modifies -t nat
kube-proxy needs to make a change, replaces the -t nat section for just its
own chain
kube-proxy restores the state
the user change is wiped out
On Wed, Jul 29, 2015 at 5:58 PM, Tim Hockin<EMAIL_ADDRESS>wrote:

We know kube-proxy has a long-tail problem, but it's not usually
multi-second. See the "histogram" below. Your point about doing
iptables-restore in one shot is taken.
root@af0e40b6c43d:/# for i in $(seq 1 100000); do curl -Ik
https://kubernetes.default -s -w '%{time_total}' -o /dev/null; echo; done
|
sort | uniq -c
171 0.014
14170 0.015
39305 0.016
19709 0.017
9367 0.018
4064 0.019
2361 0.020
1163 0.021
691 0.022
564 0.023
1097 0.024
981 0.025
2267 0.026
725 0.027
351 0.028
175 0.029
98 0.030
75 0.031
55 0.032
47 0.033
95 0.034
204 0.035
275 0.036
98 0.037
33 0.038
55 0.039
229 0.040
183 0.041
100 0.042
37 0.043
30 0.044
35 0.045
32 0.046
16 0.047
14 0.048
6 0.049
14 0.050
16 0.051
9 0.052
18 0.053
16 0.054
14 0.055
7 0.056
14 0.057
10 0.058
6 0.059
12 0.060
10 0.061
7 0.062
9 0.063
11 0.064
8 0.065
8 0.066
6 0.067
17 0.068
6 0.069
5 0.070
5 0.071
26 0.072
29 0.073
16 0.074
7 0.075
8 0.076
7 0.077
4 0.078
2 0.079
3 0.080
1 0.081
2 0.082
1 0.085
1 0.086
3 0.091
4 0.092
1 0.094
2 0.095
4 0.096
1 0.099
1 0.102
1 0.104
1 0.107
2 0.108
1 0.111
1 0.115
2 0.119
2 0.129
1 0.138
1 0.141
1 0.142
2 0.143
4 0.144
3 0.145
6 0.146
3 0.147
8 0.148
12 0.149
25 0.150
24 0.151
26 0.152
28 0.153
37 0.154
33 0.155
36 0.156
36 0.157
34 0.158
30 0.159
40 0.160
25 0.161
32 0.162
29 0.163
35 0.164
22 0.165
17 0.166
17 0.167
16 0.168
14 0.169
17 0.170
11 0.171
11 0.172
9 0.173
8 0.174
8 0.175
6 0.176
8 0.177
5 0.178
6 0.179
3 0.180
7 0.181
5 0.182
6 0.183
4 0.184
3 0.185
3 0.186
3 0.187
4 0.188
3 0.189
1 0.190
1 0.191
2 0.192
1 0.193
1 0.194
1 0.196
2 0.197
2 0.198
1 0.201
1 0.203
1 0.204
1 0.205
1 0.211
2 0.216
1 0.222
1 0.224
1 0.225
1 0.361
1 0.373
2 0.374
1 0.378
1 0.379
1 0.381
1 0.383
1 0.388
1 0.389
2 0.391
1 0.960
On Wed, Jul 29, 2015 at 11:50 AM, bnprss<EMAIL_ADDRESS>wrote:

@thockin https://github.com/thockin you're not running enough samples,

to be sure to have a least one pass on kube-proxy refresh. You'll have to
run more than 5000 loops. That's why I filtered on time > 1s.
Good points on DNS RR. But it's the easiest way to handle multiple
endpoints while real balancing is WIP.
So I'm on a full 1.0.1 cluster with 1 master, 12 nodes : 11 coreos, 1
debian. The gce nodes are all on same power : n1-highmem-2.
The installation is from a kube-up on release 1.0.1 package.
2 Modifications has been made on kubelet pkg to fit my need : a
relocation
of safe_format_and_mount shell script and a safe parameter on iptables
(-w
switch) and that's all for coreos.
The debian node is full stock, "only" there to perform debug tasks and
analysis as I send here.
The debian master is full stock too except the installation of ... htop .
The tests provided is from the debian node, as I know it is the main OS.
I've got:
104 pods (2 kubedns pods)
102 rc
151 svc
19 namespaces
17 external lb.
No overlays , nothing special, I stood as close as possible to upstream,
even on the coreos installation.
We are not live now, so I still have time to debug anything you want and
test whatever would make differences.
—
Reply to this email directly or view it on GitHub
<
https://github.com/GoogleCloudPlatform/kubernetes/issues/11977#issuecomment-126056005

.

—
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/kubernetes/issues/11977#issuecomment-126144254
.

@thockin I made some test, and I'm now sure: no traffic is handled at all while kube-proxy iptables loop, checked by logging on level 5 .
I see three potential solutions :

keep the proxysocket.go run whatever it cost

Advantages:
little changes
Drawback:
It will be a major problem with a lot of services, the check will take much more time than the syncloop allow.
might be a huge CPU consummer

change the way kube-proxy check and insert rules
step one : iptables-save
step two : check rule existance
step three : iptables inclusion of missing rule (like it does right now)

Advantages:
limit the rate of external program call, do the thing safely and keep custom rules by not using iptables-restore. I guess there will be some perf improvement by just parsing/checking one file.
Drawback:
none?

use external tool
I've got in mind haproxy
Advantages:
All logic in the roadmap (and more) is allready implemented and well tested. Performance is really good.
Drawback:
dynamic inclustion/deletion of things must trig a reload of a map file...

So the real issue is that ProxyLoop() calls proxier.getServiceInfo(), which
takes the mutex.  This is an excellent point, thanks for raising it.  I
think that the algorithm we're discussing in the other thread will mitigate
the problem mostly, but it's still not a great design overall.
A better design would be store an atomic value in the ServiceInfo struct
and simply check that value in each ProxyLoop().

—
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/kubernetes/issues/11977#issuecomment-126261388
.

It is really a simple ugly workaround focused on the big loop that takes ages to complete, I agree with that. And I assume it's mitigation role.
My knowledge of go wont't help for your proposal, as you might have understood, it was the first time I code in that language and as a SysAdmin my skills are also limited in development tasks.
So I can't handle such logic changes in an efficient way.
Could you take care of it?

I'll see if I can throw something together.  Do you want me to take over the lock mitigation too, or do you want to do that?  It should be a relatively simple change given that you already found the place to do that.

No, it will be ok for the lock mitigation I figured out why red light cames from shippable and travis. And will comment on the PR.
Thank you for taking care of the mid term solution.


Add BetaInfo

This PR allows the minecraft-linux launcher to detect if the user is in the beta program.
With this <IP_ADDRESS> can be transformed to <IP_ADDRESS> (BETA).
<IP_ADDRESS> is the latest as of writing this PR.

Is the name BetaInfo introduced by you or have you copied it from a different definition?
If you have named that property I would recommend to better to use the name used in other projects like TestingProgramInfo here:
https://github.com/NoMore201/googleplay-api/blob/master/googleplay.proto#L517-L537

I didn't knew that project.
Yes that would be better, than my name (introduced by me today)


invalid opcode

I'm encountering an occasional crash with an application using tigerbeetle-node.
syslog shows
kernel: [  110.144682] traps: node[1827] trap invalid opcode ip:7f5448bc12fd sp:7ffd26aafb60 error:0 in client.node[7f5448bc0000+98000]

I'm guessing the client.node is tigerbeetle-node?

#0  std.crypto.gimli.State.permute_vectorized (self=0x7f3f54672010) at /home/brandon/rafiki/.yarn/unplugged/tigerbeetle-node-npm-0.3.2-8eb7218a19/node_modules/tigerbeetle-node/zig/lib/std/crypto/gimli.zig:135
#1  0x00007f3f545f5cfe in std.crypto.gimli.State.squeeze (self=0x7f3f54672010, out=...)
    at /home/brandon/rafiki/.yarn/unplugged/tigerbeetle-node-npm-0.3.2-8eb7218a19/node_modules/tigerbeetle-node/zig/lib/std/crypto/gimli.zig:171
#2  0x00007f3f545c5629 in std.crypto.tlcsprng.fillWithCsprng (buffer=...)
    at /home/brandon/rafiki/.yarn/unplugged/tigerbeetle-node-npm-0.3.2-8eb7218a19/node_modules/tigerbeetle-node/zig/lib/std/crypto/tlcsprng.zig:162
#3  0x00007f3f545c5589 in std.crypto.tlcsprng.initAndFill (buffer=...)
    at /home/brandon/rafiki/.yarn/unplugged/tigerbeetle-node-npm-0.3.2-8eb7218a19/node_modules/tigerbeetle-node/zig/lib/std/crypto/tlcsprng.zig:192
#4  0x00007f3f545b368a in std.crypto.tlcsprng.tlsCsprngFill (_=0x7f3f5464eb60 <interface>, buffer=...)
    at /home/brandon/rafiki/.yarn/unplugged/tigerbeetle-node-npm-0.3.2-8eb7218a19/node_modules/tigerbeetle-node/zig/lib/std/crypto/tlcsprng.zig:121
#5  0x00007f3f545c5709 in std.rand.Random.bytes (r=0x7f3f5464eb60 <interface>, buf=...)
    at /home/brandon/rafiki/.yarn/unplugged/tigerbeetle-node-npm-0.3.2-8eb7218a19/node_modules/tigerbeetle-node/zig/lib/std/rand.zig:42
#6  0x00007f3f545c1572 in std.rand.Random.int (r=0x7f3f5464eb60 <interface>) at /home/brandon/rafiki/.yarn/unplugged/tigerbeetle-node-npm-0.3.2-8eb7218a19/node_modules/tigerbeetle-node/zig/lib/std/rand.zig:57
#7  0x00007f3f545b9771 in Context.create (env=0x72b20d0, allocator=0x7f3f5464eb50 <c_allocator_state>, io=0x6b89918, cluster=746649394563965214, configuration_raw=...)
    at /home/brandon/rafiki/.yarn/unplugged/tigerbeetle-node-npm-0.3.2-8eb7218a19/node_modules/tigerbeetle-node/src/node.zig:137
#8  0x00007f3f545b6515 in init (env=0x72b20d0, info=0x7ffe34c68ca0) at /home/brandon/rafiki/.yarn/unplugged/tigerbeetle-node-npm-0.3.2-8eb7218a19/node_modules/tigerbeetle-node/src/node.zig:435
#9  0x00000000009da63f in v8impl::(anonymous namespace)::FunctionCallbackWrapper::Invoke(v8::FunctionCallbackInfo<v8::Value> const&) ()
#10 0x0000000000c06acb in v8::internal::MaybeHandle<v8::internal::Object> v8::internal::(anonymous namespace)::HandleApiCallHelper<false>(v8::internal::Isolate*, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::FunctionTemplateInfo>, v8::internal::Handle<v8::internal::Object>, v8::internal::BuiltinArguments) ()
#11 0x0000000000c08076 in v8::internal::Builtin_Impl_HandleApiCall(v8::internal::BuiltinArguments, v8::internal::Isolate*) ()
#12 0x0000000000c086f6 in v8::internal::Builtin_HandleApiCall(int, unsigned long*, v8::internal::Isolate*) ()
#13 0x0000000001427179 in Builtins_CEntry_Return1_DontSaveFPRegs_ArgvOnStack_BuiltinExit ()
#14 0x00000000013bff02 in Builtins_InterpreterEntryTrampoline ()

Hey! You're correct that client.node is tigerbeetle-node, we should probably make that name more unique to avoid confusion.
As for the SIGILL, this is almost certainly caused by the CPU running client.node lacking support for some features (in this case related to SIMD) which were supported by the system which built client.node. The Zig compiler optimizes for the host system by default using the equivalent of -march=native for C compilers.
To tell zig to produce a binary that can be run on e.g. any x86_64 cpu regardless of features we can pass -mcpu=baseline to our zig build-lib invocation in package.json:
diff --git a/package.json b/package.json
index 77aa733..9b71f68 100644
--- a/package.json
+++ b/package.json
@@ -38,7 +38,7 @@
     "benchmark": "./scripts/benchmark.sh",
     "build": "yarn build:tsc && yarn build:zig",
     "build:tsc": "tsc",
-    "build:zig": "mkdir -p dist &&  zig/zig build-lib -OReleaseSafe -dynamic -lc -isystem build/node-$(node --version)/include/node src/node.zig -femit-bin=dist/client.node",
+    "build:zig": "mkdir -p dist &&  zig/zig build-lib -mcpu=baseline -OReleaseSafe -dynamic -lc -isystem build/node-$(node --version)/include/node src/node.zig -femit-bin=dist/client.node",
     "clean": "rm -rf build dist node_modules src/zig-cache zig",
     "install:zig": "./src/tigerbeetle/scripts/install_zig.sh",
     "postinstall": "./scripts/postinstall.sh",

As for why this is only happening on some github actions runs, I suspect that github is using a different host machine with a different CPU for the build and run steps on occasion. This could be confirmed by obtaining the output of lscpu before each step is run.

@wilsonianb how did -mcpu=baseline go? The ten second delay between setting up the test environment and running the tests sounds like what @ifreund said, a build on one machine with run steps on another.
Are you able to get the output of lscput?
We can make -mcpu=baseline the default if it works for you.

Here's the lscpu output some unsuccessful and successful runs:
https://gist.github.com/wilsonianb/e157e01ea9cb352f273ee2985a69d98c
I'll try with -mcpu=baseline and see if it fixes runs on the unsuccessful CPU.

@wilsonianb excellent, thanks for the output. That confirms that github is using different CPUS for different runs, and from this sample set the CPU of the failing run is missing the following features compared to the runs that succeeded:
3dnowprefetch hle rtm mpx avx512f avx512dq rdseed adx smap clflushopt avx512cd avx512bw avx512vl xsavec xsaves

This makes me fairly confident that my hypotheses above was correct and that -mcpu=baseline will solve this issue.

I had a successful test run with -mcpu=baseline on this cpu which resembles the previously unsuccessful one: https://gist.github.com/wilsonianb/072f40f53620cb2ef69fb4759a799dca

It looks like non-baseline cpu was sneaking in via scripts/postinstall.sh which is actually how we build the client when doing a module install via yarn/npm.
Hopefully fixed now here: https://github.com/coilhq/tigerbeetle-node/commit/2b8c870b012ecdd604225bfef653afe3c0aa0bff

This appears to be fixed in 0.4.1


Update Swagger API

Problem statement/business needs:
Swagger documentation is incomplete. We need to update it for at least these endpoints:

HTML5 predict
MUI predict
Angular predict

Definitions of Done:

DoD1
DoD2

Dependencies or related tasks:
Comments:

Ready for test
http://<IP_ADDRESS>:5001/redoc#operation/html5_predict_html5_predict_post
http://<IP_ADDRESS>:5001/docs#/default/html5_predict_html5_predict_post (click on Schema to get more info)


a0.sdk.internal_error.plain: Unable to complete the operation, Code=-1005, The network connection was lost

Checklist

[X] The issue can be reproduced in the auth0_flutter sample app (or N/A).
[X] I have looked into the Readme, Examples, and FAQ and have not found a suitable solution or answer.
[X] I have looked into the API documentation and have not found a suitable solution or answer.
[X] I have searched the issues and have not found a suitable solution or answer.
[X] I have searched the Auth0 Community forums and have not found a suitable solution or answer.
[X] I agree to the terms within the Auth0 Code of Conduct.

Description
When using a refresh_token to obtain a new access_token with auth0.api.renewCredentials method, library throws periodically ( we where not been able to track it when ) this error:

_Auth0 token is not refreshed: a0.sdk.internal_error.plain: Unable to complete the operation. CAUSE: Error Domain=NSURLErrorDomain Code=-1005 "The network connection was lost." UserInfo={_kCFStreamErrorCodeKey=53, NSUnderlyingError=0x3000d12c0 {Error Domain=kCFErrorDomainCFNetwork Code=-1005 "(null)" UserInfo={_kCFStreamErrorCodeKey=53, _kCFStreamErrorDomainKey=1}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask .<2>, _NSURLErrorRelatedURLSessionTaskErrorKey=(","date":"2024-11-18T11:56:08.794723)
NSLocalizedDescription=The network connection was lost., NSErrorFailingURLStringKey=https://{our_tenant}/oauth/token, NSErrorFailingURLKey=https://{our_tenant}/oauth/token, kCFStreamErrorDomainKey=1}
Reproduction

Obtain new access_token and refresh_token
Call auth0.api.renewCredentials method with refresh_token to get new access_token

Additional context
No response
auth0_flutter version
1.7.2
Flutter version
3.24.4
Platform
iOS
Platform version(s)
No response

This was caused my slow Actions on Auth0 platform.


Default --name in public CLI

Making the --name option at the command line optional with a reasonable default seems to be a small usability improvement - provided the default is sensible?
Because the default must be dynamic, we can't give it directly in the CLI help (as a dark green [default: ...] entry). Rather we set the default to None and fill this at runtime based on the other options.
Currently the default is "{N} genomes using {METHOD}", without attempting to record anything further like the date or any (non-default) method parameters. We could do that though?
$ pyani-plus fastani --help

 Usage: pyani-plus fastani [OPTIONS] FASTA

 Execute fastANI calculations, logged to a pyANI-plus SQLite3 database.

╭─ Arguments ────────────────────────────────────────────────────────────────╮
│ *    fasta      PATH  Directory of FASTA files (extensions .fas, .fasta,   │
│                       .fna)                                                │
│                       [required]                                           │
╰────────────────────────────────────────────────────────────────────────────╯
╭─ Options ──────────────────────────────────────────────────────────────────╮
│ *  --database           FILE           Path to pyANI-plus SQLite3 database │
│                                        [required]                          │
│    --name               TEXT           Run name. Default is 'N genomes     │
│                                        using METHOD'.                      │
│    --create-db                         Create database if does not exist   │
│    --executor           [local|slurm]  How should the internal tools be    │
│                                        run?                                │
│                                        [default: local]                    │
│    --help       -h                     Show this message and exit.         │
╰────────────────────────────────────────────────────────────────────────────╯
╭─ Method parameters ────────────────────────────────────────────────────────╮
│ --fragsize        INTEGER RANGE [x>=1]       Comparison method fragment    │
│                                              size                          │
│                                              [default: 3000]               │
│ --kmersize        INTEGER RANGE [x>=1]       Comparison method k-mer size  │
│                                              [default: 16]                 │
│ --minmatch        FLOAT RANGE [0.0<=x<=1.0]  Comparison method min-match   │
│                                              [default: 0.2]                │
╰────────────────────────────────────────────────────────────────────────────╯

Type of change

[ ] Bug fix (non-breaking change that fixes an issue)
[x] New feature (non-breaking change that adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality not to work as expected)
[ ] This change requires a documentation update
[ ] This is a documentation update

Action Checklist

[x] Work on a single issue/concept (if there are multiple separate issues to address, please use a separate pull request for each)
[ ] Fork the pyani-plus repository under your own account (please allow write access for repository maintainers)
[x] Set up an appropriate development environment (please see CONTRIBUTING.md for this repository)
[x] Create a new branch with a short, descriptive name
[x] Work on this branch

[x] style guidelines have been followed (please see CONTRIBUTING.md for this repository)
[x] new code is commented, especially in hard-to-understand areas
[x] corresponding changes to documentation have been made
[x] tests for the change have been added that demonstrate the fix or feature works

[x] Test locally with pytest-plus -v non-passing code will not be merged
[x] Rebase against origin/master
[x] Check changes with linting/formatting tools before submission (please see CONTRIBUTING.md for this repository)
[x] Commit branch
[x] Submit pull request, describing the content and intent of the pull request
[ ] Request a code review
[x] Continue the discussion at Pull requests section in the pyan-plus repository

(not merging rn because of other pending PRs)

Missed e53818b46bf41057701e5c2ee841ebd57141fc37 during the rebase & merge, fixed now.


Overhaul attribute handling (but not Attr itself)

See commit comments for details.
Would appreciate review from @Sebmaster and @Joris-van-der-Wel if you have the time :).
We need to figure out the fix for https://github.com/whatwg/dom/issues/31 before landing, I think.

The referenced bug in the spec is fixed now.
I looked over it a bit (very roughly) and didn't notice anything to nitpick, but I won't have a chance to test it myself.
Are there new w3c tests which cover attributes which we could add to our suite?

Are there new w3c tests which cover attributes which we could add to our suite?

There are, but they're tied to the tests for Attr being a non-Node, so I can't quite enable them just yet. But, enabling them (and ignoring those failures) is what found that spec bug.


update repo to reflect draft 9

cc @Kalf @otterdahl

I dont' have draft 9, only draft 8. Can you send it to me?

i'm away from the office until tuesday, but @Kalf should have it? otherwise write bahar or dinos if you need it before tuesday.

I have updated the extended sxl specification document to the best of my abilities to reflect draft 9. The examples has been removed for now since they do not apply anymore. They can be reintroduced if they are updated. It is difficult for me to do since I haven't been involved directly in the discussion.
The xlsx-file which defines draft 9 has the following issues:

RSMP-version number is moved one row downwards. Some parameters, such as RSMP version number needs to stay in it's exact location. The simulators may "assume" the exact location of many cells in the excel sheet.
The SXL seems to remove M0012 and M0013. But they are needed for coordination support which were introduced in SXL 1.0.8. I've kept them in place

Furthermore, I've kept the statuses for improved traffic counting (S0205-S0208).


Add feature flags for Windows SDK versions

Suggestion
It's fairly common for projects to set an older version of Windows as their "minimum supported version". However, this means that they must be careful which Windows APIs they use as not all APIs are available on all versions of Windows.
One way to verify that the APIs your project uses exist on a given version of Windows is to build against the SDK for that Windows version. However, this isn't always practical (projects may not control what software is on their CI machines and installing Windows SDKs is slow), causes other build issues (e.g., using Arm64EC requires the Windows 11 SDK) and doesn't help at all when using raw-dylib (as the Windows SDK import libraries aren't used). Even if a project is doing this, it would be nice to get clear errors during the Rust build rather than obscure linker failures.
Instead, windows-rs could add feature flags that corresponded to the various Windows SDK versions, which would allow projects to select which set of APIs to make available at build time.

Specifically for Rust's std use case, feature flags wouldn't be the best approach. It would really need to be an option in the windows-bindgen crate (e.g. --api-version 10.0.10240) that errors if a function is used that isn't supported by the target version.

This will require accurate upstream targeting information. SupportedOSPlatform is not currently stable/usable.

Yes assuming we can stabilize the version metadata, I'd initially only make this available through windows-bindgen as a filter/validator of sorts.
It does however appear that there's not been much progress in stabilizing this metadata, so this may all be wishful thinking at present:
https://github.com/microsoft/win32metadata/issues/738

Closing this issue until there's a resolution on metadata - let's keep the conversation going on the upstream issue: https://github.com/microsoft/win32metadata/issues/738


rename whitespace param to be more accurate

When you wanted to ignore whitepace, the param ignoreWhiteSpace was set to false and if you wanted to keep whitespace that param was set to true which strikes me as backwards, so I have renamed it for clarity.
I also noted that this is an internal class' method returning an instance of an internal class, with no way to pass a value to this param in normal use, so testing this is a bit of a hassle, so I have chosen not to do it.

You approved, but I can't merge it btw ;)

@rogusdev yeah. I'll get this merged soon

replaced by #7 with tests and incorporating desired functionality from #5


System.InvalidOperationException: 'The control already has a visual parent.' when call ShowDialog 2nd time

Describe the bug
call ShowDialog second time getting the following exception:
System.InvalidOperationException: 'The control already has a visual parent.'
** Code
var dialog = new DialogWindow();
dialog.ViewModel = new DialogViewModel(interaction.Input);
var x = await dialog.ShowDialog(this);
interaction.SetOutput(x);
** Inside the DialogWindow
No issue if I remove the ContentControl -  <ContentControl Content="{Binding CurrentViewModel}" />
and use directing binding ------                 <TextBlock Text="{Binding CurrentViewModel.Item.Name}"/>

Desktop (please complete the following information):
OS: Windows 10

I found the problem, the content of the ContentControl is a view which were registered using RegisterLazySingleton(). It works after change to use just Register()


Update cloning url

##last version of code shows this error :
<EMAIL_ADDRESS>Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights and the repository exists.

Hello @Astro0mar
It happens because you don't have a key to exchange with Github.
I recommend you to create SSH key so you can clone/pull/push using SSH instead of HTTPS. Here is a doc you can follow: https://docs.github.com/en/authentication/connecting-to-github-with-ssh

Many thanks for your time. I appreciate your guidance.

@Astro0mar you are welcome!


Bump app build number to 286

this will require a manual cherry-pick for 1.30
I still need to bump the version number

@enahum
Error trying doing the automated Cherry picking. Please do this manually
+++ Updating remotes...
Fetching upstream
Fetching origin
+++ Updating remotes done...
+++ Creating local branch automated-cherry-pick-of-#4221-upstream-release-1.31-1587663421
Branch 'automated-cherry-pick-of-#4221-upstream-release-1.31-1587663421' set up to track remote branch 'release-1.31' from 'upstream'.
+++ Downloading patch to /tmp/4221.patch (in case you need to do this again)

+++ About to attempt cherry pick of PR. To reattempt:
  $ git am -3 /tmp/4221.patch

Applying: Bump app build number to 286
Using index info to reconstruct a base tree...
M	android/app/build.gradle
M	ios/Mattermost.xcodeproj/project.pbxproj
Falling back to patching base and 3-way merge...
Auto-merging ios/Mattermost.xcodeproj/project.pbxproj
Auto-merging android/app/build.gradle
CONFLICT (content): Merge conflict in android/app/build.gradle
Patch failed at 0001 Bump app build number to 286
Use 'git am --show-current-patch' to see the failed patch
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".

+++ Conflicts detected:

UU android/app/build.gradle

+++ Aborting in-progress git am.

+++ Returning you to the master branch and cleaning up.


Format examples with Prettier too

As we migrate example code from Dan's Codepen into the repo, let's run it through Prettier too for consistency. This will also help with issues like #310, if we start embedding these examples within markdown.
I created a custom Prettier config for code in the examples directory for 2 reasons:

REPLs that we link to like Codepen have narrower widths and so it makes sense for the print-width to be shorter. (Also if we start embedding examples within markdown, the <code> blocks are narrower too.)
Nearly no browsers support trailing commas in functions and it didn't seem worth introducing this potential confusion for users who might try to copy-paste example code.

I think we should change how highlighting is done since Prettier now can change line numbers.
Ideally it would be inline
``
// highlight

in the code that gets stripped out and is parsed by the code frame display.

It'll also be much easier to maintain in general.

I'm working on the plug-in for embedding now FWIW, trying to figure out the syntax for line-highlights.
At first I thought "formatting will mostly remain stable so line highlighting really won't be any tricker than before" - but if we change our Prettier config, or it makes changes to its own defaults, that could cause a lot of headache updating all of the places we reference line numbers
Also it's just kind of a hassle anyway to figure them out. So yeah, I agree that specifying in-line would be nicest. Not sure yet of the best way to do this though. Will give it some thought.

FWIW, the current line-highlighting syntax is part of Gatsby's built-in Prism plug-in. I could probably update that plug-in to support a different syntax though. I think the inline comment would work fine for embedded/inline snippets. It's just a bit trickier with Prettier-formatted ones. But it's still better than the {line-number} syntax b'c at least you can visual inspect if a comment was moved by prettier without running the code. Maybe we just need to mimic eslint and have two forms: // highlight-line and // highlight-next-line or something.

Currently I'm thinking of using the following syntax:
```embed:path/to/file.js```

This creates an inlineCode Remark node which we can traverse and pattern-match for values beginning with "embed:". We can infer the Prism language from the file extension (eg ".js" -> "javascript jsx"). Then we can load the file in question, extract // highlight-line and // highlight-next-line comments, and convert the node to one that will use Prism for markdown highlighting.

I think I have a good proposal for this now, with gatsbyjs/gatsby/pull/3012
Build-time code embedding. Line-highlighting supported for various common language comment formats (eg JavaScript, CSS, HTML, YAML). etc.

I'm going to merge this and follow up with a PR that uses my new gatsby-remark-embed-snippet plugin to embed some Prettier-formatted examples within the Markdown.


Add Neo4j support

@djvs what this PR makes?

Wow! This PR adds Neo4j support, it's surprising 🎉
So sorry for kept you waiting, but I'm eager to merge this PR. Please give me a little time to review this.

@cheerfulstoic This work seems to be done mainly by you, although @djvs has opened this PR.
Is it okay for you to integrate your work into RailsAdmin?
Looks like some extra work is needed to merge this, but I want to try if it is possible.

@cheerfulstoic This work seems to be done mainly by you, although @djvs has opened this PR.
Is it okay for you to integrate your work into RailsAdmin?
Looks like some extra work is needed to merge this, but I want to try if it is possible.

My company commissioned this work a few years back.  Please feel free to use assuming @cheerfulstoic approves.

Yeah, absolutely feel free to use it

Looks like we need some more work to make this fully functional, so I've merged this into separate branch neo4j.
Thanks a lot for your contribution!


Split doc site build into separate travis job

This will help us avoid build timeouts by moving unrelated tasks into separate jobs (which each get 50 min max). Also when the site fails, it's easier to tell that it's not "a real error". 😂

#dibs


[Bug]: weightedMean aggregation in DataTables count nulls and zeros in weightCol as 1

Describe the bug
When using totalAgg=weightedMean in DataTables, null values and zeroes in the weightCol prop are actually given a weight of 1. Leads to incorrect weighted averages. This is only affecting the total row - subtotals appear to be calculated correctly.
Steps to Reproduce
```sql test
select 1 as id, 'group1' as category, 0.8 as value_col, 2 as weight_col
union
select 2 as id, 'group2' as category, 0.2 as value_col, 1 as weight_col
union
select 3 as id, 'group2' as category, 0.5 as value_col, 3 as weight_col
union
select 4 as id, 'group2' as category, 1 as value_col, null as weight_col
```

<DataTable data={test} subtotals=true totalRow=true  groupBy=category>
  <Column id=id />
  <Column id=value_col totalAgg=weightedMean weightCol=weight_col />
  <Column id=weight_col totalAgg=sum />
</DataTable>

Logs
N/A

System Info
N/A

Severity
serious, but I can work around it
Additional Information, or Workarounds
Potential workaround: multiply your weightCol values by an arbitrarily large number (e.g. 1,000,000) so the impact of the weight of 1 from the nulls, zeros is irrelevant. Kind of hacky... but it works.

closed by #2105


Wrong char in example: # sudo dracut –f -v

In the command "# sudo dracut –f -v" note that the f is not proceeded with a hyphen, so copying this command exactly will not work.
When performing this action, a hyphen is required.

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

ID: 3f6b075e-e72b-aa46-4c91-3b722707347d
Version Independent ID: 6751d66c-9bdc-ab03-f989-1448740e1e58
Content: Create and upload a CentOS-based Linux VHD in Azure
Content Source: articles/virtual-machines/linux/create-upload-centos.md
Service: virtual-machines-linux
GitHub Login: @szarkos
Microsoft Alias: szark

@pipern thanks for the feedback!
@szarkos can you confirm for me? I am not familiar with these steps. If there is an error I am happy to make the change.

@pipern I am not sure I 100% understand. Can you paste exactly what you used to get the code to work? I can then make the change. Thanks in advance!

It's just a '-' turned into a '–' because the original author probably used Word for editing.  I thought I fixed all these.  I can submit a PR to resolve it.

@szarkos Ah okay! makes sense why I was having issues seeing it :)

I've submitted a PR to resolve this.  I think we can close this now.  Thanks!

@szarkos Just to help me follow along/provide issues/PRs in the future, can you say how to find the related PR? I've searched https://github.com/MicrosoftDocs/azure-docs/pulls?utf8=✓&q=is%3Apr+hyphen (and a few other terms too) but don't spot it. I'd normally expect to find it linked from this current issue? Is the workflow slightly different here?
Thank you! (and sorry @MicahMcKittrick-MSFT that the report was a little terse!)
Entertaining that even Microsoft has trouble with hyphens turning into en dashes in documentation :)

@pipern there is a separate private repo for doc change PRs coming from internal folks like me.  It should synchronize with this public repo at some point.
Thanks,
Steve


When is node v14 support coming?

As the title implies, when is support for node v14 coming?

Hi Andriy,
I can't share dates when new features will be available, but I can tell you that it's under active development.
Dan

We would also welcome node v14 support :)

Oh this is a very active project ... we're on node v18 in the meantime ... are there alternative nom project I could use instead of this one?

See issue #44


New version: Jackett.Jackett version 0.22.260

Pull request has been created with WinGet Releaser :rocket:
Microsoft Reviewers: Open in CodeFlow

This package installs and launches normally on a Windows 10 VM.


Maintainers

@thedirtyfew I have added a dash-extensions feedstock to conda-forge. Would you like to be added as a maintainer?

Hi @mitchellwood ! I've noticed that the maintenance of this recipe seems to have lapsed. I can help with this - are you able to add me as maintainer? Thanks!

Hi @mitchellwood ! I've noticed that the maintenance of this recipe seems to have lapsed. I can help with this - are you able to add me as maintainer? Thanks!

Hey @whophil, you should be added as a maintainer now

Thanks @mitchellwood !


Sign in bug

Sign in bug removed and login redirects to home page.

Why isn't the app bar visible.


fix(Algebra/Module/LinearMap): weaken an over-eager coercion

We do not want AlgHom to cast to LinearMap via the rarely-used DistribMulActionHom.
The only places this was used are:

ones that I wrote accidentally, which are replaced with AlgHom.toLinearMap (for which lemmas already exist)
a non-unital case, where I've inserted the transitive coercion manually (and a TODO); a syntactic change that does not change the underlying term

We could consider adding a LinearMapClass.toLinearMap coercion in a future PR, but I would guess this is just unification hell compared to AlgHom.toLinearMap, so I don't want to volunteer to do it.

bors merge

bors merge
The above was a network failure


Addon on an android XBMC Player doesn't work

my hyperion systems runs well on a openelec x64 system.
If I install the addon on a xbmc of a android mediaplayer, it sends no data to the hyperion rpi server.
Is it because of the internal grapper?
thanks

In the hyperion config, you can disable the grabber because that only works on rpi.
I got this working fine on an Android console with tegra soc.
Are you sure the android stick can reach the pi over the network? Please check whether you configured the ip address right in the plugin settings

the hyperion server stays on the rpi, which is connected to the RGB LED. The XBMC Player ist the android device. I had a PC with openelec which runs fine with the hyperion xbmc-addon. But not on the android device with xbmc.

I understand your setup, mine is comparable.
please try to install an ssh app on the android stick and ping the rpi if you can

Hi, I have a similar setup : Hyperion server on a RPI connected to leds and an android tv box running Kodi on the same network. I do think my android device can reach the hyperion server because when I play a movie on the android device the leds light themselves but remain white. Any clue of what it's going on ? I have disabled the frame grabber option in the hyperion config file.

I have installed OpenElec on the same box and I have the same issue. There is no such issue if I use a Windows pc as Xbmc client or if I use Xbmc from the Pi . It's as is the first picture led data is sent to the hyperion server and then nothing else. Please tell me how I can find more information to see what's going on.

Hey guys, I've setup my amlogic S802 android M8 box with openelec with video capture enabled in the build.
( http://freaktab.com/forum/tv-player-support/amlogic-based-tv-players/eny-acemax-em8-square-em6q-etc-devices/491016-openelec-5-0-8-eny-m8-2g-square-with-amcodec-boblightd-support-updated )
I've talked to the developer of this rom and he mentioned that Hyperion would need to add the amcodec hardware acceleration to its code.. not sure if anyone here could maybe look into it.
This is what he said: "At the moment only boblight is supported because boblight has included the hardware amcodec. My build of Openelec has enabled the amcodec to output to /dev/videocap0 so that boblight can pick it up and do its thing.
If this is the official github of hyperion https://github.com/tvdzwan/hyperion you can open an issue and ask for them to add amcodec support. You are better off asking them due to you having all the hardware that is required for hyperion."

My 2 cents,
I have also tried to add this addon on my minix X8-h Plus and found that only SDTV compressed movies will play with the hyperion ambilight on an Raspberry with openelec.
But when using a HTPC with openelec or a Samsung note 2014 or an Asus memo tablet both with kodi from the google play site, this script works. No problems for 720p and 1080p (have no higher coded movies)

There is just support for not special hardware accelerated clients atm. We will see what we could do.


Changes to "Mile Post" description and field names

Structural change between versions 1 and 2 or NENA-STA-006
Change descriptive name “Mile Post” to “Milepost” and changed associated field name “Mile_Post” to “Milepost” in the SiteStructureAddressPoint layer.
Source
NENA-STA-006.2-2022 from sub-bullets in "Specific structural changes to the Data Model that were made:" bullet on page 13 under the Reason for Issue/Reissue section.

Adopted by Data Model Template working group Consent Agenda on 2022-11-23.


Scoverage and latest scalajs

Current coverage is 3.48%

Branch #90 has no coverage reports uploaded yet.

No diff could be generated. No reports for master found.

Powered by Codecov. Updated on successful CI builds.


[Fix] Adding header guards to header files in include/runtime/cpu

While trying to benchmark Hidet on the CPU, I encountered some compilation errors caused by function re-definition. It was due to multiple same include statements within the same source.cc file.
I added the header guards to avoid the error.

@BolinSNLHM
Is it actual PR?

@BolinSNLHM
Is it actual PR?

Yes but it was before I joined the company

If so, maybe we can move it to CentML/hidet repo.
From the other side CPU is not the first target right now. So, can postpone it to when it would be actual

If so, maybe we can move it to CentML/hidet repo. From the other side CPU is not the first target right now. So, can postpone it to when it would be actual

Yes, that makes sense


Trigger automatically when input is focused

Hi. I was trying to get the calendar to work automatically without a specified toggle. There's a couple small places where the toggle is required (missing checks for hasToggleTarget). But after that, when I added data-action="focus->datepicker#toggle" to my input the calendar steals the focus and disappears.
Trying to get this working myself I wasted quite some time that I can't really spare right now. Would you be willing to add this option to the datepicker? So it isn't triggered explicitly by clicking the toggle but automatically when the input field it's attached to is focus (but still leaving the option to enter the date using the keyboard)?
I might find some time for this later but I'm not really sure.

Fixing the requirement for having a trigger was the easy part, but then having the calendar work without having focus turned out to be a hard thing. I'll try and find some time for this.


404 should delete package

https://r.cnpmjs.org/-/package/@nightstomp/ngx-image-gallery/syncs/61f57443c933c892e02eb708/log

https://registry.npmmirror.com/-/package/@nightstomp/ngx-image-gallery/syncs/61f6b7d9c301356530b46d23/log


Is there way to know if a format string is valid ?

Hello,
First, thanks a lot for this lib.
I'm working on a project where I'm using moment to parse date string. The thing is that I need to ask the user to tell me which format string to use. Is it MM-DD, DD-MM etc...
But, I don't know against which values this format will be used. I've spend quite some time to validate a format but without success :
const a = moment();
a.format('thisiswrong') // Does return something: "t2i1i111rong"

const b = moment(null, "thisisalsowrong", true) // Will always be isValid() === false even with a real format

I absolutely understand that it's not a bug and it does work has intended. Moment can not guess what will be the input so there is - I guess - tons of valid format that will be accepted.
I'm just wondering is there is a way to validate a format string or not ? Anything I can do to improve it, some pattern is the format I could check ?
Thanks again,

You can pass a list of formats as the second argument to the constructor.
I also recommend strict mode.
Then, you can check if the moment isValid() to see if the input produces a valid date.
This is a great question for Stack Overflow.
Please re-open if you still have issues.


Timezone and shading

This PR adds support for timezone-specific airmass plots, and in the process corrects an error in which nighttime would be incorrectly unshaded if it is not centered in the plot.
Example:

Calls look like this:
plot_airmass(pcyg_target, CTO, now.to_datetime(timezone=CTO.timezone), use_local_tz=True, brightness_shading=True)

now is an astropy time object, CTO is an observatory (UF Campus Teaching Observatory).
This PR is built on https://github.com/astropy/astroplan/pull/445 but does not depend on it; it can be refactored to be separate if needed.

Includes both #449 and #445


ESP hangs when receive GPIO interrupt during sending MQTT message if can't send it (IDFGH-8339)

Answers checklist.

[X] I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
[X] I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
[X] I have searched the issue tracker for a similar issue and not found a similar issue.

IDF version.
v4.4.2
Operating System used.
Windows
How did you build your project?
VS Code IDE
If you are using Windows, please specify command line type.
PowerShell
Development Kit.
ESP32-D0WD-V3
Power Supply used.
USB
What is the expected behavior?
Doesn't hang!
What is the actual behavior?
If ESP lose internet connection during sending an MQTT message and simultaneously gets GPIO interrupt, it hangs.
Steps to reproduce.

Connect MQTT client
Send something by MQTT client on GPIO interrupt
Touch that GPIO continuously to send MQTT messages
During touching, disconnect the router from the internet
Continue touching and you will see that ESP hangs

Debug Logs.
No response
More Information.
My project is too big to share the codes.

One question:

how are sending mqtt message, with publish or with enqueue?

I have tested both of them, no difference! Even after network timeout (client config parameter), ESP continues to hang.

I asked because publish is blocking and you cant call it from ISR, especially when you disconnect wifi.
Im not sure about enqueue.
Maybe higher debug log level could help.

I asked because publish is blocking and you cant call it from ISR, especially when you disconnect wifi. Im not sure about enqueue. Maybe higher debug log level could help.

I don't call anything from the ISR function except xQueueSendFromISR.

Im not saying its not a bug, but without code i am only trying to understand what may cause hangs. Sometimes it may be queue which is waiting forever when it is full. If you could strip down you code to minimal which could help to reproduce it it would be helpful.

I was able to reproduce it while a higher log level is enabled. The last debug logs are:
D (71171) HTTP_CLIENT: Begin connect to: http://google.com:80 D (71171) esp-tls: host:google.com: strlen 10 . . . D (74361) MQTT_CLIENT: Reconnecting... D (74361) esp-tls: host:***: strlen ***
Both tasks get stuck on line 146 of esp-tls:
int res = getaddrinfo(use_host, NULL, &hints, &address_info);

Someone with better knowledge should answer this, but i am guessing it is blocking function, and for sure its not related to mqtt. @suda-morris

I don't have control over not calling getaddrinfo, It is called by HTTP_CLIENT and MQTT_CLIENT.
Probably yes, With a lower debug level what I saw last was attempting to publish an MQTT message so I was thinking it was because of it.

@chegewara
I have found something, in this part of my code, we don't reach the second ESP_LOGD when the ESP hangs.
ESP_LOGD(TAG, "--------PUBLISHING %s", payload_str);
int msg_id = esp_mqtt_client_enqueue(mqtts_client, topic.topic, payload_str, strlen(payload_str), topic.qos, retain, false);
ESP_LOGD(TAG, "--------ENQUEUED %s", payload_str);

Im not saying its not a bug, but without code i am only trying to understand what may cause hangs. Sometimes it may be queue which is waiting forever when it is full. If you could strip down you code to minimal which could help to reproduce it it would be helpful.

I was able to reproduce it while a higher log level is enabled. The last debug logs are: D (71171) HTTP_CLIENT: Begin connect to: http://google.com:80 D (71171) esp-tls: host:google.com: strlen 10 . . . D (74361) MQTT_CLIENT: Reconnecting... D (74361) esp-tls: host:***: strlen ***
Both tasks get stuck on line 146 of esp-tls: int res = getaddrinfo(use_host, NULL, &hints, &address_info);

I found something important. These two requests are generated in two different tasks, when I remove the google request task, ESP doesn't hang anymore, but I need to request google to know whether I have internet or not!

If you want to check internet connectivity and you found the app stuck in getaddrinfo is not easier to test connectivity to static IP instead?
Also i dont see the point of testing connectivity since mqtt component will detect it and emit disconnect event.

If you want to check internet connectivity and you found the app stuck in getaddrinfo is not easier to test connectivity to static IP instead? Also i dont see the point of testing connectivity since mqtt component will detect it and emit disconnect event.
This does not looks like a esp-idf bug, more like the problem in your app.

It's important for us to know that we have internet and are disconnected from MQTT or we do not.

@chegewara I have found something, in this part of my code, we don't reach the second ESP_LOGD when the ESP hangs. I'm enqueuing and that is nonblocking so even if it is related to esp-tls, we should reach this line!
ESP_LOGD(TAG, "--------PUBLISHING %s", payload_str);
int msg_id = esp_mqtt_client_enqueue(mqtts_client, topic.topic, payload_str, strlen(payload_str), topic.qos, retain, false);
ESP_LOGD(TAG, "--------ENQUEUED %s", payload_str);

Why do I get stuck in this line? It is non-blocking! @chegewara

@mohammadjavadpirhadi esp_mqtt_client_enqueue got stuck may due to MQTT_API_LOCK(client) in this API. You can check whether the mqtt is re-connecting the MQTT broker in mqtt main task function(esp_mqtt_task()), this task also will call MQTT_API_LOCK(client).

@mohammadjavadpirhadi esp_mqtt_client_enqueue got stuck may due to MQTT_API_LOCK(client) in this API. You can check whether the mqtt is re-connecting the MQTT broker in mqtt main task function(esp_mqtt_task()), this task also will call MQTT_API_LOCK(client).

The esp_mqtt_task() locks the API but does not unlock it. It gets stuck every time in a different line but always in case MQTT_STATE_CONNECTED. It happens when I shut down the router's internet and then connect it again. Why it should behave like that? I'm trying to strip down my code to minimal but it's so hard to keep the issue.
In our other products, we don't face such an issue, can using PSRAM have an effect?

Hi @mohammadjavadpirhadi and @ESP-YJM
I am also facing the same issue.
I am using touch interrupts to turn on and off my lights. but whenever esp tries to connect with MQTT my touch pins hang.
this issue is preventing my product from launching. i need to solve this as soon as possible.

@mohammadjavadpirhadi @robocircuits could you provide code to reproduce the issue?

@euripedesrocha @robocircuits
Sorry for my late reply.
In our case, the problem was that we accept GPIO change command via MQTT and send the feedback again using MQTT. Also, we publish the GPIO changes by MQTT. The concurrency of receiving a command, sending feedback, and publishing changes made by physical touch was the reason. Although I think this is the IDF issue, I solved the problem by sending the feedback and publishing changes with a common separate task which is different from the task that receives the command. In fact, I send the feedback that I have received the command and then publish the change in the mentioned separate task. Otherwise, the semaphore in the mqtt_task causes a deadlock.

@mohammadjavadpirhadi If I got you correctly, you had 2 tasks handling the MQTT API and caused a deadlock.
You tested with publish and enqueue and still got a deadlock, right?
Did you stop the client in the process?  We had an issue related to restarting the client that was fixed a while ago, I wonder if it's related.
I still need some reproducer to be able to check if the issue is in esp-mqtt.

I am having the same issue as euriopesrocha. An interrupt that should be triggered via an GPIO change is NOT executed/captured during MQTT communication.

Closing since I wasn't able to reproduce.


[PE-D][Tester E] Email does not need to have a domain name extension

How to replicate:
Add a new user with an email that does not have a domain name extension (eg .com)
eg add n/John Doe p/98765432 e/johnd@example a/John street, block 123,
#01-01
Expected Behaviour:
Throw an error stating that a domain name extension is required
Actual Behaviour:
Customer is added to the address book.

Labels: type.FeatureFlaw severity.Low
original: saiutkarsh33/ped#3

Not necessary to change but can mention in UG?

Accepting supposedly invalid values (e.g., end date is earlier than start date; February 30th) is, while not ideal, not necessarily incorrect either (i.e., adopting a garbage-in garbage-out approach to input validation). However, if such data can make other things go haywire (e.g., crash the app, corrupt the data file), accepting them can be considered a bug, and fixed.
Does not make things go haywire, Closed


Add ability for user to hide interfaces in widgets

Request for users to be able to hide selected interfaces from Interfaces & Intefaces Statistics widdgets. Added new flag to config Interface - 'hide'

In the Interfaces widget that is the case, in the statistics widget.
In the statistics widget that's using a bit of java in the

Focus on the easier widget first. We can figure out / replace the JS one later.

The first one is only a change to the widget, and that works fine.

But it needs its own widget setting. System log widget has an example.

On 19. Aug 2018, at 11:01, Martin Wasley<EMAIL_ADDRESS>wrote:
The first one is only a change to the widget, and that works fine.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

OK, so do not use the 'Hide in widgets' in the interfaces.php?

Yes, because it’s not an operational setting.

On 19. Aug 2018, at 11:13, Martin Wasley<EMAIL_ADDRESS>wrote:
OK, so do not use the 'Hide in widgets' in the interfaces.php?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

OK, first widget done, allows the user to enter the interface name() to hide in the same way as services.

OK, all working, changes to widgets only.

Bump ..
@fichtner - Don't forget these, modified as you requested. :)

2/3 widgets changed as the code needed a larger dust off in general.. one larger bug in the new layout, but you'll like it when it's ready hopefully tomorrow :)

@fichtner I'll put it on my list :)

I tried select picker for about 40 minutes, gave up and went for the simple method.

The browser standard works ok which is what I've put in, but the selectpicker is certainly an improvement over it. ;)

BTW, thanks for the submissions!

@marjohn56 The reason why lodash is one of my preferred libraries is that it has all functions you need for working with objects and collections. In your case it it probably filter in combination with includes. This is a backbone model but it is more or less the same:
https://github.com/opnsense/plugins/blob/master/www/nginx/src/opnsense/www/js/nginx/src/models/LogLinesCollection.js#L14 (please be careful because this is ES6, so some features may not work without transpiling)

Very nice, but I know not what you want me to do with it. 🤔

@fichtner - It works, but to be honest I prefer the "type in" method. At least I could quickly see what I was hiding. With the current method if you have a lot of interfaces it's a pain to just hide one.

Let's invert the selection then... it's just a line of code. The UX problem is still there either way, now if you have a long list and only need one interface listed that's the same amount of clicking. It would maybe be more useful if we had an invert selection checkbox?

Ooh too many choices... :)
Sent from my Samsung Galaxy smartphone.
null

I'll take that as a "definitely maybe". :)

or even "maybe definitely"...
Shall we have a vote? 🤪

This as an Oasis reference. I'll add the checkbox tomorrow and set the default to invert.

Perfect... :)


Wrong output of %TypedArray% 's constructor

Executing following code :
print(Int32Array.prototype.__proto__.constructor)

Output of ch is :
function() {
    [native code]
}

However, output(v8, spm, jsc) should be :
function TypedArray() {
    [native code]
}

BT group
2018.08.26

Looks like #3332 -- we are technically spec compliant, but I think we all agree that including the name would be better.


Update to Latest NTIA-conformance-checker version

v0.2.0 now available: https://github.com/spdx/ntia-conformance-checker/releases/tag/v0.2.0
My tentative suggestion is to use the GitHub release again this time. But for the NEXT update, you could switch to the PyPI release. If you like to live dangerously though (🗡!!), there is also a PyPI release, but its newness makes it untested.
PyPI release link: https://pypi.org/project/ntia-conformance-checker/#history

With the changes in the ntia-conformance-checker, it looks like we'll need to change the implementation.
Current call to the library is at https://github.com/spdx/spdx-online-tools/blob/43e330c70d4444e6cbf361c64b2fc0536aa6441f/src/app/core.py#L210
I'm thinking we'll want to change this to use the SbomChecker passing in the file and calling the printMissingComponents function and displaying the output as is.
The only thing I'm not completely clear on is the opening the file - it looks like I should pass in the filename str(settings.APP_DIR + uploaded_file_url) based on the current code, but I'm not sure if there isn't a more straightforward approach.
@jspeed-meyers @linynjosh - Let me know your thoughts.

@goneall -- I thought the new changes might break something. :/ But hopefully the new printing mode is worth it :)
My intention was for both sbom.print_table_output() and sbom.print_components_missing_info() to be used inside spdx-online-tools. There are two ways (at least):
One is to treat ntia-conformance-checker as a CLI app and to call it with subprocess. For instance:
result = subprocess.run(
    ["ntia-checker", "--output", "print", "--verbose", "--file",
     settings.APP_DIR + uploaded_file_url],
    capture_output=True,
    text=True
)
print(result.stdout)

This way the table view is printed and any missing components are printed too. And the CLI entrypoint takes care of all of this and you don't have to use ntia-conformance-checker as a library.
It probably is also possible to use ntia-conformance-checker as a library, but there will (I think) need to be some small changes. I think https://github.com/spdx/ntia-conformance-checker/pull/81 will actually break the ability of ntia-conformance-checker to be a library. But a 10-minute code change should fix that.
I would therefore recommend the former path, but if you prefer the latter path, just say so and I can put in a new PR.
Regardless, I'm glad to debug this with you further if you get stuck.

@jspeed-meyers - I attempted using the command line with little success, if you could take a look at PR #432
I suspect it is a setup issue - probably need to install the conformance checker as an app.

@goneall - Sorry for this trouble.
Upon second thought, I suspect that using the CLI app directly is not the way to go for two reasons. First, the security implications are actually a concern as the Lift static analysis tool results suggest, especially because this function is to take user input, specifically a filename. Given that, staying away from subprocess seems prudent. Second, I actually do think it should be possible to call ntia-conformance-checker as a library still. And if there is a problem, I'll work on PRs to ntia-conformance-checker to make sure it can work as a library.
On the library route: I do think sbom.print_table_output() and sbom.print_components_missing_info() should both be called after instantiating SbomChecker. That way a user gets a table view and detailed output on any nonconformant components.
If you want to pair program at all, let me know. I'm not too skilled at actually developing an deploying web applications, so I admit to being a little turned around. Again, sorry for any trouble!

@jspeed-meyers - no worries - I just attempted using the SbomChecker and ran into an import problem.  I'm not really much of a Python programmer and I have to admit I spend most of my time with these import issues.
Let me know if you see an easy fix.  I'm wondering if the ntia-conformance-checker needs to export the class somehow.
The attempt is at PR #433

@goneall - I come bearing good news, derived from turning ignorance into some sort of fragile, limited knowledge.
There is a fix (I think). You're right that the class needs to be exported. I put in a PR to ntia-conformance-checker to export the class. See PR #434
The code should NOW be able to be used in this manner:
import ntia_conformance_checker as ntia

sbom = ntia.SbomChecker(settings.APP_DIR + uploaded_file_url)
sbom.print_table_output()
sbom.print_components_missing_info()

So take 3! And I'll keep debugging if there are more problems.

Thanks @jspeed-meyers - I think the PR is ready for review.
The output has a bit of an issue with formatting - it seems to be missing newlines, but at least it's producing output.
I'm also not sure the approach I'm using to capture the prints is the best approach.  It might be better to allow an optional parameter to the print functions in the SbomChecker so it can print directly.
Below is a screenshot of the output:

@goneall, well, it's progress :)
I opened an issue in ntia-conformance-checker to create a print option that is optimized ntia-conformance-checker. We can target that feature for the next release.
The crux of the problem, from a conceptual perspective, is that the current printing functionality has been optimized for a terminal, but the UI in spdx-online-tools doesn't appear to operate like a terminal. I suspect this won't be hard to improve, but I'll need to investigate.
I'll reviewed the PR right now too.

Note there is a new HTML output option: https://github.com/spdx/ntia-conformance-checker/pull/102
On the next release of the NTIA conformance checker, we can update the online tools to output HTML.


Is it expo compatible? or is there a configuration plugin?

I'm starting a survey for a retail company in Brazil and we're thinking about developing your solution, but one of the processes to close with the insider solution is for it to be compatible with the Expo flow along with the pre-build.
Is there any configuration plugin to use with Expo?
If so, where can I find this?

@melih-useinsider


QDT-Components and JWT Auth flow with Qlik Enterprise - Question

I am running the following components in my environment:

Qlik Server Enterprise v13.32.2 (June 2019)
Qlik JWT Proxy configuration (userID and user directory mapping)
QDT-Components v2.3.7
Angular CLI 8.0 (with Enigma.js 2.4.0)
I have a .net core Web API that issues signed JWT tokens with the userID Qlik Claim

Although my Angular app can make Enigma.JS calls and receive data from Qlik, after my JWT/Cookie Auth flow, the QDT-Component is spinning indefinitely trying to retrieve a KPI object by ID.
Is there a document that provides the Qlik Server to QDT-Component version compatibility?
Thank you

There should not be a restriction based on Qlik Sense Enterprise version.
Are you loading the component after your auth?
Can you screenshot and share the console errors?

AppComponent Code:

Console:

Updated Console Info:

hmm...check the network tab. is the request for require.js including the session cookie?

Here is the Network trace:

The cookie is set on the Browser:

The AppComponent is getting a JWT token form the Auth API, it them does a GET on ../jwt/qps/user with the Authorization header set to Bearer .....jwt.....  The app then routes to page1 that contains the QDT-Compoennt configuration and element tag.
Is the above Authentication workflow, landing the problem? or the QDT-Component creation on the routed page1?

So you seem to have a good understanding of the flow but just to recap. You make a request with the token, you get back a set cookie header, which sets the session cookie. That looks like it is set correctly. You should not need to change the cookie name. All that matters is that the virtual proxy is looking for that cookie. You can run into issues if you have 2 different virtual proxies looking for the same cookie name, but that doesn't seem to be the case here. So cookie looks good.
Next thing that should happen, if you are using vizApi, which looks like you are, is the require.js file will be requested, which we can see happen in the network tab. Require.js is actually behind the /jwt virtual proxy, so if there was any trouble with the session cookie I'd expect this request to fail, but it does not. The product-info.json file failing later I don't think is the big concern here. There are some files that fail cross-domain, that may be one of them.
Then I see the websocket connection to QSE in network tab with 101, looks good, but when I look at your earlier post I notice the request to connect to the websocket was made but that failed. I think the next place to look would be the messages in the websocket.

and

Sometimes I have to do a GET on .../jwt/qps/user to get the cookie,
Sometimes I GET it from .../jwt/hub/sense/app/--appID--
Should I always go to the .../jwt/qps/user endpoint?

More traces:

I'm beginning to think this may be a QSE bug. Require.js loaded, which means the session cookie is good. The websocket messages look good, looks like you are authenticated fine.
I'm on QSE November 2019 Patch 4 Update 1 and I get the errors in the image below when connecting to a virtual proxy that requires authentication on a different origin than QSE, but it still works. However, I know there was at least one version of QSE released that made an ajax request from the require.js file without setting withCredentials: true, so the session cookie didn't get sent with the request if it was made on a different origin, and it would break the whole thing.
I think we address 2 things here. First, what version of QSE are you using? And second, if you set vizApi: false in the qdtComponents options, and you just connect to the engineApi, does it work? If it does, that's basically confirmation of what I think is going on.

I am running:
Qlik Server Enterprise v13.32.2 (June 2019)
QDT-Components v2.5.1
When I set the vizApi to False,
I see message exchange in the WebSocket:  SESSION_CREATED etc., but the Cookie is not set in the browser.
When I set the vizApi to true, the cookie is set, but I get ERR_CONNECTION_RESET for product-info.json, and the WebSocket lists ERR_CONNECTION_RESET
I do receive hypercube data from the same QSE instance, JWT-Proxy setup, and Auth flow when I make Enigma.JS calls (no QDT-Components dependency in the app).

I believe this may be due to your QSE version, as I know the bug I'm referencing existed approximately around that time. In addition to the fact that not loading the vizApi causes no errors, and everything else seems to be working in the images above, I strongly suspect it's a bug in that particular QSE version.

im closing this as i'm relatively certain this is not a qdt-components issue at this point. find me on qlik branch slack @fka if this is still causing you trouble after trying a newer version of QSE. i think the bug im referencing was fixed in a June 2019 patch, but id try September 2019 or newer just to play it safe

We were facing some what similar  issue with vizApi as qAppPromise was not getting resolved. White listing the IP helped. For Local host i tried below in additional response headers
Access-Control-Allow-Origin:http://localhost:3000
Access-Control-Allow-Credentials:true


Consider making some kind of admin-tools block in Jinja2 and put this in it -->

    <!-- TODO: Consider making some kind of admin-tools block in Jinja2 and put this in it -->

In file templates/admin/organizations/form.html
https://github.com/botsarefuture/mielenosoitukset_fi/blob/338424dd8cbe824a647fe655ec89e5d6c0d0c70c/templates/admin/organizations/form.html#L274-L275

[!CAUTION]
This issue is not relevant anymore

[!WARNING]
This issue is not relevant anymore


Clear client polling and nodes state on dismount

Needed for https://github.com/weaveworks/service-ui/pull/358
Prevents additional polling when Scope is dismounted while running as a component. Also cleans up old nodes to show the correct loading screen when mounted.

Works great! LGTM


Update links to documentation in rest-api-spec

Description
Removes references to elastic documentation in rest-api-spec where documentation exists. I ran into issues updating all links because there are many undocumented APIs. Some of the undocumented APIs are not useful and there are comments in the specs mentioning that they are deprecated.
Missing Documentation:

Delete Component Template
Cluster Delete Voting Config Exclusions
Exists Component Template
Cluster Pending Tasks
Cluster Post Voting Config Exclusions
Cluster Reroute
Cluster State
Field Capabilities
Index Add Block
Index Flush
Index Get Mapping
Index Get Field Mapping
Index Recovery
Index Refresh
Resolve Index API
Index Rollover
Index Segments
Index Shard Stores
Simulate Index Template
Index Validate Query
Ingest Processor Grok
Multi-Get (MGET)
M Term Vector
Ping
Search Shards
Cleanup Snapshot Repository
Snapshot Clone
Term Vectors

Documentation exists, but not for specific API:

Clear Scroll
Delete Alias

Documentation for PITs exists at https://opensearch.org/docs/latest/search-plugins/searching-data/point-in-time-api/, but could be organized in the broader API docs
Index Template APIs are under a route including im-plugin: https://opensearch.org/docs/latest/im-plugin/index-templates. Are these native APIs or are they provided by the ISM plugin?
Related Issues
Resolves https://github.com/opensearch-project/OpenSearch/issues/1339
Check List

[x] New functionality includes testing.

[x] All tests pass

[x] New functionality has been documented.

[x] New functionality has javadoc added

[x] Failing checks are inspected and point to the corresponding known issue(s) (See: Troubleshooting Failing Builds)
[x] Commits are signed per the DCO using --signoff
[x] Commit changes are listed out in CHANGELOG.md file (See: Changelog)
[x] Public documentation issue/PR created

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Thanks a lot @cwperks !

@cwperks may I ask you please to backport this great change to 1.x and 1.3 ? thank you

@reta Sure, no problem!
FYI @hdhalter, see the PR description of this PR. I went through the rest-api-spec tests yesterday and found gaps in documentation. I will check the documentation-website issue list to see if some of these are existing issues or file a new issue if one doesn't exist.

@reta Here's the backport to 1.x: https://github.com/opensearch-project/OpenSearch/pull/13059


Populate wai request path info

! @olorin
Something we hit in alice which was surprising.
/cc @nhibberd
/jury approved @olorin

-nod- This seems reasonable; decodePathSegments should do the right thing with the representation from renderRequestTarget. Would you be okay with adding/extending a test to ensure that requestTargetP from Hadron.Core.Parser.Target can always parse HT.encodePathSegments W.pathInfo after converting a hadron request to a wai request? That seems like it should hold, maybe not necessary but I think it would be useful for clarity if nothing else.

:cat:

Taking over this PR/branch.

@charleso I think this is ready to go, want to give it a final review?

👍


Latest update crash

After installing the latest update Tuesday Feb. 26th my rocket chat restarts every 2 minutes ver 2.15.0

@pdub4ever Please describe your problem using our template for bug reports: https://raw.githubusercontent.com/RocketChat/Rocket.Chat.Electron/develop/.github/ISSUE_TEMPLATE.md

Having same issue on OSX... webview is reloading for no apparent reason.

@wreiske Maybe related to #1110?

it.

Never mind I found version 2.14.6 and installed it and I am working fine
again
On Thu, Feb 28, 2019 at 1:06 PM Tasso Evangelista<EMAIL_ADDRESS>wrote:

@pdub4ever https://github.com/pdub4ever Please describe your problem
using our template for bug reports:
https://raw.githubusercontent.com/RocketChat/Rocket.Chat.Electron/develop/.github/ISSUE_TEMPLATE.md
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/RocketChat/Rocket.Chat.Electron/issues/1119#issuecomment-468375599,
or mute the thread
https://github.com/notifications/unsubscribe-auth/At3bY333RBahQmMKBoJ0n-3QcgsGMD4yks5vSBqNgaJpZM4bW29g
.

--
Paul F. Wilson317-339-8256


question about get_proj_mat()?

Hi,
When generating ring_map and ray_map, I don't understand why ring_map and ray_map will be accumulated and normalized, can you please help me to understand these two code?
        ring_map /= ring_map.max(1)[0].clip(min=1)[:, None]
        ray_map /= ray_map.max(1)[0].clip(min=1)[:, None]

This is a trivial modulation that makes transformation using matrixvt more likely to VoxelPooling. However it almost wont affect final performance (i,e, using binary matrices is also fine)


Fargate: Remove obsolete limitations

Great guide. Thank you so much for taking the time writing it. ⭐
While reading through some sections I noticed two Fargate limitations that I would consider obsolete.
Fargate service availability has expanded and it is now available in 25 regions.
Also, it seems Fargate can now be used with EKS as well. Haven't used it myself hence my reservation.
So I'd suggest removing those two points from the limitations section.
Please let me know if I am missing something or anything needs changed for you to include this PR.

@paulgalow thanks for taking the time to make the pull request, don't know too much about Fargate so can't approve.
Can see that @maishsk, @stefansundin & @manelpb were last edits of those lines under git blame for the readme, Do you have any thoughts on the pull request?

Thanks @stefansundin for the approval, thanks @maishsk for the merge & @paulgalow thanks again for making the pull request!

Thanks for merging. You're welcome.


Nonlocal test fails

This is b/c in
def f():
    x = None
    y = None
    def g():
        nonlocal x, y
        x = 123
        y = 234
    return x, y

definitions of x come as x = 123 and  x = None and we drop the outer one. PyCharm actually points to definition in nonlocal x. So we should figure out that x is nonlocal and either point to the nonlocal line or to x = None.

N/A after https://github.com/Microsoft/python-language-server/pull/546


remove old databroker API

we should make these changes to move to the new databroker API

looks good to me


40 - cleanup nuget parsers;

changes:

removed unused parse-request-version
separated nuget parser to 2 - original and one for a project.json
add when-dispatch for nuget-parser into the parserstrategy module;

@timgluz OK. Looks good. Just one thing. Can you remove the Gemfile.lock? As this is a Gem project we should not enforce transitive dependencies. It's remove already from the master branch, I will add the file name to .gitignore.

@timgluz It's merged now.


[HB-6916] Digital Turbine Exchange SDK 8.2.5

Updated Digital Turbine Exchange SDK version to 8.2.5
Updated Changelog, README, build script to <IP_ADDRESS>.0

Re-doing this PR. Got a little dirty.


fixed typo

cleaned up some instances of typo throughout the documentation, namely "each each" instead of "each".

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Hey @ne7ermor3 , thank you! Pardon we didn't make this more clear. To fix https://github.com/Qiskit/qiskit/issues/13576, you'll need to open PRs in https://github.com/Qiskit/qiskit and https://github.com/Qiskit/qiskit-ibm-runtime to fix the Python docstring. That's because the API docs are generated from Sphinx in those two repositories and converted into the MDX files you see here. So, your current PR would be reverted the next time we re-generate the API docs.


Add AIX operating system support

AIX does not have epoll or kqueue functionality, so it relies on force_poll_poll feature.

cargo check --target x86_64-unknown-illumos --no-default-features --features os-poll fails because no os-ext feature specified, and crate::unix::pipe::new relies on os-ext. Should we guard mod pipe with os-ext?

@ecnelises I've opened https://github.com/ecnelises/mio/pull/1 to solve that.

Thanks @ecnelises


npm has 1.0.0 as latest version.

https://www.npmjs.com/package/scrollstory
1.1.0 hasn't been published here.

yikes! i just fixed. thanks for the heads up!


Unable to disable flake8 in settings.json

According to docs there should be a way to disable flake8 in the workspace with settings.json

But this seems to be invalid info. Not working as expected and setting enabled not found.
Flake v2023.10.0
VsCode Info
Version: 1.87.2 (user setup)
Commit: 863d2581ecda6849923a2118d93a088b0745d9d6
Date: 2024-03-08T15:20:17.278Z
Electron: 27.3.2
ElectronBuildId: 26836302
Chromium: 118.0.5993.159
Node.js: 18.17.1
V8: <IP_ADDRESS>-electron.0
OS: Windows_NT x64 10.0.19045

@uhillbom That setting is in pre-release version of flake8


Convert JSEP to ES6 class, while maintaining backward compatibility

Follow-up from #123, and related to #137 and #130
Converts JSEP to use ES6 classes (but roll-up builds ESM, IIFE, and CJS):

class Constants - just the string/numerical constants
class JsepConfig - all the current functions on jsep
class Jsep - the parser. Constructed with expr and parsed with parse()

Maintained backward compatibility by exporting a default function that uses those classes. Tests are unchanged to ensure consistency.
Performance comparison:
Before PR: 4303.82 op/s +/- 2.09%  [5.74% slower]
This PR: 4566 ops/s +/- 2.99%
(from jsbench.me with both versions in the setup. Ran all of the current test cases in both versions)
Size comparison:
+----------------------+-----------+---------+
| FILE                 | Before PR | this PR |
+----------------------+-----------+---------+
| jsep.cjs.js          |   19972   |  23780  |
| jsep.cjs.js.map      |   41299   |  49294  |
| jsep.cjs.min.js      |   5102    |  9376   |
| jsep.cjs.min.js.map  |   31041   |  38040  |
| jsep.iife.js         |   20720   |  24672  |
| jsep.iife.js.map     |   41307   |  49302  |
| jsep.iife.min.js     |   5102    |  9382   |
| jsep.iife.min.js.map |   31107   |  38038  |
| jsep.js              |   19853   |  23616  |
| jsep.min.js          |   5029    |  9296   |
| jsep.min.js.map      |   31036   |  38035  |
+----------------------+-----------+---------+

Hopefully OK that I took a stab at this, @LeaVerou ? I'm happy to change it or whatever :-)

Had a quick look through, thank you for this work on it!
I'll wait so LeaVerou can review this as well.

Hey, so sorry for being absent lately, I was extremely busy with moving. Now settling in slowly, and should be able to take a look in the next couple of days.

From a very cursory look, a lot of this looks like what I had in mind, but I'm not sure about the added complexity of having three classes, I was envisioning it as a single Jsep class. I can sort of see the point of JsepConfig (interesting idea to have multiple different parsers simultaneously, though not sure if there are enough use cases to justify the complexity), but not the one of Constants. However, I could very well be missing something, since I haven't personally done the work that this PR is introducing. @6utt3rfly could you elaborate a bit on this design decision?

Agreed that constants need to be available to plugins, and also agreed that the object shouldn't be frozen, so it can be extended.
It's just that if we take built-in JS APIs as examples, their constants tend to be static properties on the class itself, not separate classes (e.g. Node.ELEMENT_NODE), so a separate class for that seems unusual and a bit overkill.
Your reasoning about the config class makes sense. I think I like the idea.

Sounds good - do you prefer static getters, or assigning the constants as properties after declaring the class?

I think simple properties are fine.

@LeaVerou - I pushed my changes to switch to a single class with static methods and fields. I also added a getter for getCharAt and getCharCodeAt (there's also a getChar and getCharCode with default index = this.index which does the same thing ... could remove the default or just use that method)?
Revised sizes:
+----------------------+-----------+---------+
| FILE                 | Before PR | this PR |
+----------------------+-----------+---------+
| jsep.cjs.js          |   19972   |  23181  |
| jsep.cjs.js.map      |   41299   |  47737  |
| jsep.cjs.min.js      |   5102    |  9023   |
| jsep.cjs.min.js.map  |   31041   |  36733  |
| jsep.iife.js         |   20720   |  24059  |
| jsep.iife.js.map     |   41307   |  47745  |
| jsep.iife.min.js     |   5102    |  9041   |
| jsep.iife.min.js.map |   31107   |  36730  |
| jsep.js              |   19853   |  23058  |
| jsep.min.js          |   5029    |  8953   |
| jsep.min.js.map      |   31036   |  36728  |
+----------------------+-----------+---------+

I thought we'd still use a separate class for the config? Anyway, I'm fine either way, probably a good idea to start simple and take it from there.
I do think that this.char and this.code (or this.charCode) might be more readable but if you have strong opinions on the current naming, I'm fine with that.

Merged! Thanks again!
@EricSmekens can we add @6utt3rfly as a collaborator? I think it's very well deserved.

Yes, I fully agree! Will do that in a few minutes!


Revert "Added cgid capture to stirling with testing (#1681)"

Summary: Revert cgid capture
This change reverts capturing Cgroup ids from https://github.com/pixie-io/pixie/commit/2a2349f4853c90848437441ceed4bad634505767. Many of the 4.14 kernel tests have BPF compilation errors: HINT: bpf_get_current_cgroup_id missing (added in Linux 4.18). Perplexingly, GitHub seems to show these tests as passing despite the failures.
Relevant Issues: #1638
Type of change: /kind bug
Test Plan: Running CI

cc @AdityaAtulTewari. We will need to update your original change to include some type of kernel version detection and only add the cgroup id on supported kernels.