kubernetes_sd_config doesn't discover Kubernetes endpoints correctly after some time

What did you do?

Prometheus is configured to discover Alertmanagers using the kubernetes_sd_configs discovery mechanism (using Kubernetes "endpoints"):
alerting:
  alertmanagers:
  - follow_redirects: true
    enable_http2: true
    scheme: http
    path_prefix: /
    timeout: 10s
    api_version: v2
    relabel_configs:
    - source_labels: [__meta_kubernetes_service_name]
      separator: ;
      regex: prometheus-operator-alertmanager
      replacement: $1
      action: keep
    - source_labels: [__meta_kubernetes_endpoint_port_name]
      separator: ;
      regex: http-web
      replacement: $1
      action: keep
    kubernetes_sd_configs:
    - role: endpoints
      kubeconfig_file: ""
      follow_redirects: true
      enable_http2: true
      namespaces:
        own_namespace: false
        names:
        - prometheus-operator

Alertmanager runs as a Kubernetes statefulset

Everything runs using the Prometheus Kubernetes Operator and the kube-prom-stack Helm Chart.
What did you expect to see?
Every time Alertmanager restarts and gets a new IP addresses, Prometheus should automatically discover that new IP addresses  without having to restart the Prometheus process.
What did you see instead? Under which circumstances?
Using the configuration posted above, we can see the following.
Alertmanager runs and exposes its endpoint to Prometheus:
$ kubectl get endpoints prometheus-operator-alertmanager
NAME                               ENDPOINTS                                            AGE
prometheus-operator-alertmanager   <IP_ADDRESS>:9093,<IP_ADDRESS>:9093,<IP_ADDRESS>:9093   96d

There are 3 Alertmanager pods running here, and their endpoints are correctly configured in Prometheus:
$ curl -s http://localhost:9090/api/v1/alertmanagers | jq .data.activeAlertmanagers
[
  {
    "url": "http://<IP_ADDRESS>:9093/api/v2/alerts"
  },
  {
    "url": "http://<IP_ADDRESS>:9093/api/v2/alerts"
  },
  {
    "url": "http://<IP_ADDRESS>:9093/api/v2/alerts"
  }
]

Prometheus doesn't log any special information about Alertmanager at this stage (see "Prometheus starting logs" below)
After waiting enough time and having Alertmanagers restarted several times (using kubectl rollout  restart statefulset alertmanager-prometheus-operator-alertmanager), we eventually reach out a stage where the Alertmanagers configured in Prometheus differ from the one exposed by Kubernetes:
Alertmanager endpoints now, as they should be discovered by Prometheus's configuration, return:
$ kubectl get endpoints prometheus-operator-alertmanager
NAME                               ENDPOINTS                                            AGE
prometheus-operator-alertmanager   <IP_ADDRESS>:9093,<IP_ADDRESS>:9093,<IP_ADDRESS>:9093   96d

But Prometheus still returns (only the 2nd Alertmanager is correctly configured here):
$ curl -s http://localhost:9090/api/v1/alertmanagers | jq .data.activeAlertmanagers
[
  {
    "url": "http://<IP_ADDRESS>:9093/api/v2/alerts"
  },
  {
    "url": "http://<IP_ADDRESS>:9093/api/v2/alerts"
  },
  {
  "url": "http://<IP_ADDRESS>:9093/api/v2/alerts"
  }
]

Note that this is difficult to reproduce reliably: it seems it happens more easily if Prometheus is running for several hours, but so far, we haven't found what starts to desynchronize both systems (Prometheus vs Kubernetes endpoints).
After that desynchronization, Prometheus starts to log:
{"alertmanager":"http://<IP_ADDRESS>:9093/api/v2/alerts","caller":"notifier.go:534","component":"notifier","count":15,"err":"Post \"http://<IP_ADDRESS>:9093/api/v2/alerts\": context deadline exceeded","level":"error","msg":"Error sending alert","ts":"2022-10-11T14:12:03.897Z"}

Eventually, all the Alertmanagers URLs known by Prometheus don't exist anymore and Prometheus is unable to send any alerts. The only way we have to get out of this situation is to restart the Prometheus process.
System information
Linux 5.10.133+ #1 SMP Thu Aug 18 08:46:00 UTC 2022 x86_64
Prometheus version
2.39.1 (running Docker image `quay.io/prometheus/prometheus:v2.39.1`)

Prometheus configuration file
alerting:
    alertmanagers:
    - follow_redirects: true
      enable_http2: true
      scheme: http
      path_prefix: /
      timeout: 10s
      api_version: v2
      relabel_configs:
      - source_labels: [__meta_kubernetes_service_name]
        separator: ;
        regex: prometheus-operator-alertmanager
        replacement: $1
        action: keep
      - source_labels: [__meta_kubernetes_endpoint_port_name]
        separator: ;
        regex: http-web
        replacement: $1
        action: keep
      kubernetes_sd_configs:
      - role: endpoints
        kubeconfig_file: ""
        follow_redirects: true
        enable_http2: true
        namespaces:
          own_namespace: false
          names:
          - prometheus-operator

Alertmanager version
0.24.0 (runing Docker image `quay.io/prometheus/alertmanager:v0.24.0`)

