PDNS hang issue with lightningstream and containers

I was playing with PowerDNS and Lightningstream in Kubernetes and ran into a very weird issue. It is a StatefulSet and storage comes from Longhorn.
PowerDNS auth and Lightningstream are both the latest versions and it is running on ARM64.
The issue is that a query to pdns (dns or rest api) hangs and returns nothing. Executing the pdnsutil tool on the pdns container hangs as well. Like pdnsutil list-all-zones hangs and the prompt never returns.
Even with debug logging, there is no error. It shows the incoming request and that it is processing, but no answer is returned.
First I thought it is related to the pid clashing issue for containers that is mentioned in the docs. But it does not matter what I use for --minimum-pid, the issue persisted.
The issue goes away, if I send a dns query to PDNS for a valid record/zone before lightningstream is started. So the command in my lightingstream container is a shell script, which first sends a DNS query to the pdns container and then starts lightning stream.
It still looks somewhat like a locking issue, but the question is what is different internally how pdns auth server accesses the LMDB backend when there was a dns request to pdns before lightningstream is started vs when there was no request?
It runs stable with no issues so far with the workaround.
Do you have any input on what could be going on here?
Configurations listed below.
My pdns.conf looks like this.
pdns@pdns-ss-0:/$ cat /etc/powerdns/pdns.conf
primary=yes
allow-notify-from=<IP_ADDRESS>
allow-axfr-ips=<IP_ADDRESS>
api=yes
api-key=secret
config-dir=/etc/powerdns
default-soa-content=a.misconfigured.dns.server.invalid hostmaster.@ 0 10800 3600<PHONE_NUMBER>
default-ttl=3600
default-ksk-algorithm=ed25519
default-zsk-algorithm=ed25519
include-dir=/etc/powerdns/pdns.d
load-modules=liblmdbbackend.so
launch=lmdb
lmdb-filename=/var/lib/powerdns/pdns.lmdb
lmdb-shards=1
lmdb-sync-mode=nometasync
lmdb-schema-version=5
lmdb-random-ids=yes
lmdb-map-size=1000
lmdb-flag-deleted=yes
lmdb-lightning-stream=yes
local-address=<IP_ADDRESS>,::
log-dns-details=yes
log-dns-queries=yes
log-timestamp=yes
loglevel=7
loglevel-show=yes
query-logging=yes
resolver=<IP_ADDRESS>
# server-id
version-string=anonymous
webserver=yes
webserver-allow-from=<IP_ADDRESS>,<IP_ADDRESS>/8,<IP_ADDRESS>/12,<IP_ADDRESS>/16,<IP_ADDRESS>/24
webserver-hash-plaintext-credentials=yes
webserver-loglevel=detailed
webserver-address=<IP_ADDRESS>
webserver-port=8081
webserver-password=secret2
zone-cache-refresh-interval=0
zone-metadata-cache-ttl=0

My lightningstream.yaml looks like this.
/app $ cat /lightningstream.yaml
instance: lmdbsync
storage_poll_interval: 10s
lmdb_poll_interval: 10s
storage_force_snapshot_interval: 4h

lmdbs:
  main:
    path: /var/lib/powerdns/pdns.lmdb
    schema_tracks_changes: true
    options:
      no_subdir: true
      create: false
  shard:
    path: /var/lib/powerdns/pdns.lmdb-0
    schema_tracks_changes: true
    options:
      no_subdir: true
      create: false

storage:
  type: s3
  options:
    access_key: pdns
    secret_key: pdns
    bucket: lightningstream
    endpoint_url: http://<IP_ADDRESS>:9000
    create_bucket: true
  cleanup:
    enabled: true
    interval: 15m
    must_keep_interval: 24h
    remove_old_instances_interval: 168h

http:
  address: ":8500"

log:
  level: info
  format: human
  timestamp: short

My shell script with the workaround:
/app $ cat start.sh
#!/bin/sh

if [ ${PDNS_LSTREAM_SLEEP}_ == _ ]; then
    echo "no sleep time set"
else
    sleep ${PDNS_LSTREAM_SLEEP}
fi

if [ ${PDNS_LSTREAM_DNS_SERVER}_ == _ ]; then
    echo "no DNS server set"
else
    eval DNS=\$$PDNS_LSTREAM_DNS_SERVER
    echo "ServiceIP: $DNS"
    echo "PodIP: $PDNS_POD_IP"
    dig @$PDNS_POD_IP $PDNS_LSTREAM_DOMAIN $PDNS_QUERY_TYPE
fi

/app/lightningstream --config /app/lightningstream.yaml --minimum-pid 200 --instance ${HOSTNAME}-lstream sync

Hello @mschirrmeister, thank you for describing the intriguing phenomenon and its workaround.
As it appears to have played out on a complex setup with many moving parts, we would be stoked if some variables could be excluded/isolated, so as to cut down the search space containing all probable causes.
Since the use of Longhorn introduces many abstractions and interactions, the effects of which on LMDB is yet to be determined, we are curious to learn if you could reproduce the issue on a simpler setup, sans Longhorn.
Any information you could provide about the following could also turn out to be valuable:

The filesystem on the Longhorn volume, e.g. the value of parameter fsType of the relevant StorageClass
The StatefulSet, PersistentVolumeClaim, and other relevant Kubernetes objects, e.g. in YAML format

(We note that you may be using the Dockerfile in your public repository mentioning the same issue.)
Also highly interesting is the PID-clash hypothesis, considering that LMDB locking appears to be keyed on PIDs. Could you please verify that the Lightning Stream process started with the --minimum-pid option indeed does not share a process ID with the Authoritative Nameserver?
This article about having containers in a Pod share a process namespace presents an alternative means of resolving the PID conflict that might be worth an attempt.
Finally, would you mind sharing your thoughts on the following bullet points under the Caveats section of the LMDB docs?

Do not use LMDB databases on remote filesystems, even between processes on the same host. This breaks flock() on some OSes, possibly memory map sync, and certainly sync between programs on different hosts.

Opening a database can fail if another process is opening or closing it at exactly the same time.

We look forward to hearing your response.

Note that create: false is used in Lightning Stream, which means that it expects the LMDB to be created by pdns. The query you perform against pdns may be the trigger to create this LMDB.
Suggestions:

Run a pdnsutil command in an initContainer to create the actual LMDB before any service is started.
Ensure that both services run as the same user and that filesystem permissions are set correctly.

Additionally, it is essential that Auth and LS run on the same node with a local filesystem for the LMDB, ideally tmpfs. In a cloud deployment it is S3 that provides your persistent data store, not the LMDB.

Here are my files and some context.
I use a StatefulSet that all containers in a pod are scheduled on the same node and that each pod, if scaled up, is scheduled on a different node.
I also wanted to use existing disks for the pods, since I want that the data survives if pods get deleted.
Therefore I use volumeClaimTemplates in the StatefulSet which gives predictable names for the PersistentVolumeClaims.
The 3 PersistentVolumes reference these names in claimRef.
In Longhorn I created 3 volumes pdns-ss-data-0, pdns-ss-data-1 and pdns-ss-data-2, which are referenced in the PV under volumeHandle
With this config, you can apply, delete or scale up/down (up to 3) the StatefulSet and it will always use the same disks. I think that is how it is done typically for databases.
storageclass-nfs.yaml
# This storage class creates a durable pv for RWX volumes
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: longhorn-nfs
provisioner: driver.longhorn.io
reclaimPolicy: Retain
volumeBindingMode: Immediate
allowVolumeExpansion: true
parameters:
  numberOfReplicas: "3"
  staleReplicaTimeout: "30"
  fromBackup: ""
  fsType: "ext4"
  dataLocality: "disabled"
  nfsOptions: "vers=4.2,noresvport,intr,hard,softerr,timeo=600,retrans=5,local_lock=flock"

pdns-auth-configmap-202405041.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: app-config-pdns-auth-202405041
  namespace: pdns
data:
  pdns.conf: |
    primary=yes
    allow-notify-from=<IP_ADDRESS>
    allow-axfr-ips=<IP_ADDRESS>
    api=yes
    api-key=secret
    config-dir=/etc/powerdns
    default-soa-content=a.misconfigured.dns.server.invalid hostmaster.@ 0 10800 3600<PHONE_NUMBER>
    default-ttl=3600
    default-ksk-algorithm=ed25519
    default-zsk-algorithm=ed25519
    include-dir=/etc/powerdns/pdns.d
    load-modules=liblmdbbackend.so
    launch=lmdb
    lmdb-filename=/var/lib/powerdns/pdns.lmdb
    lmdb-shards=1
    lmdb-sync-mode=nometasync
    lmdb-schema-version=5
    lmdb-random-ids=yes
    lmdb-map-size=1000
    lmdb-flag-deleted=yes
    lmdb-lightning-stream=yes
    # launch=gsqlite3
    # gsqlite3-database=/var/lib/powerdns/pdns.sqlite3
    local-address=<IP_ADDRESS>,::
    log-dns-details=yes
    log-dns-queries=yes
    log-timestamp=yes
    # 0 = emergency, 1 = alert, 2 = critical, 3 = error, 4 = warning, 5 = notice, 6 = info, 7 = debug
    loglevel=4
    loglevel-show=yes
    query-logging=yes
    # resolver=blocky.blocky.svc.cluster.local
    # resolver=<IP_ADDRESS>
    resolver=<IP_ADDRESS>
    # server-id
    version-string=anonymous
    webserver=yes
    webserver-allow-from=<IP_ADDRESS>,<IP_ADDRESS>/8,<IP_ADDRESS>/12,<IP_ADDRESS>/16,<IP_ADDRESS>/24
    webserver-hash-plaintext-credentials=yes
    # one of "none", "normal", "detailed"
    webserver-loglevel=normal
    webserver-address=<IP_ADDRESS>
    webserver-port=8081
    webserver-password=secret2
    zone-cache-refresh-interval=0
    zone-metadata-cache-ttl=0

pdns-lightningstream-configmap-202405102.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: app-config-lightningstream-202405102
  namespace: pdns
data:
  lightningstream.yaml: |
    instance: lmdbsync
    storage_poll_interval: 10s
    lmdb_poll_interval: 10s
    storage_force_snapshot_interval: 4h

    lmdbs:
      main:
        path: /var/lib/powerdns/pdns.lmdb
        schema_tracks_changes: true
        options:
          no_subdir: true
          create: false
      shard:
        path: /var/lib/powerdns/pdns.lmdb-0
        schema_tracks_changes: true
        options:
          no_subdir: true
          create: false

    storage:
      type: s3
      options:
        access_key: pdns
        secret_key: pdns#112
        bucket: lightningstream
        endpoint_url: http://minio.minio.svc.cluster.local:9000
        create_bucket: true
      cleanup:
        enabled: true
        interval: 15m
        must_keep_interval: 24h
        remove_old_instances_interval: 168h

    http:
      address: ":8500"

    log:
      level: info
      format: human
      timestamp: short

pdns-lightningstream-start-configmap-202405111.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: app-config-lightningstream-start-202405111
  namespace: pdns
