Datastore sync error: Object lock value: expected b8e35510

Do you want to request a feature or report a bug?
Bug
What did you do?
Launched Traefik as cluster form this  manual.
What did you expect to see?
No errors
What did you see instead?
traefik output:
infra_proxy.0.eloqzxy578jr@swarm-manager-0    | time="2018-06-13T13:38:32Z" level=error msg="Leadership election error Unexpected response code: 500 (Missing check 'serfHealth' registration), retrying in 3.353099079s"
infra_proxy.0.eloqzxy578jr@swarm-manager-0    | time="2018-06-13T13:38:35Z" level=error msg="Leadership election error Unexpected response code: 500 (Missing check 'serfHealth' registration), retrying in 7.734764651s"
infra_proxy.0.eloqzxy578jr@swarm-manager-0    | time="2018-06-13T13:38:43Z" level=error msg="Leadership election error Unexpected response code: 500 (Missing check 'serfHealth' registration), retrying in 18.253019683s"
infra_proxy.0.eloqzxy578jr@swarm-manager-0    | time="2018-06-13T13:39:01Z" level=error msg="Leadership election error Unexpected response code: 500 (Missing check 'serfHealth' registration), retrying in 20.274627269s"
infra_proxy.0.eloqzxy578jr@swarm-manager-0    | time="2018-06-13T13:39:22Z" level=error msg="Datastore sync error: Object lock value: expected b8e35510-1397-4396-9a94-a8ed41560195, got , retrying in 269.349437ms"
infra_proxy.0.eloqzxy578jr@swarm-manager-0    | legolog: 2018/06/13 13:39:30 [INFO] acme: Registering account for<EMAIL_ADDRESS>infra_proxy.0.fv9ni12zaup4@swarm-manager-1    | <IP_ADDRESS> - - [13/Jun/2018:13:42:12 +0000] "GET / HTTP/1.0" 404 19 "-" "-" 1 "backend not found" "/" 0ms
infra_proxy.0.eloqzxy578jr@swarm-manager-0    | <IP_ADDRESS> - - [13/Jun/2018:13:42:21 +0000] "GET / HTTP/1.0" 404 19 "-" "-" 1 "backend not found" "/" 0ms
infra_proxy.0.eloqzxy578jr@swarm-manager-0    | <IP_ADDRESS> - - [13/Jun/2018:13:42:58 +0000] "GET / HTTP/1.0" 404 19 "-" "-" 2 "backend not found" "/" 0ms
infra_proxy.0.fv9ni12zaup4@swarm-manager-1    | time="2018-06-13T13:51:24Z" level=error msg="Leadership election error failed to read lock: Get http://consul:8500/v1/kv/traefik/leader?index=5848&wait=15000ms: dial tcp <IP_ADDRESS>:8500: connect: no route to host, retrying in 42.481718789s"
infra_proxy.0.fv9ni12zaup4@swarm-manager-1    | time="2018-06-13T13:51:24Z" level=error msg="KV connection error: watchtree channel closed, retrying in 552.821584ms"

traefik_init:
infra_proxy_init.1.jkwmgpocxokv@swarm-manager-1    | 2018/06/13 13:38:13 Storing configuration: <big json here>

Output of traefik version:
Version:      v1.6.3
Codename:     tetedemoine
Go version:   go1.10.2
Built:        2018-06-05_03:29:01PM
OS/Arch:      linux/amd64

What is your environment & configuration (arguments, toml, provider, platform, ...)?
    consul:
      hostname: consul
      image: consul
      command: agent -server -bootstrap-expect=1
      environment:
        - CONSUL_LOCAL_CONFIG={"datacenter":"ams3","server":true,"enable_debug":true}
        - CONSUL_BIND_INTERFACE=eth0
        - CONSUL_CLIENT_INTERFACE=eth0
      deploy:
        labels:
          - "traefik.enable=false"
        replicas: 1
        placement:
          constraints:
            - node.role == manager
        restart_policy:
         condition: on-failure
      networks:
        - traefik
      volumes:
        - consul-data:/consul/data

    proxy_init:
      image: traefik:1.6.3-alpine
      command:
         - "traefik"
         - "storeconfig"
         - "--api"
         - "--entrypoints=Name:http Address::80 Redirect.EntryPoint:https"
         - "--entrypoints=Name:https Address::443 TLS"
         - "--defaultentrypoints=http,https"
         - "--acme"
         - "--acme.storage='traefik/acme/account'"
         - "--acme.entryPoint=https"
         - "--acme.httpChallenge.entryPoint=http"
         - "--acme.onHostRule=false"
         - "--acme.acmelogging=true"
         - "--acme.onDemand=false"
         -<EMAIL_ADDRESS>         - "--docker"
         - "--docker.swarmMode"
         - "--docker.domain=swarm.whatever.io"
         - "--docker.watch"
         - "--consul"
         - "--consul.endpoint=consul:8500"
         - "--consul.prefix=traefik"
         - "--accesslogsfile=/dev/stdout"
      networks:
         - traefik
      deploy:
         placement:
            constraints:
              - node.role == manager
         restart_policy:
            condition: on-failure
      depends_on:
        - consul

  proxy:
      image: traefik:1.6.3-alpine
      depends_on:
        - proxy_init
        - consul
      command:
        - "traefik"
        - "--consul"
        - "--consul.watch"
        - "--consul.endpoint=consul:8500"
        - "--consul.prefix=traefik"
      volumes:
        - /var/run/docker.sock:/var/run/docker.sock
      networks:
        - traefik
      ports:
        - 80:80
        - 443:443
        - 8080:8080
      volumes:
        - "/var/run/docker.sock:/var/run/docker.sock"
      deploy:
        mode: global
        restart_policy:
          condition: on-failure
        placement:
          constraints:
            - node.role == manager
        update_config:
          parallelism: 1
          delay: 10s

networks:
  traefik:
      driver: overlay

volumes:
  consul-data:

If applicable, please paste the log output in DEBUG level (--logLevel=DEBUG switch)
consul container
infra_consul.1.rxgmyuldfu6p@swarm-manager-1    |     2018/06/13 13:54:57 [ERR] http: Request PUT /v1/session/create?wait=30000ms, error: Missing node registration from=<IP_ADDRESS>:34330
infra_consul.1.rxgmyuldfu6p@swarm-manager-1    |     2018/06/13 13:55:01 [ERR] http: Request PUT /v1/session/create?wait=30000ms, error: Missing node registration from=<IP_ADDRESS>:46408
infra_consul.1.rxgmyuldfu6p@swarm-manager-1    |     2018/06/13 13:55:01 [WARN] consul.fsm: EnsureRegistration failed: failed inserting node: node ID "4400be7d-ecd1-c15c-594c-b8d763c65750" for node "consul" aliases existing node "ca84546beaf2"
infra_consul.1.rxgmyuldfu6p@swarm-manager-1    |     2018/06/13 13:55:01 [WARN] agent: Syncing node info failed. failed inserting node: node ID "4400be7d-ecd1-c15c-594c-b8d763c65750" for node "consul" aliases existing node "ca84546beaf2"
infra_consul.1.rxgmyuldfu6p@swarm-manager-1    |     2018/06/13 13:55:01 [ERR] agent: failed to sync remote state: failed inserting node: node ID "4400be7d-ecd1-c15c-594c-b8d763c65750" for node "consul" aliases existing node "ca84546beaf2"