Alertmanager configuration file
No response
Logs
{"caller":"main.go:543","level":"info","mode":"server","msg":"Starting Prometheus Server","ts":"2022-10-11T14:03:22.273Z","version":"(version=2.39.1, branch=HEAD, revision=dcd6af9e0d56165c6f5c64ebbc1fae798d24933a)"}
{"build_context":"(go=go1.19.2, user=root@273d60c69592, date=20221007-15:57:09)","caller":"main.go:548","level":"info","ts":"2022-10-11T14:03:22.273Z"}
{"caller":"main.go:549","host_details":"(Linux 5.10.133+ #1 SMP Thu Aug 18 08:46:00 UTC 2022 x86_64 prometheus-prometheus-operator-prometheus-0 (none))","level":"info","ts":"2022-10-11T14:03:22.273Z"}
{"caller":"main.go:550","fd_limits":"(soft=1048576, hard=1048576)","level":"info","ts":"2022-10-11T14:03:22.273Z"}
{"caller":"main.go:551","level":"info","ts":"2022-10-11T14:03:22.273Z","vm_limits":"(soft=unlimited, hard=unlimited)"}
{"address":"<IP_ADDRESS>:9090","caller":"web.go:559","component":"web","level":"info","msg":"Start listening for connections","ts":"2022-10-11T14:03:22.278Z"}
{"caller":"main.go:980","level":"info","msg":"Starting TSDB ...","ts":"2022-10-11T14:03:22.279Z"}
{"caller":"tls_config.go:231","component":"web","http2":false,"level":"info","msg":"TLS is disabled.","ts":"2022-10-11T14:03:22.281Z"}
{"caller":"repair.go:56","component":"tsdb","level":"info","maxt":1664064000000,"mint":1663939683056,"msg":"Found healthy block","ts":"2022-10-11T14:03:22.294Z","ulid":"01GEEVK5RQVYXWPEZEWGA77NR8"}
{"caller":"repair.go:56","component":"tsdb","level":"info","maxt":1664258400000,"mint":1664064000008,"msg":"Found healthy block","ts":"2022-10-11T14:03:22.295Z","ulid":"01GEEVQF0VRX9XBM0783DYRS32"}
{"caller":"repair.go:56","component":"tsdb","level":"info","maxt":1664452800000,"mint":1664258400029,"msg":"Found healthy block","ts":"2022-10-11T14:03:22.295Z","ulid":"01GEEVYY20QCKH0NGGVPQ2Q9QE"}
{"caller":"repair.go:56","component":"tsdb","level":"info","maxt":1664647200000,"mint":1664452800000,"msg":"Found healthy block","ts":"2022-10-11T14:03:22.296Z","ulid":"01GEEW8D1C6RB641ANS443QD4C"}
{"caller":"repair.go:56","component":"tsdb","level":"info","maxt":1664841600000,"mint":1664647200012,"msg":"Found healthy block","ts":"2022-10-11T14:03:22.296Z","ulid":"01GEGP1CJ6MSWRYHYPPMQS1C47"}
{"caller":"repair.go:56","component":"tsdb","level":"info","maxt":1665036000000,"mint":1664841600002,"msg":"Found healthy block","ts":"2022-10-11T14:03:22.297Z","ulid":"01GEPF8ZYV45R6GKPP1C4CJ309"}
{"caller":"repair.go:56","component":"tsdb","level":"info","maxt":1665230400000,"mint":1665036000006,"msg":"Found healthy block","ts":"2022-10-11T14:03:22.298Z","ulid":"01GEW8NE2W9V7CMKCJDC53PVGE"}
{"caller":"repair.go:56","component":"tsdb","level":"info","maxt":1665424800000,"mint":1665230400001,"msg":"Found healthy block","ts":"2022-10-11T14:03:22.307Z","ulid":"01GF225F6GPSB4YZR1EPX66NR7"}
{"caller":"repair.go:56","component":"tsdb","level":"info","maxt":1665446400000,"mint":1665424800010,"msg":"Found healthy block","ts":"2022-10-11T14:03:22.324Z","ulid":"01GF2PMWMNSCNEPN6NVMV4EEGY"}
{"caller":"repair.go:56","component":"tsdb","level":"info","maxt":1665475200000,"mint":1665468000001,"msg":"Found healthy block","ts":"2022-10-11T14:03:22.325Z","ulid":"01GF34BCMN94GD446JFMBJQNH9"}
{"caller":"repair.go:56","component":"tsdb","level":"info","maxt":1665482400000,"mint":1665475200001,"msg":"Found healthy block","ts":"2022-10-11T14:03:22.326Z","ulid":"01GF3B73WN7DS3GHXWGZ5F2FXE"}
{"caller":"repair.go:56","component":"tsdb","level":"info","maxt":1665468000000,"mint":1665446400009,"msg":"Found healthy block","ts":"2022-10-11T14:03:22.326Z","ulid":"01GF3B8B5024XB960EJY3ZXASM"}
{"caller":"repair.go:56","component":"tsdb","level":"info","maxt":1665489600000,"mint":1665482400001,"msg":"Found healthy block","ts":"2022-10-11T14:03:22.327Z","ulid":"01GF3J2V4PC0G10NRTHPGRW6VM"}
{"caller":"head.go:551","component":"tsdb","level":"info","msg":"Replaying on-disk memory mappable chunks if any","ts":"2022-10-11T14:03:30.316Z"}
{"caller":"head.go:595","component":"tsdb","duration":"4.279002983s","level":"info","msg":"On-disk memory mappable chunks replay completed","ts":"2022-10-11T14:03:34.595Z"}
{"caller":"head.go:601","component":"tsdb","level":"info","msg":"Replaying WAL, this may take a while","ts":"2022-10-11T14:03:34.595Z"}
{"caller":"head.go:637","component":"tsdb","level":"info","msg":"WAL checkpoint loaded","ts":"2022-10-11T14:03:43.044Z"}
{"caller":"head.go:672","component":"tsdb","level":"info","maxSegment":2350,"msg":"WAL segment loaded","segment":2338,"ts":"2022-10-11T14:03:44.931Z"}
{"caller":"head.go:672","component":"tsdb","level":"info","maxSegment":2350,"msg":"WAL segment loaded","segment":2339,"ts":"2022-10-11T14:03:47.314Z"}
{"caller":"head.go:672","component":"tsdb","level":"info","maxSegment":2350,"msg":"WAL segment loaded","segment":2340,"ts":"2022-10-11T14:03:49.420Z"}
{"caller":"head.go:672","component":"tsdb","level":"info","maxSegment":2350,"msg":"WAL segment loaded","segment":2341,"ts":"2022-10-11T14:03:51.736Z"}
{"caller":"head.go:672","component":"tsdb","level":"info","maxSegment":2350,"msg":"WAL segment loaded","segment":2342,"ts":"2022-10-11T14:03:53.673Z"}
{"caller":"head.go:672","component":"tsdb","level":"info","maxSegment":2350,"msg":"WAL segment loaded","segment":2343,"ts":"2022-10-11T14:03:55.920Z"}
{"caller":"head.go:672","component":"tsdb","level":"info","maxSegment":2350,"msg":"WAL segment loaded","segment":2344,"ts":"2022-10-11T14:03:57.838Z"}
{"caller":"head.go:672","component":"tsdb","level":"info","maxSegment":2350,"msg":"WAL segment loaded","segment":2345,"ts":"2022-10-11T14:03:59.693Z"}
{"caller":"head.go:672","component":"tsdb","level":"info","maxSegment":2350,"msg":"WAL segment loaded","segment":2346,"ts":"2022-10-11T14:04:01.774Z"}
{"caller":"head.go:672","component":"tsdb","level":"info","maxSegment":2350,"msg":"WAL segment loaded","segment":2347,"ts":"2022-10-11T14:04:03.669Z"}
{"caller":"head.go:672","component":"tsdb","level":"info","maxSegment":2350,"msg":"WAL segment loaded","segment":2348,"ts":"2022-10-11T14:04:05.827Z"}
{"caller":"head.go:672","component":"tsdb","level":"info","maxSegment":2350,"msg":"WAL segment loaded","segment":2349,"ts":"2022-10-11T14:04:06.427Z"}
{"caller":"head.go:672","component":"tsdb","level":"info","maxSegment":2350,"msg":"WAL segment loaded","segment":2350,"ts":"2022-10-11T14:04:06.428Z"}
{"caller":"head.go:709","checkpoint_replay_duration":"8.449074515s","component":"tsdb","level":"info","msg":"WAL replay completed","total_replay_duration":"36.112144645s","ts":"2022-10-11T14:04:06.428Z","wal_replay_duration":"23.38393787s","wbl_replay_duration":"164ns"}
{"caller":"main.go:1001","fs_type":"EXT4_SUPER_MAGIC","level":"info","ts":"2022-10-11T14:04:10.041Z"}
{"caller":"main.go:1004","level":"info","msg":"TSDB started","ts":"2022-10-11T14:04:10.041Z"}
{"caller":"main.go:1184","filename":"/etc/prometheus/config_out/prometheus.env.yaml","level":"info","msg":"Loading configuration file","ts":"2022-10-11T14:04:10.041Z"}
{"caller":"kubernetes.go:326","component":"discovery manager scrape","discovery":"kubernetes","level":"info","msg":"Using pod service account via in-cluster config","ts":"2022-10-11T14:04:10.052Z"}
{"caller":"kubernetes.go:326","component":"discovery manager scrape","discovery":"kubernetes","level":"info","msg":"Using pod service account via in-cluster config","ts":"2022-10-11T14:04:10.052Z"}
{"caller":"kubernetes.go:326","component":"discovery manager scrape","discovery":"kubernetes","level":"info","msg":"Using pod service account via in-cluster config","ts":"2022-10-11T14:04:10.053Z"}
{"caller":"kubernetes.go:326","component":"discovery manager scrape","discovery":"kubernetes","level":"info","msg":"Using pod service account via in-cluster config","ts":"2022-10-11T14:04:10.053Z"}
{"caller":"kubernetes.go:326","component":"discovery manager scrape","discovery":"kubernetes","level":"info","msg":"Using pod service account via in-cluster config","ts":"2022-10-11T14:04:10.054Z"}
{"caller":"kubernetes.go:326","component":"discovery manager scrape","discovery":"kubernetes","level":"info","msg":"Using pod service account via in-cluster config","ts":"2022-10-11T14:04:10.054Z"}
{"caller":"kubernetes.go:326","component":"discovery manager scrape","discovery":"kubernetes","level":"info","msg":"Using pod service account via in-cluster config","ts":"2022-10-11T14:04:10.054Z"}
{"caller":"kubernetes.go:326","component":"discovery manager scrape","discovery":"kubernetes","level":"info","msg":"Using pod service account via in-cluster config","ts":"2022-10-11T14:04:10.055Z"}
{"caller":"kubernetes.go:326","component":"discovery manager scrape","discovery":"kubernetes","level":"info","msg":"Using pod service account via in-cluster config","ts":"2022-10-11T14:04:10.055Z"}
{"caller":"kubernetes.go:326","component":"discovery manager scrape","discovery":"kubernetes","level":"info","msg":"Using pod service account via in-cluster config","ts":"2022-10-11T14:04:10.056Z"}
{"caller":"kubernetes.go:326","component":"discovery manager scrape","discovery":"kubernetes","level":"info","msg":"Using pod service account via in-cluster config","ts":"2022-10-11T14:04:10.056Z"}
{"caller":"kubernetes.go:326","component":"discovery manager notify","discovery":"kubernetes","level":"info","msg":"Using pod service account via in-cluster config","ts":"2022-10-11T14:04:10.057Z"}
{"caller":"main.go:1221","db_storage":"2.338µs","filename":"/etc/prometheus/config_out/prometheus.env.yaml","level":"info","msg":"Completed loading of configuration file","notify":"32.674µs","notify_sd":"448.929µs","query_engine":"1.952µs","remote_storage":"2.185µs","rules":"105.863522ms","scrape":"505.828µs","scrape_sd":"5.431873ms","totalDuration":"121.861347ms","tracing":"11.449µs","ts":"2022-10-11T14:04:10.163Z","web_handler":"659ns"}
{"caller":"main.go:965","level":"info","msg":"Server is ready to receive web requests.","ts":"2022-10-11T14:04:10.163Z"}
{"caller":"manager.go:943","component":"rule manager","level":"info","msg":"Starting rule manager...","ts":"2022-10-11T14:04:10.163Z"}
{"caller":"main.go:1184","filename":"/etc/prometheus/config_out/prometheus.env.yaml","level":"info","msg":"Loading configuration file","ts":"2022-10-11T14:04:10.163Z"}
{"caller":"kubernetes.go:326","component":"discovery manager scrape","discovery":"kubernetes","level":"info","msg":"Using pod service account via in-cluster config","ts":"2022-10-11T14:04:10.174Z"}
{"caller":"kubernetes.go:326","component":"discovery manager scrape","discovery":"kubernetes","level":"info","msg":"Using pod service account via in-cluster config","ts":"2022-10-11T14:04:10.175Z"}
{"caller":"kubernetes.go:326","component":"discovery manager scrape","discovery":"kubernetes","level":"info","msg":"Using pod service account via in-cluster config","ts":"2022-10-11T14:04:10.175Z"}
{"caller":"kubernetes.go:326","component":"discovery manager scrape","discovery":"kubernetes","level":"info","msg":"Using pod service account via in-cluster config","ts":"2022-10-11T14:04:10.175Z"}
{"caller":"kubernetes.go:326","component":"discovery manager scrape","discovery":"kubernetes","level":"info","msg":"Using pod service account via in-cluster config","ts":"2022-10-11T14:04:10.176Z"}
{"caller":"kubernetes.go:326","component":"discovery manager scrape","discovery":"kubernetes","level":"info","msg":"Using pod service account via in-cluster config","ts":"2022-10-11T14:04:10.176Z"}
{"caller":"kubernetes.go:326","component":"discovery manager scrape","discovery":"kubernetes","level":"info","msg":"Using pod service account via in-cluster config","ts":"2022-10-11T14:04:10.177Z"}
{"caller":"kubernetes.go:326","component":"discovery manager scrape","discovery":"kubernetes","level":"info","msg":"Using pod service account via in-cluster config","ts":"2022-10-11T14:04:10.177Z"}
{"caller":"kubernetes.go:326","component":"discovery manager scrape","discovery":"kubernetes","level":"info","msg":"Using pod service account via in-cluster config","ts":"2022-10-11T14:04:10.177Z"}
{"caller":"kubernetes.go:326","component":"discovery manager scrape","discovery":"kubernetes","level":"info","msg":"Using pod service account via in-cluster config","ts":"2022-10-11T14:04:10.178Z"}
{"caller":"kubernetes.go:326","component":"discovery manager scrape","discovery":"kubernetes","level":"info","msg":"Using pod service account via in-cluster config","ts":"2022-10-11T14:04:10.178Z"}
{"caller":"kubernetes.go:326","component":"discovery manager notify","discovery":"kubernetes","level":"info","msg":"Using pod service account via in-cluster config","ts":"2022-10-11T14:04:10.179Z"}
{"caller":"main.go:1221","db_storage":"2.478µs","filename":"/etc/prometheus/config_out/prometheus.env.yaml","level":"info","msg":"Completed loading of configuration file","notify":"28.613µs","notify_sd":"612.06µs","query_engine":"1.356µs","remote_storage":"2.476µs","rules":"109.399766ms","scrape":"95.831µs","scrape_sd":"4.532069ms","totalDuration":"124.953568ms","tracing":"6.729µs","ts":"2022-10-11T14:04:10.288Z","web_handler":"620ns"}
{"caller":"main.go:1184","filename":"/etc/prometheus/config_out/prometheus.env.yaml","level":"info","msg":"Loading configuration file","ts":"2022-10-11T14:04:10.288Z"}
{"caller":"kubernetes.go:326","component":"discovery manager scrape","discovery":"kubernetes","level":"info","msg":"Using pod service account via in-cluster config","ts":"2022-10-11T14:04:10.298Z"}
{"caller":"kubernetes.go:326","component":"discovery manager scrape","discovery":"kubernetes","level":"info","msg":"Using pod service account via in-cluster config","ts":"2022-10-11T14:04:10.298Z"}
{"caller":"kubernetes.go:326","component":"discovery manager scrape","discovery":"kubernetes","level":"info","msg":"Using pod service account via in-cluster config","ts":"2022-10-11T14:04:10.298Z"}
{"caller":"kubernetes.go:326","component":"discovery manager scrape","discovery":"kubernetes","level":"info","msg":"Using pod service account via in-cluster config","ts":"2022-10-11T14:04:10.299Z"}
{"caller":"kubernetes.go:326","component":"discovery manager scrape","discovery":"kubernetes","level":"info","msg":"Using pod service account via in-cluster config","ts":"2022-10-11T14:04:10.299Z"}
{"caller":"kubernetes.go:326","component":"discovery manager scrape","discovery":"kubernetes","level":"info","msg":"Using pod service account via in-cluster config","ts":"2022-10-11T14:04:10.299Z"}
{"caller":"kubernetes.go:326","component":"discovery manager scrape","discovery":"kubernetes","level":"info","msg":"Using pod service account via in-cluster config","ts":"2022-10-11T14:04:10.300Z"}
{"caller":"kubernetes.go:326","component":"discovery manager scrape","discovery":"kubernetes","level":"info","msg":"Using pod service account via in-cluster config","ts":"2022-10-11T14:04:10.300Z"}
{"caller":"kubernetes.go:326","component":"discovery manager scrape","discovery":"kubernetes","level":"info","msg":"Using pod service account via in-cluster config","ts":"2022-10-11T14:04:10.300Z"}
{"caller":"kubernetes.go:326","component":"discovery manager scrape","discovery":"kubernetes","level":"info","msg":"Using pod service account via in-cluster config","ts":"2022-10-11T14:04:10.301Z"}
{"caller":"kubernetes.go:326","component":"discovery manager scrape","discovery":"kubernetes","level":"info","msg":"Using pod service account via in-cluster config","ts":"2022-10-11T14:04:10.301Z"}
{"caller":"kubernetes.go:326","component":"discovery manager notify","discovery":"kubernetes","level":"info","msg":"Using pod service account via in-cluster config","ts":"2022-10-11T14:04:10.302Z"}
{"caller":"main.go:1221","db_storage":"2.164µs","filename":"/etc/prometheus/config_out/prometheus.env.yaml","level":"info","msg":"Completed loading of configuration file","notify":"19.335µs","notify_sd":"363.836µs","query_engine":"1.257µs","remote_storage":"2.807µs","rules":"118.927463ms","scrape":"77.471µs","scrape_sd":"4.150944ms","totalDuration":"132.278018ms","tracing":"9.259µs","ts":"2022-10-11T14:04:10.421Z","web_handler":"646ns"}