data:
  start.sh: |
    #!/bin/sh

    if [ ${PDNS_LSTREAM_SLEEP}_ == _ ]; then
        echo "no sleep time set"
    else
        sleep ${PDNS_LSTREAM_SLEEP}
    fi

    if [ ${PDNS_LSTREAM_DNS_SERVER}_ == _ ]; then
        echo "no DNS server set"
    else
        eval DNS=\$$PDNS_LSTREAM_DNS_SERVER
        echo "ServiceIP: $DNS"
        echo "PodIP: $PDNS_POD_IP"
        dig @$PDNS_POD_IP $PDNS_LSTREAM_DOMAIN $PDNS_QUERY_TYPE
    fi

    # seq 210 | xargs -Iz echo "Generating pids. Count z"
    /app/lightningstream --config /lightningstream.yaml --minimum-pid 200 --instance ${HOSTNAME}-lstream sync

pdns-statefulset-nfs-all.yaml
apiVersion: v1
kind: Namespace
metadata:
  name: pdns
  labels:
    name: pdns
---
kind: PersistentVolume
apiVersion: v1
metadata:
  name: pdns-ss-pv-data-nfs-0
spec:
  persistentVolumeReclaimPolicy: Retain
  capacity:
    storage: 5Gi
  volumeMode: Filesystem
  accessModes:
    - ReadWriteMany
  claimRef:
    namespace: pdns
    name: pdns-ss-vol-nfs-pdns-ss-0
  csi:
    driver: driver.longhorn.io
    fsType: ext4
    volumeHandle: pdns-ss-data-0
  storageClassName: longhorn-nfs
---
kind: PersistentVolume
apiVersion: v1
metadata:
  name: pdns-ss-pv-data-nfs-1
spec:
  persistentVolumeReclaimPolicy: Retain
  capacity:
    storage: 5Gi
  volumeMode: Filesystem
  accessModes:
    - ReadWriteMany
  claimRef:
    namespace: pdns
    name: pdns-ss-vol-nfs-pdns-ss-1
  csi:
    driver: driver.longhorn.io
    fsType: ext4
    volumeHandle: pdns-ss-data-1
  storageClassName: longhorn-nfs
---
kind: PersistentVolume
apiVersion: v1
metadata:
  name: pdns-ss-pv-data-nfs-2
spec:
  persistentVolumeReclaimPolicy: Retain
  capacity:
    storage: 5Gi
  volumeMode: Filesystem
  accessModes:
    - ReadWriteMany
  claimRef:
    namespace: pdns
    name: pdns-ss-vol-nfs-pdns-ss-2
  csi:
    driver: driver.longhorn.io
    fsType: ext4
    volumeHandle: pdns-ss-data-2
  storageClassName: longhorn-nfs
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: pdns-ss
  namespace: pdns
  labels:
    app.kubernetes.io/name: pdns-ss
spec:
  persistentVolumeClaimRetentionPolicy:
    whenScaled: Retain
    whenDeleted: Delete
  replicas: 1
  selector:
    matchLabels:
      app: pdns-ss
  serviceName: pdns-ss
  template:
    metadata:
      labels:
        app: pdns-ss
        app.kubernetes.io/name: pdns-ss
    spec:
      securityContext:
        fsGroup: 953
        runAsUser: 953
        runAsGroup: 953
      containers:
      - name: pdns-ss
        # image: powerdns/pdns-auth-49:4.9.0
        image: mschirrmeister/pdns-auth:master
        env:
        - name: TZ
          value: "Europe/Berlin"
        ports:
          - containerPort: 53
            protocol: TCP
          - containerPort: 53
            protocol: UDP
          - containerPort: 8081
            protocol: TCP
        volumeMounts:
        - name: config
          mountPath: "/etc/powerdns/pdns.conf"
          subPath: pdns.conf
        - name: resolver-config
          mountPath: "/etc/powerdns/pdns.d"
        - name: pdns-ss-vol-nfs
          mountPath: /var/lib/powerdns
      - name: pdns-lightningstream
        image: mschirrmeister/powerdns-lightningstream:v0.4.3
        env:
        - name: PDNS_LSTREAM_DNS_SERVER
          value: PDNS_SS_SERVICE_HOST
        - name: PDNS_LSTREAM_SLEEP
          value: "1"
        - name: PDNS_LSTREAM_DOMAIN
          value: "dummy.zone"
        - name: PDNS_QUERY_TYPE
          value: SOA
        - name: PDNS_POD_IP
          valueFrom:
            fieldRef:
              fieldPath: status.podIP
        command: [ "/app/start.sh" ]
        volumeMounts:
        - name: pdns-ss-vol-nfs
          mountPath: /var/lib/powerdns
          readOnly: false
        - name: config-lightningstream
          mountPath: "/lightningstream.yaml"
          subPath: lightningstream.yaml
        - name: config-lightningstream-start
          mountPath: "/app/start.sh"
          subPath: start.sh
      # - name: debug-container
      #   image: alpine:latest
      #   imagePullPolicy: Always
      #   args: ["tail", "-f", "/dev/null"]
      #   volumeMounts:
      #   - name: pdns-ss-vol
      #     mountPath: /var/lib/powerdns
      #     # readOnly: true
      restartPolicy: Always
      volumes:
      - name: config
        configMap:
          name: app-config-pdns-auth-202405041
          items:
          - key: "pdns.conf"
            path: "pdns.conf"
      - name: config-lightningstream
        configMap:
          name: app-config-lightningstream-202405102
          items:
          - key: "lightningstream.yaml"
            path: "lightningstream.yaml"
      - name: config-lightningstream-start
        configMap:
          name: app-config-lightningstream-start-202405111
          items:
          - key: "start.sh"
            path: "start.sh"
          defaultMode: 0755
      - name: resolver-config
        emptyDir: {}
      initContainers:
      - name: pdns-resolver-config
        image: jonlabelle/network-tools
        command: [ "sh" ]
        # args: [ "-c", "echo resolver=`dig blocky.blocky.svc.cluster.local +short` > /resolver-config/resolver.conf" ]
        args: [ "-c", "echo" ]
        volumeMounts:
        - name: resolver-config
          mountPath: /resolver-config
  volumeClaimTemplates:
  - metadata:
      name: pdns-ss-vol-nfs
    spec:
      accessModes:
        - ReadWriteMany
      resources:
        requests:
          storage: 1Gi
      storageClassName: longhorn-nfs
---
apiVersion: v1
kind: Service
metadata:
  name: pdns-ss
  namespace: pdns
  annotations:
    metallb.universe.tf/address-pool: second-pool
    pdns.prometheus/scrape: "true"
    pdns.prometheus/scheme: "http"
    pdns.prometheus/path: "/metrics"
    pdns.prometheus/port: "8081"
spec:
  type: LoadBalancer
  externalTrafficPolicy: Cluster
  # externalTrafficPolicy: Local
  selector:
    app: pdns-ss
  ports:
    - name: dnstcp
      protocol: TCP
      port: 53
      targetPort: 53
    - name: dnsudp
      protocol: UDP
      port: 53
      targetPort: 53
    - name: pdnshttp
      protocol: TCP
      port: 8081
      targetPort: 8081

I did some tests with a simple setup. No Longhorn involved. Following scenarios were tested.

local volume
emptyDir volume, stored on disk
emptyDir volume, stored in memory (tmpfs)

All 3 show the same symptom / issue.
I think that rules out a remote fs or nfs issue.
My development cluster has kernel 5.15.93 and I thought maybe it is a kernel issue. So I added another node with the latest 6.8.10 kernel to it, but it did not make any difference.
emptyDir is not even usable with the workaround, because the data is deleted when the StatefulSet is deleted. Which means a dns query before LS start is not possible, since LS has to load data first.
local volume can be used with the workaround. If you start empty, you have to start initially without the LS container to seed/insert some valid data into LMDB which can be used on the next start.
I have created simple yaml files and recorded all the steps how to reproduce it on a single node. I will post this in the next comment. Will be a long one.

Environment
ARM64 SBC
Initially tested on a Kubernetes cluster with 3 Rock Pi 4b worker nodes, Debian Bullseye, Kernel 5.15.93-rockchip64 (Armbian)
Reproduction environment (steps below) is Rock 5b, Linux Debian Bookwork, Kernel 6.8.10-edge-rockchip-rk3588 (Armbian)
Prepare
Login as root
Install k3sup to deploy K3s
curl -sLS https://get.k3sup.dev | sh

Install MinIO client
curl -O https://dl.min.io/client/mc/release/linux-arm64/mc
install mc /usr/local/bin/mc

Directories
mkdir -p /mnt/localstorage/minio
mkdir -p /mnt/localstorage/pdns-auth

Install
Install K3s
k3sup install --local --k3s-extra-args "--disable servicelb --disable traefik" --k3s-version v1.29.2+k3s1

kubectl get node -o wide
NAME                        STATUS   ROLES                  AGE   VERSION        INTERNAL-IP   EXTERNAL-IP   OS-IMAGE                            KERNEL-VERSION                CONTAINER-RUNTIME
k3spdnstest.home.marco.cx   Ready    control-plane,master   27s   v1.29.2+k3s1   <IP_ADDRESS>     <none>        Armbian 24.5.0-trunk.645 bookworm   6.8.10-edge-rockchip-rk3588   containerd://1.7.11-k3s2

PDNS files to reproduce the issue
git clone https://github.com/mschirrmeister/pdns-ls-issue-repro
cd pdns-ls-issue-repro/

Important
Modify the files minio-pdns-deployment.yaml and pdns-statefulset-local-all.yaml and replace the hostname under nodeAffinity.
Get your hostname with one of the following commands.
kubectl get node
kubectl get node -o jsonpath="{.items[0].metadata.labels.kubernetes\.io/hostname}"

Deploy MiniIO
kubectl apply -f minio-pdns-deployment.yaml

Configure MiniIO client
kubectl get service -n minio -o jsonpath="{.items[0].spec.clusterIP}"
# Use ip from above command
mc alias set pdnstest http://<IP_ADDRESS>:9000/ pdns1234 pdns1234

# or in one command
mc alias set pdnstest http://$(kubectl get service -n minio -o jsonpath="{.items[0].spec.clusterIP}"):9000/ pdns1234 pdns1234

Setup user and permissions in MinIO
# access key = pdns    secret key = pdns#112       used in lightingstream config
mc admin user add pdnstest pdns pdns#112
mc admin group add pdnstest users pdns
# mc admin user info pdnstest pdns

mc admin policy create pdnstest readwriteusers read-write-pdns.json
# mc admin policy ls pdnstest
# mc admin policy info pdnstest readwriteusers
mc admin policy attach pdnstest readwriteusers --group users
# mc admin group info pdnstest users

tmpfs
Deploy PDNS Auth and Lightningstream
kubectl apply -f pdns-ns.yaml
kubectl apply -f pdns-auth-configmap.yaml
kubectl apply -f pdns-lightningstream-configmap.yaml
kubectl apply -f pdns-lightningstream-start-configmap.yaml
kubectl apply -f pdns-statefulset-tmpfs-all.yaml

Check for the pods and containers and wait until they are started
kubectl get pod -A -o wide --watch

Check logs
kubectl logs -f -n pdns pdns-ss-0 pdns-ss
kubectl logs -f -n pdns pdns-ss-0 pdns-lightningstream

Check pdns data directory to verify it is tmpfs
root@k3spdnstest ~# kubectl exec -it -n pdns pdns-ss-0 -c pdns-ss -- mount | grep -Ei '(tmpfs.+powerdns)'
tmpfs on /var/lib/powerdns type tmpfs (rw,relatime,size=204800k)
root@k3spdnstest ~# kubectl exec -it -n pdns pdns-ss-0 -c pdns-lightningstream -- mount | grep -Ei '(tmpfs.+powerdns)'
tmpfs on /var/lib/powerdns type tmpfs (rw,relatime,size=204800k)