And if I'd launch traefik 1.5 as on that manual without changing absolutely anything except ACME email -  it's similar output. Sorry without debug because it's really wordy.
$ docker --tls service logs -f infra_traefik
infra_traefik.0.5wlrzsjcy1j0@swarm-manager-0    | time="2018-06-13T14:15:44Z" level=error msg="Load config error: Get http://consul:8500/v1/kv/traefik?consistent=&recurse=&wait=30000ms: dial tcp: lookup consul on <IP_ADDRESS>:53: no such host, retrying in 532.066212ms"
infra_traefik.0.5wlrzsjcy1j0@swarm-manager-0    | time="2018-06-13T14:15:45Z" level=error msg="Load config error: Get http://consul:8500/v1/kv/traefik?consistent=&recurse=&wait=30000ms: dial tcp: lookup consul on <IP_ADDRESS>:53: no such host, retrying in 458.005135ms"
infra_traefik.0.5wlrzsjcy1j0@swarm-manager-0    | time="2018-06-13T14:15:45Z" level=error msg="Load config error: Get http://consul:8500/v1/kv/traefik?consistent=&recurse=&wait=30000ms: dial tcp: lookup consul on <IP_ADDRESS>:53: no such host, retrying in 878.925167ms"
infra_traefik.0.71cmslvo7ul8@swarm-manager-1    | time="2018-06-13T14:15:44Z" level=error msg="Load config error: Get http://consul:8500/v1/kv/traefik?consistent=&recurse=&wait=30000ms: dial tcp: lookup consul on <IP_ADDRESS>:53: no such host, retrying in 467.819053ms"
infra_traefik.0.71cmslvo7ul8@swarm-manager-1    | time="2018-06-13T14:15:45Z" level=error msg="Load config error: Get http://consul:8500/v1/kv/traefik?consistent=&recurse=&wait=30000ms: dial tcp: lookup consul on <IP_ADDRESS>:53: no such host, retrying in 520.709512ms"
infra_traefik.0.71cmslvo7ul8@swarm-manager-1    | time="2018-06-13T14:15:45Z" level=error msg="Load config error: Get http://consul:8500/v1/kv/traefik?consistent=&recurse=&wait=30000ms: dial tcp: lookup consul on <IP_ADDRESS>:53: no such host, retrying in 761.341364ms"
infra_traefik.0.3q211ndstidz@swarm-master    | time="2018-06-13T14:15:44Z" level=error msg="Load config error: Get http://consul:8500/v1/kv/traefik?consistent=&recurse=&wait=30000ms: dial tcp: lookup consul on <IP_ADDRESS>:53: no such host, retrying in 465.226492ms"
infra_traefik.0.3q211ndstidz@swarm-master    | time="2018-06-13T14:15:44Z" level=error msg="Load config error: Get http://consul:8500/v1/kv/traefik?consistent=&recurse=&wait=30000ms: dial tcp: lookup consul on <IP_ADDRESS>:53: no such host, retrying in 463.286566ms"
infra_traefik.0.3q211ndstidz@swarm-master    | time="2018-06-13T14:15:45Z" level=error msg="Load config error: Get http://consul:8500/v1/kv/traefik?consistent=&recurse=&wait=30000ms: dial tcp: lookup consul on <IP_ADDRESS>:53: no such host, retrying in 1.056679773s"
infra_traefik.0.71cmslvo7ul8@swarm-manager-1    | time="2018-06-13T14:15:53Z" level=error msg="Load config error: Unexpected response code: 500, retrying in 1.251030901s"
infra_traefik.0.3q211ndstidz@swarm-master    | time="2018-06-13T14:15:53Z" level=error msg="Load config error: Unexpected response code: 500, retrying in 1.135779476s"
infra_traefik.0.5wlrzsjcy1j0@swarm-manager-0    | time="2018-06-13T14:15:53Z" level=error msg="Load config error: Unexpected response code: 500, retrying in 1.688059111s"
infra_traefik.0.71cmslvo7ul8@swarm-manager-1    | time="2018-06-13T14:15:56Z" level=error msg="Leadership election error Unexpected response code: 500 (Missing node registration), retrying in 580.210284ms"
infra_traefik.0.71cmslvo7ul8@swarm-manager-1    | time="2018-06-13T14:15:56Z" level=error msg="Cannot unmarshall private key []"
infra_traefik.0.71cmslvo7ul8@swarm-manager-1    | time="2018-06-13T14:15:56Z" level=error msg="Error building ACME client &{Email: Registration:<nil> PrivateKey:[] DomainsCertificate:{Certs:[] lock:{w:{state:0 sema:0} writerSem:0 readerSem:0 readerCount:0 readerWait:0}} ChallengeCerts:map[] HTTPChallenge:map[]}: private key was nil"
infra_traefik.0.3q211ndstidz@swarm-master    | time="2018-06-13T14:15:57Z" level=error msg="Leadership election error Unexpected response code: 500 (Missing node registration), retrying in 594.274959ms"
infra_traefik.0.3q211ndstidz@swarm-master    | time="2018-06-13T14:15:57Z" level=error msg="Cannot unmarshall private key []"
infra_traefik.0.3q211ndstidz@swarm-master    | time="2018-06-13T14:15:57Z" level=error msg="Error building ACME client &{Email: Registration:<nil> PrivateKey:[] DomainsCertificate:{Certs:[] lock:{w:{state:0 sema:0} writerSem:0 readerSem:0 readerCount:0 readerWait:0}} ChallengeCerts:map[] HTTPChallenge:map[]}: private key was nil"
infra_traefik.0.5wlrzsjcy1j0@swarm-manager-0    | time="2018-06-13T14:15:57Z" level=error msg="Leadership election error Unexpected response code: 500 (Missing node registration), retrying in 742.791882ms"
infra_traefik.0.5wlrzsjcy1j0@swarm-manager-0    | time="2018-06-13T14:15:57Z" level=error msg="Cannot unmarshall private key []"
infra_traefik.0.5wlrzsjcy1j0@swarm-manager-0    | time="2018-06-13T14:15:57Z" level=error msg="Error building ACME client &{Email: Registration:<nil> PrivateKey:[] DomainsCertificate:{Certs:[] lock:{w:{state:0 sema:0} writerSem:0 readerSem:0 readerCount:0 readerWait:0}} ChallengeCerts:map[] HTTPChallenge:map[]}: private key was nil"
infra_traefik.0.71cmslvo7ul8@swarm-manager-1    | time="2018-06-13T14:15:57Z" level=error msg="Leadership election error Unexpected response code: 500 (Missing check 'serfHealth' registration), retrying in 840.089349ms"
infra_traefik.0.3q211ndstidz@swarm-master    | time="2018-06-13T14:15:57Z" level=error msg="Leadership election error Unexpected response code: 500 (Missing check 'serfHealth' registration), retrying in 928.245698ms"
infra_traefik.0.5wlrzsjcy1j0@swarm-manager-0    | time="2018-06-13T14:15:58Z" level=error msg="Leadership election error Unexpected response code: 500 (Missing check 'serfHealth' registration), retrying in 917.49328ms"
infra_traefik.0.71cmslvo7ul8@swarm-manager-1    | time="2018-06-13T14:15:58Z" level=error msg="Leadership election error Unexpected response code: 500 (Missing check 'serfHealth' registration), retrying in 1.567695523s"
infra_traefik.0.3q211ndstidz@swarm-master    | time="2018-06-13T14:15:58Z" level=error msg="Leadership election error Unexpected response code: 500 (Missing check 'serfHealth' registration), retrying in 1.013373382s"
infra_traefik.0.5wlrzsjcy1j0@swarm-manager-0    | time="2018-06-13T14:15:59Z" level=error msg="Leadership election error Unexpected response code: 500 (Missing check 'serfHealth' registration), retrying in 717.059863ms"
infra_traefik.0.3q211ndstidz@swarm-master    | time="2018-06-13T14:15:59Z" level=error msg="Leadership election error Unexpected response code: 500 (Missing check 'serfHealth' registration), retrying in 1.489577248s"
infra_traefik.0.5wlrzsjcy1j0@swarm-manager-0    | time="2018-06-13T14:15:59Z" level=error msg="Leadership election error Unexpected response code: 500 (Missing check 'serfHealth' registration), retrying in 1.448180821s"
infra_traefik.0.71cmslvo7ul8@swarm-manager-1    | time="2018-06-13T14:15:59Z" level=error msg="Leadership election error Unexpected response code: 500 (Missing check 'serfHealth' registration), retrying in 2.23620903s"
infra_traefik.0.3q211ndstidz@swarm-master    | time="2018-06-13T14:16:01Z" level=error msg="Leadership election error Unexpected response code: 500 (Missing check 'serfHealth' registration), retrying in 1.310668277s"
infra_traefik.0.5wlrzsjcy1j0@swarm-manager-0    | time="2018-06-13T14:16:01Z" level=error msg="Leadership election error Unexpected response code: 500 (Missing check 'serfHealth' registration), retrying in 3.450216199s"
infra_traefik.0.71cmslvo7ul8@swarm-manager-1    | time="2018-06-13T14:16:02Z" level=error msg="Leadership election error Unexpected response code: 500 (Missing check 'serfHealth' registration), retrying in 3.534395919s"
infra_traefik.0.3q211ndstidz@swarm-master    | time="2018-06-13T14:16:02Z" level=error msg="Leadership election error Unexpected response code: 500 (Missing check 'serfHealth' registration), retrying in 2.211433481s"
infra_traefik.0.5wlrzsjcy1j0@swarm-manager-0    | time="2018-06-13T14:16:04Z" level=error msg="Leadership election error Unexpected response code: 500 (Missing check 'serfHealth' registration), retrying in 4.280841828s"
infra_traefik.0.3q211ndstidz@swarm-master    | time="2018-06-13T14:16:04Z" level=error msg="Leadership election error Unexpected response code: 500 (Missing check 'serfHealth' registration), retrying in 5.420684251s"
infra_traefik.0.71cmslvo7ul8@swarm-manager-1    | time="2018-06-13T14:16:05Z" level=error msg="Leadership election error Unexpected response code: 500 (Missing check 'serfHealth' registration), retrying in 4.230201542s"
infra_traefik.0.5wlrzsjcy1j0@swarm-manager-0    | time="2018-06-13T14:16:08Z" level=error msg="Leadership election error Unexpected response code: 500 (Missing check 'serfHealth' registration), retrying in 7.971177426s"
infra_traefik.0.71cmslvo7ul8@swarm-manager-1    | time="2018-06-13T14:16:09Z" level=error msg="Leadership election error Unexpected response code: 500 (Missing check 'serfHealth' registration), retrying in 4.362036267s"
infra_traefik.0.3q211ndstidz@swarm-master    | time="2018-06-13T14:16:10Z" level=error msg="Leadership election error Unexpected response code: 500 (Missing check 'serfHealth' registration), retrying in 8.672095649s"
infra_traefik.0.71cmslvo7ul8@swarm-manager-1    | time="2018-06-13T14:16:14Z" level=error msg="Leadership election error Unexpected response code: 500 (Missing check 'serfHealth' registration), retrying in 12.08051947s"
infra_traefik.0.5wlrzsjcy1j0@swarm-manager-0    | time="2018-06-13T14:16:16Z" level=error msg="Leadership election error Unexpected response code: 500 (Missing check 'serfHealth' registration), retrying in 6.720661168s"
infra_traefik.0.3q211ndstidz@swarm-master    | time="2018-06-13T14:16:18Z" level=error msg="Leadership election error Unexpected response code: 500 (Missing check 'serfHealth' registration), retrying in 12.498967374s"
^C⏎
infra_traefik.0.3q211ndstidz@swarm-master    | time="2018-06-13T14:15:44Z" level=error msg="Load config error: Get http://consul:8500/v1/kv/traefik?consistent=&recurse=&wait=30000ms: dial tcp: lookup consul on <IP_ADDRESS>:53: no such host, retrying in 465.226492ms"
infra_traefik.0.3q211ndstidz@swarm-master    | time="2018-06-13T14:15:44Z" level=error msg="Load config error: Get http://consul:8500/v1/kv/traefik?consistent=&recurse=&wait=30000ms: dial tcp: lookup consul on <IP_ADDRESS>:53: no such host, retrying in 463.286566ms"

Related to #3372
I've asked about this issue in Slack channel, and the only answer I've got, I have a problem with swarm setup. I have a regular swarm setup on digital ocean. There's eth0 and eth1 in there, one is for outer world, another one for inner. I have no idea what's happening. That Consul agent/server gives tons of errors when starting, first agent complains that it wasn't registered, after sometime it does register a node because server goes up in like 15sec. Meanwhile traefik bombs consul and getting error that it can't be registered. Then that datastore store sync error pops up. So many things happening in here that I don't even know what exact issue I'm having in the first place, and are they even connected in between. This setup doesn't work. If someone could replicate traefik cluster setup and send docker-compose file we can compare output.

Hello @holms.
Many thanks for your interest in the project
I guess there is a problem in the user guide and I am sorry about it.
Indeed, because you are using Docker swarm the option depends_on is not used by Docker and you can not be sure to start all the services order.
I propose you to create many compose files: one for consul, one for proxy_init and one with your Træfik cluster services.
Then you can start first consul stack then init_proxy stack and finally Træfik stack.
WDYT?

Probably that would be wise, although automating this wouldn't be easy. I'll try to start only consul, and then check what traefik would do in this case. Because currently we have multiple problems in here. I don't even know what that datastore sync error means, it seems to be it 's trying to write already finally something in there but fails.

@holms  @nmengin I am running into the same problem. I split the three services into different stacks, ran consul first, then init, then traefik, making sure to wait for each to finish before starting the next, and am still getting the same error:
time="2018-07-10T16:48:00Z" level=error msg="Datastore sync error: object lock value: expected d038c5e6-31cf-4952-9193-59dbbf35ddea, got 31b08952-a7cd-493b-9ff9-e4d61700dcfc, retrying in 488.596836ms"

I have tried the separation of services as well, sadly without luck.

Glad I'm not the only one. @ldez seems to be this is issue for plenty of people

I met this problem too when I tried make test

I have the same issue in pretty much the same configuration. ACME works for a certain time until it stops with only that error message.

I ran into the same issue on a HA config in kubernetes. Acme was not working (same error "Datastore sync error: object lock value: expected ... got ..."). It started working right after I switched to a single Traefik replica with acme.storage pointing to a flatfile in a volume.

I am running in to this problem as well when Træfik is trying to request a new certificate:
Datastore sync error: object lock value: expected 31553820-ae87-4a2e-a85f-8063933fb6db, got 9a0a9c95-c833-4c61-a3bd-0272988f8f66
...
Datastore sync error: object lock value: expected 2ca14d45-132b-4fee-a347-173228dfa278, got 31553820-ae87-4a2e-a85f-8063933fb6db
...
Error getting ACME certificates [test.myservice.eu] : cannot obtain certificates: acme: Error -> One or more domains had a problem:... acme: Error 400 - urn:ietf:params:acme:error:connection - Fetching http://test.dsservice.eu/.well-known/acme-challenge/...: Timeout during connect

From the above, it seem that the instance of Træfik is one step behind somehow.
Setup:

Two node Docker swarm, both nodes master.
Consul cluster (one on each node) started up first, as expected the cluster consists of the two instances and the KV store is empty.
Træfik is started up, one "init" instance with storeconfig and two instances (one on each node) that get the config from consul.  As expected, the KV store has the config and the Træfik UI works on both nodes.
A simple whoami container is started up (one on each node), with a traefik.frontend.rule=Host:test.myservice.eu, which triggers the acme.onHostRule of Træfik.  Then the above Datastore sync error happens and eventually a timeout.

If I manually try to curl the challenge URL, it returns the token just fine.