Note that there was a similar issue reported in https://github.com/prometheus/prometheus/issues/8768 and released in 2.38.0 but it still happens for us as of Prometheus 2.39.1.
We don't really have much more detailed information at this stage, but this happens almost several times a month, on multiple Kubernetes clusters (so different deployments of Prometheus/Alertmanagers) since multiple releases (our earliest report in our team is from beginning of 2021).
We deploy a set of Prometheus and Alertmanager per Kubernetes cluster, they communicate only between them in the same cluster (not cross Kubernetes communications).

Duplicate of https://github.com/prometheus/prometheus/issues/11305

We (same group as @multani) experience the very same issue with dns_sd_config . Prometheus is not able to update the IPs even though it should do it every 30s.
We tested the following configuration:
  alertmanagers:
  - follow_redirects: true
    enable_http2: true
    scheme: http
    timeout: 10s
    api_version: v2
    dns_sd_configs:
    - names:
      - alertmanager-operated
      refresh_interval: 30s
      type: A
      port: 9093

Is that still a duplciate of #11305 ?


Verification fails with libressl

Description

I am investigating why the verfication is failing when following the README steps. I tried both local deployment approaches and both are failing.
Verification: FAILED
4336174636:error:2FFFF065:time stamp routines:CRYPTO_internal:ess signing certificate error:/AppleInternal/Library/BuildRoots/a0876c02-1788-11ed-b9c4-96898e02b808/Library/Caches/com.apple.xbs/Sources/libressl/libressl-2.8/crypto/ts/ts_rsp_verify.c:300:

where the timestamp inspection shows:
Status info:
Status: Granted.
Status description: unspecified
Failure info: unspecified

TST info:
Version: 1
Policy OID: <IP_ADDRESS>3.1.1
Hash Algorithm: sha256
Message data:
    0000 - e4 9a 89 7a ac 4c 98 19-21 27 0a 3f 79 e4 68 85   ...z.L..!'.?y.h.
    0010 - c9 95 2f c5 ba 1a b4 c0-cd ef 38 0b e7 73 74 81   ../.......8..st.
Serial number: 0x1F5E0336A9118E4020B3EC84C33B2C9E99E36505
Time stamp: Oct 13 17:53:10 2022 GMT
Accuracy: 0x01 seconds, unspecified millis, unspecified micros
Ordering: no
Nonce: 0x4CE5002F5E5F753A58F2B98124C3B6A732EE769B
TSA: DirName:/O=local/CN=Test TSA Timestamping
Extensions:

Hm, I wonder if this has to do with either macOS overriding the trusted root or libressl vs openssl.

To confirm, to verify you ran openssl ts -verify -in response.tsr -data "myblob" -CAfile ts_chain.pem?

In terms of verification, what should happen is as follows:

The leaf certificate is extracted from the response
The chain must be provided
openssl uses CAfile for the root
For the example, the root should verify the leaf
Success!

I think we may need an extra flag if you're using an intermediate, but for the example, it should just be a leaf and root.

Yes, I ran openssl ts -verify -in response.tsr -data "myblob" -CAfile ts_chain.pem

Thanks for the report, I'll set it up on macOS to repro. If you have something running Linux, it should work, but let me know if you run into issues.
Can you also run openssl version and let me know the response?

Yes, I'll continue investigating it, and run it on Linux as well.

I tried on Linux and it worked.
On MacOS, It doesn't work when using the pre-installed openssl version (LibreSSL). However when I explicitly install openssl with brew install openssl and set the path to use that one, it works as expected. We could add a note to the README and close this issue.

Reopening this and renaming the issue, and I'll dig into this when I've got some time.

Closing as I don't think we'll take any action on this, as this is an issue with libressl


Code Inspector ignore  pragma comments

Noticed that the pragma comments for Code Inspector generate warnings.

The comments need to be on the line of the statement to exclude if from certain checks.
There are several prefixes to trigger this behavior:

#EC   - Extended Check
## - Pragmas

yea, looks like a bug, thanks

hmm, but above "##MG_MISSING is a commented pragma? ##MG_MISSING is a pragma
EC ok,

In 700 the pragma are limited. SAP wanted me to follow a certain ATC specification for which the newer Pragma's are required. So i needed to add the newer once as comments which still works fine for ATC

any official or semi-official documentation on this approach?

its no trouble adding it as an exception in this rule, just some of the other stuff will need to know the real pragmas

@ed-holland try again, latest version

Working nicely. Thanks.

Does abapLint have it's own Pragma's?
As to the official Pragma's and their positioning:
`A pragma applies to the current statement, that is, for the statement that ends at the next "." or ",". Pragmas in front of the ":" of a chained statement apply to the whole chained statement. Pragmas that occur when calling a macro apply to all statements of the macro.
Pragmas must only occur at certain positions in the source code for reasons of readability:
at the start of a line, after any number of blanks
at the end of a line, at the most followed by ".", ",", or ":".
but not after ".", ",", or ":".
Multiple pragmas may be entered one after another (separated by blanks) at permitted positions.
Unknown pragmas or pragmas with formal errors or pragmas in the wrong position or with incorrect parameters themselves produce syntax warnings. Pragmas in the wrong position for syntax check warnings are ignored.
`
751

no, no custom abaplint pragmas for now, I'm trying to have few false positives which will remove the need for pragmas
and abaplint will use the pragmas already defined by SAP, eg.
DATA foo TYPE i ##NEEDED.
But as far as I understand, for it to work on 700 you have this:
DATA foo TYPE i. "##NEEDED
which is not a real pragma according to the documentation you've linked above?

Yes, the pragma will not work in 700 (requiring it to be comment). But it will work if the code is checked in a newer release. Showing a clean bill when the company is doing ATC checks.
Found this Abap: ABAP_SLIN_PRAGMAS (it shows all the pragma's)


Cancelation support

Thanks for your updates to this card! Wondering if you'd take a request...
Describe the solution you'd like
Id like to be able to cancel a timer (or alarm i suppose) by clicking an X beside it
Describe alternatives you've considered
This is doable by calling a service like this:
service: google_home.delete_timer
data:
  entity_id: sensor.kitchen_timers
  timer_id: timer/47dc1fa0-5ec0-2cc7-9ead-a94b85e22769

Problem is getting the timer_id from the timer i'm clicking on. So i think it would have to be integrated into this card. My skills in this area are non-existent :(

Sorry, just seen this! Yeah, I am just implementing the ability to delete alarms and timers, should hopefully get it done this week.


how could tf.nn.max_pool work with dynamic kernel size?

Not with the current op interface. You would have to write a new op that takes the kernel size as an input tensor. The kernel implementation can be refactored to use most of the current max_pool implementation.

Closing. Feel free to reopen if this is a feature request worth tracking.

+1
I would like to request that feature.


wrangler's configuration format

We talked with @ashleygwilliams about a non-Rust nor JS centric configuration format.
I don't think we reached consensus on a format. I propose using yaml (and toml for backward compatiblity).

We should consider what wrangler generate should do? what configuration? flags?

for the moment i think we are settling on the toml file and we'll explore further options as people request them! i'm going to close, but please reopen if i'm mistaken and there are still outstanding questions

I'm also voting for yaml to make it more inlie with other DevOps tools. Check this out:
https://github.com/toml-lang/toml/issues/516#issuecomment-369243479


How to avoid downloading the same video with different file extension (remux) in yt-dlp

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

[X] I understand that I will be blocked if I remove or skip any mandatory* field

Checklist

[X] I'm asking a question and not reporting a bug or requesting a feature
[X] I've looked through the README
[X] I've verified that I'm running yt-dlp version 2022.11.11 (update instructions) or later (specify commit)
[X] I've searched the bugtracker for similar questions including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue

Please make sure the question is worded well enough to be understood
This is the command I'm using to download my videos: yt-dlp --remux "webm>avi" -o "%(upload_date)s %(title)s.%(ext)s" -f bv[format!*=248] -a List.txt
I have text files with tons of links So, if the videos are already downloaded in avi format yt-dlp doesn't detect it, instead it downloads the video again creating a webm.part file, then it remuxes the file and overwrites the old avi downloaded video
I know the cause of this is the ".%(ext)s" command but I cannot remove that part
So what I need is for yt-dlp to recognize the file name instead of the extension, because from time to time I will need to check those video lists again with yt-dlp, to check for missing videos, or if I add new link videos to those lists
Provide verbose output that clearly demonstrates the problem

[ ] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[ ] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
No response

Use --download-archive

The command works great, I just had to download everything again, but It is really helpful
also I don't have to wait for it to check each video
Although it won't help if there is a missing video I realized that the probability of that happening is really small. So this helped me so much thank you pukkandan

I just had to download everything again

This could have been avoided with --skip-download --force-write-archive

Well, lesson learned.
Sorry If I ask here...
If I have a 10 mb speed connection, would be better to open three windows each one with limit rate of 3.3M
Or two windows with limit rate of 5M each one
Or would be better to open only one window with yt-dlp?
Or it doesn't have any importance?
I don't want corrupt files or failures of course
Thank you pukkandan

Never run multiple instances to download the same video. For multiple videos, it depends on the website, any other options used, and various other factors. I suggest you test it yourself and decide

Hey pukkandan I've just re-read the README but find nothing so probably the answer will be no, but is there a way to write the file name or the youtube video name in the archive file? (Along the recorded IDs)
I think that is the only thing I have left to know
Thank you so much

https://github.com/yt-dlp/yt-dlp/issues/1762#issuecomment-976441715

Hey thank you, I've just found out how to search words or letters in a text file so if I have missing videos I just have to search the IDs I want to delete, I was making things harder


Update how-do-i-report-a-support-issue.md

fixing link

https://ctliotest.atlassian.net/browse/PE-1818


Look into optimizing Smart Contract to make it cheaper

can move DB to contract or use IPFS. still needs more work but will be discussed in WP


Path and module changes (RFC 2126)

See rust-lang/rust#44660.

[x] Paths starting with crate
[ ] Not needing extern crate
[ ] crate visibility modifier - not stabilizing in initial release
[ ] Not using mod.rs
[ ] Any edition lints
[ ] Update existing examples

I have a branch for the extern crate changes, but it is blocked waiting on #415 (I either need to link to or write something that explains the extern prelude).  crate visibility is not stable (rust-lang/rust#53120) so I don't think that's relevant here.  I opened PR #450 for mod.rs changes.
I'm not sure what is meant by "edition lints".  My extern crate changes note that it is unidiomatic in 2018, but I'm not sure what other lints are relevant.  Also, I was under the impression lints aren't generally documented here and deferred to the rustc user guide.  Are there specific rust_2018_idioms you want to call out?

Regarding updating the examples, AFAIK the mdbook playpen links don't support changing the edition, so those links will always break.  I can't find this being tracked or mentioned anywhere.  I imagine they aren't used very often, but I think it should be tracked somewhere (should I file an mdbook issue?).


(enh): use checksum in sync-big-db

To avoid the synchronization of corrupted files or to synchronize everything, we need to use the checksum to only synchronize the necessary files.

I confirm it would be nice doing so, rsync offiers this option:
 -c, --checksum              skip based on checksum, not mod-time & size

It needs to be benchmarked on big files.


Add support for Bezier curves.

These are super flexible (probably more so than springs) which is why they should be added.

I assume you're talking about cubic Bezier curves, similar to how they might be implemented in CSS?
I think it'd be good to include some hypothetical usage, so here's how I think an API like this could work:
local position = UDim2.fromScale(0.25, 0.25)

local smoothPosition = Bezier(position, Vector2.new(0.17, 0), Vector2.new(0.02, 0.97))
-- 2 control points for cubic Bezier easing curve - starts at (0, 0) and ends at (1, 1)
-- could be replaced by state objects containing Vector2s!
-- X coordinates are clamped between 0 and 1 to ensure one Y solution for every X between 0 and 1

That's exactly what I'd want. I'd do it how it was done in BoatTween (although there is an error on it) instead of Vector2s though.

Related to #87

Merging with #87


Add husky & lint-staged

Adds Husky & lint-staged as new dev dependencies. This addition will initially start formatting each staged file coming in. Once each file is formatted, though, upcoming PRs should be focused on the content without the unnecessary bloat of formatting unformatted code.
Relates to #225.

Looks great, btw, if you wanted to use Husky v5, you could, since zod is an open source project.
I think using v4 is still great, as maybe there are some unreported issues in the fifth version of Husky.

@o-alexandrov, I was thinking the same thing! Great minds think alike 😋  I tested both v4 and v5 before making the decision to stick with v4 for now. v5 includes a new .husky/ directory, which Husky then configures all git hooks to point to that directory using the git configuration core.hooksPath. When going back to v4 and being confused for a bit, this was a silent killer before I found it 😅  It also requires you to install pinst and set up some additional scripts. I think we should give v5 a bit more time 🙂


additionalInputsProps

additionalInputsProps (using the sample on README.md) or requiresPostalCode are not working.
Does anyone have an example where this works?
It seems the props are not rendered

+1 Same prob

The issue I'm having is that the additionalInputProps are being overridden by the CCInput props. A lot of the properties that most people will change such as custom value handling, placeholders, etc. The properties that are passed in are in the first of the merge change and it actually reduces what keys people can override. So some keys will and some won't work.
<TouchableOpacity onPress={this.focus}
        activeOpacity={0.99}>
        <View style={[containerStyle]}>
          { !!label && <Text style={[labelStyle]}>{label}</Text>}
          <TextInput ref="input"
            {...additionalInputProps}
            keyboardType={keyboardType}
            autoCapitalise="words"
            autoCorrect={false}
            style={[
              s.baseInputStyle,
              inputStyle,
              ((validColor && status === "valid") ? { color: validColor } :
              (invalidColor && status === "invalid") ? { color: invalidColor } :
              {}),
            ]}
            underlineColorAndroid={"transparent"}
            placeholderTextColor={placeholderColor}
            placeholder={placeholder}
            value={value}
            onFocus={this._onFocus}
            onChangeText={this._onChange} />
        </View>

I am also facing the same problem.
I am trying to restrict the library to enter only English numerals using keyboardType: ascii-capable  as the additionalInputProps but it is not working.
Also, in the library, when I try to enter Arabic numbers, then onSubmit -> Arabic numbers are not received. See the gif attached below.

Any help regarding this will be much appreciated.

+1

I was able to get it to work doing something like this:
<CreditCardInput
  onChange={customFunctionUpdatesState}
  additionalInputsProps={
    {
      "number": {
        onEndEditing: () => { customFunctionReadsFromState }
      }
    }
  }
/>

What took me some time to figure out was the object format that additionalInputsProps expects (i.e.  "number", "expiry", "cvc"). In this example I am using onEndEditing, but you can change this to any other event supported by TextInput

I still cant get through this, I tried changing style but its not working. What is the correct syntax for writing additionalInputProps ?


Thelounge 2.0.0 Random Crash

Hi there,
Just upgraded this eve'.
I'm facing difficulties reconnecting to freenode(No shit), after some time I also experienced that the client itself crashed - with the following error message:
events.js:160
      throw er; // Unhandled 'error' event
      ^

Error: connect ETIMEDOUT <IP_ADDRESS>:6697
    at Object.exports._errnoException (util.js:1036:11)
    at exports._exceptionWithHostPort (util.js:1059:20)
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1080:14)