Read the data in S3
mc ls --recursive --versions pdnstest/lightningstream
[2024-05-18 19:40:45 CEST]   249B STANDARD null v1 PUT main__lmdbsync__20240518-174045-849810029__G-0000000000000000.pb.gz

Do a dns query
# This query will work, but since the zone does not exists we will get a "status: REFUSED"
dig foobar.baz soa @$(kubectl get service -n pdns -o jsonpath="{.items[0].spec.clusterIP}")

Login to PDNS
kubectl exec -it -n pdns pdns-ss-0 -c pdns-ss -- bash
# This should still work
pdns@pdns-ss-0:/$ pdnsutil list-all-zones

# This will hang
pdns@pdns-ss-0:/$ pdnsutil create-zone foobar.baz
Creating empty zone 'foobar.baz'
^C

Do another dns query (This will hang / timeout)
kubectl get service -n pdns -o jsonpath="{.items[0].spec.clusterIP}"
dig foobar.baz soa @<IP_ADDRESS>

# Or with one command
dig foobar.baz soa @$(kubectl get service -n pdns -o jsonpath="{.items[0].spec.clusterIP}")

Notes
At this point, the above command pdnsutil create-zone foobar.baz created something in LMDB. The zone is somewhat created (but not correctly), because no SOA like defined in the pdns config.
If you redeploy the statefulset, dig or pdnsutil will hang on the first run. Because there is now data loaded and there was no query. It is not even possible to implement a valid query before LS starts, because LS needs to load the data first.
Try out with the following.
kubectl delete -f pdns-statefulset-tmpfs-all.yaml
kubectl apply -f pdns-statefulset-tmpfs-all.yaml

Both commands will will hang
kubectl exec -it -n pdns pdns-ss-0 -c pdns-ss -- pdnsutil list-all-zones
dig foobar.baz soa @$(kubectl get service -n pdns -o jsonpath="{.items[0].spec.clusterIP}")

Reset
kubectl delete -f pdns-statefulset-tmpfs-all.yaml
mc rm --recursive pdnstest/lightningstream --force
mc ls --recursive --versions pdnstest/lightningstream

Start over
kubectl apply -f pdns-statefulset-tmpfs-all.yaml

Now you can run dns queries again (like above on the first run), which will of course not return anything, but they don't hang. You can also run kubectl exec -it -n pdns pdns-ss-0 -c pdns-ss -- pdnsutil list-all-zones again which should not hang, but of course will also not return anything.
local volume
Workaround setup with local persistent storage across deployments.
Delete the tmpfs StatefulSet before you start.

 The problem is the image I build. When I did not find an arm image in the beginning, I created my own Dockerfile based on one of my others for go where I used Alpine. After further debugging over the last days I did  saw a comment in your Dockerfile about a possible locking issue when using Alpine.
I tested with a Debian based image and that works fine. No idea if there is a way to get it work with Alpine, besides with the workaround query.
For now I will switch to a Debian based image.

Hello @mschirrmeister, thank you for your detailed report, which we followed closely and were able to reproduce! Observing that pdnsutil create-zone and subsequently pdnsutil list-all-zones hang on a certain futex() system call seems to corroborate the idea that the issue is lock-related indeed.
To prove your hypothesis about Alpine being a cause (refined by @wojas pointing to libc as the crux of the issue), I tried replacing the C library shipped by Alpine with the GNU C Library (albeit a custom build by @sgerrand to save time), and voila! No more blocking.
Here's the very rough Dockerfile put together for Science to see if Alpine can get along with Lightning Stream. It resulted in a 43 MB Docker image, slightly larger than your base image at 37 MB. For scale, Alpine weighs about 7 MB while Debian is 117 MB as at the time of writing.
FROM mschirrmeister/powerdns-lightningstream

RUN wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub \
 && wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.35-r1/glibc-2.35-r1.apk \
 && apk add --force-overwrite glibc-2.35-r1.apk \
 && rm -rf /var/cache/apk/* glibc-2.35-r1.apk

# Commands copied and pasted from https://github.com/sgerrand/alpine-pkg-glibc?tab=readme-ov-file#installing

(You will most likely need to perform extra steps to obtain build artifacts for arm64.)
Perhaps @hyc might like to add another caveat to the LMDB docs about ensuring a compatible C library? 😅
Thank you for your interest in PowerDNS and Lightning Stream, and for your active contribution to this discovery.

Changing the C library from the native musl version to another compiled on Debian doesn't sound like this problem is fixed. Perhaps the root cause could be related to where your software is being compiled? Is there a version of pdnsutil compiled on and for Alpine Linux?

In all this you never got a stack trace of any of the hanging processes? The fact that using glibc avoids the problem points to a bug in musl's pthread_mutex implementation. It would make more sense to report a bug to them than for us to add a caveat to LMDB's docs.

Thanks to @sgerrand and @hyc for joining the conversation; very happy to have your participation!
It would appear that the proliferation of container technology has lowered the barrier for processes to run on the same machine and share a memory map, all the while linking to different implementations of the C standard library.
This shifts the common denominator between interacting processes one level down from APIs to the underlying data structures and their manipulation, falling just outside the scope of the standards. Who would have thought!
The onus is then on the administrator of a container platform to ensure that programs operating on the same data via operating system APIs do so in a compatible manner. This may in practice translate to running such programs on the same operating system.
Other database management systems that expose APIs over the network and do not share state satisfy the "principles" (or should one say assumptions) of a cloud-native landscape, whereas LMDB (for very good reasons!) does not comply. It may be painfully obvious to those familiar, but for the sake of posterity, let it be documented: caveat emptor!

Just as a sidenote, musl's pthread_mutex_t is also wordsize-dependent, so incompatible between 32 and 64 bit processes. https://git.musl-libc.org/cgit/musl/tree/include/alltypes.h.in
Seems unlikely that anyone could convince them to use a glibc-compatible definition.
https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/nptl/bits/struct_mutex.h;h=f2b9b7e04d3843eb8b5936137255856ad2461731;hb=HEAD
The musl pthread_mutex_t field definitions https://git.musl-libc.org/cgit/musl/tree/src/internal/pthread_impl.h#n86
glibc records the lock owner, musl does not.
glibc records the lock type in its 4th or 5th int, musl in its first int.
musl always has a prev pointer, glibc only has one on 64bit arches
Kinda hopeless.

@hyc Thank you for the detailed explanation of why this happens. We avoid it internally by ensuring that we always use the same libc for all processes after encountering this issue several years ago. This should be added to the Lightning Stream docs.
And thanks for LMDB in general, of course!


You dont have permission

Hi Anand, here is the behaviour we're seeing now
User registers and verifies email - works fine now
User tries to login - immediately presented with a "You dont have permission to perform this action"....
Press F5 to refresh and it looks like the user is logged in -
However, when I start to click on the user icon the top right and select team or user settings - it keeps presenting us with this "You dont have permission".
Must be something we are not doing?

This might be a weird solution, but can you (i) restart your server and (ii) log out and log in? If that fixes it, I think I know what's going wrong.

Just to add it is also happening in your test page. I just registered this account.
https://staart-demo.o15y.com/auth/login
<EMAIL_ADDRESS>Password123

Yep, I just tested it and got the same result. I'm restarting the server now (by running npm run start) to see if that fixes it. If it does, I know what's going wrong.

That didn't do it. This is a super high priority bug.

It's failing in authorization here: https://github.com/staart/api/blob/master/src/rest/membership.ts#L25. I'll move this issue to staart/api instead.


Export basic only patient data

When generating data for patients using the property exporter.fhir.bulk_data = true there are a lot of ndjson files that are generated in the output directory but I am only interested in Patient.ndjson.
Is there any way of skipping the generation of the remaining ndjson files?
Thanks in advance.

This isn't a config setting we currently have, although it is something we would consider. We have something similar for the CSV exporter where you can specify which files you want to include or which files you want to exclude.
I will point out though that Synthea is designed for generating full longitudinal patient records, so if you only want the Patient FHIR resource you will be spending a lot of time generating a patient's full life of conditions and medical history that then get thrown away.
If really all you want is FHIR Patient resources and no associated medical content such as encounters, conditions, etc, (and from your previous question it seems like you want a lot of them) then one possibility would be to modify Synthea so that it doesn't simulate the full patient's life. I believe you can do that with only 2 small code changes in the file src/main/java/org/mitre/synthea/engine/Generator.java:
1 - remove (or comment out) this line,
https://github.com/synthetichealth/synthea/blob/440c0a46c3c05c47f11d04e695ea81dcd4adfbd5/src/main/java/org/mitre/synthea/engine/Generator.java#L654
2 - change providerMinimum to 0
https://github.com/synthetichealth/synthea/blob/440c0a46c3c05c47f11d04e695ea81dcd4adfbd5/src/main/java/org/mitre/synthea/engine/Generator.java#L602
Getting to your other question about speed, again if all you want is just the Patient resource and none of the other content, this modification will hugely speed up the process. For one data point, with Synthea out of the box I can generate ~1000 patients/min on my laptop, with the 2 code changes mentioned above it's closer to 1000/sec.

Thanks a lot for your reply, @dehall !
Will try these instructions. If those times you pointed out are real after applying the modification then great (although still very slow as I need to bulk generate data for around 300M patients).
If you consider this useful, I could contribute to the project by adding a property to generate only Patient.ndjson when exporter.fhir.bulk_data is set to true. Just need someone to define the name of the new property and any other information to keep in mind.


Metrics: Re-use and constantize metrics cols used for capture

Fairly minor. Previously in metric, we had two places that calculated CAPTURE_COLS. Now we have only one place.
@miq-bot add_label refactoring, metrics

Meh, wrong.
Each collect block was different.


home page

Does anyone have any ideas for what we could put on the bottom parts of the home page? I've added an image to show what section I am talking about.

I was thinking we could maybe add something like this and maybe link to the gmit Twitter and Facebook pages? Not sure if that would really suit our webpage though.

Yeah The social media links sound like a good idea to me! Where in the website would we put them though?


Release doesn't include the full version number

The released version doesn't include the full version number in the comment.
Expected Behavior
The full version number should be displayed e.g:

/*! flatpickr v2.0.5, @license MIT */

Current Behavior
For example the 2.0.5 release https://github.com/chmln/flatpickr/blob/gh-pages/dist/flatpickr.min.js only displays this:

/*! flatpickr v2.0, @license MIT */

Context
When not using NPM, it makes it tricky to figure out what version I am on (especially if I need to log an issue).

Agreed, I'm using the CDN version and it just says 2.0, leaving me unsure if it's actually the latest.

Good idea :+1:
Now see<EMAIL_ADDRESS>


Plot biological context, sample size evaluation results

Overview:
In this PR, I'm adding plotting of the results from 30-evaluate_sample_size_and_biological_context and also the results of the full MultiPLIER model in a new notebook (31-plotting_sample_size_biological_context_coverage.Rmd) which is the part that needs reviewing.
I'm going to get some thoughts down on what the results mean to make things a bit easier when I go to write manuscript text around them. Please do not feel obligated to review that, but of course comments and questions are welcome!
Notebook for easy viewing: 31-plotting_sample_size_biological_context_coverage.nb.zip