A note that killing the pod that receives this error only makes it back of further.  I had the error indicating it would wait 297s, then I deleted the pod and immediately received:
Datastore sync error: Object lock value: expected e847892c-5166-4bc6-ac1a-034423966113, got 675695f8-bc82-4210-a0a7-f64f22ba0282, retrying in 546.969829ms

This is a little painful when you know that the bootstrapping process completed (in our case) and the config is ready to be refreshed from consul.

This may be perhaps a P1 priority.  As-is, on my scripted bootstrapped/reproducible environment, killing the traefik pod does not get me past it.  At this moment, I can blow away everything - but that is not workable in production which is just a few weeks away for us.

Same tears from me. In couple of weeks we also should go to production.
Maybe using boltdb would be better for now? Or at least Consul as a service
or Consul cluster without containers.
On Tue, 21 Aug 2018, 9:47 pm Kevin Ross<EMAIL_ADDRESS>wrote:

This may be perhaps a P1 priority. As-is, on my scripted
bootstrapped/reproducible environment, killing the traefik pod does not get
me past it. At this moment, I can blow away everything - but that is not
workable in production which is just a few weeks away for us.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/containous/traefik/issues/3487#issuecomment-414781624,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AARJfhyc4i-vnDrqPe-vmaMA-qbzJwj8ks5uTFXMgaJpZM4UmQYN
.

#2581 is from zookeeper, so correlating these might mean it isn't a problem with the store, but traefik's use of the store. <- this is an uninformed correlation.

Here is a reproduction repo:
https://github.com/rosskevin/issue-traefik-3487-database-sync-error
I tried to make it as simple as possible, only a couple of things must be manipulated, mainly the bash variables in environments/foo/.env.
This is:

GKE (Kubernetes)
Consul (3 replicas)
Traefik (1 replica) + Let's encrypt ACME using gcloud dns + dashboard
Hello world app
Ingresses for hello and traefik https urls

All instructions to reproduce and more notes in the readme.  Sample log.txt of post-bootstrap freshly kicked traefik pod provided as log.txt that shows the Database sync error.

Hello @rosskevin, @holms , @patrick-motard , @jpsecher , @numkem , @dalsh , @schemen
Many thanks for your feedbacks.
The error Datastore sync error: is generated when Træfik tries to write into the ACME account key.
Indeed, this key has a lock in the way to manage the concurrency and Træfik cannot write into this  key until the lock does not contain the expected value.
That's why you can see this log message many times when træfik is started (Træfik tries to write information in the ACME account key).
This behavior comes from the cluster feature which is still in experimental mode. When Træfik is linked to a KV store, the cluster mode is activated even if there is only one instance of Træfik.
With the team with have discussed about this message to know if we have to change the level, but this message is generated by the library we have used to be connected to he KV stores (valkeyrie) and it can happens in others places where there is a real problem that's why we did not change it for the moment...
Maybe can we, in this particular case, show a more detailled message.
I'll talk about this possibility with the team.
Once again, many thanks for your feedbacks and I hope I answered your questions.

@nmengin Thanks for your answer. I spent some time looking at traefik/valkeyrie/lego locking logic code, after which I decided to try my HA setup again with debug logs enabled in order to check for what I thought could be a potential race condition.
Turns out, not only are there no race condition, but also my HA setup works perfectly now with traefik in cluster mode and acme.storage set to a consul key.
I have no idea what was causing my issue and I cannot reproduce it anymore...
Well .. maybe you need a contributor on this side of the project ? I'm quite familiar with the code now 😄

@nmengin (continuing from slack) I cleaned/bootstrapped again, storeconfig job ran, and in the bootstrap traefik pod I received:
Datastore sync error: Object lock value: expected 5c6047b7-13ac-4ef4-bf52-9c4f8e27d3f3, got , retrying in 556.657999ms

Then I deleted the traefik/acme/account/lock, and deleted the original bootstrapped traefip pod, and received:
"Datastore sync error: Object lock value: expected 977f385f-0f46-4918-ba27-4cb536c5da77, got , retrying in 287.392201ms"

I can't make sense of that. Here is a log of the bootstrapped pod and the pod post-delete of the lock:
https://gist.github.com/rosskevin/a9ad05edba60976cbcdc33fac0a393b7

Maybe can we, in this particular case, show a more detailled message.
I'll talk about this possibility with the team.
Once again, many thanks for your feedbacks and I hope I answered your questions.

@nmengin are you saying this message is harmless? Or are you saying that it matters, but because the feature is experimental that we should expect problems?

I'd say I can't use traefik in prod at all because of this issue.
On Mon, 3 Dec 2018, 12:47 am Tom Downes<EMAIL_ADDRESS>wrote:

Maybe can we, in this particular case, show a more detailled message.
I'll talk about this possibility with the team.
Once again, many thanks for your feedbacks and I hope I answered your
questions.
@nmengin https://github.com/nmengin are you saying this message is
harmless? Or are you saying that it matters, but because the feature is
experimental that we should expect problems?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/containous/traefik/issues/3487#issuecomment-443549762,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AARJftP7AM0K4W2uxj_UEZKLzrr0VpHMks5u1FiZgaJpZM4UmQYN
.

@holms same here, any updates? it's quite important issue to fix..

Receive same error after migrating to HA mode in Docker Swarm
ingress_traefik_test.0.ptjz3rayvjzo@s1    | time="2018-12-25T13:57:30Z" level=error msg="Datastore sync error: object lock value: expected a7dc6f17-82e4-4995-bba8-340cabe5761b, got ea636528-765f-483f-a22e-469651fecbc6, retrying in 309.500341ms"

But all ACME certificates work correctly