This is unfortunately a known issue we have a hard time isolating. There's a few other open issues about this (hence the duplicate label I just added), but I can't find them right now.
It appears to be a concurrency problem that causes the error to be thrown in the wrong place and it bypasses the error handler meant to deal with this and attempt another connection.

I also have reconnect issues (see #648, maybe related?) and I got the exact same crash (same IP and everything) about 75 minutes ago. Flaky Freenode.
Could it be that a /connect in The Lounge doesn't reset all state properly? So it works reliably the first time, but not on the n-th reconnect?

I just had the same around the same time with freenode which crashed The Lounge for me through ZNC.


feat: added A.differenceWith

resolves #71

I copy-pasted test file from difference.test. I guess when the comparing function is F.equals, It should be the same as the difference function.


Project complete

Readme changes

Add live demo link
Add project presentation video link

Other
I was merging my branch throughout the project so the main pull request can no longer be done. I am sorry for the inconvenience. Please let me know if there is a way to create a better pull request even after merging.
This is a link to the full commits

Hi! Thanks for the comments @mgmediaweb. I do have some questions because I am not sure I understand this completely.

Kindly, I suggest you use the ARTICLE semantic tag, for repetitive content like this
[index.html line 59-85]
[main.js line 51]

I changed the ul to article on lines 59 - 85

I don't understand where in main.js I should make the change. Should it be an article instead of a div?

I was thinking maybe lines 96 and 97 of index.html should be the ones turned into articles

The idea is to replace all the UL/LI in this section with ARTICLES tags

in the main.js when you list the speakers instead of creating DIV tags, you should create ARTICLES tags

I am not sure if this is what you mean.

If it is, could you explain a little why it is better to use articles in this case?
@mgmediaweb


Parameterizing the topic count value

Added code to pass along the topic count input from the command line so that it is used consistently throughout the flow.
Also updated wrapper tests to provide appropriate input args (since topic count was added to some functions).

it was just "there" for dns?

Yeah, DNS already had config.topicCount :)


Pinch to Zoom

The current zooming solution (cmd + scroll) is clunky and scrolls while zooming. Implementing pinch to zoom would make it much more intuitive for users of apple laptops.

I use Ubuntu 14.04. Ctrl + Scroll not working for zoom. Why?

It does not work for me either. Linux Mint 17.3.

Ctrl + Scroll is fixed in c527d529fe1a2a1a86ae49f6d7ea8b82ef1bd131.


Add tests for Auth.go

Bumps auth.go test coverage to about 88.6%

@Inconnu08 is it still a WIP? Edit the tile if its not.

Yes whole package hence it was a WIP commit. But think it's better or separately pr for simplicity.

@Inconnu08 lets keep it as a single pr but separate commits. I'll review one commit at a time. Will finally squash and merge.

@Inconnu08 You think you can resolve the conflicts? I'll merge it right in after that

@YourTechBud yes, I will resolve asap

@YourTechBud resolved conflicts


Fix error from inconsistent use of tabs and spaces

Python 3 raises TabError

Thanks. I've release 0.2.1.
Sorry about that.


Dry run

Hi, Thank you very much for this amazing tool. It helped me delete 50+ forks in no time flat.
Could you please add a --dry-run option to the delete command?
Thanks,
Andre

How would that work? You can already see what repos which will be deleted before the second command is ran.

Fair enough. I guess I am just super cautious.
The tool works amazingly well and helped me delete about 60 forks in less than a second.

I honestly wish for this tool to be built within GitHub instead.


feat: enable Clone, Eq, PartialEq and Debug macro for RegistryAuth

This is useful for downstream crates to write related tests
Signed-off-by: Xynnn007<EMAIL_ADDRESS>

Can you please look into the failing test please?

This problem seems not related to this PR. I'm going to open an issue

refer to https://github.com/krustlet/oci-distribution/issues/49

Thanks @Xynnn007. Let's merge this PR in the meantime


[PAIShare] add modal for data, docker and script

add modal for data, docker and script

Coverage increased (+8.8%) to 72.426% when pulling 7736c46c02dc9a07efb6abf9b225fe4134300c9f on chenqi/paishare1 into 65549c891940c4c9ff8c3d567d4e9f08b29af838 on paishare.

Coverage increased (+8.8%) to 72.426% when pulling 7736c46c02dc9a07efb6abf9b225fe4134300c9f on chenqi/paishare1 into 65549c891940c4c9ff8c3d567d4e9f08b29af838 on paishare.

Coverage increased (+8.8%) to 72.426% when pulling 7736c46c02dc9a07efb6abf9b225fe4134300c9f on chenqi/paishare1 into 65549c891940c4c9ff8c3d567d4e9f08b29af838 on paishare.

There are errors from TSLint at https://travis-ci.org/Microsoft/pai/jobs/421393013.