I've performed two experiments: 1) different biological contexts, using MetaSRA predictions to subset recount2 (28-train_different_biological_contexts.sh) 2) random subsampling of the recount2 data set at particular sample sizes (29-train_models_different_sample_sizes.sh)
In the Following up on the proportion of LVs associated with pathways results section of this notebook., I dig into the LVs associated with pathways metrics a bit. In the Check U sparsity section, I make sure what I note what I expected to happen in the previous section based on the parameters we've used happens in practice.
Final edited plot assembled from the PDFs in this PR:

In all of these panels, the biological contexts are ordered by sample size, which I note below:

Biological condition
Sample size

blood
3862

cancer
8807

tissue
12396

cell line
14532

other tissues (not blood)
32984

Summary:

Generally speaking, the larger the sample size -> the more "significant PCs" (determined via PLIER::num.pcs; elbow method) and therefore the more latent variables -> the more pathways that are significantly associated (FDR < 0.05) with at least one latent variable ("pathway coverage"). (Panels A-B)

The two exceptions to this are blood and tissue, where there are more latent variables than other contexts with larger sample sizes. I suspect that this is due to two things: 1) these are conditions where I expect most experiments are a mix of cell types and 2) we must consider the pathways input to PLIER during training. Many of them are immune cell-related and I expect that these biological contexts are more well-suited to capture this than cancer samples or cell line samples. The more latent variables -> more pathway coverage still holds in these cases.

The proportion of latent variables significantly associated (FDR < 0.05) with at least one pathway generally decreases with sample size (Panel C).

PLIER::PLIER has a parameter frac (the default, frac = 0.7, was used in all training here) that controls the proportion of LVs with at least one association (tests for significance come after that) and I note that, in practice, we see that this number is consistent across models and ~0.7.

The models trained on blood (~3900 samples) are an exception to this trend; they have a much higher proportion of LVs that are significantly associated with at least one pathway than I would expect based on sample size.

The decrease in this proportion probably can not be explained by increased multiple testing burden alone (e.g., more LVs, frac is constant) because then we'd expect to see a different trend in the biological context experiment. Specifically, tissue would then have lower values than cell line.