I still got this problem :(
level=error msg="Datastore sync error: object lock value: expected d7b1a279-15c5-4ef7-a12d-793b2dd5217c, got , retrying in 597.407689ms"

Version:      v1.7.9
Codename:     maroilles
Go version:   go1.11.5
Built:        2019-02-11_11:36:32AM
OS/Arch:      linux/amd64

Probably that would be wise, although automating this wouldn't be easy. I'll try to start only consul, and then check what traefik would do in this case. Because currently we have multiple problems in here. I don't even know what that datastore sync error means, it seems to be it 's trying to write already finally something into consul, but consul fails and returns this error.

@holms
you should try wait-for-it.sh  in order to define an order
wait-for-it.sh --strict consul.traefik:8500 --timeout=20 -- echo "Consul started."

Traefik 1.7.9 on docker swarm with a consul cluster as config store.
I restarted the traefik service (5 instances with working acme) and got:
Traefik version v1.7.9 built on 2019-02-11_11:36:32AM
Node 9df12a5c-86b3-419b-8c3f-2f06d07dbab8 elected worker
Node 9df12a5c-86b3-419b-8c3f-2f06d07dbab8 elected leader
Starting ACME renew job...

Note that the "expected" uuid is the "got" uuid of the next line. This is all from one container (i.e. the leader). This continues forever.
During this time no acme and no static certificates are served by traefik.
Running the same traefik service+image on a different test docker swarm cluster using the same consul cluster as config store (different key space) I do not get this error.
The test cluster only has a handful of services running with only a couple of certificates though.
Maybe it depends on a timing issue or which instance swarm restarts first (leader/worker)?

I use Traefik with only one instance, but need consul to control it dynamically over the rest of the infrastructure. Unfortunately, exactly the same bugs.

@paltryeffort did you get it to work finally?

Does anybody know if this is something swarm-only or it affects kubernetes too?

@goetas i had related conversation in traefik official chat here is an answer to your question
https://traefik.slack.com/archives/C0CDT22PJ/p1551876383224900

Everything is working fine even with this error. And probably as @nmengin have told traefik's teams should change the message level.

Was this every actually solved? We also have this and it's driving us nuts...

Our issue fixed itself...
It seems that when using Consul in combination with the Let's Encrypt TLS cert verification method the lock occurs because the transactions on consul happen in too quick succession. When switching to DNS validation (which takes longer because the writes needed to the DNS provider) the issue is gone. Maybe this information helps someone to write a fix or patch the problem.

Have the same issue on a docker swarm cluster also. Force updating the traefik service solves the issue but it reappears after sometime.

I tried it out with ETCD, same error:
traefik_traefik.0.6qdm5kf4qjn2@app01    | time="2019-06-03T12:57:36Z" level=error msg="Cannot unmarshall private key []"
traefik_traefik.0.6qdm5kf4qjn2@app01    | time="2019-06-03T12:57:36Z" level=error msg="Error building ACME client &{Email: Registration:<nil> PrivateKey:[] KeyType: DomainsCertificate:{Certs:[] lock:{w:{state:0 sema:0} writerSem:0 readerSem:0 readerCount:0 readerWait:0}} ChallengeCerts:map[] HTTPChallenge:map[]}: private key was nil"
traefik_traefik.0.6qdm5kf4qjn2@app01    | time="2019-06-03T12:57:40Z" level=error msg="Cannot unmarshall private key []"
traefik_traefik.0.6qdm5kf4qjn2@app01    | time="2019-06-03T12:57:40Z" level=error msg="Error building ACME client &{Email: Registration:<nil> PrivateKey:[] KeyType: DomainsCertificate:{Certs:[] lock:{w:{state:0 sema:0} writerSem:0 readerSem:0 readerCount:0 readerWait:0}} ChallengeCerts:map[] HTTPChallenge:map[]}: private key was nil"
traefik_traefik.0.j03uyvtstdol@app02    | time="2019-06-03T12:57:36Z" level=error msg="Cannot unmarshall private key []"
traefik_traefik.0.j03uyvtstdol@app02    | time="2019-06-03T12:57:36Z" level=error msg="Error building ACME client &{Email: Registration:<nil> PrivateKey:[] KeyType: DomainsCertificate:{Certs:[] lock:{w:{state:0 sema:0} writerSem:0 readerSem:0 readerCount:0 readerWait:0}} ChallengeCerts:map[] HTTPChallenge:map[]}: private key was nil"
traefik_traefik.0.j03uyvtstdol@app02    | time="2019-06-03T12:57:58Z" level=error msg="Datastore sync error: object lock value: expected 0bd2e9bf-a9fd-45d1-a707-69446e92b737, got 8fec93d6-f715-4664-9f69-c00d60d00bc6, retrying in 597.54305ms"
traefik_traefik.0.j03uyvtstdol@app02    | time="2019-06-03T12:58:02Z" level=error msg="Datastore sync error: object lock value: expected 4c6f4ad2-7e3a-4764-9654-3c9eeff17896, got e3b31907-416e-4ca9-a804-d2fd5924619e, retrying in 488.656251ms"
traefik_traefik.0.j03uyvtstdol@app02    | time="2019-06-03T12:58:09Z" level=error msg="Datastore sync error: object lock value: expected e88a5192-ed47-4389-97f1-25203e975843, got 4c6f4ad2-7e3a-4764-9654-3c9eeff17896, retrying in 471.253127ms"
traefik_traefik.0.j03uyvtstdol@app02    | time="2019-06-03T12:58:14Z" level=error msg="Datastore sync error: object lock value: expected 042f1a9e-0430-4900-9bbd-17adb84fa3cb, got e88a5192-ed47-4389-97f1-25203e975843, retrying in 379.63831ms"
traefik_traefik.0.j03uyvtstdol@app02    | time="2019-06-03T12:58:31Z" level=error msg="Datastore sync error: object lock value: expected 6710cd71-59d3-49cf-84e6-b9048c3544b2, got 6c278dcd-ac02-43ae-9663-a592ae01aa88, retrying in 662.027428ms"

We also have this issue with consul`.
level=error msg="Datastore sync error: object lock value: expected 9a7b70c4-5019-4cdc-96ec-fede5d1308a1, got e90c5c7d-ffe5-4162-8209-838e23373f86, retrying in 368.84116ms"
This makes deploying Traefik in a docker swarm, even with a single Traefik instance, and setting consul K/V store for the acme certs impossible.

I'm starting to think it's a feature in order to buy Traefik enterprise solution. Sorry for rant but c'mon I've registered this bug in 2018, almost whole year passed already nothing been done for this. Yeah it's opensource, and we should fix things ourselves, but I just can't believe this is a non-priority bug for anyone when so many people have this issue.

It runs a single Traefik instance and I use Consul only for the dynamic config since the rest of the system can best consul. Unfortunately I have the same error.

@holms as of now, there are are 388 open issues, so I bet you have at least 1/388th of the contributors' attention.

It seems that when using Consul in combination with the Let's Encrypt TLS cert verification method the lock occurs because the transactions on consul happen in too quick succession. When switching to DNS validation (which takes longer because the writes needed to the DNS provider) the issue is gone. Maybe this information helps someone to write a fix or patch the problem.

it happens here with DNS-01 as well :/

Our issue fixed itself...
It seems that when using Consul in combination with the Let's Encrypt TLS cert verification method the lock occurs because the transactions on consul happen in too quick succession. When switching to DNS validation (which takes longer because the writes needed to the DNS provider) the issue is gone. Maybe this information helps someone to write a fix or patch the problem.

I did this once, ended up locking certs for 2 weeks of my domain. Tried to automate this with cloudflare and traefik, and it's failed. This is risky because you only have 2 tries to validate or else letsecnrypt will lock you.

"--acme.storage=traefik/acme/account"

I tried passing this flag, even when my config file already had the same parameter set...
weirdly enough, it works, even though the lock issue log still happened 🤔

restarted pods again to double-check, no lock errors now... all good.
my best bet is that the flag is setting more things than the parameter in the config file, although I haven't investigated that further yet 🤔

The problem seems to be independent of the storage backend.  On a test system I now use etcd (instead of Consul to allow for more certificates), but this is what I see on one of the Træfik instances:
time="2019-08-05T11:22:48Z" level=error msg="Datastore sync error: object lock value: expected 772670ab-30fa-4947-bbcf-66705a8ab655, got d892b0d3-4120-4d57-b987-f8f848e0fc56, retrying in 366.562941ms"
time="2019-08-05T11:22:49Z" level=info msg="legolog: [INFO] [service-1.example.com] acme: Trying to solve HTTP-01"
time="2019-08-05T11:22:49Z" level=error msg="Datastore sync error: object lock value: expected aafa9c1c-2f87-49bb-99b1-1ab9d93498f4, got 772670ab-30fa-4947-bbcf-66705a8ab655, retrying in 633.794728ms"
time="2019-08-05T11:22:54Z" level=info msg="legolog: [INFO] [service-1.example.com] The server validated our request"
time="2019-08-05T11:22:54Z" level=error msg="Datastore sync error: object lock value: expected 2df9673a-9d05-43af-90ec-f93619b980c8, got aafa9c1c-2f87-49bb-99b1-1ab9d93498f4, retrying in 350.802372ms"
time="2019-08-05T11:22:55Z" level=info msg="legolog: [INFO] [service-2.example.com] acme: Trying to solve HTTP-01"
time="2019-08-05T11:22:55Z" level=info msg="Skipping same configuration for provider docker"
time="2019-08-05T11:22:55Z" level=error msg="Datastore sync error: object lock value: expected 779cd297-3a12-4f20-8815-3f68ec3c3b2c, got 2df9673a-9d05-43af-90ec-f93619b980c8, retrying in 544.025143ms"
time="2019-08-05T11:23:02Z" level=info msg="legolog: [INFO] [service-2.example.com] The server validated our request"
time="2019-08-05T11:23:02Z" level=error msg="Datastore sync error: object lock value: expected 648e5321-5dfc-4075-b2f1-10a3692ff08d, got 779cd297-3a12-4f20-8815-3f68ec3c3b2c, retrying in 431.605312ms"
time="2019-08-05T11:23:03Z" level=info msg="legolog: [INFO] [service-3.example.com] acme: Trying to solve HTTP-01"
time="2019-08-05T11:23:04Z" level=error msg="Datastore sync error: object lock value: expected 310df218-d0e6-4daa-ad38-a65187a6f0ce, got 648e5321-5dfc-4075-b2f1-10a3692ff08d, retrying in 672.464117ms"

docker service update --force service_name

In our case, we run an HA setup with three worker nodes; Let's Encrypt/ACME is able to issue the cert, however not all workers retrieve the new certificate from the etcd KV store, meaning we need to perform a rolling update for all of the nodes to obtain it. So it's less of a rate-limiting issue with LE but more that manual intervention (restarting pods) is required, lest you have a confusing condition where some requests are successful and others show the default cert.

FWIW I have had some luck getting this un-stuck by manually editing the ACME object entry in etcd, but not sure if that's simply coincidence.

Reading the history of this issue tells  me that traefik simply does not work in clustered setups, right? and after more than one year no progress?

Reading the history of this issue tells me that traefik simply does not work in clustered setups, right? and after more than one year no progress?

That exactly the reason why I’ve stopped using it for ssl. But I’m using it as a reverse proxy a lot, and ssl termination is done before with cloud services anyway. For me it more than ok, because that allows it to use on every node anyway without having dB.

Still issue in v1.7.24.
I am stuck with certificate renewal one of my domain.
Luckily for me, it`s "only" Traefik dashboard. What to do when it will be real production domain ?
Why this issue does not have higher priority due to fact that Trafik 1.7 is still supported ?

check your firewall :fire: if you haven't done so yet.

I started investigating because I'm experiencing this issue as well and haven't had the opportunity to upgrade to 2.X now that consul support is available.  I hadn't realized how hard it was to read Golang (I primarily develop in Python) until I started trying to read the source code.  In case anyone else is interested in picking up the investigation it looks like this is the best point to look.

Deployed 1.7 on a new cluster (HA with consul) and started getting this too. Absolutly same config as on another swarm where it works just fine without errors.
Honestly, I find Traefik as a great http proxy, https has... issues.
I anyone knows, how to turn off the acme challenge for a specific frontend with labels (local network dns just does not get the acme resolved by definition) I d appreciate a hint. Specifying protocol was not it, http is the default.

Hello,
This bug is linked to a feature that no longer exists in the supported versions of Traefik.
Closing accordingly.
Please feel free to re-open it if necessary.


fix: credential preview attributes mismatch schema attributes

Solves #587
TO DO:

[ ] Write tests

Signed-off-by: annelein<EMAIL_ADDRESS>

Codecov Report

Merging #625 (9db2c4e) into main (beff6b0) will decrease coverage by 7.97%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main     #625      +/-   ##
==========================================
- Coverage   87.08%   79.11%   -7.98%
==========================================
  Files         334      334
  Lines        6994     7010      +16
  Branches     1083     1085       +2
==========================================
- Hits         6091     5546     -545
- Misses        902     1463     +561
  Partials        1        1

Impacted Files
Coverage Δ

.../modules/credentials/services/CredentialService.ts
85.33% <100.00%> (-10.67%)
:arrow_down:

...ore/src/modules/proofs/ProofResponseCoordinator.ts
22.22% <0.00%> (-77.78%)
:arrow_down:

.../src/modules/proofs/models/RetrievedCredentials.ts
25.00% <0.00%> (-75.00%)
:arrow_down:

...ules/proofs/handlers/RequestPresentationHandler.ts
29.41% <0.00%> (-64.71%)
:arrow_down:

...s/core/src/modules/proofs/services/ProofService.ts
23.10% <0.00%> (-63.70%)
:arrow_down:

...src/modules/proofs/handlers/PresentationHandler.ts
36.36% <0.00%> (-59.10%)
:arrow_down:

packages/core/src/modules/proofs/ProofsModule.ts
24.65% <0.00%> (-54.80%)
:arrow_down:

...src/modules/proofs/messages/PresentationMessage.ts
45.45% <0.00%> (-54.55%)
:arrow_down:

...ules/proofs/handlers/ProposePresentationHandler.ts
34.78% <0.00%> (-47.83%)
:arrow_down:

...ore/src/modules/indy/services/IndyHolderService.ts
31.48% <0.00%> (-44.45%)
:arrow_down:

... and 32 more

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 beff6b0...9db2c4e. Read the comment docs.

Also: tests are failing. Seems like an error with credential-auto-accept.test.ts that is now thrown because of this new check


Add code coverage for GitHub Actions

This needs the following environment variables in the GitHub repository configuration to run:
- GITHUB_REF
- GITHUB_ACTIONS
- GITHUB_RUN_ID
- GITHUB_EVENT_NAME
- COVERALLS_REPO_TOKEN

@oliverklee Is this still a draft?

Is this still a draft?

Yes, I'll need to rebase. Hold on …

This now needs the corresponding configuration variables set to succeed. @Danon Would you be willing to take care of this?

@oliverklee Sure, but would you be willing to explain what should they contain exactly? I'm new to github actions.
- GITHUB_REF
- GITHUB_ACTIONS
- GITHUB_RUN_ID
- GITHUB_EVENT_NAME

PS: Is name GITHUB_REF a real name? Or did you come up with it? If it's the second, is it short for GITHUB_REFERENCE or anything like that?

I'm not sure - this is the list output by Coveralls, and I'm not familiar with Coveralls (yet).
We might also want to use a dedicated GitHub Action for this. At least the discussion at https://stackoverflow.com/questions/60362121/how-to-configure-coveralls-with-github-action points in that direction.

This did not work. I'm going to try something else now.

o try something else now.

Ok waiting

@Danon Which environment variables do you have for Coveralls in your Travis CI configuration?

@oliverklee I don't think there are any environment variables.

Then how does the authentication for pushing to Coveralls work?

Then how does the authentication for pushing to Coveralls work?

If we're using php-coveralls, perhaps we can take a look at this instruction here: https://github.com/php-coveralls/php-coveralls#github-actions

I think I need your help here. I have never worked with Coveralls before and don't know my way around it.

I think I need your help here. I have never worked with Coveralls before and don't know my way around it.

In the php-coveralls read me, we read that to set it up on github actions it would only require to add this step

GitHub Actions
Add a new step after phpunit generate coverage report.
- name: Upload coverage results to Coveralls
  env:
    COVERALLS_REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  run: |
    composer global require php-coveralls/php-coveralls
    php-coveralls --coverage_clover=build/logs/clover.xml -v

And secrets.GITHUB_TOKEN is already added.

It worked! I'll nicely squash the commits now and repush.

Done.

No, doesn't work. Reverting.


Delete HtmlCSharp handlers, server, and other unused files

Fixes https://github.com/dotnet/razor/issues/7876
Fixes https://github.com/dotnet/razor/issues/6978
Note about https://github.com/dotnet/razor/issues/6978. That issue says "remove feature flags" and this PR removes the feature flags, but it does not remove the feature option in our code, since we still need that to differentiate client capabilities. Some of the names could be cleaned up now though, as "single server" doesn't make much sense. Will leave that for later though.
Commit-by-commit review suggested if you want to see what the actual changes were. They're pretty minimal, but there is a lot of renames and moves, which GitHub may choose to show as large diffs.

since it always return true

Only for VS and VS Mac. OmniSharp doesn't support it, and the new C# extension specifies things on the command line, so it's in charge (though thats another thing to clean up one day I think)

since it always return true

Only for VS and VS Mac. OmniSharp doesn't support it, and the new C# extension specifies things on the command line, so it's in charge (though thats another thing to clean up one day I think)

oops yup, you're right. I was doing commit by commit and lost track of which file I was looking at.


if (false) (/(/); is valid but won't parse

if (false) (/(/); is actually valid syntax but it won't parse

Mh, my Firefox thinks it's invalid, my Node 6.12.0 thinks it's ok, Babel parses it as well. Is that specified in Annex B?

the problem is, validating any kind of regex is none of the parser's business;
a regex is parsed and validated at runtime, even if it is a regex literal whose syntax is fully know at parse

validating any kind of regex is none of the parser's business;

What do you base this claim on?

@marijnh I have just edited my comment above

the parser should only check where a regex starts and ends -- https://tc39.github.io/ecma262/#sec-literals-regular-expression-literals.
later when the literal is actually evaluated, its contents are matched against
https://tc39.github.io/ecma262/#sec-regexp-regular-expression-objects

The AST format we're using requires the regular expre to be provided as a RegExp instance in the tree. This is definitely a bad idea, but it's what we're stuck with, so we're going to have to continue parsing the regexp during script parsing. Furthermore, the fact that a regexp like /[/]/ is accepted means that we have to do at least some parsing of the regexp content to even be able to find its end delimiter.

Furthermore, the fact that a regexp like /[/]/ is accepted means that we have to do at least some parsing of the regexp content to even be able to find its end delimiter.
actually that is what
https://tc39.github.io/ecma262/#sec-literals-regular-expression-literals is existing for; my point was that validation should not go any further than that.

As for the requirement that you cited (and I'm not giving you ideas as you are already the boss there), what about actually feeding the string value of the regex to RegExp, without bailing out if any error is thrown returning null instead?

What would that bring, though? If the JS engine can't handle the expression, what is the point of parsing it?

But there are something fishy with Acorn and regular expressions. Not sure what the root cause of this is, but if you try to parse the code this issue is all about in AST Explorer you will notice that several of the parsers there parse it without any issue with the Chrome browser. Acorn doesn't.
V8 itself are parsing this. Same with a lot of other regular expressions if you try them on AST Explorer. Acorn mostly bail out. Others parses them just fine.
For NodeJS. Same. NodeJS uses V8.
And if you NPM download all parses and try them out, you will find the same issues. Magic? Dunno.

V8 itself are parsing this.

For me, it isn't—both Chrome 62 and Node 8.4 error on /(/.

In AST Explorer? Ok. You know that Shift have different AST?
Here is my AST Explorer result with Shift. Other parsers passs too.
{
  "type": "Script",
  "directives": [],
  "statements": [
    {
      "type": "ExpressionStatement",
      "expression": {
        "type": "LiteralRegExpExpression",
        "pattern": "(",
        "global": false,
        "ignoreCase": false,
        "multiLine": false,
        "sticky": false,
        "unicode": false
      }
    }
  ]
}

NodeJS are screaming about a unterminated group. Crazy enough because it is valid.
Babylon have a native solution seen here. https://github.com/babel/babylon/blob/master/src/tokenizer/index.js#L784
And parses this.
The Shift code for this looks like this https://github.com/shapesecurity/shift-parser-js/blob/es2016/src/parser.js#L1665

Looking at Acorn. I think that the extra regex checks in the code screw this up. https://github.com/ternjs/acorn/blob/master/src/tokenize.js#L413

In AST Explorer?

No, in the actual engine. I.e. evaluate let x = /(/ and see what happens.

Crazy enough because it is valid.

Since all the engines I have access to agree that it's invalid, maybe they are right?

I think that the extra regex checks in the code screw this up.

The code you're pointing at only takes effect for regexps with a u flag so it seems irrelevant for the example we're talking about here.

What would that bring, though?

that would cause the parse to complete on an otherwise statically valid source!

... If the JS engine can't handle the expression, what is the point of parsing it?

that is a runtime affair, so it could actually be better to let the runtime environment decide; we will just parse the statically valid syntax

also,  let x = /(/ is actually a runtime error, rather than a parse-time error
you could just wrap it in an if block with a random condition to verify this claim

also, let x = /(/ is actually a runtime error, rather than a parse-time error

That seems to be the case in V8 but not in Spidermonkey

I guess in that case that would most probably be a bug in SpiderMonkey engine .....

but not in Spidermonkey

that would most probably be a bug in SpiderMonkey engine .....

FWIW JavaScriptCore (Safari) treats it as a parsing error too.

Not depending on parsing a regular expression in the host engine has the advantage of being able to parse regular expressions the host engine cannot handle (yet), for example #637.

has the advantage of being able to parse regular expressions the host engine cannot handle (yet)

We handle this a bit differently already as per ESTree spec (although test regexp we use for feature detection should be probably updated).

A regular expression literal is an input element that is converted to a RegExp object (viz. 21.2) each time the literal is evaluated

The RegExp constructor applies the following grammar to the input pattern String. An error occurs if the grammar cannot interpret the String as an expansion of Pattern.

I'm not sure if either of the two (general evaluation, calling RegExp constructor) is something can happen anywhere other than run-time.
That said, I have to agree the language the spec uses is not assertive enough to make it immediately noticeable.

My take is that this should be parsable. Nowhere in the spec is there any syntactic requirements for (, nor are there any early errors related to this. Per the regular expression productions only a few features should be scanned in the parser (*, \, /, [, ]), while the rest of the validation should come later, during runtime.
The fact that implementors do different things makes me feel that this issue needs to be raised to the ECMA-262 editors (https://github.com/tc39/ecma262) and figured out there.

At least, it's a syntax error in the following implementations.

Chrome 64

Node.js

Firefox 57

IE11
 (means "you need ')' in the regular expression".)

@mysticatea true, it is a syntax error, but a run-time syntax error, not a static one.
if (false) var l = /(/ won't be a syntax error in Chrome and Node; it is a syntax error in the other one you have shown, but even there I strongly suspect it is point missed by the implementations. also, https://github.com/ternjs/acorn/issues/640#issuecomment-352663968

See https://github.com/tc39/ecma262/issues/1050.

Looks like we're in the majority group here (even if incorrect one, that should be clarified with other vendors first as it might be a spec bug then): https://github.com/tc39/ecma262/issues/1050

The Chromium issue linked there (https://bugs.chromium.org/p/v8/issues/detail?id=896) seems to have people agree that what Acorn is currently doing is spec-compliant and that the issue is with Chrome's (and thus also the other parsers mentioned in this issue) behavior. So I'm going to close this, but feel free to reopen if you have a new reason to consider this a bug.

turns out it has been a bug with my spec-comprehension skills, then!

turns out it has been a bug with my spec-comprehension skills then; sorry!


Update with first version of FFI

formal PR to just pull code from my repo to symengine/symengine.hs

@isuruf can you take a look?

@isuruf can you take a look now?

@isuruf - all of the builds that should pass have passed.

@isuruf - any more changes other than the path change?

@isuruf - ping! I've fixed the issues (made it point to the right repo)

Looks good to me.
Can you remove the proposal file?

Done. I think this can be merged now?

Thanks for the PR

@isuruf - if you have any more questions I'll be glad to answer :)


fix incorrect option highlighted in Share Dialog

The problem is when using headers in a ListView they are also considered as items in the onItemClickListener, so you need to subtract the number of added headers from the current position to get REAL clicked position in ListView.

@ibogolyubskiy Thanks for the PR. Will review and add it with next release

@ibogolyubskiy  Not able to reproduce this issue. SDK is adding header views in non selectible way.
https://github.com/BranchMetrics/android-branch-deep-linking/blob/master/Branch-SDK/src/io/branch/referral/ShareLinkManager.java#L203
Is there any other  thing added to the code making this issue?

Just tested with actual repository version.
Bug still can be reproduced in the Test-Bed application.
You can see incorrect behavior in attached video.
https://www.dropbox.com/s/f8i7b39s5aahfeu/with_header.mp4?dl=0
Also you can see incorrect selection on this screenshot

Not sure it is device dependent bug.
Nexus 5 with pure Android 6.0 (API 23) shows same result.

@ibogolyubskiy Thank you very much for the fix and the details. This fix looks good to me  👍
Since we  have to pass QA before merging to master , moving this PR to https://github.com/BranchMetrics/android-branch-deep-linking/pull/566
Really appreciate if you can reviews  it. Will be added to the next version of SDK.


Support ignore_readonly for EMQX configure API

EMQX 5.7.0 supported ignore_readonly=true for /api/v5/configs, so EMQX operator doesn't need to parse HOCON config
Ref: https://github.com/emqx/emqx/pull/12940

already fixed in 2.2.24 ?

already fixed in 2.2.24 ?

Yes, it's fixed


Recognize all contributors

Is your feature request related to a problem? Please describe.
There are a ton of amazing people working on this project and it's only fair to recognize the efforts of each and every one of them.
Describe the solution you'd like
I propose to use the awesome All Contributors to automagically manage a table of all contributors in the project README.

@dakshshah96 thank you for raising this. Could you help with this?

@dakshshah96 thank you for raising this. Could you help with this?

Would love to help! Don't have the necessary permissions for installing the bot though.

Will do this later. Closing for now.


Nodeos takes very long time to start

I upgraded the nodeos to 1.4.1 and ran it. But it took about 30 minutes for startup. Why so long? My system is CentOS 7.4, CPUx2, RAM 8G.
These are logs:
info  2018-10-18T17:33:30.807 thread-0  chain_plugin.cpp:333          plugin_initialize    ] initializing chain plugin
info  2018-10-18T17:33:30.812 thread-0  block_log.cpp:134             open                 ] Log is nonempty
info  2018-10-18T17:33:30.812 thread-0  block_log.cpp:161             open                 ] Index is nonempty
info  2018-10-18T17:33:30.836 thread-0  net_plugin.cpp:2901           plugin_initialize    ] Initialize net plugin
info  2018-10-18T17:33:30.836 thread-0  net_plugin.cpp:2927           plugin_initialize    ] host: <IP_ADDRESS> port: 6688
info  2018-10-18T17:33:30.837 thread-0  net_plugin.cpp:2998           plugin_initialize    ] my node_id is d91cae0be414716bb94bb858caf7a056bd822f9bb7ffe869c0af92f2daa9f65a
info  2018-10-18T17:33:30.837 thread-0  http_plugin.cpp:422           plugin_initialize    ] configured http to listen on <IP_ADDRESS>:80
info  2018-10-18T17:33:30.837 thread-0  http_plugin.cpp:460           plugin_initialize    ] configured https to listen on <IP_ADDRESS>:443 (TLS configuration will be validated momentarily)
warn  2018-10-18T17:33:30.837 thread-0  net_api_plugin.cpp:96         plugin_initialize    ]
info  2018-10-18T17:33:30.837 thread-0  http_plugin.cpp:377           operator()           ] configured http with Access-Control-Allow-Origin: *
info  2018-10-18T17:33:30.837 thread-0  main.cpp:110                  main                 ] nodeos version v1.4.1
info  2018-10-18T17:33:30.837 thread-0  main.cpp:111                  main                 ] eosio root is /root/.local/share