Add ci file for integration tests (#2938)

Pull request opened by the merge tool on behalf of #2938

Merged into branches iso4 in 9bb70b8863715379e50f57ebda5735ad8f2c005f


template with data from two json files

I'm creating questionnaires. But I have questions an answers on different json files and no way I can combine them.
Is it possible to stream data from two json files but in one template?
Or is there a better way to deal with this kind of situation?

Right now it is not possible.

Thanks for quick respond! Are you planning to add this function?

Not now. Meanwhile, you can fire 2 JSON requests and combine both requests data and initialize filter.js

Do you mind elaborate on that? I'm not sure how to do it/

Create only one json data array by combining two json data array i.e
{[
q: 1
a: 2
],
[
q: 2
a: 4
]
....
}


var and val keyword

Since "var" and "val" looks the same, they can easily be mistaken into their opposite.
Why not replace "var" keyword by "mut" as Rust does ?

This is something that hadn't crossed my mind. Those keywords were brought from JS and Scala without much questioning.
I am not very familiar with Rust, but another option could be to use let and let mut, which would effectively make all variables immutable by default, except if stated otherwise. This would in fact be more faithful to the way Oz does things, so to speak.
Thanks for this input !

Instead of using the keyword val for CTM's variables, and var for CTM's, how about staying close to CTM's linguistic conventions? So, things that are called variables in CTM could be var in nozc, and things that are called cells in CTM could be called cel or cell in nozc.
Unless Profs. Van Roy & Haridi plan on releasing a new edition of CTM for nozc, students will be reading the original for the time being. Switching between the two different frames of mind will be easier for new students if the conventions have a good degree of correspondence between ozc and nozc.

Your point about the book is very relevant. However, my position is the following : we are designing a language based on Oz, and not around the documentation/resources/courses that have made use of Oz over the years. By that I mean that the material should be adapted to the new syntax when it will be officially released. I think that, by the time the language is mature enough to be used in courses, the material will have been adapted to match it, so to speak. I need however to discuss this with Prof. Van Roy that have his opinion.
Regardless of this, I actually like the keyword cell a lot. Despite the opinion I gave about the essence of your point -which, I want to stress this, might change and is really not the only one taken into account in this whole project- I actually like the keyword cell a lot; it can't hurt to try and stay closer to the original syntax, which is the primary goal after all.
TL;DR : even though I don't think we should constrain ourselves too much by matching the existing material, in this case it makes a lot of sense and I find it quite elegant
Thank you for this input !


pw_utils.save_detection_images() cannot save into a non-empty folder

Search before asking

[X] I have searched the Pytorch-Wildlife issues and found no similar bug report.

Bug
pw_utils.save_detection_images() results in an error if you add images to an existing folder repeatedly (it works the first time, but fails the second time once the folder is no longer empty). This leads to an error where the target folder is considered to be a file. There are no issues if you create a new folder for each output.
File "{local folder path}.virtenv\lib\site-packages\PytorchWildlife\utils\post_process.py", line 35, in save_detection_images
with sv.ImageSink(target_dir_path=output_dir, overwrite=True) as sink:
File "{local folder path}.virtenv\lib\site-packages\supervision\utils\image.py", line 77, in enter
os.makedirs(self.target_dir_path)
File "C:\Python39\lib\os.py", line 225, in makedirs
mkdir(name, mode)
FileExistsError: [WinError 183] Cannot create a file when that file already exists: 'uploads\{unique_folder_id}_detections'
Environment
Python 3.9.4
PytorchWildlife <IP_ADDRESS>
OS: Windows 10
Minimal Reproducible Example
def detect_animal_in_image(image_folder, file_name):
file_path = get_file_path(image_folder, file_name)
img = get_image_from_filepath(file_path)
result = detection_model.single_image_detection(transform(img), img.shape, file_path)
return result
def output_annotated_images(results, annotated_image_folder):
# Output annotated images
pw_utils.save_detection_images(results, annotated_image_folder)
Below results in issue
def process_single_file_by_type(file_folder, file_name, destination_folder):
file_path = get_file_path(file_folder, file_name)
file_type = detect_file_type(file_path)
if file_type == IMAGE_TYPE:
results = detect_animal_in_image(file_folder, file_name)
output_annotated_images(results, destination_folder)
elif file_type == VIDEO_TYPE:
detect_animal_in_video(file_folder, destination_folder)
else:
raise Exception("Invalid file format detected")
Below does not result in issue, but each image is placed in an individual folder
def process_single_file_by_type(file_folder, file_name, destination_folder):
file_path = get_file_path(file_folder, file_name)
destination_path = get_file_path(destination_folder, file_name)
file_type = detect_file_type(file_path)
if file_type == IMAGE_TYPE:
results = detect_animal_in_image(file_folder, file_name)
output_annotated_images(results, destination_path)
elif file_type == VIDEO_TYPE:
detect_animal_in_video(file_folder, destination_path)
else:
raise Exception("Invalid file format detected")
Additional
I'll continue the project with unique folders for the time being, but I'll adjust the structure if this is changed in the future.
Are you willing to submit a PR?

[ ] Yes I'd like to help by submitting a PR!

Hello @AP-DP , thank you very much for reporting! I am going to take a look at the issue and get back to you as soon as possible!

Hello @AP-DP, we have fixed the issue and now you have an argument to choose whether to overwrite existing folders in the newest PR, and the overwrite argument is default to False. You can pip install PytorchWildlife --upgrade for the newest version for this argument. I am closing this issue, and feel free to reopen if the issue persist in your case! Thank you again for reporting to us!


feat: support TLS

@gxthrj Please resolve the conflicts.

@gxthrj Please resolve the conflicts.

resolved

Codecov Report

Merging #95 (b315f62) into master (53496e6) will increase coverage by 1.44%.
The diff coverage is 91.30%.

@@            Coverage Diff             @@
##           master      #95      +/-   ##
==========================================
+ Coverage   58.28%   59.73%   +1.44%
==========================================
  Files          15       16       +1
  Lines         501      524      +23
==========================================
+ Hits          292      313      +21
- Misses        185      187       +2
  Partials       24       24

Impacted Files
Coverage Δ

pkg/ingress/apisix/tls.go
90.90% <90.90%> (ø)

cmd/ingress/ingress.go
74.66% <100.00%> (+0.34%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 53496e6...b315f62. Read the comment docs.


Transparent loading spinner on Notifications tab

Time Tracking: https://its-pro.ucsd.edu/browse/MA-34
This is done when:

[ ] Loading indicator on Notifications tab is clearly visible in Light Mode
[ ] Loading indicator on Notifications tab is clearly visible in Dark Mode

The loading spinner in the notifications tab is clearly visible in both light and dark mode, but there is a subtle ring/shadow surrounding it and I am not sure if this still is "transparent".

I now see two loading spinners in the notifications tab in both light and dark mode. The transparent spinner now exists and is clearly visible. The spinner was a little cut off and not fully on the screen, so I added some padding (not seen in screenshots).


Failing test raises NoMethodError

I still think we need to figure out exactly why rearrange_ranks is being called on an empty list. That seems to me to be the only reason current_first would return nil.
This is the only code that would rearrange_ranks:
    def assure_unique_position
        if ( new_record? || rank_changed? )
          if (rank > RankedModel::MAX_RANK_VALUE) || current_at_rank(rank)
            rearrange_ranks
          end
        end
      end

Let me know if I don't make sense :)

I wrote up some thoughts in https://github.com/mixonic/ranked-model/pull/148#discussion_r307381214
Would you prefer to discuss here?

current_at_rank(rank) is definitely for determining if there is an existing item at the current rank in this instance. Its name works well for finding the current item at that rank but as you say, the method is unused. I'm about to do a commit that renames this method to rank_taken?. It was also superfluous to pass in the rank anymore because it's accessible on the instance anyway.
def rank_taken?
  finder.except(:order).where(ranker.column => rank).exists?
end

Are you able to examine any SQL logs you get from requests where your error occurs? It'd be interesting to see how we get down that code path with an empty list. I do have one hunch:

Assume an empty scope
update_index_from_position is called. position is :first.
current_first evaluates and is cached to nil.
position_at :middle is therefore called.
update_index_from_position is called. position is :middle.
rank_at_average sets the rank to 1 or 0, I forget how the math plays out.
assure_unique_position is called and new_record? is true.
...meanwhile another request, somehow faster than this one has executed and added the first record to the scope (thus with a position the same as the one we're about to set).
Our simplified rank_taken? method (above), since it modifies the arel query, now executes new SQL that evaluates to true. This triggers a rearrange.
rearrange_ranks is called. Early on current_first is called. Since this was cached earlier on to be nil it returns this now and we get our error trying to call .rank on it.

The only flaw in this logic is that the caching for current_first is @current_first ||= begin. If the instance variable is nil the block will be run again and should return the actual first item already inserted.
I guess what I'm trying to say is that I'd like to figure out why we're getting this error through concrete reproducible example in the real world. I've had a look at your test, but I can't get my head around how it's managing to manifest the error. Can you outline the code flow for me that would result in the error (at bit like I've done above?).
I'm not trying to be a pain :) I'd just like to see if there's a more elegant solution to the problem.

@brendon we have it happen maybe once a month. I have put f095445b4553 into prod in our app so that maybe I'll pull in something useful in the logs.  In the original issue I put in the timing information from the logs. I don't know arel enough to know if it's possibly a query cache issue or something else going on that makes the two queries that look so similar return different truth

Thanks @bf4, hopefully that will yield some better information. I think at a minimum we probably need to re-look at memoization in these methods as that in some ways doesn't make the best of sense :)


Upgrade @octokit/plugin-retry @octokit/plugin-throttling to the last version supported by latest @actions/github

#525  👈
main

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

Join @CatChen and the rest of your teammates on  Graphite


phpExtensions.php-spx: change pname to spx

Description of changes
When building php-spx, the produced extension file is spx.so not php-spx.so:
/nix/store/ricyjysr2jffw0xbmxgg10z9jf7kwv06-php-spx-0.4.14/lib/php/extensions/spx.so

Which has an impact on the way it is loaded by PHP.
Warning: PHP Startup: Unable to load dynamic library '/nix/store/88f5fshy31ch86rvflzi23xckbj817fa-php-php-spx-0.4.14/lib/php/extensions/php-spx.so' (tried: /nix/store/88f5fshy31ch86rvflzi23xckbj817fa-php-php-spx-0.4.14/lib/php/extensions/php-spx.so (/nix/store/88f5fshy31ch86rvflzi23xckbj817fa-php-php-spx-0.4.14/lib/php/extensions/php-spx.so: cannot open shared object file: No such file or directory), /nix/store/pvrivfmj6dklidqqmkviyh8v668xvbcf-php-8.2.12/lib/php/extensions//nix/store/88f5fshy31ch86rvflzi23xckbj817fa-php-php-spx-0.4.14/lib/php/extensions/php-spx.so.so (/nix/store/pvrivfmj6dklidqqmkviyh8v668xvbcf-php-8.2.12/lib/php/extensions//nix/store/88f5fshy31ch86rvflzi23xckbj817fa-php-php-spx-0.4.14/lib/php/extensions/php-spx.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0

We can see here how it is used in the PHP derivation:

https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/interpreters/php/generic.nix#L100
https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/interpreters/php/generic.nix#L131

And here how the function buildPecl is computing the extension name.
A verification in the buildPecl checkPhase could be added to make sure the extensionName is found in the out folder.
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
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.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.

Hi!
How about renaming the directory, just to be consistent?

Yeah I forgot to mention that, I though you may want to stay consistent with the original repository name, but indeed I think it is preferable to stay consistent with the extension name :slightly_smiling_face:

Hi! I was about to submit a PR for the same issue.
This commit renames the extension and folder for consistency as suggested above.
I'm testing the changes on x86_64-linux, aarch64-linux and x86_64-darwin.

What do we do here in the end?

I think we should rename it for consistency and add an alias that would trigger a depreciation warning to prevent breaking changes.

I made a PR on this PR's branch if it helps: https://github.com/gaelreyrol/nixpkgs/pull/18

@GrahamcOfBorg build phpExtensions.spx


Not an issue but rather a question - what is the meaning of the Wels prefix scattered along the code base ?

It's an acronym of H264 transliterated from Chinese.


Add ibc net

Closes #9
This PR provides locatnet for ibc. To do this, there are configuration files for the two chains with different configurations. Each runs on Docker.
The scripts clones cosmos/relayer and installs it. After that, scripts run the two chains and create a connection with the relayer.

Relayer can't relay my msg with this setting.

please resolve all shellcheck error

By the way, why is chain name finschia2-0 not finschia-1?
And I would like you add how to transfer via IBC and check results to README like this:
$ docker exec -it with-ibc_relayer_1 rly tx transfer finschia-0 finschia2-0 1000cony "$(rly keys show finschia-0)" channel-0 -d
$ docker exec -it with-ibc_relayer_1 rly q bal finschia2-0

@ulbqb
here is the reason why chain name is finschia2-0 not finschia-1
https://github.com/Finschia/hackathon/pull/1#issuecomment-1612442983


Is it possible to use the Keycloakify theme as the default Keycloak theme?

Hi, I have added Keycloakify to the docker build process of my Keycloak image. Instead of manually setting the theme in my realm settings, I would like to have it enabled globally using the KC_SPI_THEME_DEFAULT="my-theme" environment variable. When I do so and open the welcome page it displays the text "Theme is null" and the logs show this:
ERROR [org.keycloak.theme.DefaultThemeManager] (executor-thread-1) Failed to find WELCOME theme my-theme, using built-in themes
ERROR [org.keycloak.quarkus.runtime.services.resources.QuarkusWelcomeResource] (executor-thread-1) Theme is null please check the "--spi-theme-default" parameter

I do not need to customize the welcome theme, so it would be ok if it just falls back to the default theme in this case. I also tried to activate just the login theme with KC_SPI_THEME_LOGIN_THEME=my-theme but it did not get applied. Could it be about the theme being included as a jar in providers and not directly in the /opt/keycloak/themes/ dir?
Anyways I'd be happy about any input in that matter, thanks!

Hello @mzbrandl,
I though the Welcome page had been removed in recent version of Keycloak?
I didn't know about thoses environement variables existence. I'll have to look into it.
I though the way to enable a theme "by default" would be to provide a realm configuration json like in this screen:

Let me know if you have more success in your trials

Hey I'll cose this since I haven't much to add but if you have any aditional insight to add it will benefit the comunity!

Hi, I went with specifying the theme in the realm.json. I think it is a fine approach.


Unable to create new SFDX project - launch throwing NullPointer error

See the attached screenshot. Getting error when I trying to create a new project of type SFDX project.
Using Mac installer (my mac version 10.12.5). I was very excited to start my first project but unfortunately, I have to wait for more weeks I guess. let me know if you need any further information.

@priyapanigrahy - Could you provide the following details?
Force.com IDE version: Go to Force.com IDE > About Force.com IDE
SFDX CLI and sfdx plugin version: Go to a terminal and issue sfdx -v and sfdx plugins
Java version:

I doubt I have installed sfdx command line. I have installed "force" command line but not sfdx. Do you mind to send me the npm link to install sfdx.  That could be the reason I m getting the above launch error.

Force.com IDE
Version: R-Beta-201706260926
Build id: Beta
java version "1.8.0_65"
Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode)

@priyapanigrahy - Yeah, missing the SFDX command line is likely the cause of the problem. Please go to https://developer.salesforce.com/tools/sfdxcli to download it.
FYI, this main entry post has links to other resources of SFDX that you might be interested in https://developer.salesforce.com/blogs/developer-relations/2017/06/introducing-salesforce-dx-open-beta.html

@priyapanigrahy - I am going to mark this issue as closed. The root cause should be that you do not have the SFDX CLI installed.
If you are still having this issue after installing it, please feel free to re-open this issue.


wasm and no_std

ISSUE
Overview
Hi, we're looking to start a wasm project and I'm wondering if no_std is required.
Background
I don't see anything about no_std in any of the documentation, which makes me think it's not a requirement. But that begs the question as to why the wasm projects that I've seen are no_std, including Substrate, as it's a very severe restriction.
Questions
What does wasm-pack do differently? And how does pulling in the standard library affect the output size (an important consideration for the browser).
A quick answer here would be fine but it should also be touched on in the documentation.

The rust compiler has support for using std for the wasm32-unknown-unknown target. (I'm not sure about the status of wasm32-wasi)
Sure, if you try to use std::fs or some other modules which are not implemented, you'll get errors, but using a subset of std is definitely supported. (for example, pub fn bar (s: String) -> String is a function that uses std::string::String and it works.)
For more advanced functionality, you might want to have a look at the official gloo project.

Hey @mrcnski, you may want to take a look at this no_std guide for wasm32-*.

@jkomyno Thanks for the resource! Info like that should be incorporated into the docs. :)


Update dependencies and code standards

Hello again,
there are more changes coming up from my side, as I use your lib in one of my tools, so I figured I might as well do some maintenance chores. This PR includes:

Introduce Rector and update codebase to PHP8 code standards
Update Psalm to ^5.7 and increase error level (now down to 3)
Update PHPUnit to ^10.0 and refactor test code to current standards (attributes instead of docblock annotations mainly)

Running Rector as GitHub action would also be a nice addition to your workflows, but I haven't done that (yet).

Oh, well. I forgot that PHPUnit 10 requires PHP8.1.
If you were planning on dropping support for PHP8.0 anyway, this would be a good time.
Otherwise, I can also drop the PHPUnit 10 update.

Yeah, let's drop PHP 8.0 support.
As there probably won't be any new "big" features coming anyway, users don't miss out. And upgrading to PHP 8.1 is anyway encuraged.
Thanks for the PR!

There you go 😃

@weph Thanks again for the PR. Tagged a new release: v1.3.0


Update unit tests after the removal of the QualifiedDeclNameSyntax

After removing the QualifiedDeclNameSyntax #2045, we should also remove this case from unit tests.
The unit tests for the CodeGeneration package are not building on the main branch.

@swift-ci please test

Thanks @Matejkob 💪


vscode: don't round font sizes

The font sizes shouldn't be rounded when converting pt to px. For example, 13.333 will look bigger than 13 and smaller than 14
In my configuration, the rounding causes my editor fonts to look really small compared to my standalone terminal.

It's a nix thing:
nix-repl> 1 * 4 / 3
1

nix-repl> 1 * 4.0 / 3.0
1.33333


Span trim stack trace

@SimonCropp Thanks for improving this!
I'm curious, did you have a scenario where you have seen this in a performance trace? Or did you work on this because of https://github.com/microsoft/testfx/issues/4266 ?

@Youssef1313 just 4266

@Youssef1313
thoughts on adding System.ValueTuple and System.Memory TestFramework.csproj for some older tfms? i need that to make the polyfill work. if u dont like it can can go a different direction


Update WindowsAppSDK-ProductInfo.h release = 1.3

WindowsAppSDK-ProductInfo.h defined the release as 1.2. That's soooo last release. It's now 1.3

/azp run


[Unity] Avoid Using Wildcard Imports

Wildcard importing is not recommended in Python projects: https://docs.python.org/3/tutorial/modules.html#importing-from-a-package
I acknowledge that disabling it will bring extra effort to adding new operators, analysis and transforms. But it will make the code clear, also benefit the API reference doc.
cc @junrushao @tqchen

This is great and is something I've been thinking for a while! Thanks for taking actions getting it fixed!


add assignment.az.md

I would also like to do azerbaijani translation.

I hold a place for my file.registory so I could try to run some doc immediately I get my new system.
Suffering from ram issues my process rehabilitation each time I work a file.


rtfd: try another redirect [wip]

What does this PR do?
Preserve #16993 and reaction to #17016
Testing links:

https://pytorch-lightning--17018.org.readthedocs.build/en/17018/api_references.html
https://pytorch-lightning--17018.org.readthedocs.build/en/17018/levels/intermediate_level_7.html

Before submitting

Was this discussed/agreed via a GitHub issue? (not for typos and docs)
[ ] Did you read the contributor guideline, Pull Request section?
[ ] Did you make sure your PR does only one thing, instead of bundling different changes together?
Did you make sure to update the documentation with your changes? (if necessary)
Did you write any new necessary tests? (not for typos and docs)
[ ] Did you verify new and existing tests pass locally with your changes?
Did you list all the breaking changes introduced by this pull request?
Did you update the CHANGELOG? (not for typos, docs, test updates, or minor internal changes/refactors)

PR review
Anyone in the community is welcome to review the PR.
Before you start reviewing, make sure you have read the review guidelines. In short, see the following bullet-list:

Reviewer checklist

[ ] Is this pull request ready for review? (if not, please submit in draft mode)
[ ] Check that all items from Before submitting are resolved
[ ] Make sure the title is self-explanatory and the description concisely explains the PR
[ ] Add labels and milestones (and optionally projects) to the PR so it can be classified

cc @borda @carmocca @akihironitta

let's try: https://docs.readthedocs.io/en/stable/user-defined-redirects.html#migrating-your-documentation-to-another-domain

Ok, so not the proposal is combine and #16993 and https://github.com/Lightning-AI/lightning/pull/17018#issuecomment-1462601472
The redirect shall work from the root as build docs have an only index, and so all other links shall return 404, but this 404 shall be caught by RTFD build in redirect...

btw, just tested it and seems to be working... :)
after fixing typo in redirect :innocent:


[CELEBORN-1360] Ensure that a client cannot push or fetch data belonging to a different application

What changes were proposed in this pull request?
This ensures that an authenticated client is not trying to push or fetch data which belongs to another application.
Why are the changes needed?
The changes are needed for authentication support.
Does this PR introduce any user-facing change?
No
How was this patch tested?

@RexXiong @waitinfuture @mridulm @SteNicholas @pan3793 Please take a look

Besides pushing and fetching data, I think we also need to enforce authentication checks for the following RPCs: from LifecycleManager to Worker (ReserveSlots, CommitFiles, DestroyWorkerSlots), and from LifecycleManager to Master (HeartbeatFromApplication, RequestSlots, ApplicationLost, PbUnregisterShuffle, etc.)

My only concern is if the client id is being set will be visible to other threads or not (earlier, it was within the same thread iirc) ... might be a good idea to change it to an AtomicReference ?

@mridulm the client id is being accessed by only one of the event loop which is assigned to the channel. It is not being accessed by different threads. This is similar to how this is done in Spark.

Besides pushing and fetching data, I think we also need to enforce authentication checks for the following RPCs: from LifecycleManager to Worker (ReserveSlots, CommitFiles, DestroyWorkerSlots), and from LifecycleManager to Master (HeartbeatFromApplication, RequestSlots, ApplicationLost, PbUnregisterShuffle, etc.)

@RexXiong This doesn't seem straightforward right now. The Master and Worker use the RPC layer which doesn't exposes the TransportClient and the NettyRpcHandler doesn't know about appIds in the messages.
My suggestion is that we protect the pushes and fetches right now. I can create a follow-up jira to see how we can check this for these control plane messages.

Besides pushing and fetching data, I think we also need to enforce authentication checks for the following RPCs: from LifecycleManager to Worker (ReserveSlots, CommitFiles, DestroyWorkerSlots), and from LifecycleManager to Master (HeartbeatFromApplication, RequestSlots, ApplicationLost, PbUnregisterShuffle, etc.)

@RexXiong This doesn't seem straightforward right now. The Master and Worker use the RPC layer which doesn't exposes the TransportClient or the channel and the NettyRpcHandler doesn't know about appIds in the messages. My suggestion is that we protect the data, that is, pushes and fetches right now. I can create a follow-up jira to see how we can check this for these control plane messages.

Make sense to address this in a follow-up JIRA. Additionally, concerning the issue of the RPC layer not exposing the client, I suggest adding TransportClient into NettyRpcCallContext

@RexXiong @mridulm Please let me know if you have any other concerns

Looks good to me.

Merge to main(v0.5.0)


[INJIMOB-691] backup and restore flow

Note:

Some refactoring TODOS are kept which will be taken up later
Debug logs are kept in some places to avoid last min changes breaking the flows

Also, for all the components and machines named backupAndRestore, when I checked its mostly doing restore things. can we get those renamed properly.

Also DCO checks are failing plz signoff commits properly.

Also, for all the components and machines named backupAndRestore, when I checked its mostly doing restore things. can we get those renamed properly.

Renamed to backupAndRestoreSetup 👍

Also DCO checks are failing plz signoff commits properly.

Yes noticed some mismatch with sign off name in commit message, but since this is not from any of the committers (Pooja / me) , should I rectify this?

Also DCO checks are failing plz signoff commits properly.

Yes noticed some mismatch with sign off name in commit message, but since this is not from any of the committers (Pooja / me) , should I rectify this?

The committer has to do it I guess. Needs a proper sign off

Also DCO checks are failing plz signoff commits properly.

Yes noticed some mismatch with sign off name in commit message, but since this is not from any of the committers (Pooja / me) , should I rectify this?

The committer has to do it I guess. Needs a proper sign off

Since this is a commit which is already merged to develop, can we ignore this check alone in this PR.
Also I have initiated conversation reg this


Create a CentOS-based image with Kubernetes pre-installed

What is the problem that this PR is trying to fix?

It would be nice to have as much image configuration as possible be done in Ansible (instead of bash scripts)
It would be nice to be able to do as little image customization as possible in Terraform when deploying images for a Kubernetes cluster

What approach did you choose and why?
Create another image template called centos7-kubernetes. It runs the same roles as the centos7 image, as well as new ones for Docker and Kubernetes. kubeadm is installed and ready, so the only thing that should be needed in Terraform to set up a basic Kubernetes cluster is to choose whether the machine will be a master or a node and run the appropriate kubeadm command.
I had wanted to build this by cloning the centos7 vanilla image and then just applying the additional roles, but the cleanup role makes it difficult for our Packer build process to SSH into such a machine. So for now at least, it installs from ISO and just reuses many of the files for the vanilla image.
How can you test this?
I just deployed the cluster-staging nodes in MacStadium using this image.
What feedback would you like, if any?
Any.

@mjm just for my own context, what is the reasoning behind not wanting as much in terraform for k8s?Is ansible a new addition to our tool set? The code changes themselves LGTM, I just want to make sure I understand all the context here!

@ryndaniels I'm glad you asked!
My thought here is preferring less on-the-fly provisioning of VMs in Terraform in general. It's definitely a subjective thing, but I like having as much of what I need from the VM pre-baked into it. Now every VM we clone for k8s (from this image) will be exactly the same: have the same versions of k8s and docker, no potential for any step in the process failing for some reason on a particular VM and not others. I don't think this is just about k8s: I like this pattern in general, but this is the easiest place to put it into practice right now.
Ansible is not a new tool here: shortly after we got the Packer builds for macOS images all the way working, I refactored the bootstrapping script into Ansible playbooks. Shortly after, I wrote some new playbooks and Packer templates for building our Linux vanilla images for the MacStadium infra. This is an extension of that work.
Happy to answer more questions about this if you have them!


LMDB dump for faster provisioning

This PR is based on the 20200218_lmdb branch. It adds a docker-compose override file and a bash script, as well as minor modifications to the replicator, in order to fire up the replicator and its dependencies to create a one-off dump in the ns Docker volume, and then exit.
Todo:

[x] Add tooling to convert the dump to portable text format using mdb_dump / convert back using mdb_load (or convince ourselves that we're safe with a binary copy, as long as we stay on x86)
[ ] Figure out why, when running on the same host as desec-stack, the VPN client can't connect to the VPN server. (known issue?)

I did not manage to get the export/import with mdb_dump / mdb_load to work correctly (reported as https://github.com/PowerDNS/pdns/issues/8873). However, according to this post by the lmdb developer, files should be binary compatible as long as you stay on Intel/AMD (little-endian), which we do (cf. Endianness in current architectures). Word size does not appear to matter anymore. So, directly using the backup should work.

Word size does not appear to matter anymore.

I think that link is about Monero, not LMDB (but, by extension, of course LMDB). I am unsure PowerDNS also makes this promise.

mdb_dump output is portable across any architecture. That is the point of the dump/load tools, to allow you to migrate data between incompatible versions.

For reference, I learned in https://github.com/PowerDNS/pdns/issues/8873#issuecomment-592084364 that a) it was a misunderstanding that LMDB files are portable across 32bit/64bit, b) the reason why I could not get the export/import to work was a bug in mdb_load which is now fixed in 0.9.25. Shall take another stab at it soon.

I added the tooling for easy export / import. Given a slave of any freshness (may be up to date or stale or empty), do the following:

Make sure it is not running
Run ./dump.sh: fires up ns and replicator, waits until done, shuts everything down, starts a lmdb-backup container which contains a manually built version of lmdb tooling, runs mdb_dump to export the database, creates a tar.gz file with everything and puts it into ./lmdb-backup/backup/.
Run ./load.sh $FILENAME, where $FILENAME is the name of one of the files in ./lmdb-backup/backup/. Starts a lmdb-backup container, extracts the file in it, runs mdb_load, puts all flies into the PowerDNS storage directory. Aborts if that directory is not empty.
(Start slave normally.)

The last open item is that running such a dump slave on the stack host fails because that requires an OpenVPN client and server on the same machine, which does not work. I propose to still proceed with this PR, and "fix" this later if necessary. Rationale:

Workaround is trivial: Just create the dump somewhere else.
This may be an OpenVPN limitation, so there may not even be a fix.

Essentially this in some sort of README

I added the tooling for easy export / import. Given a slave of any freshness (may be up to date or stale or empty), do the following:
1. Make sure it is not running

2. Run `./dump.sh`: fires up `ns` and `replicator`, waits until done, shuts everything down, starts a `lmdb-backup` container which contains a manually built version of lmdb tooling, runs `mdb_dump` to export the database, creates a tar.gz file with everything and puts it into `./lmdb-backup/backup/`.

3. Run `./load.sh $FILENAME`, where `$FILENAME` is the name of one of the files in `./lmdb-backup/backup/`. Starts a `lmdb-backup` container, extracts the file in it, runs `mdb_load`, puts all flies into the PowerDNS storage directory. Aborts if that directory is not empty.

4. (Start slave normally.)

The last open item is that running such a dump slave on the stack host fails because that requires an OpenVPN client and server on the same machine, which does not work. I propose to still proceed with this PR, and "fix" this later if necessary. Rationale:
* Workaround is trivial: Just create the dump somewhere else.

* This may be an OpenVPN limitation, so there may not even be a fix.


Added dependencies to compile cie_sign_sdk

Please no. This is exactly what one should not do on linux. A user should either install these from its distribution or download the sources from the project repositories. If you include the sources, then they get stuck at a given and do not receive any security change; furthermore, you are not able to follow small upstream changes, that will accumulate; after a while bumping to the new library version will be a real, huge pain, and you'll have to rewrite everything. Not to mention that by freezing the libraries you don't get security updates, and this is perhaps the last thing you should do with a sensitive piece of code like this.

100% agree with @mmorandi

@AntonioCiccarelli can you please check?


doubt about features

This library actually supports calling synchronous multiple chained aspects?
IE:
@an-aspect-which-check-if-user-is-logged
@an-aspect-which-serializes-the-current-instance-to-json
@an-aspect-which-perform-http-post-to-save-returned-instance-from-the-previous-aspect
[method called saveUser with business logic]
class User {
   ...
   @auth //cross cutting concern
   @serialize //cross cutting concern
   @POSTInstance //cross cutting concern
   saveUser() {
      //output some where
   }
   ...
}

@ciroreed, using the MethodMetadata you get the method's return result, so it is responsibility of the aspects to support async calls.
I kept the API minimalistic and introduced only the minimal set of joint points.

Thanks, but i read the examples and I didnt see how decorated methods will wait for their predecessor to be finished before call themselves.
IE:
class User {
   ...
   @auth [evaluates first .. called last]
   @serialize [evaluates second .. called within]
   @POSTInstance [evaluates last ... called first]
   saveUser() {
      //output some where
   }
   ...
}

it evaluates the expressions in declaration order, but flips code
somehow the source code under-the-hood will be:
User.prototype.saveUser = function(){
//POSTinstance
   function(){
     //serialize
      function(){
         //auth
            function(){
               //original method
               function (){

               }
           }
      }
  }
}

doesn't it? if so, can you provide an example or instruction to avoid this? any help appreciated :)

Lets suppose we have nested before aspects, once the top advice makes an async call it can wait until the promise is resolved until it proceeds the call, etc.
This is what happens, and you can imagine that inside of the nested callbacks you can have logic for handling async calls:
User.prototype.saveUser = function(){
//POSTinstance
   function(){
     //serialize
      function(){
         //auth
            function(){
               //original method
               function (){

               }
           }
      }
  }
}

@mgechev What I think that he's saying is that the aspects aren't running in the correct order. They are declared like this

auth
serialize
POSTinstance

While they are now being executed like

POSTInstance
serialize
auth

In such case:
class User {
   ...
   @auth //cross cutting concern
   @serialize //cross cutting concern
   @POSTInstance //cross cutting concern
   saveUser() {
      //output some where
   }
   ...
}

This is really not the syntax for using aspect.js. The order of execution completely depends on the side-effect imports of the aspects.

Thanks @mgechev @SamVerschueren
So you're used to handle async calls in at the decorator fn. You mean that POSTinstance has to deal itself with another crosscutting-concern, which in this case is serialize, don't you?
I would be nice to declare independent aspects which are able to run synchronously before or after the decorated method. So the aspect concept is fully independent of infrastructure logic

"Lets suppose we have nested before aspects, once the top advice makes an async call it can wait until the promise is resolved until it proceeds the call, etc"
How i can define an aspect without knowledge of their position in the call stack. Or if the preceding call is async or not?


sealer upgrade module

Describe what this PR does / why we need it
this PR aims for developing the sealer upgrade module
Does this pull request fix one issue?

Describe how you did it
fisrt commit "the CLI finsih" complete  the design and implement of "upgrade" commond line interface,inclue the rules of arguments and flags.
second commit "upgrade first master node(debian)" complete the upgrade of the first master node in the cluster,whose system is based on debian.Also,This commit corrects the code that does not meet the “golangci-lint”requirements in the first commit
Describe how to verify it
Special notes for reviews

use English ？  commit count too much, you can git commit --amend  or git commit rebase merge commit

I think the workflow maybe:

Mount new version CloudImage and send new version cloudrootfs to all nodes. So all the dependencies will installed.
Exec kubeadm upgrade....

the commit "can already upgrade cluster" primarily implement sealer upgrade . so far i have finished a test to  upgrade a cluster from v1.19.8 to v1.19.9 with image  "registry.cn-beijing.aliyuncs.com/sealer-io/kubernetes:v1.19.9_develop"

the commit "some code optimizations" fix some problems existing in previous commit


remove a bunch of shaped mech. crafter recipes

 autistic.sack.of.friends on Discord says

they cause confusion (see: buckets) and should probably be kept a relatively small part of the pack

 auseawesome on Discord says

Lead's recipe should be tweaked slightly

 auseawesome on Discord says

maybe move the single disconnected string up 1 or to the left 1

 auseawesome on Discord says

All the crafting table on a stick items probably just need the crafting table moving to the left to stop them having a gap

 auseawesome on Discord says

glass bottles should be made in the same way as the new bucket recipe

 auseawesome on Discord says

boots recipes need looking into

 auseawesome on Discord says

Supplementaries wrench could have a cog added in the gap at the top middle

 auseawesome on Discord says

shears recipe could have sticks added in the gaps (also makes sense considering they need handles)

 auseawesome on Discord says

minecart couplings can probably be changed to having the materials in a straight line rather than diagonal

 auseawesome on Discord says

Livingwood twigs need to be looked at

 autistic.sack.of.friends on Discord says

honestly we should just remove them outright

 auseawesome on Discord says

that works too

 autistic.sack.of.friends on Discord says

stonecutter should stay

 auseawesome on Discord says

want to tweak it so the stonecutter is directly above the rod?

 auseawesome on Discord says

so it doesn't need the cover

 autistic.sack.of.friends on Discord says

yeah, ideally though it wouldn't need a recipe

 auseawesome on Discord says

ohh I see what you mean

 auseawesome on Discord says

I thought you meant remove the recipes

 auseawesome on Discord says

not items

 auseawesome on Discord says

lemme remove the items bar the stonecutter on a rod as well

 autistic.sack.of.friends on Discord says

yeah

 autistic.sack.of.friends on Discord says

there shouldn't be any way to loose it but you can never be too sure

 auseawesome on Discord says

Created PR 588 for the crafting table on a stick removals

 auseawesome on Discord says

working in: https://github.com/Auseawesome/Create-Prepare-to-Dye/tree/fix-shaped-recipes

 auseawesome on Discord says

for all the other shaped recipe changes

 yarden.zamir on Discord says

lets move it to three string or silicon in an L shape

 auseawesome on Discord says

you want both or just 1 or the other?

 auseawesome on Discord says

I'm going to add a draft PR for these changes once my last PR is merged

 yarden.zamir on Discord says

just the L recipe, dont see a reason to have anything else

 auseawesome on Discord says

if I can remember how draft PRs work

 auseawesome on Discord says

I mean do you want both silicon and string to work

 auseawesome on Discord says

or just 1 of the 2

 yarden.zamir on Discord says

Ah you mean both matierals, do Ingredient([one, two]) for or

 yarden.zamir on Discord says

so both

 auseawesome on Discord says

k

 auseawesome on Discord says

done and pushed to the fix branch

 yarden.zamir on Discord says

agreed, although things that would need to be manufactured i prefer have a more intuitve recipe that comes before, the saw is not fun or intuitive to work with

 yarden.zamir on Discord says

So nee to think of a good additional recipe for bottles if we do this

 auseawesome on Discord says

yup

 auseawesome on Discord says

its always good to have 2 alternatives

 auseawesome on Discord says

or a better one for manafacturing

 yarden.zamir on Discord says

Donno, by the time you need to make boots you wont have an issue I think, but I was thinking of a tools and armor manufactoring rework as they are 'products' and the design demands they be a little more interesting to make

 auseawesome on Discord says

that would be nice

 yarden.zamir on Discord says

For now lets keep them untouched

 auseawesome on Discord says

k

 auseawesome on Discord says

what about a button deployed on glass block?

 auseawesome on Discord says

for bottles

 auseawesome on Discord says

gives you 2

 auseawesome on Discord says

more glass efficient and easy to manafacture

 auseawesome on Discord says

Crossed out all the ones I've done already

 yarden.zamir on Discord says

I wanna also rename it Rotator Wrench, to avoid confusion, unrelated but came to mind. In terms of the cog i donno, the cogs in the early games are carfully counted, prefer it be without that

 auseawesome on Discord says

would a nugget be better?

 yarden.zamir on Discord says

Whats the logic behind it?

 auseawesome on Discord says

cork in a bottle

 yarden.zamir on Discord says

Yea that sounds good

 yarden.zamir on Discord says

ah i can see that, hm..

 auseawesome on Discord says

btw I've changed what you wanted changing in the other PR

 auseawesome on Discord says

it could always be a stone button to make it cheaper and I could edit textures to reflect that?

 auseawesome on Discord says

there really aren't many bottle texture's I'd change

 yarden.zamir on Discord says

Its from the wood itself right? So it doesnt conflict with anything, we can move it to be like sticks

 auseawesome on Discord says

l, I'll do that now

 auseawesome on Discord says

k

 auseawesome on Discord says

slight issue, just checked recipes

 auseawesome on Discord says

with them directly above each otehr

 yarden.zamir on Discord says

Its from the logs right?

 auseawesome on Discord says

yes

 yarden.zamir on Discord says

because if so then its a bug anyway, as you can make sticks from the planks

 yarden.zamir on Discord says

so makes no sense

 auseawesome on Discord says

its not, it gives 16 sticks

 yarden.zamir on Discord says

Ah, a compact recipe, makes more sense

 yarden.zamir on Discord says

Yea remove it

 auseawesome on Discord says

its one from quark

 auseawesome on Discord says

that uses a tag...

 auseawesome on Discord says

rather than ID

 auseawesome on Discord says

to hopefully not effect the other ones

 auseawesome on Discord says

I'm going to give it a shot

 yarden.zamir on Discord says

Tbh im not so sure we want the shortcut recipes in the first place, hm.. what do you guys think?

 auseawesome on Discord says

I would get rid of them, especially as create sawing gives more planks so they are actually less efficient

 autistic.sack.of.friends on Discord says

honestly given how hard to get wood is and how easy sticks are

 autistic.sack.of.friends on Discord says

why not just remove wood -> stick

 auseawesome on Discord says

That appears to have worked

 auseawesome on Discord says

this would work too


feat(python): Refactor coordinator for operator

Codecov Report

Merging #3148 (56a3877) into main (88c5180) will decrease coverage by 6.87%.
Report is 4 commits behind head on main.
The diff coverage is 61.31%.

Additional details and impacted files

@@            Coverage Diff             @@
##             main    #3148      +/-   ##
==========================================
- Coverage   42.64%   35.78%   -6.87%
==========================================
  Files         100      101       +1
  Lines       10817    11016     +199
==========================================
- Hits         4613     3942     -671
- Misses       6204     7074     +870

Files Changed
Coverage Δ

python/graphscope/__init__.py
82.85% <ø> (-0.48%)
:arrow_down:

...on/graphscope/tests/kubernetes/test_demo_script.py
0.00% <0.00%> (-84.07%)
:arrow_down:

...thon/graphscope/tests/kubernetes/test_with_mars.py
0.00% <0.00%> (-43.75%)
:arrow_down:

python/graphscope/deploy/kubernetes/cluster.py
24.68% <5.40%> (-52.10%)
:arrow_down:

python/graphscope/client/session.py
57.61% <46.55%> (-9.05%)
:arrow_down:

python/graphscope/dataset/io_utils.py
15.94% <50.00%> (ø)

...n/graphscope/deploy/kubernetes/resource_builder.py
25.20% <50.00%> (-46.75%)
:arrow_down:

python/graphscope/deploy/kubernetes/utils.py
12.44% <50.00%> (-50.34%)
:arrow_down:

python/graphscope/config.py
72.90% <72.58%> (-23.18%)
:arrow_down:

python/graphscope/deploy/hosts/cluster.py
82.85% <81.81%> (+52.36%)
:arrow_up:

... and 1 more

... and 22 files with indirect coverage changes

Continue to review full report in Codecov by Sentry.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update f701fb8...56a3877. Read the comment docs.


Add bit-shuffling interfaces for unshuffle with provided output array

For #607

@xerial  Can we move forward with the follow-up process for the PR?

Hi. I just noticed this PR. I'll take a look


LESS files served with wrong content-type from S3, "not well formed" error in Firefox

The LESS files used in extensions (i.e., the ones not parsed by the build system and turned into css) are being sent to S3 without a proper content-type.  A LESS file is really a text/css file, but S3 ends up just using application/octet-stream.  Then, when they are XHR'ed by the browser at runtime, they are flagged as not being well formed XML documents by Firefox.
It's not a critical bug, but it would be nice to solve this.  We don't currently have an automated way to do this, and might need to file a bug against Travis to make it possible to set this.
cc @jbuck.

We don't serve LESS in production anymore, closing.


OSM import fails due to URL corruption

Describe the bug
Output from the initial load:
+ sudo -E -u nominatim nominatim import --osm-file https://download.geofabrik.de/north-america/us/nevada-latest.osm.pbf --threads 24
2024-03-13 22:36:32: Using project directory: /nominatim
2024-03-13 22:36:38: OSM file 'https:/download.geofabrik.de/north-america/us/nevada-latest.osm.pbf' does not exist.
2024-03-13 22:36:38: FATAL: Cannot access file.

It looks like the second slash after "https:" is getting dropped on the floor somewhere.
To Reproduce
docker create --restart=unless-stopped --name nominatim \
  -v nominatim-postgres:/var/lib/postgresql/14/main \
  -v nominatim-flatnode:/nominatim/flatnode \
  -e PBF_PATH=https://download.geofabrik.de/north-america/us/nevada-latest.osm.pbf \
  -e REPLICATION_URL=https://download.geofabrik.de/north-america/us/nevada-updates/ \
  -e IMPORT_WIKIPEDIA=false \
  -e IMPORT_US_POSTCODES=true \
  -e IMPORT_TIGER_ADDRESSES=true \
  -p 80:8080/tcp \
  mediagis/nominatim:4.3
docker start -a nominatim

Note that the URL given to PBF_PATH is correct and starts downloading if you pass it to (for instance) wget.
Expected behavior
Nominatim configures itself and starts up.
Screenshots & Logs
If applicable, add screenshots & logs to help explain your problem.
Desktop / Server (please complete the following information):

OS & Version: Alpine Linux 3.19
Docker Version: 25.0.3
Nominatim Version: 4.3

That seems to have done it...it's now setting itself up.


update java flatbuffers to 1.5

https://github.com/ahundt/grl/pull/131
Looks like we now have a place to acquire the 1.5 jar:
http://repo1.maven.org/maven2/com/github/davidmoten/flatbuffers-java/
https://github.com/davidmoten/flatbuffers
Should likely add instructions for acquiring the jar in the setup docs.

Looks like the code is in maven central as per:
http://repo1.maven.org/maven2/com/github/davidmoten/flatbuffers-java/
https://github.com/davidmoten/flatbuffers
Perhaps we should add maven integration to the java setup instructions, or should we just link the jar file alone?

Merged via #135 which superseded #131


Fix NRE in DefaultHQLQuery

In the InSubquery method Criterion was not being set. This caused NRE when processing a WHERE predicate that used that method.

These are merged in 1.10.x because you still use it, and because it can be. But we'll have to merge it to dev, and also it might not be release as a 1.10.4 at there might not be one. Next release is supposed to be 1.11.
/cc @BenedekFarkas


README example does not work

p6doc Type::Str.split gives an error:
  $ p6doc-index build
  $ p6doc Type::Str.split
    Cannot call MAIN(Str, Bool); none of these signatures match:
    ()
    ($docee)
   ($docee, Bool :$f!)
   in method throw at /home/kamil/.rakudobrew/moar-nom/install/share/perl6/runtime /CORE.setting.moarvm:1
   in sub MAIN at /home/kamil/.rakudobrew/bin/../moar-nom/install/share/perl6/site/bin/p6doc:81
   in block <unit> at /home/kamil/.rakudobrew/bin/../moar-nom/install/share/perl6/site/bin/p6doc:164

I can't reproduce this with a fresh install of moar-nom and perl6/doc as of today.

After nuking rakudo and updating debian me too


Panes

fix 'CtClass com.xx.xx is frozen.'
only available when true is applied

fix 'CtClass com.xx.xx is frozen.'
only available when true is applied


Fix assert when read only raid

i need to split this. accidentally added a new feature on top

Thanks for this report. Are you interested in submitting a new PR about this assert issue later?


Sitemap checker added

Description of the Change
Sitemap checker command added

Closes #92
How to test the Change

Install this library as NPM package
Write cy.checkSitemap() anywhere in a test script
Run e2e test
Make sure it throws error if sitemap.xml doesn't exist, otherwise logs Sitemap exists.

Changelog Entry

Added - Sitemap checker command added

Credits

Props @jayedul, @jeffpaul
Checklist:

[x] I agree to follow this project's Code of Conduct.
[ ] I have updated the documentation accordingly.
[x] I have added tests to cover my change.
[x] All new and existing tests pass.

Well, I see this PR has been approved already despite some e2e tests failed that are actually unrelated to this PR. So I've marked this as ready for review.