Although models have same number of LVs associated with at least one pathway (have a positive value in their respective columns of U), as sample size increases, there are less significant (again using FDR < 0.05 here) associations. The exceptions are models trained on blood, which is likely the most homogeneous of the training sets, at least with respect to overall variety of cell types. In addition, this training set is particularly well-suited to capture many of the gene sets supplied during training (more on that in #53). This suggests that more "irrelevant signal" (with respect to the gene sets supplied during training) is introduced when more samples and/or a greater breadth of samples are used as part of the training set. However, more input gene sets are captured and the resulting model is likely more broadly applicable to variety of downstream analyses.

Just wanted to note here that any differences in sample size between this and the recount2 exploration notebook can be attributed to the fact that the SRA run (e.g., set of sequencing files, the notion of a sample in recount2) to SRA sample (e.g., SRSXXXXX) relationship can be many to one.


Use expect over unwrap, for panic-in-panic aborts

... doesn't help, but it can't hurt either, right?

@bors: r+

:pushpin: Commit b93863789356e2cc926d78f1e516030f4964bbdb has been approved by alexcrichton

:hourglass: Testing commit b93863789356e2cc926d78f1e516030f4964bbdb with merge de1ef756593c48d7b833059720b65b491395d2d9...

:sunny: Test successful - status-appveyor, status-travis
Approved by: alexcrichton
Pushing de1ef756593c48d7b833059720b65b491395d2d9 to master...


EU location not supported

Hi,
The location 'eu' doesn't seem to be supported by the client.
Environment details

OS type and version: Chromebook 86.0
Python version: Python 3.7.3
pip version: pip 18.1
google-cloud-documentai version: 0.3.0

Steps to reproduce
https://github.com/googleapis/python-documentai/blob/master/samples/snippets/process_document_sample_v1beta3_test.py
with the location set to 'eu'
The base url "us-documentai.googleapis.com" seems hardcoded in the code.
https://github.com/googleapis/python-documentai/search?q=us-documentai&type=code
the correct url looks like
https://eu-documentai.googleapis.com/v1beta3/projects/123456789/locations/eu/processors/azerty:process
Stack trace
google.api_core.exceptions.PermissionDenied: 403 Permission 'documentai.processors.processOnline' denied on resource '//documentai.googleapis.com/projects/1234567890/locations/eu/processors/azerty' (or it may not exist).
Thanks!

@QMichard you have to modify the endpoint to europe region.
like following:
client_options = {"api_endpoint": "eu-central1-aiplatform.googleapis.com"}
    client = aiplatform.gapic.ModelServiceClient(client_options=client_options)

note: i made region up.

Hi @munkhuushmgl
Thanks for your quick reply and it's correct. The exact change is :
client_options = {"api_endpoint": "eu-documentai.googleapis.com"}
client = documentai.DocumentProcessorServiceClient(client_options=client_options)


The 'yajl/' path component is used by header files

We do not need that in pkg-config's includedir.

This is the same patch as in #77. Fedora also does the same patch: http://pkgs.fedoraproject.org/cgit/yajl.git/tree/yajl-2.1.0-pkgconfig-includedir.patch. But Debian doesn't.
Would be nice if this could be merged, so that all the distros would agree on the include path...

(I started making a new ticket and then saw a ticket already exists ...)
The two examples linked from https://lloyd.github.io/yajl/yajl-2.1.0/ and  the example at https://lloyd.github.io/yajl/ show the #include uses header under yajl/ subdirectory.  But yajl.pc.cmake has:
includedir=${dollar}{prefix}/include/yajl
So would look under include/yajl for yajl/.  This is fixed in the FreeBSD package. https://svnweb.freebsd.org/ports/head/devel/yajl/Makefile?r1=358010&r2=361480


Monorepo Changes

Convert into monorepo for separation of UI libraries amongst other benefits
Tooling explained in readme

This also includes update to "react-map-gl" from v6 to v7


Update pybind11 to 2.2.4

I've followed this guide
step by step carefully. Yes

I've tested this package remotely and have excluded all broken builds.
Here is the links to the Travis/AppVeyor with status "All passed":

I think master branch updated the script for testing on AppVeyor. CI for pybind11 seems really not doing anything though. I'll leave it here for your input.

https://ci.appveyor.com/project/fantasticfears/hunter/builds/19315006
https://travis-ci.com/fantasticfears/hunter/builds/87109976

Testing:

https://ci.appveyor.com/project/ingenue/hunter/builds/19318015
https://travis-ci.org/ingenue/hunter/builds/438197314?utm_source=github_status&utm_medium=notification

I think master branch updated the script for testing on AppVeyor. CI for pybind11 seems really not doing anything though. I'll leave it here for your input.

I think it's an AppVeyor glitch, status is "green" for me, see link above. Anyway it's a dummy toolchain, no real tests run.

Uploading:

https://ci.appveyor.com/project/ingenue/hunter/builds/19318052
https://travis-ci.org/ingenue/hunter/builds/438197979?utm_source=github_status&utm_medium=notification

Released: https://github.com/ruslo/hunter/releases/tag/v0.23.31


Scroll restoration doesn't work with AutoSizer

Bug Report
Scroll restoration doesn't work with AutoSizer. This is my code:
**rowCount is changed because it's an infinite scroll list.
        <WindowScroller>
          {({ height, isScrolling, onChildScroll, scrollTop }) => (
            <AutoSizer disableHeight>
              {({ width }) => (
                <List
                  autoHeight
                  rowCount={comics.length}
                  height={height}
                  width={width}
                  rowHeight={cache.rowHeight}
                  deferredMeasurementCache={cache}
                  isScrolling={isScrolling}
                  onScroll={onChildScroll}
                  scrollTop={scrollTop}
                  scrollToIndex={50}
                  rowRenderer={({ index, isScrolling, key, parent, style }) => (
                    <CellMeasurer
                      cache={cache}
                      columnIndex={0}
                      key={key}
                      parent={parent}
                      rowIndex={index}
                    >
                    ...

Which versions of React and react-virtualized, and which browser / OS are affected by this issue? Did this work in previous versions of react-virtualized?

Browser
Chrome

OS
Window

React
17.0.5

React DOM
17.0.5

react-virtualized
9.22.3

i have the same problem

I had the same bug.
But in my case, Adding registerChild prop was helpful.
<WindowScroller>
  {({ height, isScrolling, onChildScroll, scrollTop, registerChild }) => (
    <AutoSizer disableHeight>
      {({ width }) => (
        <div ref={registerChild}>
          <List
            ...

https://github.com/bvaughn/react-virtualized/blob/master/docs/WindowScroller.md#render-props


Memory keyword does not work (HSE version of translator)

My code:
+package sandbox.hse
+alias memory org.eolang.memory
+alias stdout org.eolang.io.stdout
+alias sprintf org.eolang.txt.sprintf

[] > main
  memory > x
  stdout > @
    "Hello world!\n"

I use: mvn clean compile
Error logs:
[INFO] Scanning for projects...
[INFO]
[INFO] ---------------------< org.eolang:quick-start-hse >---------------------
[INFO] Building quick-start-hse 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ quick-start-hse ---
[INFO] Deleting C:\Users\User\OneDrive\Desktop\ITP\eolang\eo\sandbox\hse\target
[INFO]
[INFO] --- eo-maven-plugin:1.0-SNAPSHOT:parse (default) @ quick-start-hse ---
[INFO] 49 attributes loaded from 46 stream(s) in 138ms, 49 saved, 403 ignored: ["Agent-Class", "Ant-Version", "Archiver-Version", "Automatic-Module-Name", "Bnd-LastModified", "Build-Jdk", "Build-Jdk-Spec", "Built-By", "Bundle-Copyright", "Bundle-Description", "Bundle-DocURL", "Bundle-License", "Bundle-ManifestVersion", "Bundle-Name", "Bundle-RequiredExecutionEnvironment", "Bundle-SymbolicName", "Bundle-Vendor", "Bundle-Version", "Can-Redefine-Classes", "Can-Retransform-Classes", "Can-Set-Native-Method-Prefix", "Created-By", "Dependencies", "EO-Version", "Eclipse-ExtensibleAPI", "Eclipse-SourceReferences", "Export-Package", "Implementation-Title", "Implementation-URL", "Implementation-Vendor", "Implementation-Vendor-Id", "Implementation-Version", "Import-Package", "Include-Resource", "JCabi-Build", "JCabi-Date", "JCabi-Version", "Kotlin-Runtime-Component", "Kotlin-Version", "Main-Class", "Manifest-Version", "Multi-Release", "Premain-Class", "Project-Name", "Require-Capability", "Specification-Title", "Specification-Vendor", "Specification-Version", "Tool"]
[INFO] C:\Users\User\OneDrive\Desktop\ITP\eolang\eo\sandbox\hse\eo\main.eo parsed to C:\Users\User\OneDrive\Desktop\ITP\eolang\eo\sandbox\hse\target\01-parse\main.eo.xml
[INFO]
[INFO] --- eo-maven-plugin:1.0-SNAPSHOT:optimize (default) @ quick-start-hse ---
[INFO] C:\Users\User\OneDrive\Desktop\ITP\eolang\eo\sandbox\hse\target\01-parse\main.eo.xml optimized to C:\Users\User\OneDrive\Desktop\ITP\eolang\eo\sandbox\hse\target\03-optimize\main.eo.xml, all steps are in C:\Users\User\OneDrive\Desktop\ITP\eolang\eo\sandbox\hse\target\02-steps\main.eo.xml
[INFO]
[INFO] --- eo-maven-plugin:1.0-SNAPSHOT:compile (default) @ quick-start-hse ---
[INFO] Gen directory created: C:\Users\User\OneDrive\Desktop\ITP\eolang\eo\sandbox\hse\target\generated-sources
[INFO] File C:\Users\User\OneDrive\Desktop\ITP\eolang\eo\sandbox\hse\target\generated-sources\EOmain.java saved (942 bytes)
[INFO] C:\Users\User\OneDrive\Desktop\ITP\eolang\eo\sandbox\hse\target\03-optimize\main.eo.xml compiled to C:\Users\User\OneDrive\Desktop\ITP\eolang\eo\sandbox\hse\target\generated-sources with the HSE compiler
[INFO] Directory added to sources: C:\Users\User\OneDrive\Desktop\ITP\eolang\eo\sandbox\hse\target\generated-sources
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ quick-start-hse ---
[WARNING] Using platform encoding (UTF8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory C:\Users\User\OneDrive\Desktop\ITP\eolang\eo\sandbox\hse\src\main\resources
[INFO]
[INFO] --- maven-dependency-plugin:2.8:copy (default) @ quick-start-hse ---
[INFO] Configured Artifact: io.github.hse-eolang:runtime:1.0.4:jar
[INFO] Copying runtime-1.0.4.jar to C:\Users\User\OneDrive\Desktop\ITP\eolang\eo\sandbox\hse\target\eo-runtime.jar
[INFO]
[INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ quick-start-hse ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding UTF8, i.e. build is platform dependent!
[INFO] Compiling 1 source file to C:\Users\User\OneDrive\Desktop\ITP\eolang\eo\sandbox\hse\target\classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /C:/Users/User/OneDrive/Desktop/ITP/eolang/eo/sandbox/hse/target/generated-sources/EOmain.java:[30,34] cannot find symbol
  symbol:   class EOmemory
  location: package org.eolang
[INFO] 1 error
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  9.063 s
[INFO] Finished at: 2021-09-30T19:51:11+03:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project quick-start-hse: Compilation failure
[ERROR] /C:/Users/User/OneDrive/Desktop/ITP/eolang/eo/sandbox/hse/target/generated-sources/EOmain.java:[30,34] cannot find symbol
[ERROR]   symbol:   class EOmemory
[ERROR]   location: package org.eolang
[ERROR]
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

@someilay please, submit it here: https://github.com/polystat/hse-transpiler

Job gh:cqfn/eo#353 is not assigned, can't get performer


MyCW viscreator chart bugs

Fix Data provided by: styles to avoid layout breaking:
Basecamp

Update setBuffer function on utils/graphs.js to fix this two bugs:

Proper tick values
Basecamp

Display data on charts with 0 min values
Basecamp

Add cancel button to viscreator modal. User would be able to delete visualisations only from the viscard.
Fix styles on viscreator modal on internet explorer

@simaob you are right it is hidden by design, but it makes sense in case it is a delete button (the visualisation should be created before being able to delete it) but thats not the case with the cancel. I just added it.


[HACKTOBERFEST 2024] - Responsive Web Design Quiz

[!IMPORTANT]
This issue is part of our 2024 Hacktoberfest initiative. If you are interested in working on this issue, refer to our top-level tasks to see if this issue is claimed, or to claim it if it is not.

This issue is to create the Responsive Web Design quiz.
The file you should be working on is found in /curriculum/challenges/english/25-front-end-development/quiz-responsive-web-design.
All quiz questions need to relate to one of these topics:

relationship to tools like grid/flexbox
media queries
mobile-first design
media breakpoints

[!CAUTION]
Questions which do not fall under these topics will be rejected.

You are welcome to include code blocks in your questions, but please keep them short (four lines or less).
Please do NOT open a pull request until you have completed all questions. Your quiz should have exactly 20 questions.

Thank you for your interest in contributing. This issue will be opened for contribution when Hacktoberfest starts on October 1st.

[!CAUTION]
Pull requests which are created before October 1st will not be eligible for Hacktoberfest. We appreciate enthusiasm, but encourage you to hold off on contributing to this issue until the event has begun.

If you wish to be notified when this issue is opened for contribution, subscribe to notifications:

This issue is now open
If you would like to work on this issue, please leave a comment so we can assign it to you.
Be sure to read our contributing guidelines.

i want to solve this issues please assign me

if this issues is still open ,
please assign me this issues .

This issue has been assigned a contributor. To prevent extraneous notifications, the issue is now locked. If you have any questions, please reach out to me in our Discord community.

It has been seven days. The issue is now being unassigned.


Clarify the dead batteries workaround for Python >= 3.13

try:
    import aifc
    import audioop
except ModuleNotFoundError as e:
    raise ModuleNotFoundError("Please run: pip install audioop-lts standard-aifc") from e

https://docs.python.org/3.13/whatsnew/3.13.html#whatsnew313-pep594
python3.13 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
pip install git+https://github.com/Uberi/speech_recognition.git

        File "/private/var/folders/2n/pb5cf4g10kdfvw9yvsfxy4gr0000gn/T/pip-req-build-uiogiiny/speech_recognition/__init__.py", line 7, in <module>
          import aifc
      ModuleNotFoundError: No module named 'aifc'

× Getting requirements to build wheel did not run successfully.
│ exit code: 1

@ftnext Your review, please.

It seems that there is no reason to merge this pull request as it has already been fixed in SpeechRecognition 3.12.0 (#781).
on my macOS
% python -V
Python 3.13.1
% python -m venv .venv --upgrade-deps
% source .venv/bin/activate
% python -m pip install SpeechRecognition==3.12.0
Successfully installed SpeechRecognition-3.12.0 audioop-lts-0.2.1 standard-aifc-3.13.0 standard-chunk-3.13.0 typing-extensions-4.12.2
% python
>>> import speech_recognition as sr
>>>

If you cannot install 3.12.0 in your environment, please create an issue.


feature :: playground is now pure js

No need to use a build step anymore to build the playground application.
It's now a pure JS module that uses the vqb+vue+vuex bundles directly.
Just start the server and reload your web page!

Codecov Report

Merging #154 into f/playground-dry-out will decrease coverage by 0.13%.
The diff coverage is 0%.

@@                   Coverage Diff                    @@
##           f/playground-dry-out     #154      +/-   ##
========================================================
- Coverage                 86.12%   85.99%   -0.14%
========================================================
  Files                        28       28
  Lines                       620      621       +1
  Branches                     72       72
========================================================
  Hits                        534      534
- Misses                       74       75       +1
  Partials                     12       12

Impacted Files
Coverage Δ

src/components/DataViewer.vue
95.23% <ø> (ø)
:arrow_up:

src/main.ts
0% <0%> (ø)
: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 4eae2a1...70766af. Read the comment docs.


API for parametric transistor generator

move contact generator into sky130 impl block
add comment clarifying effect of multiple devices in MosParams
add sky130 pdk layers api to reduce string usage

Codecov Report

Merging #73 (3b7342b) into master (78035a6) will increase coverage by 0.60%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master      #73      +/-   ##
==========================================
+ Coverage   41.29%   41.90%   +0.60%
==========================================
  Files          49       50       +1
  Lines        3923     3964      +41
==========================================
+ Hits         1620     1661      +41
  Misses       2303     2303

Impacted Files
Coverage Δ

pdkprims/src/contact.rs
100.00% <ø> (ø)

pdkprims/src/mos.rs
43.13% <ø> (ø)

pdkprims/src/tech/sky130/layers.rs
100.00% <100.00%> (ø)

pdkprims/src/tech/sky130/mod.rs
99.52% <100.00%> (+0.53%)
:arrow_up:

pdkprims/src/tech/sky130/tests.rs
100.00% <100.00%> (ø)

:mega: Codecov can now indicate which changes are the most critical in Pull Requests. Learn more


Allow to remove intercept handlers

For add/remove intercept handlers dynamically.

This would be a nice addition, but I'd like to stay consistent with other evented APIs, which require passing a reference to the original function object, rather than an interceptName string. Something like this:
var phase = 'request';
var handler = function(req, resp){ ... };
proxy.intercept(phase, handler);
proxy.removeIntercept(phase, handler);

See for example: http://nodejs.org/api/events.html#events_emitter_removelistener_event_listener

This looks better!
And one reason I have name functions is because original handler are 'lost' during wrapping.
If 'remove' function allow passing original function, how to use it to filter out from intercepts.
Any good suggestion?

I think a reference to the original handler would need to be kept around for that exact reason, like this:
this._intercepts[phase].push({
  handler: intercept,
  originalHandler: originalIntercept
});

...to be used solely for the === comparison. That feels fragile and error-prone and there's probably a much better way to do it, but hopefully that shows the basic idea.

I'm also interested in being able to remove the interceptors, another option would be to return a remove function from the intercept function

The more I think about this, the more I'd rather not do it. Interceptors are more like middleware than event handlers. Express and Koa middleware for example can't be dynamically removed, as far as I can tell. It would be easy to do it with a helper in any case:
function stoppable(fn) {
  var isStopped = false;
  var wrapped = function() {
    if (!isStopped) { return fn.apply(this, arguments); }
  }
  wrapped.stop = function() { isStopped = true; };
  wrapped.start = function() { isStopped = false; };
  return wrapped;
}

var intercept = stoppable(function(req, resp, cycle) { ... });

proxy.intercept('request', intercept);

intercept.stop();

intercept.start();

That would also be much more flexible than a one-size-fits-all solution. For example, someone would eventually want stopTemporarily(millis), stopIfCondition(fn), or randomlyStopSomeButNotOthers(probability) etc. All useful to somebody somewhere, but easily doable with higher-order functions and other helpers.

The case I met before is I need "stop"(remove) some interceptors and add back similar ones (intercept same url with different response).
I'm thinking of adding public setInterceptor and getInterceptor would be sufficient and allow consumers to decide what they want to do.

Closed since I'm not actively working on related now. May come back in future.
Thanks the help!


initial value

can you provide a way how to get the  initial value(should be string)from code phone

Hello @DalalShimlani, you can try use the code below. Please refer to the picture to see the function of getCountryByPhoneCode.
CountryPickerUtils.getCountryByPhoneCode(String phonecode)

Thanks for the answer @chongzheng1995


Remove: AudioRangerIT.AudioRanger version 3.4.6

## Newer version exists in repo - vanity URL

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

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

Microsoft Reviewers: Open in CodeFlow

URL: https://www.audioranger.com/bin/AudioRangerSetup.exe
Status Code: 200
(Automated message - build 643)


E/native: camera_image_stream.cc:118 Failed to extract the metadata or correct the timestamp, status=generic::deadline_exceeded: Timed out waiting for metadata.

getting above error with these too...
E/eglCodecCommon: glUtilsParamSize: unknow param 0x00008919
E/eglCodecCommon: glUtilsParamSize: unknow param 0x00008919
everything is working fine but my characters are not placing on the surface.

camera_image_stream.cc:120 Failed to extract the metadata or correct the timestamp, status=generic::deadline_exceeded: Timed out waiting for metadata.

The following error occurs.


Support Poco F5

Hello please add support 8 core fore snapdragon 7+ gen2 and support gpu and touchscreen and battery please it's possible

8 core
gpu
battery
touch
will all not work

If it will be on pcoc f5( 8 cores ) then i will steal it to pong

palima and waipio will get 8core first, doubt anyone will test on marble

oh so pong will be quicker than marble?

Yes, if they ever decide to fix 8gen1

who?


When checking for use, match on "://" instead of "http"

When checking for use, match on "://" instead of "http", that way we can support more URI types like ftp, smb, jamfsoftware etc.
Something like /(:\/\/)/ with NSRegularExpression should do the trick

Not sure what I was thinking here.
http is checked for when processing an image resource, not button action processing. Button actions are simple "open this url" so it actually doesn't care about http or ftp or what the URI is. Tested with a jamfselfservice:// URI and it works fine.


restart on end of setup or ww engine will not work

wake word engine never works until the image is manually restarted after setup has completed

why doesnt it work? this PR seems the wrong thing to do, do you have logs about the error so we can fix it in proper place instead of such a drastic ugly hack?

why doesnt it work? this PR seems the wrong thing to do, do you have logs about the error so we can fix it in proper place instead of such a drastic ugly hack?

There are no error logs except -> https://github.com/OpenVoiceOS/ovos-core/issues/216 but ww engine never responds to wakeword at all until a reboot

i really really REALLY dislike this change, if you must do it then:

maybe use restart instead of reboot, no need to restart full OS
put it all behind skill settings and disabled by default, this is very platform specific, enable it in images that need it
perhaps allow settings to define if it wants reboot or a list of services to reboot  (you only need to restart speech for your bug)

in the end this will just hide a bug that needs proper fixing and is unrelated to this skill, it is very hacky and only acceptable as a workaround so you can ship an image

Closing this as this issue is no longer applicable


Content tweaks new supplier flow

As requested for this story - https://www.pivotaltracker.com/story/show/138430483

👍


dark theme / @media (prefers-color-scheme: dark) {

prolly wanna finish vue migration first I guess, also compare to https://github.com/PaperMC/papermc.io/issues/50

If we really wanted to be close to papermc.io, we'd switch to materialize as the front end style framework since that has a more materialized feel to it.  But that might be too much work.

I mostly was speaking about colors, I don't think its practical to switch away from bootstrap, we use quite a few of its features

yeah so bootstrap is rip, #314


Create small version of person card

Description

Person card comes in two different sizes: normal (done in #60), and small (this)

Acceptance Criteria

[ ] Card is correct size
[ ] Has correct styling
[ ] Displays person's profile picture
[ ] Displays person's name
[ ] Displays first met information, formatted correctly.

Implementation details

n/a
Testing notes

n/a

@rainasong Please review and approve ticket.

The ticket LGTM!


Start adding read/write-fonts support for 'IFT ' tables.

Implementation is incomplete but this gives a preview for how I will setup up support for using IFT tables (https://w3c.github.io/IFT/Overview.html#font-format-extensions)

General comment: would prefer to see int-set merge into an existing crate. To me font-types is the most obvious choice, followed by read-fonts.


⚠ Bofrost.nl has degraded performance

In 4f5d536, Bofrost.nl (https://www.bofrost.nl) experienced degraded performance:

HTTP code: 200
Response time: 2407 ms

Resolved: Bofrost.nl performance has improved in 300080b after 6 minutes.


How does the line of code ensure that total_loss are computed after finishing update_ops?

Hi, there may be a bug in create_train_op().
In the newest tensorflow code, the line (https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/training/python/training/training.py#L428) intends to make sure that total_loss is computed after finishing update_ops.
However, my question is that the total_loss is defined elsewhere. There is just a reference to total_loss, which should not make the control_dependencies effective. So how does it work?
Thank you very much:-).

Thank you for your post. We noticed you have not filled out the following field in the issue template. Could you update them if they are relevant in your case, or leave them as N/A? Thanks.
Have I written custom code
OS Platform and Distribution
TensorFlow installed from
TensorFlow version
Bazel version
CUDA/cuDNN version
GPU model and memory
Exact command to reproduce

@tensorflowbutler The information has been added. Thank you very much.

This seems to be a misunderstanding of how TensorFlow graphs work. The reference to total_loss is a reference to the operation that has not yet been executed. The python calls are not executing things, they are building a graph which is later executed. A control dependency alters the graph to represent that one node has to run before another.

@aselle Thank you for your reply. I know the python code just define the operations. However, a control dependency does not work for an operation defined elsewhere. So this control dependency does not make sure the total_loss is computed with up-to-date variables. I mean there is a race condition.
The question has been answered on StackOverflow (https://stackoverflow.com/questions/49421529/how-does-tf-control-dependencies-work-for-operations-defined-elsewhere/49455352?noredirect=1#comment85995693_49455352). Thank you very much.


Support optional query params

Previously ruby client did not allow users to pass in optional params like initialInvisibilityTime for publishing and getting messages, or errorIfExists for creating queues.

Overall looks good, but the deprecated parameter needs to change :).
I'd like to actually see your tests pull in the cassieq docker container, run it local, and use your api to interact with it.  You can update your travis file like this: https://github.com/paradoxical-io/rabbitmq/blob/master/.travis.yml#L16,L17 to support docker when you build in travis.   You can use the cassieq dev mode to spin up the api and run it.
This way you don't need to hardcode keys, etc in your specs. Each test run you can just create new accounts/queues with the client.

Yeah, that sounds like a better approach to testing than how I currently do it, i.e. recording http interactions against a local cassieq container using the VCR gem.

Changed the parameter, good to merge?

LGTM


WordPress tutorial doesn't include an image

Hey,
it looks like in the wordpress tutorial there's an image field missing in the wedeploy.json.
Could you take a look at it @jonnilundy ?
Thx!

@cirocosta Which tutorial are you referring to?
I checked the WordPress demo and they all had images

ah, I was thinking about a tutorials page in wedeploy.com, I think I misunderstood something then 🤔


Use Payees in QIF Importing

Discussed in https://github.com/NickvisionApps/Denaro/discussions/774

Originally posted by terminalmage January 27, 2024
I have QIF exports which contain transactions with both payee and memo fields. However, denaro's ledger format doesn't appear to support payees at all. Every one of my transactions has a payee, but many do not have have a memo field. For example, interest earned/charged doesn't really need a memo field, the transaction category gives you all the info you need to know about that transaction.
Unfortunately this means that after importing, a lot of my transactions simply say "N/A" due to a lack of a memo field.

https://github.com/NickvisionApps/Denaro/releases/tag/2024.2.0

Tested and this works great, thanks!


builder touching all files

I set the builder to build my complete pornempire folder.
This also contains readme.txt.
The readme was processed as well.
Line endings were converted to UNIX style. Empty lines removed.
TODO: Only process files that the builder should care for (lpscene, ...?) other files should just be copied without manipulations.

this should be good but havent checked

this should be good but havent checked

Closing based on:
NickNoToday at 12:25 PM
This time you nailed it...

Closing based on:
NickNoToday at 12:25 PM
This time you nailed it...


Create stub for uv in virtual environments

It seems like we should probably stub uv into the environment by default so that you can use python -m uv. I'm not exactly sure what that would look like.
Originally posted by @zanieb in https://github.com/astral-sh/uv/issues/1598#issuecomment-1950259889

+1 to the idea of a stub, it seems like a fairly natural solution to #1625.
It seems to me that the mechanism would be to include a symlink to or copy of uv in the venv (gated by a flag perhaps?) and inspect argv[0] when doing venv detection. I believe the analogous CPython behavior that allows /path/to/venv/bin/python3 to Just Work™ is scanning for a nearby pyvenv.cfg and it seems like uv could probably use the same process as an early step in the venv detection logic.

We added a similar scan for the pyenv.cfg in #1504

(pyvenv.cfg, you mean?)

Playing around, I think there's workable solution (with a caveat) right now.  I did the following:
# 1. create environment using global uv
$ uv venv .venv

# 2. install uv in the venv
$ uv pip install uv

# 3. hack.  Remove uv executable, but leaves python uv interface
$ rm .venv/bin/uv

# 4. This still works. (find_uv_bin() finds my globally installed uv)
$ cd somewhere/else
$ full/path/to/.venv/bin/python -m uv pip freeze
uv==0.1.8

Basically, the code in python/uv is your stub.  Maybe just spin off a package python-uv which could be (optionally?) included when creating a venv.
However, regardless of step 3 (the hack), using the full path to the python doesn't work if a virtualenv is also activated.  For example (continuing from above):
$ uv venv .venv2
$ source .venv2/bin/activate

# Now try to install to .venv using path...
$ .venv/bin/python -m uv pip install typing-extensions

# This installs into .venv2!
$ uv pip freeze
typing-extensions==4.9.0

# not in .venv
$ source .venv/bin/activate
$ uv pip freeze
uv==0.1.8

I'm pretty sure this is not the intended behavior.   I'm guessing a solution to #1396 will allow this to be fixed.  For example, if an option --python-executable  is available, then instead of searching for, and setting VIRTUAL_ENV variable here, you could simply pass  f"--python-executable={sys.executable}"
Thank you to all the developers for this awesome package!


About ComplEx score calculation

Thanks @apoorvumang  for the amazing repo!
I'm a bit confused about your implementation of the ComplEx function (code) in which you return ac+bd as the real part of (a+bi)*(c+di) (the product of score and tail). Should this actually be ac-bd as you've done in the code above?
Any comments will be appreciated!

Solved. According to the ComplEX function, the tail vector should be conjugated (i.e. calculating (a+bi)*(c-di) with real part ac+bd), the code is correct to this regard.


guide-ja/concept revised [ci skip]

Q
A

Is bugfix?
no

New feature?
no

Breaks BC?
no

Tests pass?
--

Fixed issues
--

Thank you


fix(ci-base): adds better deps structure + more cypress deps into the…

Installs the remainder of the cypress deps into the ci-base image, all of these should be satisfied locally on dev machines already, so this is a ci-specific fix.
Locally I get (using the ci-base off this branch):
ci@45ae3dd1610a:/workdir/app/web$ npx cypress run --spec ./cypress/e2e/authentication/login.cy.ts
It looks like this is your first time using Cypress: 13.7.1

✔  Verified Cypress! /home/ci/.cache/Cypress/13.7.1/Cypress

Opening Cypress...

DevTools listening on ws://<IP_ADDRESS>:44311/devtools/browser/00cc15de-63a8-4e8f-b0b7-04b3af451aee
Your configFile is invalid: /workdir/app/web/cypress.config.ts

It threw an error when required, check the stack trace below:

TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts" for /workdir/app/web/cypress.config.ts

Which I believe should be a non-issue in CI/a real .nix flake

bors merge


syntax highlighting is unreadable

I've run into a few presentation where I couldn't read some of the syntax of code in the slides because of assumptions about what colors will be visible under which configurations. I think it would be far simpler to remove syntax highlighting all together to prevent issues from cropping up when you least want anything to go wrong.

fixed in 1.2.0, with option to disable syntax highlighting, use --no-highlight

Awesome, thanks!


[vcpkg tool] add fetch command to manual

Is your feature request related to a problem? Please describe.

No information how to fetch tools with vcpkg.

Proposed solution

add fetch command to manual.

Describe alternatives you've considered

I didn't think of any.

Additional context

No response

@talregev, if I understand correctly, you mean these tools in https://github.com/microsoft/vcpkg/blob/master/scripts/vcpkgTools.xml which used by vcpkg, right? The vcpkg would download them if needed, but you want to fetch them manually, like 'vcpkg fetch git', right?

@PhoebeHui You miss understand me.
I want you update the documentation inside vcpkg:
When I type: vcpkg --help
I want to show explanation about fetch command.

vpckg-tool is the repo name where the change need to happen.

Related:https://github.com/microsoft/vcpkg-tool/pull/1169

Thanks! it already merge.


Why not using --net host?

Guys, thanks for the great job. One quick question: don't you think that giving the container access to host network is kind of better? Will eliminate a lot of need for additional configuration of network access, proxy etc.

Hey @sapran do you mean docker run --net=host

If I remember right, nessus ties it's registration to the MAC.  If we run with --net=host, we cannot pin to a mac
docker run -d --net=host --name unlicensednessus -p 8834:8834 --mac-address 02:42:ac:11:00:01 docker-nessus
docker: Error response from daemon: conflicting options: mac-address and the network mode.

Tim is correct -- if you're planning on restoring an instance and plan on using an existing license it is necessary to retain the MAC that was previously used.
I used this to generate a docker instance on a different docker/nessus project, but similar requirements.
docker run -p 8834:8834 --mac-address F4:CE:46:XX:XX:XX --name=nessus -d nessus
I'm not sure what is meant by "access to host network".  The -p flag binds to a port on the host where the docker container is running,  I have access to the service on port 8834 on the CoreOS host where the instance exists.  Accessing it is a matter of https://blah.blahblah.blah:8834

resolved: don't use net-host because you can't pin the mac-address.


Add "X-SENDFILE-ENABLED" request header

I added a "fixup" hook that adds a "X-SENDFILE-ENABLED" request header to requests for which the module is enabled.  This can be used by CGIs to decide when it is okay to return an "X-SENDFILE" or "X-SENDFILE-TEMPORARY" response header.
Includes a configuration command to enable/disable this behavior.

Making a few more changes and one correction to previous commit, please ignore this request.


Build Failed

Hi! I know Meteor but I'm starting to learn Swift. I never added a package to a project and I'm trying to use the Carthage to download your library.
I added the Cartfile to my project folder and then link your repository. But when I run carthage update I get the following error:
*** Building scheme "CryptoSwift watchOS" in CryptoSwift.xcodeproj
** BUILD FAILED **

The following build commands failed:
	Check dependencies
(1 failure)
Code Sign error: No code signing identities found: No valid signing identities (i.e. certificate and private key pair) were found.
warning: no umbrella header found for target 'CryptoSwift watchOS', module map will not be generated
A shell task failed with exit code 65

What is the workaround to fix this?
Thanks

I solved using CocoaPods instead of Carthage.


'Holding library' role in the advanced search 'holding location' field

In orangelight select advanced search. Select 'Holding location'. Type any 'location code' that exists in this file https://github.com/pulibrary/bibdata/blob/main/marc_to_solr/translation_maps/holding_library.rb
As long as there are indexed documents the 'location code' will appear twice.
Without typing anything in the holding location field scroll down in the results.
There is a 'ReCAP' section. In this section are listed location codes that have library or holding library 'ReCAP'.
In https://bibdata.princeton.edu/locations/holding_locations there are location codes that have 'remote storage':'recap_rmt' and they exist in https://github.com/pulibrary/bibdata/blob/main/marc_to_solr/translation_maps/holding_library.rb but holding library is not ReCAP. In order for these location to be listed under the ReCAP section, the holding library should be updated to Recap.
I made this change for all the latest special collection non-requestable locations that are in ReCAP.
example: https://github.com/pulibrary/bibdata/blob/dbba2526bcd540e754848f4dafd23279716d8036/config/locations/holding_locations.json#L5868-L5872
Location mudd$phr:
It has 'remote_storage': 'recap_rmt'.
I updated the holding library to be 'ReCAP'.
Now it displays in the ReCAP section in the advanced search -> holding location.
https://github.com/pulibrary/bibdata/blob/dbba2526bcd540e754848f4dafd23279716d8036/config/locations/holding_locations.json#L4192-L4195

See also ticket https://github.com/pulibrary/bibdata/issues/1164


Fix wording in README.md

fixed word choice mistakes ("which"->"that")
added additional words for clarity ("recordings can be found")
eliminated redundancy ("also")
improved wording slow down explanation

Thanks :)


fix: fix decoding error in self-update (#89)

fixes #89
I'm not sure that this is in line with the design intent, but I confirm that the problem has been resolved.
$ swift run swiftly self-update
Building for debugging...
Build complete! (0.35s)
Checking for swiftly updates...
Already up to date.

Bah, yeah thanks for catching this. All the tests that were written used a mocked API, so this wasn't caught. I've added a commit that adds an integration test so that things like this will be caught automatically in the future. Thanks for reporting and fixing!

@swift-server-bot add to allowlist


Coverage reports and testing with Jest

Has anyone tested Sails JS with jest? Need to generate coverage reports with jest too.

Hey, @hashim-sohail!
This thread on Stack Overflow seems to have some useful discussion on this topic. It looks like the repo link in the comments doesn't work anymore; here's a working link.
Input and advice from the rest of the Sails community is also very much welcome!


Issues with building in TeamCity .NET 4.0 solution which is referencing to google library

We have migrated from TFS 2010 to TeamCity and we have issues in building our
solution file.

We are using .NET 4.0.
Google library is notoriously causing issues with .NET 4.0 + system.net.http
when trying to build it.
We managed to get this setup working on TFS(it uses MSBuild 4.0) without errors.

App.config should have correct assemblybindings:
<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
        <bindingRedirect oldVersion="<IP_ADDRESS>-<IP_ADDRESS>" newVersion="<IP_ADDRESS>" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="<IP_ADDRESS>-<IP_ADDRESS>" newVersion="<IP_ADDRESS>" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Threading.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="<IP_ADDRESS>-<IP_ADDRESS>" newVersion="<IP_ADDRESS>" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="<IP_ADDRESS>-<IP_ADDRESS>" newVersion="<IP_ADDRESS>" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Net.Http.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="<IP_ADDRESS>-<IP_ADDRESS>" newVersion="<IP_ADDRESS>" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>

We have already tried:
- Use different runner types: Visual studio, MSbuild
- Referenced all Dlls directly(google+system.net.http+etc.)
- Use straight Nuget Package restore on these DLLs(it restores everything ok)
- A

Build error is:
ResolveAssemblyReference] C:\Program Files
(x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets(1635, 5):
warning MSB3268: The primary reference "Google.Apis.Auth.PlatformServices,
Version=<IP_ADDRESS>016, Culture=neutral, processorArchitecture=MSIL" could not be
resolved because it has an indirect dependency on the framework assembly
"System.Net.Http, Version=<IP_ADDRESS>, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a" which could not be resolved in the currently
targeted framework. ".NETFramework,Version=v4.0". To resolve this problem,
either remove the reference "Google.Apis.Auth.PlatformServices,
Version=<IP_ADDRESS>016, Culture=neutral, processorArchitecture=MSIL" or retarget
your application to a framework version which contains "System.Net.Http,
Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".

Followed by:
[07:58:29]W:         [MSBuild output]
C:\BuildAgent\work\dda43f1992063b18\Integrations\CalendarSync\Devices\Google
Calendar\GoogleCalendarDevice.vb(788,78): error BC30009: Reference required to
assembly 'Google.Apis, Version=<IP_ADDRESS>42, Culture=neutral,
PublicKeyToken=null' containing the implemented interface
'Google.Apis.Requests.IDirectResponseSchema'. Add one to your project.
[C:\BuildAgent\work\dda43f1992063b18\Integrations\CalendarSync\Severa.Integratio
ns.CalendarSync.vbproj]

Original issue reported on code.google.com by<EMAIL_ADDRESS>on 17 Dec 2014 at 8:44

Gee thanks a lot, with the post above I became rather well-informed about the discussions.
http://fotorumahmewah.com

Gee thanks a lot, with the post above I became rather well-informed about the discussions.
http://fotorumahmewah.com

Closing as stale. Please open a new issue if follow-up is required.


Could not find module ember-resolver

Today i switched from ember-cordova to corber.
On the iPhone i get a white blank screen. After putting some manual statements into the assets/myapplication.js file, i found that the following section fails:
if (!runningTests) {
  require("myapplication/app")["default"].create({"name":"myapplication","version":"0.0.0+108fc194"});
}

There's an exception when it runs the require function:
Could not find module `ember-resolver` imported from `myapplication/resolver`

It seems the vendor.js file is much smaller in the corber/cordova/www/assets directory vs the dist/assets directory

corber/cordova/www/assets/vendor.js is 2.7 MB
dist/assets/vendor.js is 4.1 MB
(in non-minified debug configuration)

The cordova version of vendor.js gets generated using the following command:
corber build --platform=ios --skip-cordova-build
It seems this generates a vendor.js that differs substantially from the vendor.js produced by ember serve or ember build
Any ideas?

I've just tried running corber b and then ember b and have a vendor.js of the same size. As a heads up corber b will not update dist/assets/vendor.js. Can you confirm if the asset sizes differ after explicit builds for each target?
I hate to ask - have you tried a nombom, and ensured ember-cordova is removed from package.json? Let me know if you'e already tried.

Thank you for the quick reply!
I tried again, with the following:

removed node_modules and bower_components directories
did a npm cache clean and bower cache clean
did a npm install && bower install
ran  ember b and got a warning of the node-sass module that it has to be rebuilt when running a new/different node version. I recently installed node 8. So I switched back to node 6 using the command nvm use 6. I'm using ember-cli 2.11.0
ran ember b again with node 6. It produced a dist/assets/vendor.js file of 4.1 MB
ran corber b. It produced a corber/cordova/www/assets/vendor.js file of 2.7 MB

Same result. I suspected it had to do with the different node versions on my system. So i uninstalled the node 8 using nvm uninstall 8 and opened a new terminal window.
This time, the corber b command did not work - it could find the corber command! So it looks like corber was installed while i was on node 8. I reinstalled corber using npm install -g corber then built the app again:

ran ember b. It produced a dist/assets/vendor.js file of 4.1 MB
ran corber b. It produced a corber/cordova/www/assets/vendor.js file of 2.7 MB

Same result. One thing that is different between the two builds is that the corber b command produced the following warning which did not show up under ember b:
DEPRECATION: Addon files were detected in `/Users/myuser/Temp/myproject/node_modules/ember-resize-mixin/addon`, but no JavaScript preprocessors were found for `ember-resize-mixin`. Please make sure to add a preprocessor (most likely `ember-cli-babel`) to in `dependencies` (NOT `devDependencies`) in `ember-resize-mixin`'s `package.json`.

Anything else i can try?

yes, my package.json does not include ember-cordova (i removed it manually yesterday).
It does still include ember-cordova-events though.

My project was using ember-cli 2.11
After upgrading to ember-cli 2.16.2 the vendor.js file under corber/cordova/www/assets/ matched the dist/assets/vendor.js file.
Issue can be closed :-)

Great - thanks. I'll document the minimum ember-cli version.


Attempt to access unauthorized endpoint throws exception

To reproduce, browse to https://gponline-fhir.vu2vu.com/fhir/Appointment?patient=1 without siging in.
Expected: Response should be an OperationOutcome with a 401 Unauthorized and potentially OperationOutcome error message.
Actual: redirect to /login route and get exception

To get response
{
"error": "Unauthenticated."
}
set your headers
Accept header to application/json
Content-Type header to  application/json
http://storage6.static.itmages.com/i/16/0926/h_1474890624_3476390_568cdab974.png


Time for a new release?

Version 1.20 was released one year and 10 months ago and there's been quite some work done since then. It would be nice with a new version.

@ralphtheninja Thanks for your note! We're not looking for feedback around our release schedule.
The answer in #642 gives a quick overview of our plans.

@pwnall Thanks.


Add module-resolver package and unit tests

Purpose

Add module-resolver package and unit tests.

Fixes https://github.com/ballerina-platform/ballerina-lang/issues/25403
Approach

Describe how you are implementing the solutions along with the design details.

Samples

Provide high-level details about the samples related to this feature.

Remarks

List any other known issues, related PRs, TODO items, or any other notes related to the PR.

Check List

[ ] Read the Contributing Guide
[ ] Updated Change Log
[ ] Checked Tooling Support (#)
[ ] Added necessary tests

[x] Unit Tests
[ ] Spec Conformance Tests
[ ] Integration Tests
[ ] Ballerina By Example Tests

[ ] Increased Test Coverage
[ ] Added necessary documentation

[ ] API documentation
[ ] Module documentation in Module.md files
[ ] Ballerina By Examples

Closing this PR since the design has changed.


[feature] support fetching all balancing weights at once

After https://github.com/paulsengroup/hictkpy/pull/49, this can easily be achieved with something like:
weights = {}
for norm in self._f.avail_normalizations():
    weights[norm] = self._f.weights(norm)

weights = pd.DataFrame(weights)


Searching for vectors when there is no default length

See: https://github.com/pgvector/pgvector "Can I store vectors with different dimensions in the same column?".
This is possible but pgvector-python does not seem to play well, since the embedding column needs to be suffixed with ::vector(${#dimensions_of_the_input_vector}, this is not done at the moment.

Scratch that, the issue seems to be with pgvector itself. I will investigate and report back.


Fix UG bugs and related code

Details

Fix #247. Added JSON entry into Glossary, updated JSON mentions with links to glossary too.
Fix #245. Used regex to match all emojis (as of 6/4/22) in Comment class and replace them with blanks. Updated Parameter Conditions to reflect fix.
Fix #239. UG has been updated in a previous PR, no changes made this PR.
Fix #228. UG's QuickStart has been updated to show how to check Java version across different OS.
Fix #221. Placed FAQ in table
Fix #206. Updated QuickStart to let users know to use java -jar Trackermon.jar if double clicking fails
Updated Trackermon's icon to use Trackermon mascot
Removed AB3 icons and added Trackermon icons
Updated copyright to reflect Trackermon's usage

Codecov Report

Merging #271 (e7fc207) into master (1defe1e) will increase coverage by 0.02%.
The diff coverage is 100.00%.

@@             Coverage Diff              @@
##             master     #271      +/-   ##
============================================
+ Coverage     49.21%   49.24%   +0.02%
  Complexity      390      390
============================================
  Files            91       91
  Lines          1721     1722       +1
  Branches        193      193
============================================
+ Hits            847      848       +1
  Misses          797      797
  Partials         77       77

Impacted Files
Coverage Δ

.../main/java/seedu/trackermon/model/show/Rating.java
72.22% <ø> (ø)

src/main/java/seedu/trackermon/model/tag/Tag.java
80.00% <ø> (ø)

src/main/java/seedu/trackermon/ui/UiManager.java
0.00% <ø> (ø)

...main/java/seedu/trackermon/model/show/Comment.java
62.50% <100.00%> (+5.35%)
: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 1defe1e...e7fc207. Read the comment docs.


error in ProbOhemCrossEntropy2d

I got this error in ProbOhemCrossEntropy2d, when trainning on cityscapes.

May I ask what code did you change? It seems that you didn't set the ignore label in the loss function.

May I ask what code did you change? It seems that you didn't set the ignore label in the loss function.

ignore label is setted in your train.py, which is 255, and the problem seems to be caused by tensor type.

I replace 1-valid_mask with ~valid_mask, and the code for trainning cityscapes can run now.

And I want to know the mIoU of 69.57% is from val set or test set?

This result were trained on the training set and tested on the val set.


Revert "Support for running on arbitrary CUDA device."

Reverts facebookresearch/maskrcnn-benchmark#537
Fixes https://github.com/facebookresearch/maskrcnn-benchmark/issues/607

@atranitell this has broken maskrcnn-benchmark, see #607.
I'm reverting this patch for now

Hi, honestly sorry for that.
The detailed reason is that it seems to changed the PyTorch version from stable pytorch-1.0 to pytorch-nightly. In several weeks ago, I run the all codes normally based on stable version but failed now on latest.
Now, we have to compile the maskrcnn-benchmark on a nightly version that I think it is unfavorable for more widely usage. Emm..., setting CUDA_VISIBLE_DEVICES is quite conveniently for me :)
Thanks,
KJ


db.ExecContext successfully executes query, but returns obscure driverResult error

Go version: 1.12.7
Couldn't find anything on this error: sql.driverResult{Locker:(*sql.driverConn)(0xc00023ef80), resi:5}
Query: UPDATE deployment.users SET deactivated = $1 WHERE (email LIKE $2 AND deactivated = $3 AND created <= $4 AND organization_id = $5
The query successfully executes as intended but I'm concerned about this error.

It's 4am and I'm tired. Resolved the issue on my end.

@AndrewYinLi I'm glad to hear you fixed your issue. Please consider upgrading to Go 1.15 or later. Go 1.12 is very not supported.


Spreedsheet not updated with the latest country list e.g. Mexico

Spreadsheet not updated with the latest country list e.g. Mexico

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

ID: 6b07cfcf-8f31-91ed-b1de-c7826a1ab91d
Version Independent ID: dfbc4212-8f47-326a-f872-8186a915ae1e
Content: Country/region availability - Audio Conferencing, Calling Plans - Microsoft Teams
Content Source: Teams/country-and-region-availability-for-audio-conferencing-and-calling-plans/country-and-region-availability-for-audio-conferencing-and-calling-plans.md
Service: msteams
GitHub Login: @MicrosoftHeidi
Microsoft Alias: heidip

Hi @dipinn26592, thank you for your feedback.
The spreadsheet now includes Mexico in the Calling Plans Purchase sheet.

Thank you, could please also validate if the spreadsheet is the latest. And apart from Mexico if we are missing any other region.
Regards,
Dipin Nair
From: Dario Woitasen @.>
Sent: Thursday, December 22, 2022 4:52 AM
To: MicrosoftDocs/OfficeDocs-SkypeForBusiness @.>
Cc: Dipin Nair @.>; Mention @.>
Subject: Re: [MicrosoftDocs/OfficeDocs-SkypeForBusiness] Spreedsheet not updated with the latest country list e.g. Mexico (Issue #9561)
Hi @dipinn26592https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fdipinn26592&data=05|01|Dipin.Nair%40microsoft.com|ded060c81b8242bcb1aa08dae3aa2ece|72f988bf86f141af91ab2d7cd011db47|1|0|638072617351417415|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=rSkJr4H0fKbBvv6i9KIwerM3nImWTTePI2b0gS6e%2F2Q%3D&reserved=0, thank you for your feedback.
The spreadsheet now includes Mexico in the Calling Plans Purchase sheet.

Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2FOfficeDocs-SkypeForBusiness%2Fissues%2F9561%23issuecomment-1362213560&data=05|01|Dipin.Nair%40microsoft.com|ded060c81b8242bcb1aa08dae3aa2ece|72f988bf86f141af91ab2d7cd011db47|1|0|638072617351417415|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=HSa2nn%2BDglA6DNulUPJ1%2Fxd7YfTCEgO%2BH40bZuZk%2F3o%3D&reserved=0, or unsubscribehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAJ3OIN5D3RGWY6VQCDPUCDTWOOGKDANCNFSM6AAAAAAS3OCQD4&data=05|01|Dipin.Nair%40microsoft.com|ded060c81b8242bcb1aa08dae3aa2ece|72f988bf86f141af91ab2d7cd011db47|1|0|638072617351417415|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=EzMnyYes0kZUPGv%2BY19Q5N3bvQwRFtBmHJ2ro90OcpM%3D&reserved=0.
You are receiving this because you were mentioned.Message ID<EMAIL_ADDRESS>

The spreadsheet is always updated to include the latest updates. Maybe it could take a few days after the launch of the new service, but it will be up to date.


Create the output directory if it doesn't already exist

With the -o option, we can specify a new dir. However, it just throws if the output directory doesn't exist. This util should create the output dir structure (mkdirp package can do that pretty cleanly).

I'd be willing to take a swing at it, if it's not done

Not done, and no progress that I know of. :)


CI/CD: automate version deployment

Automate version deployment with github-actions.
See https://github.com/SinusBot/docker#deploy-version for manual process.

Been a while


Remote Nmap on ZMQ 5556 port: node crashes

After the upgrade to 0.2.7, i activated the node and in few minutes it was SYNCED again.
From my home Linux PC i remotely tested the 5556 port of my node using nmap:
nmap my-node.com -p 5556
Nmap shows the port OPEN but, when i checked the node status, it was crashed.

If you check the date / time, you see these two actions are related:

Environment information:

OS: Linux Ubuntu 16.04
RAM: 16 GB
Cores: 6 Cores
Type: VPS Contabo
HORNET version 0.2.7

Related to #7


Singleton classes

It is not obvious how singleton classes can be annotated via flow I tried bunch of things without much success and finally end up with something like this:
/* @flow */

export const None = function None()/*:{$typeof: "Effects.None"}*/ {
  if (None.instance == null) {
    this.$typeof = "Effects.None"
    None.instanceof = this
  }
  return None.instance
}

This works for a simple case but I feel like more complex case would be a lot more difficult to annotate. I think this deserves own entry in the docs.

I'm all for improving the docs. I don't think what you have here is very actionable, though. What could you have read in the docs that would have helped you?


Minor udpates to ExO cmdlet topics

Based on corresponding module cmdlets

Docs Build status updates of commit 8a81341:
:clock10: Full build: the average full build time is 11 min(s) 47 sec(s), this is based on the last 1000 build(s) for this repository.

Docs Build status updates of commit 8a81341:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

exchange/exchange-ps/exchange/devices/Clear-MobileDevice.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/exchange-ps/exchange/devices/Get-MobileDevice.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/exchange-ps/exchange/devices/Get-MobileDeviceStatistics.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/exchange-ps/exchange/devices/Remove-MobileDevice.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/exchange-ps/exchange/mailboxes/Get-MailboxFolderStatistics.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/exchange-ps/exchange/mailboxes/Get-MailboxPermission.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/exchange-ps/exchange/mailboxes/Get-MailboxStatistics.md
:white_check_mark:Succeeded
View (exchange-ps)

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit d97f6a5:
:clock10: Full build: the average full build time is 11 min(s) 47 sec(s), this is based on the last 1000 build(s) for this repository.

Docs Build status updates of commit d97f6a5:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

exchange/exchange-ps/exchange/devices/Clear-MobileDevice.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/exchange-ps/exchange/devices/Get-MobileDevice.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/exchange-ps/exchange/devices/Get-MobileDeviceStatistics.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/exchange-ps/exchange/devices/Remove-MobileDevice.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/exchange-ps/exchange/mailboxes/Get-MailboxFolderStatistics.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/exchange-ps/exchange/mailboxes/Get-MailboxPermission.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/exchange-ps/exchange/mailboxes/Get-MailboxStatistics.md
:white_check_mark:Succeeded
View (exchange-ps)

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.