[ Nodeos was stuck here about 30 minutes ]

info  2018-10-18T17:33:30.837 thread-0  controller.cpp:389            init                 ] database initialized with hash: b0a8a50183a121074a9506423313ba5ac243baeb93b1e5dcb982c2c08ba76b6d
info  2018-10-18T18:02:40.436 thread-0  chain_plugin.cpp:707          plugin_startup       ] starting chain in read/write mode
info  2018-10-18T18:02:40.519 thread-0  chain_plugin.cpp:711          plugin_startup       ] Blockchain started; head block is #22264929, genesis timestamp is 2018-06-08T08:08:08.888
info  2018-10-18T18:02:40.519 thread-0  net_plugin.cpp:3017           plugin_startup       ] starting listener, max clients is 25

The  30 minutes is visible in the log between the following 2 lines:
info 2018-10-18T17:33:30.837 thread-0 controller.cpp:389 init ] database initialized with hash: b0a8a50183a121074a9506423313ba5ac243baeb93b1e5dcb982c2c08ba76b6d
info 2018-10-18T18:02:40.436 thread-0 chain_plugin.cpp:707 plugin_startup ] starting chain in read/write mode
but in the code there is either nothing it processes between (if you didn't use a snapshot) or just the closing of files and deleting the file stream and snapshot (if a snapshot was used), so I am not sure what could have caused that massive delay.
Were you using a snapshot?  Also, were you running this in docker, a virtual machine, or directly on your machine?  Did you look at what percentage of processing cpus were being used for nodeos during that 30 minutes?  Have you seen this just the one time, or have you seen it more than once.

I used the data directory that copied from other vps, and ran it in docker, cpu used 3%. it happened every time in my different vps.

Resolved by #6164


New API: CopyFromUri, which copies a blob synchronously

closes https://github.com/Azure/azure-sdk-for-cpp/issues/3086
Pull Request Checklist
Please leverage this checklist as a reminder to address commonly occurring feedback when submitting a pull request to make sure your PR can be reviewed quickly:
See the detailed list in the contributing guide.

[x] C++ Guidelines
[x] Doxygen docs
[x] Unit tests
[x] No unwanted commits/changes
[x] Descriptive title/description

[x] PR is single purpose
[x] Related issue listed

[x] Comments in source
[x] No typos
[x] Update changelog
[x] Not work-in-progress
[x] External references or docs updated
[x] Self review of PR done
[x] Any breaking changes?

/azp run cpp - storage

/azp run cpp - storage


MacOS file_drop suooprt

I am testing DR on my MacOS device
and found this on testing
https://github.com/pyglet/pyglet/blob/master/pyglet/window/cocoa/__init__.py#L173-#L175
will it be done in pyglet 2.1?

https://github.com/caffeinepills/pyglet/tree/macosx_dev You can test out my test branch here with drop support.

https://github.com/caffeinepills/pyglet/tree/macosx_dev You can test out my test branch here with drop support.
OK. tested on this action
https://github.com/shenjackyuanjie/Difficult-Rocket/actions/runs/3973123615
now looks good, good to merge

I will keep this until @caffeinepills branch merged

This should be added in https://github.com/pyglet/pyglet/pull/790

This should be added in #790

waiting for merge~

Merged in. Will be in the next pyglet release.


Slow playback during eclipse

This uses currentFractionEclipsed to adjust the playback rate for locations in totality. It realies on a new package point-in-poly.
the playbackRate is now a computed property so it can be adjusted to whatever seems most pleasing.

I LOVE this!! It's working well on both my phone and computer and I'm wondering if we might want to let time autoplay once the user is finished with all the dialogs.
I did set the speed up to start at > 99% instead of 95% because people are impatient and I think most would find that it's too slow for that stretch.

We can merge this if you think my changes are ok, @johnarban.


Fix axes_measurement issues in MSInlet.gas_calibration_curve() and ECMSMeasurement.ecms_calibration_curve

This PR introduces small changes to the above methods, resolving issues #94 and #118.
The approach is quite crude, especially for ECMSMeasurement.ecms_calibration_curve(), I'm sure there exists a better solution, so very open for suggestions.
I'm aware the branch currently doesn't pass tests. Need to install black etc on my new computer -  will do so after first round of review. :)

I've now run black and checked with flake8, so it passes the checks..

Issue made for J_unit_plot, so we edit it when addressing units generally. Otherwise it looks great! Merging :)


To work with Teensy 4.x

Brian
This PR is to fix an issue with the library working the Teensy 4.0.  If you look at the thread https://forum.pjrc.com/threads/58688-Teensy-4-0-Clock-speed-influences-delay-and-SPI you can see the whole history.
To get it working I modified writeregs and readregs to use digitalwritefast's and added 200 nanosecond delays after going low and going high.  I wrapped the changed functions in an if def for the imxrt1062.

Thanks! I'll test this when I can and pull - likely early in January.

Wow,  that was fast:)  not a problem.  There might be a better way.. but this works.

Updated the library and it works with Teensy 4.x now.


Add changelogs to published projects

This adds changelogs for all published projects, with details of changes from versions 1.0.0 onward.
Closes #1541.

Can we add a pull_request_template.md which includes a checkbox updating the changelog?

bors merge

bors merge


Dex [PCSB00953]

App summary

App name: Dex
App serial: PCSB00953
App version: 1.00

Vita3K summary

Version: v0.1.8
Build number: 3273
Commit hash: https://github.com/vita3k/vita3k/commit/816af374
CPU backend: Dynarmic
GPU backend: Vulkan

Test environment summary
Tested by: space1
OS: Windows 11
CPU: AMD Ryzen 5 3600
GPU: Nvidia 3070
RAM: 32 GB
Issues
Problem with shadows.
Screenshots

Log
PCSB00953 - [Dex].log
Recommended labels
ingame+
graphics bug

The shadows seem to be a thing from the game itself rather than a bug.

App summary

App name: Dex
App serial: PCSB00953
App version: 1.01

Vita3K summary

Version: v0.2.0
Build number: 3691
Commit hash: https://github.com/vita3k/vita3k/commit/31826697
CPU backend: Dynarmic
GPU backend: Vulkan

Test environment summary

Tested by: Slade
OS: Microsoft Windows 10 Professional (build 19045)
CPU: Intel(R) Core(TM) i7-3770K CPU @ 3.50GHz
GPU: NVIDIA GeForce GTX 1060 6GB
RAM: 16 GB

Issues

No issues noted during game play.
The game will stutter / freeze during level loading, but performance in level is fine.

Screenshots

Log
vita3k.log
Recommended labels

Playable


Traffic Update 07-03-2017

Good rhymes!
At this point though, the verses show on the same line. To force them to show on new lines in Markdown, add two empty spaces in the end of each line.

Hey there Valentina! Thanks for the tip. Does it look good now?


Additionally accept fullnames in the lists given to inbox.mark_read() and inbox.mark_unread()

I've come across a usecase where I want to mark messages as read, but I only have the fullname and not the praw.models.Message instance. Unfortunately inbox.mark_read() takes a lost of Message/Comments instances but doesn't allow fullnames to be in the list. I don't see a reason why that shouldn't work.
Describe the solution you'd like
In addition to Comment/Message instances, allow fullnames (str) in the lists given to inbox.mark_read() and inbox.mark_unread() functions
like this:
diff -Naur praw/models/inbox.py ../praw/models/inbox.py
--- praw/models/inbox.py	2021-02-24 03:49:04.000000000 +0100
+++ ../praw/models/inbox.py	2021-06-01 09:41:43.736733862 +0200
@@ -81,12 +81,12 @@
         )

     def mark_read(
-        self, items: List[Union["praw.models.Comment", "praw.models.Message"]]
+        self, items: List[Union["praw.models.Comment", "praw.models.Message", "str"]]
     ):
-        """Mark Comments or Messages as read.
+        """Mark Comments or Messages (given as object or fullname) as read.

         :param items: A list containing instances of :class:`.Comment` and/or
-            :class:`.Message` to be be marked as read relative to the authorized user's
+            :class:`.Message` and/or :class:`str` to be be marked as read relative to the authorized user's
             inbox.

         Requests are batched at 25 items (reddit limit).
@@ -109,7 +109,7 @@

         """
         while items:
-            data = {"id": ",".join(x.fullname for x in items[:25])}
+            data = {"id": ",".join(x if isinstance(x, str) else x.fullname for x in items[:25])}
             self._reddit.post(API_PATH["read_message"], data=data)
             items = items[25:]

Describe alternatives you've considered
I've considered pulling the Message objects from inbox, but that would introduce delay and network traffic for no good reason.
Additional context
none

Have you considered stripping the prefix off:

ids = [fullname[3:] for fullname in full names]

I may be wrong, but I think that API call wants fullnames. Why would I want to strip the prefixes?

I was meaning to use the stripped fullnames to construct Message objects like this:
reddit.inbox.mark_read([reddit.inbox.message(fullname[3:]) for fullname in fullnames])

I don't understand what exactly you're trying to do. Do you want to .mark_read() based on usernames(str)? Because you could just:
for commentID in reddit.inbox.unread():
    thisComment = comment(id=comment)
    if thisComment.author.name() == myAuthor:
         reddit.inbox.mark_read(thisComment)


Clicking on folder does not open folder note

Clicking on the folder in the file tree, though it is underlined and appears that it should work, collapses/expands the folder rather than showing the folder note. I have no file tree related plugins installed and am using the default theme. How can I troubleshoot this?
I am running Obsidian 1.2.0 btw, which could be the problem?

I am having the same problem after updating to Obsidian 1.2.x


Flipped point cloud

Thank you very much for your repo. It's amazingly easy to follow and to extend.
I am using it to generate point clouds for LT sensor. I have managed to make it all work, but the final point clouds are flipped left/right as shown below. I haven't used the SetReferenceCoordinateSystem yet. And the z values seem about right too.
In the image, I have my left hand raised and it's looking like a right hand.
Thanks again for your amazing work.

How did you save the point cloud? What transforms did you applied? If you followed exactly the same as I did on AHAT depth data, then it is saved in Unity left-handed coordinate system (because I want to visualize it in Unity). Then it makes sense that point cloud is flipped if you visualize the point cloud on your laptop with software of right-handed system. You can remove the negative sign here to change it back to right-handed.

@petergu684 Thanks a lot for your reply. It was indeed the negative sign 👍

@hein30 can you share what you've changed in HL2ResearchMode and how you use it in Unity project to get point cloud data from LT sensor?


Add hasFooEditor

Reason: both kind of pages are almost identical ("editing something").
While both are frequently used together, sometimes isNewFoo is easily left out since it's a special case that doesn't matter most of the time.
To replicate the old behavior of isEditingFoo, use isEditingFoo() && !isNewFoo().
We need some utils to check for these pages at the same time.
Changes:

Add hasFileEditor: isEditingFile, isNewFile and isDeletingFile
Add hasReleaseEditor: isEditingRelease and isNewRelease
Add hasWikiPageEditor: isEditingWikiPage and isNewWikiPage
hasRichTextEditor checks for hasReleaseEditor instead of isEditingRelease

@fregante Just curious, is there anything preventing this repo from migrating to @refined-github? Or do you simply prefer to keep it as-is?

Good idea, I think it'd be better to rename them to isFooEditor
hasRichTextEditor must not include the file editor though, it's completely unrelated. The file editor is a CodeMirror instance while comments are a plain text area with preview.
I chose not to merge it for now

Good idea, I think it'd be better to add isFooEditor and leave those alone.

Sounds good, breaking changes matter. I do consider the name a little bit weird though.
Regardless of how this is going, hasRichTextEditor needs to be updated and I'm going to make a PR in RGH to go through every instances of these includes.

Sounds good, breaking changes matter. I do consider the name a little bit weird though.

"Weird" in the sense that there's no "editor" page. I don't know if "hasFileEditor" is better

You can merge this PR, I added you as a collab. You can release a new minor version: https://github.com/fregante/github-url-detection/actions/workflows/npm-publish.yml

patch is for fixes
minor is for new detections
major is rare, breaking changes

@fregante Just curious, is there anything preventing this repo from migrating to @refined-github? Or do you simply prefer to keep it as-is?

I will try to move this repo to the organization, but I have to set up redirects for the github.io domain, change the meta,  and then ensure that the secrets still work.
You can help by opening a PR to make the meta changes (fregante/github-url-detection -> refined-github/github-url-detection)
Ideally we'd also have the same npm auto-publishing setup on the other repository, so PR welcome there too to copy the workflow.


Tingxuan233

Describe what this PR does / why we need it
Does this pull request fix one issue?

Describe how you did it
Describe how to verify it
Special notes for reviews

no need to update code here


Relax form-action CSP on authorize response

Given the external IdP double-posting issues we found in Chrome, perhaps we should relax the form-action CSP setting.

Related: https://github.com/IdentityServer/IdentityServer4/issues/475

Fantastic! 1.0.1-build00660 works fine now, many thanks @brockallen for great job!

I'm adding my SO question to illustrate how issue may look like: http://stackoverflow.com/questions/41854600/identityserver-used-as-external-identity-provider-for-another-identityserver-fai/41862927
Update from 1.0.0 to 1.0.2 solved the problem for me. Thank you!


Typos in texts

We should search for typos in strings in all .py files. If there are any, we can fix them.
git-bob think about this.

git-bob implement exactly this!


When used with Siesta, class name "Resource" is a conflict

"Resource" is too generic that this was bound to happen.

Did you try something like Kingfisher.Resource?

Since we should be able to solve it by adding module name (and it is more about the Swift design pattern), so I am closing it.

I have a protocol called Resource. When I try to use Kingfisher.Resource, the compiler tells me:
Type 'Kingfisher<_>' has no member 'Resource'

Ummm, I guess it is this https://forums.developer.apple.com/thread/47421 and https://bugs.swift.org/browse/SR-898
Swift compiler is trying to find the Kingfisher class instead of as the framework namespace.
If only a statement like "import Kingfisher as kf" would solve it though, it does not exist in Swift yet. So I guess the only fix would be renaming current Kingfisher class to another name, with breaking the API in this version. (I guess we would do it later in Kingfisher 5.x, with Swift 5.0).
Currently, if you are using your Resource protocol in your app bundle, I suggest to rename it temporarily. If the Resource protocol is from another module beside of your main app, you could create a separated file in which only Kingfisher imported, and do a typealias to Kingfisher's Resource there.

Thank you very much for your super quick reply, my Resource protocol is in the Utils module. Now I'm dealing with this Kingfisher.Resource extension in a separate file in the main module, and waiting for Apple to fix this problem.

In Kingfisher 5.0, the duplicated name Kingfisher (as the module name) and Kingfisher (as the compatible protocol name) is refactored. So this issue should be solved.


Doesn't work under JupyterLab, instead opens a separate Scilab window when called

Hi,
I've installed this kernel on Arch Linux with the scilab-bin AUR package installed and when I try to execute a cell in a JupyterLab notebook that is using the Scilab kernel a separate Scilab window is opened and the cell in JupyterLab freezes (never finishing the computation). Naturally, I installed this scilab_kernel using the command pip install --user scilab_kernel.
Thanks for your time.

Hi @fusion809, what does which scilab-adv-cli yield?

/usr/local/bin/scilab-adv-cli. I should say I symlinked /opt/scilab/bin/* to /usr/local/bin, as scilab-bin installs all the binaries to /opt/scilab/bin.

And when you run scilab-adv-cli from a terminal window it launches as a CLI and not as a graphical window?

Yep, it launches as CLI.

Do you have the SCILAB_EXECUTABLE variable set to something?

No.

Oh, I just started a new Jupyter Lab session and run a Scilab cell and it ran fine. So the issue seems resolved, so closing. Sorry for wasting your time.

Ha, glad you got sorted!


Field name clashes clean-up.

Cleaning up from changes made in 3.2.x

Coverage decreased (-4.6%) to 83.296% when pulling 8cdaef0eca00c0da0a8464823f175e2d5bb356d7 on mkoistinen:feature/fix_field_name_clashes into 5510851c507b03ebbd21b027533a6fe3800e10d0 on divio:develop.

Closing as the changes were not really related to Django 1.9 and this didn't make it into 3.3.0


prevent people being pulled from uncuffing themselves & reduce uncuff spam cooldown

About the PR

A more modest version of #28991
Makes it so that people who are currently being pulled by someone can't uncuff themselves.
Also reduces the 30 second cooldown to 3.
Why / Balance

Mostly the same idea as the old one. This one is more modest, as it prevents being completely restrained by being buckled and instead makes it so that prisoners can't repeatedly spam attempts while you're processing, searching, or dealing with them in various ways.
Media

[x] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Changelog

:cl:

tweak: You can no longer uncuff yourself while being pulled by another player.
tweak: Reduced cooldown after attempting to uncuff oneself.

Being able to still hit the uncuff button while being pulled is super intended. It's made that way so people do need to pay attention to the person they're dragging around (or bucklecuffed).

It's made that way so people do need to pay attention to the person they're dragging

i mean considering that dragging someone literally physically links the two together, slows you down, and takes up a hand slot, i don't really see how you'd be doing so and ignoring the person. This is mostly a buff to allow sec to actually transport and do stuff with prisoners without having to constantly smack them or drag them around to repeatedly stop the doafter when they're in the middle of something.

if you're pulling them you're not forgetting them, so I like this more than the other proposed solution
now you can actually one-man implanter check someone without killing them

I could agree with adding a decently short time of ~10 seconds since uncuffing yourself actually hurries security along with processing, and this also feels extremely boring from a prisoner point of view. Being unable to uncuff yourself in any situation feels super shitty because it limits your input and makes you feel like people are wasting your time even more than it normally would. (Also ssd people can still drag you IIRC, so you could be dragged into a random corner of maints and have your kidnapper go sad or catatonic and your softlocked unless someone finds you)

Also just punching your prisoner till they stop trying to uncuff themselves is a completely valid method to stop players who do this

Yeah but then admins give you funny looks and mutter something about rolebans. 😭

It's made that way so people do need to pay attention to the person they're dragging

i mean considering that dragging someone literally physically links the two together, slows you down, and takes up a hand slot, i don't really see how you'd be doing so and ignoring the person. This is mostly a buff to allow sec to actually transport and do stuff with prisoners without having to constantly smack them or drag them around to repeatedly stop the doafter when they're in the middle of something.

If they are physically moving it automatically gets cancelled, and if they're doing anything other than just being processed or being in med while standing still, sec deserves to be kept on their toes for not doing their job
And if they're trying to escape while being searched or similar your job is to actively watch over those prisoners to make sure they don't do stuff like that.

It's made that way so people do need to pay attention to the person they're dragging

i mean considering that dragging someone literally physically links the two together, slows you down, and takes up a hand slot, i don't really see how you'd be doing so and ignoring the person. This is mostly a buff to allow sec to actually transport and do stuff with prisoners without having to constantly smack them or drag them around to repeatedly stop the doafter when they're in the middle of something.

It's not that you're ignoring the person in the sense that you aren't holding them, but think of it like "i'm the guard, distracted with processing, meanwhile the person that I'm pulling is doing X to break out of their cuffs" like a spy movie or something.
So if the guard is smart enough and paying attention, they can notice their prisoner is trying to escape and just shift them a bit to  stop it. But if they're too engrossed in multitasking, it's their fault that they didn't stop the uncuff attempt.
This also plays into the idea of having more officers the better.

changed the full blockage to just a 2x modifier to the duration.
hopefully this still retains the balance between the ability to escape and not annoying the everloving god out of secoffs just trying to do basic tasks.

Yea sounds good


conditional fields

Hi Team,
I need to make a way to add a conditional component to this form builder, like if i select option A then this field should be display if i select option B then other fields need to display.
Any idea?

I know I am a bit too late. But I went to https://screendoor.dobt.co and I used their test form.  How did it go for you though?


Load the system-config configuration for inside security-agent

What does this PR do?
Add loading of system-probe.yaml configuration file inside the security-agent start command to have working DI of sysprobeconfig.
Motivation
Having access to the system-probe socket path that may be configured as part of the system-probe.yaml configuration file. Actual access is not part of this PR which only pave the way for system-probe configuration loading.
Additional Notes

Possible Drawbacks / Trade-offs

Describe how to test/QA your changes

Check the actual loading of the system-probe configuration using security-agent start command.
Check that the --system-probe flag is actually taken into account as system-probe configuration path / dir.

Reviewer's Checklist

[ ] If known, an appropriate milestone has been selected; otherwise the Triage milestone is set.
[ ] Use the major_change label if your change either has a major impact on the code base, is impacting multiple teams or is changing important well-established internals of the Agent. This label will be use during QA to make sure each team pay extra attention to the changed behavior. For any customer facing change use a releasenote.
[ ] A release note has been added or the changelog/no-changelog label has been applied.
[ ] Changed code has automated tests for its functionality.
[ ] Adequate QA/testing plan information is provided if the qa/skip-qa label is not applied.
[ ] At least one team/.. label has been applied, indicating the team(s) that should QA this change.
[ ] If applicable, docs team has been notified or an issue has been opened on the documentation repo.
[ ] If applicable, the need-change/operator and need-change/helm labels have been applied.
[ ] If applicable, the k8s/<min-version> label, indicating the lowest Kubernetes version compatible with this feature.
[ ] If applicable, the config template has been updated.

Maybe you need to edit the multiple entrypoints no ? Like https://github.com/DataDog/datadog-agent/blob/47422c7eeda64b61f97a817786b7468ac898b39a/Dockerfiles/agent/entrypoint.d/security-agent#L4 (but maybe there are others)

@paulcacheux  Maybe you need to edit the multiple entrypoints no ?

indeed: 34b01082f4865627a213f044d0d262978138f53e

@L3n41c totally agree, however we need to access parameters that are already in-place and documented as part of the system-probe configuration file.
Hence this PR mostly following what core-agent and process-agent are already doing mostly for consistency and compatibility sake (ie. not introducing configuration changes for users).


Laravel

Is it possible to use this project with Laravel possibly install it via composer?

Hi, yes I planned to integrate it to packagist yesterday, but I didn't get to it. I just submitted it to packagist now and hope it works. I will test it tonight on a zend framework project myself.

https://github.com/snowiow/cocurl#installation


Release/0.1.0

Basic Google Maps widget

Takes an address input from a dataview
Lookup geolocation of the address
Show the address on maps
When no location is found center the maps to Mendix Rotterdam office.

Cancel pull request, opened new one from feature branch.


Bump dependencies

Codecov Report
Base: 98.61% // Head: 98.61% // No change to project coverage :thumbsup:

Coverage data is based on head (d8f58dd) compared to base (478c0a9).
Patch has no changes to coverable lines.

Additional details and impacted files
@@            Coverage Diff            @@
##             master      #31   +/-   ##
=========================================
  Coverage     98.61%   98.61%
  Complexity       33       33
=========================================
  Files            10       10
  Lines            72       72
  Branches          1        1
=========================================
  Hits             71       71
  Misses            1        1

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


No connection could be made because the target machine actively refused it. (10061)

Environment

OS: Windows 10 pro
scrcpy version: 1.12.1
installation method: Windows release
device model: Samsung Galaxy S8 plus
Android version: 9

Describe the bug
cannot connect to <IP_ADDRESS>:5555: No connection could be made because the target machine actively refused it. (10061)
Any idea why and how to fix this?
I'm just using a stock Samsung phone with Android. Nothing else happened with this device for years. But I can't connect to it.
Yes, both devices are in the same wireless network

Did you adb tcpip 5555?
Check https://stackoverflow.com/questions/37267335/android-studio-wireless-adb-error-10061/41422712

Yes I did that but then it says it could not find any devices or emulators
But meantime I have rebooted my entire device and start again and weird enough that error is gone.
But now nothing is showing on my computer.
The command seems to be working/running but I'm not sure what is expected after that.
This is all I get:

Does it work over usb?

It's the same when trying over USB.
It just freezes the command line after I run any of the adb or scrcpy commands.
What should happen after this? Does it open some popup?
Do I need to use some other software to see something?
It's not documented anything process happens after you run any of those commands so I can't judge or troubleshoot properly if the outcome is correct or not.

It should immediately open a window showing your Android device.
Check the output of adb logcat (in a separate terminal) when you start scrcpy.

nothing happens. Even that log command just freezes.
I alrready tried adb disconnect, kill server etc... they all freeze the command line

Oh ok you must solve that adb issue then.
adb disconnect
adb kill-server

Reboot your device and try again over USB...

ok I'll give that a try later today and report back if it worked

Hi i have this issue as well. Connection with cable works fine but not for the wireless. I did adb tcpip 5555 then connecting it with adb connect myip:5555 and disconnect the device. When i start the scrpcy it doesnt detect my device, then i opened up the cmd to check if the connection is still establish it didnt. Please help :)

Hi,
My phone is able to connect via scrcpy over usb cable on a Windows 10 machine and also on wi-fi when I run the initial commands:
adb.exe tcpip 5555
adb.exe connect <IP_ADDRESS>:5555
However after I reboot or shutdown the computer  I'm unable to connect back to my phone without plugging in the usb cable and running the above commands again - which is a bit of a pain.
Is this by design?
I've added screenshot of what I get when the phone is connected.
Thank you.

Is this by design?

It's how adb works. However, if you just reboot your computer (not your device), you should be able to adb connect without plugging USB again.

Nope still don't work.
Even tried rooting my phone - same thing unfortunately.

After also struggling thru the same phone/pc/controller connection problem as above, I was finally able to make the connection work & successfully build & run an Android app (DJI "sample_code" from GitHub). The steps listed below worked for me.

make sure phone & PC are using the same wifi network. Use MS "Your Phone" app on the Win10 PC to connect the two.
connect phone to PC via USB
open a CMD window & navigate to C:\Users\yourname\AppData\Local\Android\Sdk\platform-tools> & run the commands: adb connect "phone IP", then adb devices, to confirm phone connection
disconnect phone from USB. Use adb devices command again to make sure phone & PC are still connected. They should be.
connect DJI RC to PC via USB, connect phone to RC via built in USB cable. Turn on RC.
open Android Studio. Once open you should see the model # of your phone in the devices panel in upper right corner of work area. For me I see SM-N960U (Samsung Note 9 running Android 10)
I downloaded opened the DJI-SDK / Mobile SDK Android / Sample Code zip file from GitHub & opened it in Android Studio
Go to DJI Developer site & create a new app (register if you're not already a developer member), naming the app "DJI SDK Sample" & Bundle Identifier is com.dji.sdk.sample (noted as the "package" variable in the AndroidManifest.xml file that you have to edit for the Sample Code app. Submit the app key request & within a minute or so DJI will send you a link to the updated app info in your developer app page. Copy the app key & paste it into the <meta-data ... "com.dji.sdk.API_KEY"> section of the xml file. There's a comment in the code that tells you this.
Click on the green "Run app" arrow. Once the DJI SDK Sample app is built & loaded onto your phone it will open. The app automatically registers the app key w/ DJI. If the app gives you an error msg it's probably because you made some error w/ entering the app info when you created the app & requested the key. If the registration is good then enter the phone IP into the WSBridge line on the app start page as well.  Turn on your drone. Once the RC/phone/drone are talking to each other the "Open" button on the app will be come active.
The sample app doesn't do much other than allow you to play w/ some of the drone functionality. It's best use is really as a template/starting point for your particular mission needs as well as a "relatively" simple way to work thru this hardware interface process.
So, good luck & I hope that the above comes in useful for other members out there.

First connect your device trough USB
Run ADB:📱 Disconnect from any devices
And run ADB:📱 Reset connected devices port to :5555
And Then ADB:📱 Connect to device IP enter your device (settings > status > ip address) IP address and be fine

Check USB debugging is still enabled. If not, enable and try to connect via adb connect 192.x.x.x:5555. You might see a permissions box pop up on the device to accept and the connect will fail. Accept the permissions and try the command again.

i'm getting this too. but my issue is a bit different. i'll plug it in usb and then unplug it, and it'll connect through tcp fine for a few hours it seems like
then after, i'll get No connection could be made because the target machine actively refused it

Hi,
My phone is able to connect via scrcpy over usb cable on a Windows 10 machine and also on wi-fi when I run the initial commands:
adb.exe tcpip 5555 adb.exe connect <IP_ADDRESS>:5555
However after I reboot or shutdown the computer I'm unable to connect back to my phone without plugging in the usb cable and running the above commands again - which is a bit of a pain.
Is this by design?
I've added screenshot of what I get when the phone is connected.
Thank you.

I'm having the same issue. After computer OR phone restart , the commend
scrcpy --tcpip=<IP_ADDRESS>:5555"
stops working.
cannot connect to <IP_ADDRESS>:5555: No connection could be made because the target machine actively refused it. (10061) ERROR: Could not connect to <IP_ADDRESS>:5555 ERROR: Server connection failed
So to troubleshoot, I have to go bring the usb cable, connect it, run "scrcpy --tcpip" , wait for tcp/ip mode to be enabled, and then disconnect the cable if i so choose. By that time, I already have the cable on hand obviously, so I switch to "scrcpy -d" for a faster connection . How can I make the "tcp/ip" connection persistent? It seems to stops working after a day or so.
I'm using a non-rooted android 9 device

Hi,
I have access my Samsung mobiles screen on my Laptop scrcpy but when i am trying to connect NOKIA phone i got error.
i did on NOKIA phone : USB Debugging in Developer mode then
adb tcpip 5555
"restarting in TCP mode port: 5555"
next i go further
adb connect <IP_ADDRESS>:5555
it says "cannot connect to <IP_ADDRESS>:5555: No connection could be made because the target machine actively refused it. (10061)"
i got this error only on my Nokia phone device
on Samsung devices it work all fine
please help me out to get resolve this error on my NOKIA phone
i despirately need to Screen Copy on my NOKIA phone
Thanks in advance
Sulaman Asif

Is the device on the same network as the computer?
Without AP isolation? https://www.reddit.com/r/scrcpy/comments/16pxn29/i_can_use_my_device_wired_but_cant_seem_to_use_on/

scrcpy 2.3.1 https://github.com/Genymobile/scrcpy
INFO: Connecting to 192.xxx.xxx.x :5555...
cannot connect to 192.xxx.xxx.x :5555: No connection could be made because the target machine actively refused it. (10061)
ERROR: Could not connect to 192.xxx.xxx.x :5555
ERROR: Server connection failed
can connect thru usb connects then type scrcpy --tcpip=192.xxx.xxx.x connects thru
A:\scrcpy-win64-v2.3.1\scrcpy-server: 1 file pushed, 0 skipped. 6.0 MB/s (66007 bytes in 0.010s)
[server] INFO: Device: [HUAWEI] HUAWEI CLT-L29 (Android 10)
[server] WARN: Audio disabled: it is not supported before Android 11
INFO: Renderer: direct3d
WARN: Demuxer 'audio': stream explicitly disabled by the device
INFO: Texture: 1080x2240
disconnects usb it disconnects

First connect your device trough USB
Run ADB:📱 Disconnect from any devices
And run ADB:📱 Reset connected devices port to :5555
And Then ADB:📱 Connect to device IP enter your device (settings > status > ip address) IP address and be fine

Thanks, it worked.

Find a solution here that perfectly solves the problem for me. No need to reboot or disconnect. You may have missed some settings like me.

turn on : Allow ADB debugging in charge-only mode
turn off : Always prompt when connecting to USB

https://stackoverflow.com/questions/60791195/adb-over-tcp-ip-not-working-without-usb-cable-connected
I'm also testing on a Honor phone. I found a solution to solve this problem. You can try to turn on Allow ADB debugging in charge only mode and turn off Always prompt when connecting to USB. It should fix the problem.
Here is the reference for the solution.


Reproduce the results from the IHP paper

Hey @ManuelLobo @dpavot @fjmc ,
I am trying to reproduce the results from the IHP paper using the dockerfile with no luck.
Can you please help with the right commands needed to build the model and produce those numbers?
Thanks

Hey @omriFdna,
Are you having trouble building the docker container and running the README.md commands or achieving the exact results stated in the IHP paper? If it is the latest, we no longer have access to the original models because we are in the process of creating a new version of IHP, but we contacted the first author asking if he saved a copy of the original models.
If the trouble is in the building/running stage can you be more specific about the problem?
Best

Thanks @dpavot for answering.
The build and README commands works great.
I am trying to use them to train the model described in the paper and use the evaluate.py in order to achieve the 0.863 F-score reported in the paper on the GSC+ set.
Is this possible?

We contacted the first author who no longer works in our lab to see if he can provide more detailed guidelines to reproduce the numbers reported on the paper. Once we have an answer, we will post it here.


Usability within sklearn pipelines

@smazzanti, thank you for this package and the Medium article explaining MRMR in a very good and clear way. Hope this package can only increase and improve, and hopefully I will give some contribution soon.
I have start to try it out myself and I was wondering what is the intended way to use it from within a sklearn pipeline. For instance, in the F ANOVA example in sklearn's docs, here it how it looks like: https://scikit-learn.org/stable/auto_examples/feature_selection/plot_feature_selection_pipeline.html#sphx-glr-auto-examples-feature-selection-plot-feature-selection-pipeline-py
Would the idea be that we should wrap the mrmr_classif in a SelectKBest object as well to use it as a step in a sklearn Pipeline? If so, how should we control the K parameter inside the cross validation? I saw that SelectKBest has its own k parameter too: https://scikit-learn.org/stable/modules/generated/sklearn.feature_selection.SelectKBest.html#sklearn.feature_selection.SelectKBest
This is just a quick question to understand better the proposal, so forgive me in advance for any mistake or lack of clarity. Hopefully we can keep a healthy discussion.
Wish you all the best!

All right. I will try to do the modifications and add that as a feature. Cannot guarantee yet I will be able to do it quickly though.


dyld: Library not loaded: @rpath/PushMenu.framework/PushMenu

The PushMenuExample target is missing the PushMenu.framework in the Embedded Binaries section.  Works fine on the simulator, but fails on a device.

Hmm, I linked the framework to the example project and everything worked fine in the original master workspace... but I just added another copy of the framework to the example project and added it to the embedded binaries, can you try it now and see if it works pls?

Alright I tested it and everything should work fine now.. thanks for the issue, this is my first time making a framework bundle like this.

Works like a charm! 👍


Question: what's the future of this project/roadmap?

I just barely discovered this project through staticgen. It's a really cool concept, but it looks like there haven't been any commits or updates in months. Roadmap or plans?

Hi @rdwatters
We are working with @jaredmorgs on the roadmap of the project. The project is not dead but i can't work as much as i want.
Here the project of the next version (0.7.0) https://github.com/HubPress/hubpress.io/projects/1

Is there any plan to bundle changes into single commits? I've written and made edits to two posts so far (along with various config changes) and the repository now has 600+ commits. It appears every single file change is made as a unique commit instead of a batch of changes into a single commit (or a small number of commits).

@laposheureux I think you'll find the way commits are batched in 0.7.0 to be much more efficient.
On my 90 post blog it used to take 4 minutes to rebuild the site after publishing. It now takes 40 seconds!