text:
Restarting Docker Engine renders Contiv plugin in failed state

Description
Docker Engine restart on one of the manager node of a 10 node working swarm+contiv cluster, makes Contiv netplugin in disabled state. Manually enabling the plugin using docker plugin enable also does not helps.
Expected Behavior
Docker Engine restart should not result in Contiv plugin failuers, in coming up gracefully.
Observed Behavior
Restarting Docker Engine on one of the Contiv master node results in Contiv netplugin failuers on that nodes -

docker plugin ls shows contiv netplugin enabled state to false
etcd cluster becomes un-healthy
Docker Engine comes up cleanly, swarm cluster is healthy
Docker Service runs w/o any issues, and containers moved to healthy nodes cleanly

Steps to Reproduce (for bugs)

Bring up Docker Swarm cluster
Bring up Contiv on the cluster with 3 mastars and rest as worker nodes
Create Contiv tenant, network, policy, group etc
Create Docker network using Contiv as back-end provider network
Spawn Docker service and associated containers
Restart Docker Engine on one of the master nodes

Your Environment

netctl - v2plugin - 1.1.1
Orchestrator version (e.g. kubernetes, mesos, swarm): UCP2.2.2/Nativ Swarm mode
Operating System and version - RHEL 7.3

Logs from DEE-Ctrl-3 where Docker Engine was restarted, attached herewith.

DEE-Ctrl-3.tar.gz

Initial de-bug info -

Iptables INPUT rules are intact -

[root@DEE-Ctrl-3 contiv]# iptables -L INPUT
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ndmp /* Contiv auth proxy service (10000) /
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:otv / contiv network traffic (8472) /
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:bgp / contiv network traffic (179) /
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:webcache / contiv network traffic (8080) /
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:distinct / contiv network traffic (9999) /
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:9003 / contiv network traffic (9003) /
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:dynamid / contiv network traffic (9002) /
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:etlservicemgr / contiv network traffic (9001) /
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:afs3-callback / etcd traffic (7001) /
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:2380 / etcd traffic (2380) /
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:newoak / etcd traffic (4001) /
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:2379 / etcd traffic (2379) */
ACCEPT     udp  --  anywhere             anywhere             udp dpt:domain
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:domain
ACCEPT     udp  --  anywhere             anywhere             udp dpt:bootps
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:bootps
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
ACCEPT     all  --  anywhere             anywhere
INPUT_direct  all  --  anywhere             anywhere
INPUT_ZONES_SOURCE  all  --  anywhere             anywhere
INPUT_ZONES  all  --  anywhere             anywhere
DROP       all  --  anywhere             anywhere             ctstate INVALID
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

plugin re-start, manual way did not helped -

[root@DEE-Ctrl-3 log]# docker plugin ls
ID                  NAME                    DESCRIPTION                        ENABLED
42e597c38833        contiv/v2plugin:1.1.1   Contiv network plugin for Docker   false
[root@DEE-Ctrl-3 log]# docker plugin enable contiv/v2plugin:1.1.1
Error response from daemon: dial unix /run/docker/plugins/42e597c3883303fafecde655e406717d8ae04f6497082db90c345fc1c7bf4521/netplugin.sock: connect: no such file or directory

etcd service is in failed state -

[root@DEE-Ctrl-3 log]# systemctl status -l 100 etcd.service
Failed to get unit for PID 100: PID 100 does not belong to any loaded unit.
● etcd.service - Etcd
Loaded: loaded (/etc/systemd/system/etcd.service; enabled; vendor preset: disabled)
Active: activating (auto-restart) (Result: exit-code) since Fri 2017-09-15 10:28:16 IST; 5s ago
Process: 27801 ExecStop=/usr/bin/etcd.sh stop (code=exited, status=1/FAILURE)
Process: 27496 ExecStart=/usr/bin/etcd.sh start (code=exited, status=0/SUCCESS)
Main PID: 27496 (code=exited, status=0/SUCCESS)
Memory: 0B
CGroup: /system.slice/etcd.service
Sep 15 10:28:16 DEE-Ctrl-3.cisco.com systemd[1]: etcd.service: control process exited, code=exited status=1
Sep 15 10:28:16 DEE-Ctrl-3.cisco.com systemd[1]: Unit etcd.service entered failed state.
Sep 15 10:28:16 DEE-Ctrl-3.cisco.com systemd[1]: etcd.service failed.

Restart of etcd cluster did not helped either -

[root@DEE-Ctrl-3 log]# systemctl start etcd.service
[root@DEE-Ctrl-3 log]# systemctl status -l 100 etcd.service
Failed to get unit for PID 100: PID 100 does not belong to any loaded unit.
● etcd.service - Etcd
Loaded: loaded (/etc/systemd/system/etcd.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2017-09-15 10:28:40 IST; 1s ago
Process: 28390 ExecStop=/usr/bin/etcd.sh stop (code=exited, status=1/FAILURE)
Main PID: 28632 (etcd.sh)
Memory: 1.6M
CGroup: /system.slice/etcd.service
├─28632 /bin/bash /usr/bin/etcd.sh start
└─28680 sleep 10s
Sep 15 10:28:40 DEE-Ctrl-3.cisco.com etcd.sh[28632]: + peers=,10.65.122.62,10.65.122.62
Sep 15 10:28:40 DEE-Ctrl-3.cisco.com etcd.sh[28632]: + peers=10.65.122.62,10.65.122.62
Sep 15 10:28:40 DEE-Ctrl-3.cisco.com etcd.sh[28632]: + '[' 10.65.122.62,10.65.122.62 == '' ']'
Sep 15 10:28:40 DEE-Ctrl-3.cisco.com etcd.sh[28632]: ++ echo 10.65.122.62,10.65.122.62
Sep 15 10:28:40 DEE-Ctrl-3.cisco.com etcd.sh[28632]: ++ awk -F, '{print $1}'
Sep 15 10:28:40 DEE-Ctrl-3.cisco.com etcd.sh[28632]: + peer=10.65.122.62
Sep 15 10:28:40 DEE-Ctrl-3.cisco.com etcd.sh[28632]: + add_member 10.65.122.62
Sep 15 10:28:40 DEE-Ctrl-3.cisco.com etcd.sh[28632]: + res=1
Sep 15 10:28:40 DEE-Ctrl-3.cisco.com etcd.sh[28632]: + for i in '{1..10}'
Sep 15 10:28:40 DEE-Ctrl-3.cisco.com etcd.sh[28632]: + sleep 10s
[root@DEE-Ctrl-3 log]# systemctl status -l 100 etcd.service
Failed to get unit for PID 100: PID 100 does not belong to any loaded unit.
● etcd.service - Etcd
Loaded: loaded (/etc/systemd/system/etcd.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2017-09-15 10:28:40 IST; 11s ago
Process: 28390 ExecStop=/usr/bin/etcd.sh stop (code=exited, status=1/FAILURE)
Main PID: 28632 (etcd.sh)
Memory: 7.4M
CGroup: /system.slice/etcd.service
├─28632 /bin/bash /usr/bin/etcd.sh start
└─29055 /usr/bin/docker run -t --rm --net=host --name etcd -v /var/lib/etcd:/var/lib/etcd -e ETCD_NAME=node2 -e ETCD_DATA_DIR=/var/lib/etcd -e ETCD_INITIAL_CLUSTER_TOKEN=contiv-cluster -e ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379,http://0.0.0.0:4001 -e ETCD_ADVERTISE_CLIENT_URLS=http://10.65.122.63:2379,http://10.65.122.63:4001 -e ETCD_INITIAL_ADVERTISE_PEER_URLS=http://10.65.122.63:2380,http://10.65.122.63:7001 -e ETCD_LISTEN_PEER_URLS=http://0.0.0.0:2380 -e ETCD_HEARTBEAT_INTERVAL=1000 -e ETCD_ELECTION_TIMEOUT=10000 -e ETCD_INITIAL_CLUSTER=node3=http://10.65.122.62:2380,node3=http://10.65.122.62:7001,node1=http://10.65.122.61:2380,node1=http://10.65.122.61:7001,node2=http://10.65.122.63:2380 -e ETCD_INITIAL_CLUSTER_STATE=existing -e ETCD_PROXY= quay.io/coreos/etcd:v2.3.8
Sep 15 10:28:50 DEE-Ctrl-3.cisco.com etcd.sh[28632]: ++ awk -F ETCD_ '{print "ETCD_"$2 "ETCD_"$3 "ETCD_"$4}'
Sep 15 10:28:50 DEE-Ctrl-3.cisco.com etcd.sh[28632]: ++ sed 's/"//g'
Sep 15 10:28:50 DEE-Ctrl-3.cisco.com etcd.sh[28632]: + export ETCD_NAME=node2 ETCD_INITIAL_CLUSTER=node3=http://10.65.122.62:2380,node3=http://10.65.122.62:7001,node1=http://10.65.122.61:2380,node1=http://10.65.122.61:7001,node2=http://10.65.122.63:2380 ETCD_INITIAL_CLUSTER_STATE=existing
Sep 15 10:28:50 DEE-Ctrl-3.cisco.com etcd.sh[28632]: + ETCD_NAME=node2
Sep 15 10:28:50 DEE-Ctrl-3.cisco.com etcd.sh[28632]: + ETCD_INITIAL_CLUSTER=node3=http://10.65.122.62:2380,node3=http://10.65.122.62:7001,node1=http://10.65.122.61:2380,node1=http://10.65.122.61:7001,node2=http://10.65.122.63:2380
Sep 15 10:28:50 DEE-Ctrl-3.cisco.com etcd.sh[28632]: + ETCD_INITIAL_CLUSTER_STATE=existing
Sep 15 10:28:50 DEE-Ctrl-3.cisco.com etcd.sh[28632]: ++ env
Sep 15 10:28:50 DEE-Ctrl-3.cisco.com etcd.sh[28632]: + echo '==> starting etcd with environment:' ETCD_INITIAL_ADVERTISE_PEER_URLS=http://10.65.122.63:2380,http://10.65.122.63:7001 ETCD_INITIAL_CLUSTER_STATE=existing ETCD_INITIAL_CLUSTER=node3=http://10.65.122.62:2380,node3=http://10.65.122.62:7001,node1=http://10.65.122.61:2380,node1=http://10.65.122.61:7001,node2=http://10.65.122.63:2380 ETCD_ELECTION_TIMEOUT=10000 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin PWD=/ ETCD_INITIAL_CLUSTER_TOKEN=contiv-cluster LANG=en_US.UTF-8 ETCD_LISTEN_PEER_URLS=http://0.0.0.0:2380 SHLVL=1 ETCD_NAME=node2 ETCD_ADVERTISE_CLIENT_URLS=http://10.65.122.63:2379,http://10.65.122.63:4001 ETCD_DATA_DIR=/var/lib/etcd ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379,http://0.0.0.0:4001 ETCD_HEARTBEAT_INTERVAL=1000 _=/usr/bin/env
Sep 15 10:28:50 DEE-Ctrl-3.cisco.com etcd.sh[28632]: ==> starting etcd with environment: ETCD_INITIAL_ADVERTISE_PEER_URLS=http://10.65.122.63:2380,http://10.65.122.63:7001 ETCD_INITIAL_CLUSTER_STATE=existing ETCD_INITIAL_CLUSTER=node3=http://10.65.122.62:2380,node3=http://10.65.122.62:7001,node1=http://10.65.122.61:2380,node1=http://10.65.122.61:7001,node2=http://10.65.122.63:2380 ETCD_ELECTION_TIMEOUT=10000 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin PWD=/ ETCD_INITIAL_CLUSTER_TOKEN=contiv-cluster LANG=en_US.UTF-8 ETCD_LISTEN_PEER_URLS=http://0.0.0.0:2380 SHLVL=1 ETCD_NAME=node2 ETCD_ADVERTISE_CLIENT_URLS=http://10.65.122.63:2379,http://10.65.122.63:4001 ETCD_DATA_DIR=/var/lib/etcd ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379,http://0.0.0.0:4001 ETCD_HEARTBEAT_INTERVAL=1000 _=/usr/bin/env
Sep 15 10:28:50 DEE-Ctrl-3.cisco.com etcd.sh[28632]: + /usr/bin/docker run -t --rm --net=host --name etcd -v /var/lib/etcd:/var/lib/etcd -e ETCD_NAME=node2 -e ETCD_DATA_DIR=/var/lib/etcd -e ETCD_INITIAL_CLUSTER_TOKEN=contiv-cluster -e ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379,http://0.0.0.0:4001 -e ETCD_ADVERTISE_CLIENT_URLS=http://10.65.122.63:2379,http://10.65.122.63:4001 -e ETCD_INITIAL_ADVERTISE_PEER_URLS=http://10.65.122.63:2380,http://10.65.122.63:7001 -e ETCD_LISTEN_PEER_URLS=http://0.0.0.0:2380 -e ETCD_HEARTBEAT_INTERVAL=1000 -e ETCD_ELECTION_TIMEOUT=10000 -e ETCD_INITIAL_CLUSTER=node3=http://10.65.122.62:2380,node3=http://10.65.122.62:7001,node1=http://10.65.122.61:2380,node1=http://10.65.122.61:7001,node2=http://10.65.122.63:2380 -e ETCD_INITIAL_CLUSTER_STATE=existing -e ETCD_PROXY= quay.io/coreos/etcd:v2.3.8

Docker engine is running ok -

[root@DEE-Ctrl-3 log]# systemctl status -l docker.service
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
Drop-In: /etc/systemd/system/docker.service.d
└─http-proxy.conf
Active: active (running) since Fri 2017-09-15 10:20:25 IST; 32min ago
Docs: https://docs.docker.com
Main PID: 5278 (dockerd)
Memory: 485.8M
CGroup: /system.slice/docker.service
├─5278 /usr/bin/dockerd
├─5290 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc
├─5976 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 12376 -container-ip 172.17.0.2 -container-port 2376
├─6000 docker-containerd-shim 8218b020653e3f7a88b48e320874577df0181d450c94bf4a9142ec3ae3c0a244 /var/run/docker/libcontainerd/8218b020653e3f7a88b48e320874577df0181d450c94bf4a9142ec3ae3c0a244 docker-runc
├─6076 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 12387 -container-ip 172.17.0.4 -container-port 12387
├─6194 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 12382 -container-ip 172.17.0.5 -container-port 12382
├─6221 docker-containerd-shim d44987763e18a10320cb948b5a5f3d3a14cd212491dc431036dbd5da321c3f5a /var/run/docker/libcontainerd/d44987763e18a10320cb948b5a5f3d3a14cd212491dc431036dbd5da321c3f5a docker-runc
├─6296 docker-containerd-shim 70ec94c05067083cae898bd4648eeb0f8c54961724be6017aac572df607ac430 /var/run/docker/libcontainerd/70ec94c05067083cae898bd4648eeb0f8c54961724be6017aac572df607ac430 docker-runc
├─6385 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 443 -container-ip 172.17.0.6 -container-port 8080
├─6415 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 12380 -container-ip 172.17.0.7 -container-port 12380
├─6436 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 12379 -container-ip 172.17.0.7 -container-port 2379
├─6470 docker-containerd-shim ef690b414d8bed32e6374ccbb27d4a325d257d8bcd553050fad82fa54ee46454 /var/run/docker/libcontainerd/ef690b414d8bed32e6374ccbb27d4a325d257d8bcd553050fad82fa54ee46454 docker-runc
├─6520 docker-containerd-shim add1ce47d75d3646a35d7b04036dfc284d76036955fdb82b824ec1d959214f44 /var/run/docker/libcontainerd/add1ce47d75d3646a35d7b04036dfc284d76036955fdb82b824ec1d959214f44 docker-runc
├─6672 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 12384 -container-ip 172.17.0.9 -container-port 12384
├─6698 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 12383 -container-ip 172.17.0.9 -container-port 12383
├─6733 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 2376 -container-ip 172.17.0.3 -container-port 2375
├─6808 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 12381 -container-ip 172.17.0.10 -container-port 12381
├─6848 docker-containerd-shim 6fb81d6a28a980586dd87e2316f72a3388db631951a5362d622e9e2be2dcc82f /var/run/docker/libcontainerd/6fb81d6a28a980586dd87e2316f72a3388db631951a5362d622e9e2be2dcc82f docker-runc
├─6870 docker-containerd-shim 49889e42f321ba5b8df470e8de830f3e3004743492d53fe2dbbe84fe00b21a3a /var/run/docker/libcontainerd/49889e42f321ba5b8df470e8de830f3e3004743492d53fe2dbbe84fe00b21a3a docker-runc
├─7006 docker-containerd-shim c12cc67998838f61502d8d44e52658737c847c3f47112b19368980867d1d1c74 /var/run/docker/libcontainerd/c12cc67998838f61502d8d44e52658737c847c3f47112b19368980867d1d1c74 docker-runc
├─7399 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 12386 -container-ip 172.17.0.11 -container-port 4443
├─7407 docker-containerd-shim 8624eac221714c4e979770c6c96e1509eaec93623c5fdf6a6658f853edaf334e /var/run/docker/libcontainerd/8624eac221714c4e979770c6c96e1509eaec93623c5fdf6a6658f853edaf334e docker-runc
├─7511 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 12385 -container-ip 172.17.0.8 -container-port 4443
├─7522 docker-containerd-shim d85bb91311327e0aed692ee0e3af002cd3f55712eba7a10269554a206a6a511b /var/run/docker/libcontainerd/d85bb91311327e0aed692ee0e3af002cd3f55712eba7a10269554a206a6a511b docker-runc
└─8029 docker-containerd-shim 2d6fe88415cfa1132559a3d5a757f15248a5531d3d6ac37c091c4ee453d23860 /var/run/docker/libcontainerd/2d6fe88415cfa1132559a3d5a757f15248a5531d3d6ac37c091c4ee453d23860 docker-runc
Sep 15 10:49:46 DEE-Ctrl-3.cisco.com dockerd[5278]: time="2017-09-15T10:49:46.312707766+05:30" level=info msg="Node join event for DEE-DTR-3.cisco.com-f0f97a28ccfe/10.65.122.66"
Sep 15 10:50:04 DEE-Ctrl-3.cisco.com dockerd[5278]: time="2017-09-15T10:50:04.841913320+05:30" level=info msg="Node join event for DEE-DTR-3.cisco.com-f0f97a28ccfe/10.65.122.66"
Sep 15 10:50:13 DEE-Ctrl-3.cisco.com dockerd[5278]: time="2017-09-15T10:50:13.276542639+05:30" level=info msg="Node join event for DEE-Ctrl-1.cisco.com-3972622eb61f/10.65.122.61"
Sep 15 10:50:34 DEE-Ctrl-3.cisco.com dockerd[5278]: time="2017-09-15T10:50:34.843954080+05:30" level=info msg="Node join event for DEE-Ctrl-1.cisco.com-3972622eb61f/10.65.122.61"
Sep 15 10:50:42 DEE-Ctrl-3.cisco.com dockerd[5278]: time="2017-09-15T10:50:42.741051024+05:30" level=info msg="Node join event for DEE-Wrk-1.cisco.com-559aae50a7cb/10.65.122.67"
Sep 15 10:50:59 DEE-Ctrl-3.cisco.com dockerd[5278]: time="2017-09-15T10:50:59.254773565+05:30" level=info msg="Node join event for DEE-DTR-2.cisco.com-4dbd01d6169a/10.65.122.65"
Sep 15 10:51:04 DEE-Ctrl-3.cisco.com dockerd[5278]: time="2017-09-15T10:51:04.845576261+05:30" level=info msg="Node join event for DEE-Wrk-3.cisco.com-fc06d8e7c3a5/10.65.122.69"
Sep 15 10:51:34 DEE-Ctrl-3.cisco.com dockerd[5278]: time="2017-09-15T10:51:34.847698383+05:30" level=info msg="Node join event for DEE-Wrk-1.cisco.com-559aae50a7cb/10.65.122.67"
Sep 15 10:52:04 DEE-Ctrl-3.cisco.com dockerd[5278]: time="2017-09-15T10:52:04.850158479+05:30" level=info msg="Node join event for DEE-Wrk-4.cisco.com-d3658233554a/10.65.122.70"
Sep 15 10:52:34 DEE-Ctrl-3.cisco.com dockerd[5278]: time="2017-09-15T10:52:34.852997766+05:30" level=info msg="Node join event for DEE-DTR-1.cisco.com-70031d839e01/10.65.122.64"

After the docker engine restart, please do docker plugin disable followed by docker plugin enable and collect the plugin bootup log (/var/log/contiv/plugin_bootup.log)

We further de-bugged the issue in detail and it looks there are 2 main issues -

restart of the contiv plugin, which upon engine restart does not start on its own. User has to do a manual start. For worker node manual restart works fine.
etcd cluster in failed state. This gets corrected if we remove /var/lib/etcd/membar/wal directory. After this, node on which engine was restarted, joins the same cluster as member cleanly. This in-turn also enable the contiv plugin successfully. But one has to do it manually.

So issue #974 & #975 are essentially same and we need to fix plugin re-start issue. Etcd cluster issue is being handled through $963.
Logs are attached herewith, as requested -
DEE-Ctrl-1-after.tar.gz
DEE-Ctrl-1-before.tar.gz

issue is side effect of #963 should be closed after #963

#963 is closed. Can we close this?

repo: contiv/netplugin


text:
🛑 MPS - TESTPROCESS is down

In c237d60, MPS - TESTPROCESS ($TESTPROCESS_URL) was down:

HTTP code: 200
Response time: 767 ms

Resolved: MPS - TESTPROCESS is back up in 771d05e after 49 minutes.

source: gharchive/issue

repo: conuti-das/status-lfrcs

license: MIT

license_type: permissive

license_source: github-api


text:
🛑 CC - BACKOFFICE POC is down

In 361dc57, CC - BACKOFFICE POC (https://dev.netz-sap.macoapp.de) was down:

HTTP code: 0
Response time: 0 ms

Resolved: CC - BACKOFFICE POC is back up in b462bba after 8 minutes.

repo: conuti-das/status-nbsap


text:
minor fixes

@bqpd, this is ready to review pending Jenkins. Addresses comments in #454

ready for re-review

Looks good!

Shoot, I think I broke master. @galbramc the CI on master reports "aborted"

no I am changing things on jenkins. Because of the 'globa' $HOME/.gpkit folder you cannot have multiple tests running at the same time on any given machine. I realized that I need to make sure the gpkit_Push and gpkit_PullRequests could not be running at the same time. I found a plugin that was even better. It allows me to restrict things so no two jobs can run at the same time on a given machine, but jobs can run in parallel across machines. Before your builds were running in serial across all machines, but now you are parallel across machines and serial on a given machine.

awesome!!

Nifty! (looking forward to removing $HOME/.gpkit)

Yes. If you remove $HOME/.gpkit so that each build is completely independent, then we can run all builds completely in parallel. Should you open an issue maybe about this?

I believe that is captured in #315 .

Yes it is.

Actually, I think you can check off that first goal. You are no longer mucking with a users .bashrc or .bash_profile, so no need to ask for permission.

source: gharchive/pull-request

authors: bqpd galbramc whoburg

repo: convexopt/gpkit

license: mit

license_source: bigquery


text:
Add recipe for ratatouille

I just like that dish...
also see #112

I think, there's enough examples, thanks.

authors: dubadub orhun

repo: cooklang/cookcli


text:
Controls ON, slider not showing the real duration of a video, only showing the "loadedSeconds"

Is it possible to show the entire duration of a video and not the loaded seconds?
Now we've a video of 5min but its showing like this:

Not showing the entire duration of the video and the "Slider" is in the end.
Is it possible to make it different? like default way?
Thanks

Any updates?

bump

This does not happen for other video files (like on the demo page). I can only assume this is related to how the video is being served to the browser?

The problem was playing the video in BLOB Url (once is recorded and still not uploaded). I've found that there's a bug in chromium that reads the duration as infinite.
So the trick is to use a function to get the duration of the blob video (get-blob-duration, node_module), change video.currentTime to that duration and then switch it to 0.1
That does the trick and fix the 00:10 (or whatever).

authors: JosepSalvat cookpete

repo: cookpete/react-player


text:
db: fixed bug

fixed bug where i forgot the from clause

this fixes #213

repo: coolcrowd/object-service


text:
[Bug]: Unable to specify Redis AOF

Description
When creating a Redis resource from Coolify the docker-compose.yaml sets the following command:
    "Args": [
            "redis-server",
            "/usr/local/etc/redis/redis.conf",
            "--requirepass",
            "<password>",
            "--appendonly",
            "yes"
        ],

The problem is that it adds --appendonly yes after the redis.conf is read. This means, if you set "appendonly no" in your redis.conf it will have no effect. Essentially, the DX suffers because you can't control if you want persistence or not. You must always have persistence. This is not necessary and I recommend removing the --apendonly yes to the redis-server startup in the docker compose file. Allow the developer to choose if they want AOF by using the redis.conf. Equally, it would be beneficial if the developer could set the --requirepass value, there is also a setting in the redis.conf for this. Overall, I suggest redis.conf > startup arguments for a better DX.
Minimal Reproduction (if possible, example repository)
Go to your Coolify server and create a new Redis resource. Try to use appendonly no in your redis.conf and delete the appendonlydir. Restart the Redis and watch how it recreates the appendonlydir and neglects your appendonly no configuration in the redis.conf
Exception or Error
N/A
Version
v4.0.0-beta.297

@ladderschool I am implementing this. Is the following behavior what you are looking for?

If there is a redis.conf with --requirepass, --requirepass form the redis.conf will be used.
If there is no --requirepass in redis.conf, but there is a redis.conf, then add --requirepass.
No redis.conf: --requirepass is used.
If there is a redis.conf do not add --appendonly

Sorry for the late reply, I've been busy with work.
That's exactly what I would expect, yes!

This has been implemented and will be available in an upcoming release. Thank you for your patience.

authors: ladderschool peaklabs-dev

repo: coollabsio/coolify


text:
[Bug]: Coolify does not seems to find a file

Is there an existing issue for this?

[X] I have searched the existing issues

Example public repository
https://github.com/nextcloud/docker
Description
If I try to load the example at https://github.com/nextcloud/docker/tree/master/.examples/docker-compose/insecure/mariadb/apache
by change the compose location on the server it does not finish giving the error
[14:03:55.439] Cloning nextcloud/docker:master...
[14:03:56.327] Configuration changed
[14:03:57.574] Command failed with exit code 14: docker compose --project-directory /tmp/build-sources/nextcloud/docker/cld1odr7l0000agpdd5ljekwi -f /tmp/build-sources/nextcloud/docker/cld1odr7l0000agpdd5ljekwi/.examples/docker-compose/insecure/mariadb/apache/docker-compose.yml pull
open /tmp/build-sources/nextcloud/docker/cld1odr7l0000agpdd5ljekwi/db.env: no such file or directory
[14:03:57.576] Command failed with exit code 14: docker compose --project-directory /tmp/build-sources/nextcloud/docker/cld1odr7l0000agpdd5ljekwi -f /tmp/build-sources/nextcloud/docker/cld1odr7l0000agpdd5ljekwi/.examples/docker-compose/insecure/mariadb/apache/docker-compose.yml pull
open /tmp/build-sources/nextcloud/docker/cld1odr7l0000agpdd5ljekwi/db.env: no such file or directory

I think the server does not cd before loading the docker-compose.yml breaking the internal links it has
Steps To Reproduce

Make a compose project using this https://github.com/nextcloud/docker
change the compose file to .examples/docker-compose/insecure/mariadb/apache/docker-compose.yml
profit! (build log not finishing)

Version
3.12.12 & 3.12.10

I'm closing this issue, because tracking features will be moved to GitHub discussions. Github issues will be only for bugs.
Version 4 is in full focus. v3 related issues will be closed, if it is not a critical bug.
Thanks for your understanding.

authors: Aviortheking andrasbacsai


text:
feat: add coder service tamplate and logo

Changes

Add Coder service tamplate and logo

Thanks for the PR, but coder is already available as code server.

Hi, @andrasbacsai  coder is different from coder-server,
https://coder.com/docs/code-server/FAQ#whats-the-difference-between-code-server-and-coder
it would be nice if we could add coder also along with code-server

Thank you for the PR 💜. I will test it and fix it if necessary.


text:
NOTICK - setting max number of attempts to assign HSM before giving up

If there is some database misconfiguration the absence  of the limit may result in filling up the logs. Setting the worker status to ERROR gives chance for the k8s to retry on its level and give up if the pod is restarted more than is configured.

The lifecycle library provides some timed event functionality, but not a periodic redelivery of an event that a retry mechanism could be built on. That might be a good angle to look at, as areas like reconciliation use the lifecycle library to redeliver events every so often to implement a scheduled task. I'll leave a note somewhere for us to take a look.

repo: corda/corda-runtime-os


text:
Feat/icon view size 72

Добавлен размер 72
https://jira.moscow.alfaintra.net/browse/DS-7080

Pull Request Test Coverage Report for Build 11910883896
Details

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.005%) to 82.455%

Totals

Change from base Build 11898262504:
0.005%

Covered Lines:
10579

Relevant Lines:
11725

💛  - Coveralls

authors: coveralls fulcanellee

repo: core-ds/core-components


text:
Quickfix to the URL for fetching alpine's vuln data.

Fixes #593
Signed-off-by: Daniel Jiang jiangd@vmware.com

@jzelinskie could you kindly review this PR?

repo: coreos/clair


text:
Consider increasing default kubelet verbosity

I have talked with a few users on Slack regarding the debug-ability of pods that are failing to launch and general TLS issues.
Should we explore running at -v 2? I know its a trade off due to excessive logging, especially if you're shipping logs off to a remote location from many machines.

I couldn't see launch failures in the journal after increasing verbosity (-v=20 just to test). I think kubelet should simply accompany failure notices with the reason for the failure, as it's pretty hopeless to fix the failure otherwise.

repo: coreos/coreos-kubernetes


text:
Docs: Quay Builders support with custom signed CA

Add example of builders support for connecting Quay Enterprise signed by custom CA
Tested as below:

@alekssaul I think this LGTM, if you think the tweaks I made are reasonable. Let me know and we can merge.

ref https://github.com/coreos-inc/quay-builder/issues/76

LGTM.  ping @josephschorr to make sure there hasn't been any changes to cert store or startup scripts between 2.0.1 and 2.1.0

No changes

sorry that languished, @alekssaul  -- merged now and closed https://github.com/coreos-inc/quay-builder/issues/76 along with it. Thanks for writing it up.

authors: alekssaul josephschorr joshix

repo: coreos/docs


text:
Create operator kit/sdk for common operations?

I'm wondering whether there is enough overlap in different operators to warrant some kind of common library that will make the lives of those who want to write an operator easier. Have you folks thought about doing this?
Specifically I was thinking about some common areas:

configuration and validation (flags, files, etc.)
client setup
leadership election
garbage collection
TPR registration
TPR monitoring
common Spec interfaces/functions

Is this possible and/or wanted; or are folks of the opinion that operators wildly differ in their implementation?

@jamiehannaford
Why do you want to such common library? What is the motivation? Are you writing more operators? Maybe we can create a framework for operator.

@hongchaodeng Yeah, I'm writing an operator to help with long-term canary deployments. I'm finding that a lot of the logic that goes into an operator is relatively common and can possibly be abstracted into a framework. ATM I'm basing heavily on the etcd-operator because config, client setup, API calls, TPR creation, synchronisation and the reconciliation loop structure are basically the same. What do you think?
I expect a lot more operators will be written in the future, so encouraging people to reuse code and common patterns is preferable than asking them to reinvent the wheel or duplicate.

@jamiehannaford
We have the same thought and would like to work on that. Please take a look at https://github.com/kubernetes-incubator/apiserver-builder . That's a long term plan.

@hongchaodeng Isn't that for building API servers?

@jamiehannaford
Yes.
See https://groups.google.com/forum/#!msg/kubernetes-sig-apps/0gbmMNvZWUo/fgYSHNoWCQAJ .

@hongchaodeng Hmm, an interesting read! In that doc Brendan B. says that custom APIs and TPRs are at the opposite ends of a spectrum and that one will not necessarily replace the other. @xiang90 also mentioned that the etcd-operator will keep using the TPRs even after custom APIs become more supported. So if that's the case, wouldn't an operator framework have different concerns from https://github.com/kubernetes-incubator/apiserver-builder?

@jamiehannaford Operator kit is a good idea. I know a few people also want it. We would like to help and develop it.
But before start to create one, would you mind creating a google doc to gather requirements? I will ask other people to take a look too.

@xiang90 Yep, will do when I have some time this week.

@xiang90 @hongchaodeng I've created a very rough first draft here. I've opened the permissions so folks can edit it too, so feel free to add/modify/delete content as necessary. Would love to hear your feedback!

I'm going to propose this project for incubator status. Here is the proposal if folks would like to review and add comments beforehand.
@xiang90 Every incubator needs a "champion", somebody who is in a Kubernetes OWNER file. Are you willing to be the champion for OperatorKit? I saw you're an apimachinery and apiserver owner.

Closing as we now have a requirements doc and community interest. Next steps will be proposing it as an incubator project.

authors: hongchaodeng jamiehannaford xiang90

repo: coreos/etcd-operator


text:
s3: refactor New() logic and hide internal dir layout

We have expose dir layout in e2e test code.
We need to refactor existing translate layer code and hide it.

This is something we should have done in https://github.com/coreos/etcd-operator/pull/1049 .
Fixing it as a hindsight.

fixed

fixed

lgtm


text:
Protocol Buffer files are hard to generate for other languages

We use https://github.com/gogo/protobuf for etcd, but official protoc does not understand some of the syntax we added to use gogo/protobuf in proto files, so it will error. One needs to manually remove gogo/protobuf specific syntax to be able to compile. We need better way to support client bindings for other languages.

I forgot the plugin flags... Confirmed that it works.

repo: coreos/etcd


text:
Question: How to use gateway when auth is enabled

Tried curl as per
https://github.com/coreos/etcd/blob/master/Documentation/dev-guide/api_grpc_gateway.md
Couldn't figure out a way to use this when auth is enabled.

duplicates #6643

authors: heyitsanthony raoofm


text:
etcdmain unable to find existing member certificate file

Server version
 $ which etcd2
/usr/bin/etcd2
$ /usr/bin/etcd2 --version
etcd Version: 2.3.8
Git SHA: 7e4fc7e
Go Version: go1.7.6
Go OS/Arch: linux/amd64
core@coreos-512mb-fra1-01 ~ $
etcd2 --version
etcd Version: 2.3.8
Git SHA: 7e4fc7e
Go Version: go1.7.6
Go OS/Arch: linux/amd64

Important :
The etcdmain version shown by the image pulled from the git repo in the journalctl output is different from above though (etcdmain: etcd Version: 3.2.11 )
coreos version
$ cat  /etc/os-release
NAME="Container Linux by CoreOS"
ID=coreos
VERSION=1649.0.0
VERSION_ID=1649.0.0
BUILD_ID=2018-01-05-0906
PRETTY_NAME="Container Linux by CoreOS 1649.0.0 (Ladybug)"
ANSI_COLOR="38;5;75"
HOME_URL="https://coreos.com/"
BUG_REPORT_URL="https://issues.coreos.com"
COREOS_BOARD="amd64-usr"

Running etcd-member.service as system drop-in  ( ignition script automatically generated by containerlinux transpiler . )
$ cat  /etc/systemd/system/etcd-member.service.d/20-clct-etcd-member.conf

[Unit]
Requires=coreos-metadata.service
After=coreos-metadata.service

[Service]
EnvironmentFile=/run/metadata/coreos
ExecStart=
ExecStart=/usr/lib/coreos/etcd-wrapper $ETCD_OPTS \
  --name="ocore-noup1" \
  --listen-peer-urls="https://${COREOS_DIGITALOCEAN_IPV4_PUBLIC_0}:2380, https://${COREOS_DIGITALOCEAN_IPV4_PUBLIC_0}:7001" \
  --listen-client-urls="https://0.0.0.0:2379, https://0.0.0.0:4001" \
  --initial-advertise-peer-urls="https://${COREOS_DIGITALOCEAN_IPV4_PUBLIC_0}:2380" \
  --advertise-client-urls="https://${COREOS_DIGITALOCEAN_IPV4_PUBLIC_0}:2379" \
  --discovery="https://discovery.etcd.io/b1f5b0c8c3ca950937f1ce3cc5557934" \
  --cert-file="/var/ssl/certs/ocore-noup1-server.pem" \
  --key-file="/var/ssl/keys/ocore-noup1-server-key.pem" \
  --client-cert-auth=true \
  --trusted-ca-file="/var/ssl/certs/ca.pem" \
  --peer-cert-file="/var/ssl/certs/ocore-noup1-member.pem" \
  --peer-key-file="/var/ssl/keys/ocore-noup1-member-key.pem" \
  --peer-client-cert-auth=true \
  --peer-trusted-ca-file="/var/ssl/certs/ca.pem"

error log :
$ journalctl -o cat -u etcd-member.service
++ id -u etcd
+ exec /usr/bin/rkt run --uuid-file-save=/var/lib/coreos/etcd-member-wrapper.uuid --trust-keys-from-https --mount volume=coreos-systemd-dir,target=/run/systemd/system --volume coreos-systemd-dir,kind=host
2018-01-15 09:55:28.194035 I | pkg/flags: recognized and used environment variable ETCD_DATA_DIR=/var/lib/etcd
2018-01-15 09:55:28.206543 I | pkg/flags: recognized environment variable ETCD_NAME, but unused: shadowed by corresponding flag
2018-01-15 09:55:28.206767 W | pkg/flags: unrecognized environment variable ETCD_USER=etcd
2018-01-15 09:55:28.206969 W | pkg/flags: unrecognized environment variable ETCD_IMAGE_TAG=v3.2.11
2018-01-15 09:55:28.207183 I | etcdmain: etcd Version: 3.2.11
2018-01-15 09:55:28.207359 I | etcdmain: Git SHA: 1e1dbb2
2018-01-15 09:55:28.207491 I | etcdmain: Go Version: go1.8.5
2018-01-15 09:55:28.207650 I | etcdmain: Go OS/Arch: linux/amd64
2018-01-15 09:55:28.207813 I | etcdmain: setting maximum number of CPUs to 1, total number of available CPUs is 1
2018-01-15 09:55:28.209886 I | embed: peerTLS: cert = /var/ssl/certs/ocore-noup1-member.pem, key = /var/ssl/keys/ocore-noup1-member-key.pem, ca = , trusted-ca = /var/ssl/certs/ca.pem, client-cert-auth = t
2018-01-15 09:55:28.217025 C | etcdmain: open /var/ssl/certs/ocore-noup1-member.pem: no such file or directory
etcd-member.service: Main process exited, code=exited, status=1/FAILURE
etcd-member.service: Failed with result 'exit-code'.
Failed to start etcd (System Application Container).
etcd-member.service: Service hold-off time over, scheduling restart.
etcd-member.service: Scheduled restart job, restart counter is at 7.
Stopped etcd (System Application Container).
Starting etcd (System Application Container)...
"cfbb1963-d71c-4453-bf53-fc11eb69b051"

file is there, owned by root, and readable  :
$ stat /var/ssl/certs/ocore-noup1-member.pem
  File: '/var/ssl/certs/ocore-noup1-member.pem'
  Size: 1322            Blocks: 8          IO Block: 4096   regular file
Device: fd09h/64777d    Inode: 52          Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:unlabeled_t:s0
Access: 2018-01-14 21:29:20.000000000 +0000
Modify: 2018-01-14 21:21:57.000000000 +0000
Change: 2018-01-14 21:21:57.000000000 +0000
 Birth: -
coreos-512mb-fra1-01 etcd-member.service.d #

Any help or idea is appreciated ..
Thanks

I'm facing the same problem as @cnkuyan: the "etcd" account is not mentioned in /etc/passwd, though its ID is known:
$ id -u etcd
232
$ sudo su etcd -c"echo 'Hi.'"
This account is currently not available.

Where is this "etcd" user defined? Am I supposed to "activate" it somehow? I haven't found any Container Linux- or etcd-related documentation that instructs users to create this account.
@hexfusion, I'm seeing this with the "stable" Container Linux channel version 1688.5.3.

Adding detail:
$ getent passwd etcd
etcd:x:232:232::/dev/null:/sbin/nologin

I had he same issue and I found a fix so I'm writing it here for posterity.
CoreOS/Container Linux uses /usr/lib/coreos/etcd-wrapper to run etcd using rkt. That script creates a volume called coreos-etc-ssl-certs and mounts said volume at /etc/ssl/certs inside the etcd container.
The host directory used as source for the volume is controlled by the environment variable ETCD_SSL_DIR and the default value is /etc/ssl/certs.
If you are placing your certs somewhere else than /etc/ssl/certs on the host you need to do 2 things in order to get etcd to work:

Set ETCD_SSL_DIR to the host directory where you placed your certs. Add that to the etcd-member service environment.

Use /etc/ssl/certs as the base directory for the cert related options on etcd. Example: --trusted-ca-file=/etc/ssl/certs/ca.crt.

This is a drop in that will correctly start etcd with TLS when the certificates have been placed on /etc/ssl/etcd on the host:
[Unit]
Requires=coreos-metadata.service
After=coreos-metadata.service

[Service]
Environment="ETCD_SSL_DIR=/etc/ssl/etcd"
EnvironmentFile=/run/metadata/coreos
ExecStart=
ExecStart=/usr/lib/coreos/etcd-wrapper \
  --name=${name} \
  ---advertise-client-urlshttps://10.53.70.188:2379 \
  --cert-file=/etc/ssl/certs/server.crt \
  --client-cert-auth=true \
  --key-file=/etc/ssl/certs/server.key \
  --peer-cert-file=/etc/ssl/certs/peer.crt \
  --peer-key-file=/etc/ssl/certs/peer.key \
  --peer-trusted-ca-file=/etc/ssl/certs/ca.crt \
  --peer-client-cert-auth=true \
  --trusted-ca-file=/etc/ssl/certs/ca.crt \
  --initial-cluster=core0=https://10.53.70.188:2380 \
  --initial-advertise-peer-urls=https://10.53.70.188:2380 \
  --listen-client-urls=https://0.0.0.0:2379 \
  --listen-peer-urls=https://0.0.0.0:2380

authors: cnkuyan pietro seh


text:
test: check commit titles

/cc @xiang90

lgtm

failure unrelated, merging


text:
Error while adding jsonpath as parameter in scrape_configs:

What did you do?
I have configured a json exporter that will collect the metrics from a Json URL. I have passed the target and the json as a parameter using relabelling. But getting error.
Did you expect to see some different?
Environment

Prometheus Operator version:
Insert image tag or Git SHA here

Kubernetes version information:
kubectl version

Kubernetes cluster kind:
insert how you created your cluster: kops, bootkube, tectonic-installer, etc.

Manifests:

insert manifests relevant to the issue

Prometheus Operator Logs:

insert Prometheus Operator logs relevant to the issue here

level=error ts=2019-04-16T06:05:24.395218368Z caller=main.go:597 err="Error loading config couldn't load configuration (--config.file=/etc/prometheus/config_out/prometheus.env.yaml): parsing YAML file /etc/prometheus/config_out/prometheus.env.yaml: yaml: unmarshal errors:\n  line 3871: cannot unmarshal !!str value into model.LabelNames"
Anything else we need to know?:

My additional-scrape-configs.yaml is as follows:
- job_name: 'json'
  metrics_path: /probe
  params:
    jsonpath: [$.details.db.details.hello] # Look for the nanoseconds field
  static_configs:
    - targets:
      - https://URL path
  relabel_configs:
    - source_labels: [__address__]
      target_label: __param_target
    - source_labels: [__param_target]
      target_label: instance
    - target_label: __address__
      replacement: jsonexporter:9116  # Json exporter.
  metric_relabel_configs:
    - source_labels: value
      target_label:  hello

I have fixed the issue. Modified the configuration as follows;
- job_name: 'json'
  metrics_path: /probe
  params:
    jsonpath: [$.details.db.details.hello] #
  static_configs:
    - targets:
      - https://URL path
  relabel_configs:
        - source_labels: [__address__]     # set param 'target' to the original target
          target_label: __param_target
          replacement: ${1}
        - source_labels: [__param_target]  # set label 'instance' to it as well
          target_label: instance
          replacement: ${1}
        - target_label: __address__
          replacement: jsonexporter:9116

repo: coreos/prometheus-operator


text:
Moved --> keyword from 941180 (PL1) into new stricter sibling rule 941181 (PL2)

Fix for False Positive #2060, at paranoia level 1, caused by matching of "-->".
Moved --> keyword from 941180 (PL1) into new stricter sibling rule 941181 (PL2)

Cool. Thank you for your contribution.
Would you mind creating a test or two for 941181? See the stuff in tests/regression.
Happy to merge afterwards.

@fzipi it looks like lint does not like contains or --> very much. The test failed. Would you mind taking a peek?

@fzipi it looks like lint does not like contains or --> very much. The test failed. Would you mind taking a peek?

PR has sent :).

I think you should remove blacklist keyword replacement until issue https://github.com/coreruleset/coreruleset/issues/2083 is discussed.

In the spirit of keeping things separate, I agree with @azurit that this PR should only do the rules split, now that we have a separate issue and a PR to implement this shift.

Following the merging of secrules_parsing PR 17 we seem to have a new regression with lint on the Webshells response rules.
@airween and @fzipi, could you please check this?

So we're fine with regards to lint again. Thank you for the quick reaction, @airween and @fzipi.

Replaced by pull request 2088

repo: coreruleset/coreruleset


text:
[Feature] Aliases - Now we can set aliases to the node versions

This features adds the commands:

nvm alias <version> <alias> : Set an alias to the specified version.
nvm alias <version>              : Show all aliases of the specified version.
nvm alias rm <alias>             : Remove the specified alias.

We can use the alias instead of ther version number to switch to a version or uninstal it.

nvm use <alias>  : switch to the version related to the specified alias.
nvm uninstall <alias> : uninstall the version related to the specified alias.

This feature (or something similiar) was mentioned in the issues #884 , #478 , #466 and #461
I am new to the Go lang (started literally yesterday). So I'm open to learn and improve.

While I sincerely appreciate the contribution, NVM for Windows is in a feature freeze. We already have this feature in Runtime (the nearly-ready successor project).

authors: MoaresOliveira coreybutler

repo: coreybutler/nvm-windows


text:
Update cats-effect to 3.2.9

Updates org.typelevel:cats-effect from 2.5.4 to 3.2.9.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Applied Migrations

github:typelevel/cats-effect/v3_0_0?sha=series/3.x

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.typelevel", artifactId = "cats-effect" } ]

labels: library-update, semver-major, scalafix-migrations

Superseded by #131.

repo: cornerman/colibri


text:
convert maskState to optional for backword compatability

Description
Update to 2.7.0 removes all the certificate as the JSON decoding fails when it cant find the mask state in the previous sql store, the solution was to make maskState optional for backward comparability
Please check the attached video showing a successful update from 2.6.1 to 2.7.0
Link to Jira
https://jira-ibs.wbs.net.sap/browse/EXPOSUREAPP-13891
Screenshots
https://user-images.githubusercontent.com/15270737/189139337-0771ee1c-bf03-4e51-a5c6-b32fa035dc6c.mov

Interesting find 👍

repo: corona-warn-app/cwa-app-ios


text:
Add faq article root_detection_android

This pull request solves New FAQ R2.12 #root_detection_android #1914

EN:

DE:

Using rel='noopener noreferrer' on internal links is unnecessary and that is another topic I'd like to bring up as a general topic soon. It's only necessary for external links and only as protection for vulnerabilities that existed with older browser versions.

repo: corona-warn-app/cwa-website


text:
Update Cypress test app_to_web.js

This PR provides an enhancement update to the Cypress test cypress/integration/app_to_web.js which tests that links used in the Android and iOS apps are working on the website https://www.coronawarn.app/.
Updates
Add blog test
The issue https://github.com/corona-warn-app/cwa-website/issues/3003 "Missing test for app to web blog link" is resolved through the following changes:

add a new test for blogs to cypress/integration/app_to_web.js
add a blog test data section blogEntry to cypress/fixtures/appToWebLinks.json
add the sub-link 2021-08-05-statistictiles to cypress/fixtures/appToWebLinks.json in order to test that the related blog article is reachable and displays

Add FAQ test
The link #hc_already_registered is added to the list of FAQ links to be tested by the Cypress cypress/integration/app_to_web.js test as listed in cypress/fixtures/appToWebLinks.json.
This change follows on from Android issue https://github.com/corona-warn-app/cwa-app-android/issues/5099 "Wrong FAQ link for VC_ALREADY_REGISTERED error" Internal Tracking ID: EXPOSUREAPP-13218 and PR https://github.com/corona-warn-app/cwa-app-android/pull/5310 "Correct FAQ link hc_already_registered (EXPOSUREAPP-13218) (COMMUNITY) (closes #5099)".
Add first and last app version
The documentary key appVersion cypress/fixtures/appToWebLinks.json is extended to document the first and last version of the app covered by the test data file:
"appVersionFirst": "2.23"
"appVersionLast":  "2.25"

Verification
Unit test on production web
npx cypress run -s cypress/integration/app_to_web.js -c baseUrl=https://coronawarn.app
Expect 6 passing tests and All specs passed.
Unit test on local clone
npm run test:open
select app_to_web.js
Expect green tick 6, red tick --.
Integration test on local clone
npm test
Expect 134 tests passed and All specs passed.

Internal Tracking ID: EXPOSUREAPP-13537

I successfully tested this PR, including a workflow test on a copy of the repository.
From my point of view it is ready to merge.

@MikeMcC399 Thanks for the PR, looks fine so far, we are running tests and then should be ready to merge it.


text:
Remove linker preference code

Previously, corrosion set the linker to the C++ compiler in order to automatically link in the necessary libraries for C++ code. In practice this seems to be just "c++", so it seems we can also just use the default linker and let Corrosion specify "-lc++" as a linker argument for rust in case the target links in any C++ code.
This is generally preferable and should be more in line with users expect.
This change could potentially have some subtle pitfalls, so someone more familiar with C++ should review it.

@ogoffart I'd like to remove the corrosion code that explicitly sets the C++ compiler as the linker driver when Rust is used to invoke the linker and instead specify the libraries that C++ requires (i.e. add -Clink-arg=-lc++), so that linking works with any linker. This seems to work just fine on mac - I haven't had a chance yet to look into Linux.
I don't really have any C++ experience, so I'd like some feedback from C++ developers if this approach is even feasible, or if there are some hidden subtleties.
In any case it would still be possible for the user to explicitly specify a linker - it's just that corrosion would not automatically specify the linker rust should use anymore.

This appears to be a breaking change in regards to cross-compiling "just working" with corrosion for rust targets with a default linker that is not rust-lld or another Cross-linker. It seems that rust doesn't have a default linker for the failing targets we tests, and just defaults to cc, which can't work for cross-compiling if cc is GCC. For clang it would probably also not work, since likely no --target would be specified. For these reasons I'm delaying this change until the affected tool chains link with rust-lld by default, which may still take a while.

I think the origin of this was likely something else (“preference”), but I agree it’s crucial for cross compilation. Perhaps the code could be reduced and simplified in that direction (for example replace list with single linker item)

Superseded b #361.

authors: jschwe tronical

repo: corrosion-rs/corrosion


text:
0.5.2 is broken? (iOS)

I had to revert to 0.5.1 to get my build using React Native v0.55.4 to work with this module. I kept getting an error regarding Fabric being undefined when I attempted to use Fabric.Answers. Once I reverted to 0.5.1, it built just fine.
Not a big deal for me, but figured I'd give a heads up.

can you share your error stacktrace?
does this happen on android as well?
cocoapods or react-native link?

2018-10-01 10:44:11.068 [fatal][tid:com.facebook.react.ExceptionsManagerQueue] Unhandled JS Exception: Cannot read property 'Answers' of undefined 2018-10-01 10:44:11.090 [fatal][tid:com.facebook.react.ExceptionsManagerQueue] Unhandled JS Exception: Module AppRegistry is not a registered callable module (calling runApplication)
Haven't had time yet to test on Android. Using exact same code and settings that work without a problem using 0.5.1.
Using react-native link

react-native link react-native-fabric
or just react-native link?
it is safer to specify which lib you are trying to link
sometimes react-native link can duplicate old links, if you are not passing which lib you want to link

May not have unlinked before relinking. :/ Trying again.

take a look at your settings.gradle file

0.5.2 has an issue in iOS where the header paths specified in the SMXXCrashlytics.xcodeproj is not being set correectly. A fix has been merged into master, but a new version of the package has not been released on NPM yet. reverting back to 0.5.1 or using the master branch of this repo in your package.json file should work.

in which commit?

@sibelius I'm looking through your commits and can't find anything recent that touched framework search paths directly - it was consistently setting a recursive search path that I had to change for the project to build correctly each time I installed 0.5.2, and when I attempted to use the master branch the search path was set correctly. Sorry I can't provide more info. Will try to dig deeper when I have time.

maybe releasing another release can fix this?

possibly 🤞

I haven't had a chance to look either, but i did notice that running react-native link react-native-fabric on 0.5.2 just adds to my podfile instead of actually linking. Ignore me if that's how it's supposed to work now.

Have the same exact problem with @TheRohitSharma

I reproduce the problem on Android

0.5.2 has an issue in iOS where the header paths specified in the SMXXCrashlytics.xcodeproj is not being set correectly. A fix has been merged into master, but a new version of the package has not been released on NPM yet. reverting back to 0.5.1 or using the master branch of this repo in your package.json file should work.

0.5.2 Works fine, but change the import to this :
import * as FABRIC from 'react-native-fabric'

import FABRIC from 'react-native-fabric' doesn't works for me in latest version (0.5.2)

authors: IndianAg0711 TheRohitSharma bdelville diegorribeiro gedeagas jgcmarins sibelius

repo: corymsmith/react-native-fabric


text:
Add Crashlytics.crash

Would be awesome to be able to initiate a crash from the JS side, for testing. See e.g. https://docs.fabric.io/ios/crashlytics/crashlytics.html#cause-a-test-crash. Could PR if it would be helpful. Thanks.

Submitted https://github.com/corymsmith/react-native-fabric/pull/7 for the iOS side

Done on iOS; someone else could add Android

Submitted https://github.com/corymsmith/react-native-fabric/pull/11 for Android

Awesome! Thanks :)
On Wed, Feb 17, 2016 at 06:33 Abilash K notifications@github.com wrote:

Submitted #11 https://github.com/corymsmith/react-native-fabric/pull/11
for Android
—
Reply to this email directly or view it on GitHub
https://github.com/corymsmith/react-native-fabric/issues/6#issuecomment-185162793
.

authors: AbilashK lrettig


text:
unknown has no propType... when updating to version 0.4.0

I get this when after updating to version 0.4.0

@olitomas it looks like your SMXTabBarIconItemIOS.ios.js is outdated.
At 0.3.6 (https://github.com/corymsmith/react-native-icons/blob/8ffc8b2676e4dda2ac7f0f93058012264630ccb4/SMXTabBarIconItemIOS.ios.js#L95), it was the call for requireNativeComponent (the one that appears on your stacktrace).
However, at 0.4.0 (https://github.com/corymsmith/react-native-icons/blob/8e32b8a0869dc00fda4b3393ae78e7ae2b283598/SMXTabBarIconItemIOS.ios.js#L95), this is merely a style definition.
I'd suggest to run npm update and see if it gets the right files. It worked for me :grin:

I seem to have the 0.4.0 updated file, but my react-debugger is referencing line 97 for some reason.

@olitomas Did you get this working?

Nope, we went back to 3.4 to get things working :) (npm update or other similar things did not work either)

@akishek22 well, that's awkward... can you check for SMXTabBarIconItemIOS.ios.js at line 95 on your node_modules folder and paste it here?

@akishek22 well, that's awkward... can you check for SMXTabBarIconItemIOS.ios.js at line 95 on your node_modules folder and paste it here?

authors: akishek22 cieni corymsmith jose-cieni-movile olitomas

repo: corymsmith/react-native-icons


text:
Does SLIP44 Require Array?

Currently, SLIP44 accepts a single number. But some chains apparently support multiple coinTypes. (e.g., Persistence supporting ~750 and also 118, and now Mises also supporting both 60 and 118.
I'm thinking that SLIP44 property might need to change from a number to an array.
From: "SLIP44": 118
To:
"coinTypes": [
  60,
  118
],

Will note that Keplr's and Leap's Suggest Chain feature accepts a required primary coinType with optional alternatives:
"bip44": {
  "coinType": "number"
},
"alternativeBIP44s": [
  "items": {
    "type": "number"
  }
]

Persistence example:
"bip44": {
  "coinType": 118
},
"alternativeBIP44s": [
  750
]

Another option is to make sure the submitter knows about the SLIP44 registration process (something often forgotten):
"bip44": {
  "coinType": 118,
  "SLIP44_coin": "Atom"
},
"alternativeBIP44s": [
  {
    "coinType": 750,
    "SLIP44_registration": "Persistence"
  }
]

...but that kind of looks more messy than it is beneficial, if if it does permit very clean automated verification.

Another alternative is to keep the original SLIP44 property, and just add an optional altSLIP44 array:
SLIP44: 118,
altSLIP44s: [
  750
]

it saves from having to restructure the SLIP44 field, and avoids a potentially breaking change.

yea I think this works.
My only thought is more broad now, which is this snake_case in JSON is starting to show it's face 😅

repo: cosmos/chain-registry


text:
create helper function to check if at least one packet commitment exists in a given channel

we need to check if at least one packet commitment exists before writing state for ChanUpgradeAck. the current method we have available, GetAllPacketCommitments, is inefficient as it will do the full iteration and give you all packet commitments when really you just need to check if there exists at least one.
Originally posted by @AdityaSripal in https://github.com/cosmos/ibc-go/pull/3787#discussion_r1226394345

I'll take a look at this at some point (though I'll punt it for a bit later since it isn't pressing).

I would suggest an API like:
func (k Keeper) hasInflightPackets(ctx sdk.Context, portID, channelID string) bool

authors: DimitrisJim charleenfei colin-axner

repo: cosmos/ibc-go


text:
WIP: Improve performance of /delegators/{addr}

Closes #1133
Description:

❤ Thank you!

Blocked by #1141 .

Closing in favor of https://github.com/cosmos/voyager/issues/1193 and https://github.com/cosmos/voyager/issues/1194.

repo: cosmos/voyager


text:
With the REST API, POST _bulk_docs does not return generated document IDs (v1.3.0)

I am using CouchBase Lite for Android with https://github.com/couchbaselabs/Couchbase-Lite-PhoneGap-Plugin. I assume this issue is with the Android version, since iOS and OSX work as expected.
Version 1.2.1 - works as expected
POST ../db1/_bulk_docs
{"docs":[{"foobar":123}]}
Gets the response
[{"rev":"1-72c061e6c4562c4e6f7e1f9aa9110e43","id":"d31db298-8a4d-4454-a043-97ce462df28f","ok":true}]
Version 1.3.0 - ID missing in response
POST ../db1/_bulk_docs
{"docs":[{"foobar":123}]}
Gets the response
[{"rev":"1-72c061e6c4562c4e6f7e1f9aa9110e43","id":null,"ok":true}]
Reproduced on Android 4.4.2 and Android 6.0.
Am I missing something?

Look like there is a regression from this commit https://github.com/couchbase/couchbase-lite-java-core/commit/de7afd4d02a98d19ab9ffdb2be7bebc4f38b8e92.
Basically the new doc may not have '_id' property.

When can the 1.3.1 release be expected, few days/weeks/months?

authors: lasselaakkonen pasin

repo: couchbase/couchbase-lite-android


text:
Add Dockerfile to build a Docker image for SDK Doctor

Motivation
Easily run SDK Doctor on any system with Docker installed, without
downloading/installing binaries.  Also, easily run SDK Doctor on a
Kubernetes cluster to test connectivity in situ.
Modifications
Added a Dockerfile to perform build.
Results
Running docker build -t tagname . will build a slim Docker image using
a multi-stage build.
An example build is currently available on Docker Hub at
btburnett3/sdk-doctor.
Usage:
docker run --rm btburnett3/sdk-doctor diagnose couchbase://node/bucket

Kubernetes usage:
kubectl run sdktest --rm -i --image btburnett3/sdk-doctor -- diagnose couchbase://node/bucket

It would be desirable to include this build process in .travis.yml and
publish the image to couchbase/sdk-doctor, but I lack the credentials
so did not include it at this time.

Hey @brantburnett,
Any chance you could contribute an example of the expansion of our travis configuration to build the docker image?
Cheers, Brett

@brett19 sure thing, not too hard.

repo: couchbaselabs/sdk-doctor


text:
i18n+a11y: internationalization of the toggle menu Label

Is your feature request related to a problem? Please describe.
in other language than english the menu toggle is in english, because of the hard coded value of aria-label on the toggle.
it could be interesting for both internationalization and accessibility to have a kind of dynamic localized value from i18n/xxx/message.json which indicate the two states of the toggle...
thanks for the insights @ChristianMurphy
Describe the solution you'd like
updating the value in the DOM from onclick
Describe alternatives you've considered
need to be a new prop on the component like this.areSocialLinksOpen
Then in render
${areSocialLinksOpen ? data.toggleMenu.openedState : data.toggle.closedState}
Additional context

resolved in #62

repo: cousquer/CardWebComponents


text:
feat: add colors to console logs

Proposed changes
Updated login message visual
before:

After:

Created a color-utils
Made sure all commands to execute are colorized using the same style.
If that is fine with you I would like to replace all imports of chalk with color-utils. That was, we keep a level of consistency across the commands.
Question:
Should colors-utils should have its own repo?
Testing

[ ] Unit Tests:

[ ] Functionnal Tests:

[ ] Manual Tests:

After investigation, we should be able to use inheritance to extend chalk behaviour (we can see in the readme that there's a new Chalk() being called, so that means that there's a constructor to extend, I think 😅 ).
However, there is an ongoing issue with the typing: https://github.com/chalk/chalk/issues/519 which may hold us off.

import chalk, { Chalk } from "chalk";

interface Colors extends Chalk, CustomColors {}

interface CustomColors {
  header: Chalk;
  error: Chalk;
  cmd: Chalk;
}

const customColorFactory = (chalk: Chalk): CustomColors => ({
  header: chalk.bold.hex("#1CEBCF"),
  error: chalk.bgHex("#F64D64").hex("#272C3A"),
  cmd: chalk.blueBright.bold,
});

const colorFactory = (): Colors => {
  const chalkInstance = new chalk.Instance();
  const customColors = customColorFactory(chalkInstance);
  return Object.assign(chalkInstance, customColors);
};

const colors = colorFactory();

console.log(colors.cmd`color`);
console.log(colors.bold`color`);

Using Object.assign we can build the augmented chalk

Closing for now

authors: louis-bompart y-lakhdar

repo: coveo/cli


text:
curl_easy_getinfo_String() doesn't return readable strings

Version: 3.0-SNAPSHOT
Java: 17
System: Ubuntu 24.04
When using CURL.curl_easy_getinfo_String() it returns nonsense like ð¿ instead of the desired value.
Example:
String effectiveUrl = CURL.curl_easy_getinfo_String(curlHandle, CURL.CURLINFO_EFFECTIVE_URL);
String primaryIp = CURL.curl_easy_getinfo_String(curlHandle, CURL.CURLINFO_PRIMARY_IP);

System.out.println("Effective URL: " + effectiveUrl);
System.out.println("Primary IP: " + primaryIp);

Result:
Effective URL: ðÄz
Primary IP: ò|Äz

Since CURL.curl_easy_getinfo_String() is static, a quick and dirty fix is to use your own implementation.
The original code currently only returns return pointer.readUtf8Safe();:
@Nullable
public static String curl_easy_getinfo_String(@NativeType("CURL *") long curl, @NativeType ("CURLINFO") int opt) {
    assert (opt & CURLINFO_TYPEMASK) == CURLINFO_STRING;

    try (Memory.Stack stack = Memory.pushStack()) {
        Pointer pointer = stack.mallocPointer();
        int ret = curl_easy_getinfo(curl, opt, pointer);
        if (ret != CURLE_OK) {
            throw new IllegalStateException("CURL error querying info: " + curl_easy_strerror(ret));
        }
        // Read the pointer value first, then read the string from that address
        Pointer strPtr = pointer.readPointer();
        return strPtr != null ? strPtr.readUtf8Safe() : null;
    }
}

This was solved by an LLM (Claude) and I have no idea if this is the proper way to do it.


text:
Cases in negative

Hi!
Your app is just amazing and cool!
Just their is a bug I have seen....
Click on daily,
And choose any state, or let it be the coutry, as you can see the active cases go to negative

Hoping you can solve this problem or bug!
Thank you!
Regards!

But how can the cases go negative?? @pratham1002

More people recovered on a particular day than got infected. Hence the net change in active cases is negative.

But in real... we can't get negative....

@Jaideep25, it's not the confirmed cases, active case can't be negative whereas the active cases it can go negative or positive or zero. If more number of people are recovered than the number of confirmed cases that day, then the active case will become negative.
active case = confirmed case - recovered case - deaths.

I know that formula, but active cases means that the number of people who still are suffering from corona that day, which isn't possible to be negative..

You still didn't get it !!?
Its not the people suffering, its the net total for the day.

Refer to https://github.com/covid19india/covid19india-react/issues/2038#issuecomment-641962963


text:
🛑 BFF - USD Price (Gnosis Chain) is down

In 332e70a, BFF - USD Price (Gnosis Chain) (https://bff.cow.fi/100/tokens/0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d/usdPrice) was down:

HTTP code: 503
Response time: 111 ms

Resolved: BFF - USD Price (Gnosis Chain) is back up in fbacd3d after 12 minutes.

repo: cowprotocol/uptime


text:
feat: added delete agent command

Please describe the purpose of this pull request.
Basic command to allow deleting an agent
How to test
memgpt delete-agent --agent-name MemGPT_agent

Have you tested this PR?
Yes

Added to #905

repo: cpacker/MemGPT


text:
Filename of summary files

There are several issues with the filenames of the summary download

The filename listed on the portal does not correspond to the name of the file downloaded. For example in the picture below, the name of the file downloaded is 0b16ed88-7492-3c97-9eb5-e085fd01eea9.zip and not what is shown on the portal.
The name of the file should be <study_id>_<date_time_of_generation>.zip.
The list of measurement in the zip file is right now called dataPointSequences.json but should be named data-streams.json to comply to the naming scheme of the other files.

fixed by https://github.com/cph-cachet/carp-webservices-spring/pull/18

authors: bardram davidscavnicky

repo: cph-cachet/carp-webservices-spring


text:
couldn't manage to get it to work in the command line or python

This looks great, unfortunately, I couldn't succeed to run it:
From the command line:
lm-zoo tokenize ngram metamorphosis.txt
Traceback (most recent call last):
  File "/home/bruno/anaconda3/lib/python3.7/site-packages/urllib3/connectionpool.py", line 706, in urlopen
    chunked=chunked,
  File "/home/bruno/anaconda3/lib/python3.7/site-packages/urllib3/connectionpool.py", line 394, in _make_request
    conn.request(method, url, **httplib_request_kw)
  File "/home/bruno/anaconda3/lib/python3.7/http/client.py", line 1244, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/home/bruno/anaconda3/lib/python3.7/http/client.py", line 1290, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "/home/bruno/anaconda3/lib/python3.7/http/client.py", line 1239, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/home/bruno/anaconda3/lib/python3.7/http/client.py", line 1026, in _send_output
    self.send(msg)
  File "/home/bruno/anaconda3/lib/python3.7/http/client.py", line 966, in send
    self.connect()
  File "/home/bruno/anaconda3/lib/python3.7/site-packages/docker/transport/unixconn.py", line 43, in connect
    sock.connect(self.unix_socket)
FileNotFoundError: [Errno 2] No such file or directory

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/bruno/anaconda3/lib/python3.7/site-packages/requests/adapters.py", line 449, in send
    timeout=timeout
  File "/home/bruno/anaconda3/lib/python3.7/site-packages/urllib3/connectionpool.py", line 756, in urlopen
    method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
  File "/home/bruno/anaconda3/lib/python3.7/site-packages/urllib3/util/retry.py", line 532, in increment
    raise six.reraise(type(error), error, _stacktrace)
  File "/home/bruno/anaconda3/lib/python3.7/site-packages/urllib3/packages/six.py", line 734, in reraise
    raise value.with_traceback(tb)
  File "/home/bruno/anaconda3/lib/python3.7/site-packages/urllib3/connectionpool.py", line 706, in urlopen
    chunked=chunked,
  File "/home/bruno/anaconda3/lib/python3.7/site-packages/urllib3/connectionpool.py", line 394, in _make_request
    conn.request(method, url, **httplib_request_kw)
  File "/home/bruno/anaconda3/lib/python3.7/http/client.py", line 1244, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/home/bruno/anaconda3/lib/python3.7/http/client.py", line 1290, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "/home/bruno/anaconda3/lib/python3.7/http/client.py", line 1239, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/home/bruno/anaconda3/lib/python3.7/http/client.py", line 1026, in _send_output
    self.send(msg)
  File "/home/bruno/anaconda3/lib/python3.7/http/client.py", line 966, in send
    self.connect()
  File "/home/bruno/anaconda3/lib/python3.7/site-packages/docker/transport/unixconn.py", line 43, in connect
    sock.connect(self.unix_socket)
urllib3.exceptions.ProtocolError: ('Connection aborted.', FileNotFoundError(2, 'No such file or directory'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/bruno/anaconda3/lib/python3.7/site-packages/docker/api/client.py", line 214, in _retrieve_server_version
    return self.version(api_version=False)["ApiVersion"]
  File "/home/bruno/anaconda3/lib/python3.7/site-packages/docker/api/daemon.py", line 181, in version
    return self._result(self._get(url), json=True)
  File "/home/bruno/anaconda3/lib/python3.7/site-packages/docker/utils/decorators.py", line 46, in inner
    return f(self, *args, **kwargs)
  File "/home/bruno/anaconda3/lib/python3.7/site-packages/docker/api/client.py", line 237, in _get
    return self.get(url, **self._set_request_timeout(kwargs))
  File "/home/bruno/anaconda3/lib/python3.7/site-packages/requests/sessions.py", line 555, in get
    return self.request('GET', url, **kwargs)
  File "/home/bruno/anaconda3/lib/python3.7/site-packages/requests/sessions.py", line 542, in request
    resp = self.send(prep, **send_kwargs)
  File "/home/bruno/anaconda3/lib/python3.7/site-packages/requests/sessions.py", line 655, in send
    r = adapter.send(request, **kwargs)
  File "/home/bruno/anaconda3/lib/python3.7/site-packages/requests/adapters.py", line 498, in send
    raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', FileNotFoundError(2, 'No such file or directory'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/bruno/anaconda3/bin/lm-zoo", line 6, in <module>
    lm_zoo()
  File "/home/bruno/anaconda3/lib/python3.7/site-packages/lm_zoo/commands.py", line 47, in __call__
    raise e
  File "/home/bruno/anaconda3/lib/python3.7/site-packages/lm_zoo/commands.py", line 40, in __call__
    return self.main(*args, **kwargs)
  File "/home/bruno/anaconda3/lib/python3.7/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/home/bruno/anaconda3/lib/python3.7/site-packages/click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/bruno/anaconda3/lib/python3.7/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/bruno/anaconda3/lib/python3.7/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/home/bruno/anaconda3/lib/python3.7/site-packages/click/decorators.py", line 73, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
  File "/home/bruno/anaconda3/lib/python3.7/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/home/bruno/anaconda3/lib/python3.7/site-packages/lm_zoo/commands.py", line 160, in tokenize
    backend=state.requested_backend)
  File "/home/bruno/anaconda3/lib/python3.7/site-packages/lm_zoo/__init__.py", line 60, in tokenize
    stdin=in_file, backend=backend)
  File "/home/bruno/anaconda3/lib/python3.7/site-packages/lm_zoo/__init__.py", line 197, in run_model_command_get_stdout
    run_model_command(*args, **kwargs)
  File "/home/bruno/anaconda3/lib/python3.7/site-packages/lm_zoo/__init__.py", line 180, in run_model_command
    backend = get_compatible_backend(model, preferred_backends=preferred_backends)
  File "/home/bruno/anaconda3/lib/python3.7/site-packages/lm_zoo/backends/__init__.py", line 69, in get_compatible_backend
    return backend()
  File "/home/bruno/anaconda3/lib/python3.7/site-packages/lm_zoo/backends/docker.py", line 26, in __init__
    self._client = docker.from_env().api
  File "/home/bruno/anaconda3/lib/python3.7/site-packages/docker/client.py", line 101, in from_env
    **kwargs_from_env(**kwargs)
  File "/home/bruno/anaconda3/lib/python3.7/site-packages/docker/client.py", line 45, in __init__
    self.api = APIClient(*args, **kwargs)
  File "/home/bruno/anaconda3/lib/python3.7/site-packages/docker/api/client.py", line 197, in __init__
    self._version = self._retrieve_server_version()
  File "/home/bruno/anaconda3/lib/python3.7/site-packages/docker/api/client.py", line 222, in _retrieve_server_version
    'Error while fetching server API version: {0}'.format(e)
docker.errors.DockerException: Error while fetching server API version: ('Connection aborted.', FileNotFoundError(2, 'No such file or directory'))

In python, I could manage to load lm_zoo, but I can figure out how to specify a model:
lm_zoo.get_predictions("GRNN", "This is a sentence") #doesn't work

I guess it must be with lm_zoo.models, but I couldn't figure out how.

any ideas?

I managed to run it in the command line, it was an issue with docker. I still can't figure out how to use lm_zoo from python...

How did you manage it from the command line? I have the same errors there with downloading the model files (I assume).

Have you installed docker? and tested that it was properly installed?
After that it worked.
Unfortunately, I'm not sure if this project is alive. I ended up using mostly https://pypi.org/project/minicons/

thx - will test!

authors: TScheffler bnicenboim

repo: cpllab/lm-zoo


text:
Incorrect retrieve parameter for direct-reference concept

When using a direct-reference code as the terminology target of a retrieve for a FHIR type that has a primary code path element of type CodeableConcept, the translator will emit a ToConcept conversion on the direct reference code. This is consistent with expected implicit conversion behavior, however, it is incorrect because the Retrieve contract expects a list of codes. The following snippet reproduces the issue on the 1.4.9-SNAPSHOT:
library _Scratch version '0.1.0'

using FHIR version '4.0.0'

include FHIRHelpers version '4.0.0' called FHIRHelpers

codesystem "LOINC": 'http://loinc.org'

code "Tobacco Smoking Status": '72166-2' from "LOINC"

context Patient

define "Test Tobacco Smoking Status": [Observation: "Tobacco Smoking Status"]

Addressed in 1.4.9 release


text:
Cache always invalidated

I'm working on upgrading from Gatsby 2 to 3 and decided to try this instead of the graphql source plugin. Every time i restart the develop script the cache is invalidated and I wait 10+ minutes to rebuild.
I've tried eliminating plugins and simplifying the project but have made no progress. I can try to create a minimal reproduction later but I wanted to report this in case there was something I'm missing that could solve this issue.
Here's what I'm seeing each time I start the project up:
info One or more of your plugins have changed since the last time you ran Gatsby. As
a precaution, we're deleting your site's cache to ensure there's no stale data.
...
info Cached content is unavailable or outdated, sourcing _all_ nodes.

@wfendler for what it's worth, I've reached out to Gatsby to see if they can offer some help pinpointing the cause for the caches being cleared all the time.

authors: andris-sevcenko wfendler

repo: craftcms/gatsby-source-craft


text:
Fix types tests, adjust long value range

Relates to https://github.com/crate/crate/pull/16629.

@Mergifyio refresh

@mergifyio queue

@mergifyio rebase

repo: crate/crate-jdbc


text:
Varying performance for group by queries

CrateDB version: 4.5.1
Environment description: macOS; started with cr8
Problem description:
Recently a performance problem was reported in the Crate.io Community. I downloaded the provided snapshot and could reproduce the same behaviour.
Further queries did show differences in query duration which I don't fully understand:
Unlimited group by
$> echo "select f from doc.test5kk_025 group by f;" | cr8 timeit --host http://localhost:4200 -w 5 -r 10
Runtime (in ms):
    mean:    6962.284 ± 116.587

Limited group by
$> echo "select f from doc.test5kk_025 group by f limit 1000000;" | cr8 timeit --host http://localhost:4200 -w 5 -r 10
Runtime (in ms):
    mean:    2905.901 ± 34.236

Unlimited group by with values doubled
$> echo "select f*2 as ff from doc.test5kk_025 group by ff;" | cr8 timeit --host http://localhost:4200 -w 5 -r 10
Runtime (in ms):
    mean:    1188.969 ± 79.297

Limited group by with values doubled
$> echo "select f*2 as ff from doc.test5kk_025 group by ff limit 1000000;" | cr8 timeit --host http://localhost:4200 -w 5 -r 10
Runtime (in ms):
    mean:    3831.521 ± 21.244

The table has 5 million integer/bigint records (range of records between 18-5456946) with around 790k distinct numbers.
Questions:

Why is "Limited group by" twice as fast as "Unlimited group by"?
Why is "Unlimited group by with values doubled" over 5 times as fast as "Unlimited group by"?

Steps to reproduce:
Create Table statement:
CREATE TABLE IF NOT EXISTS "doc"."test5kk_025" (
   "f" BIGINT DEFAULT NULL
)
CLUSTERED INTO 35 SHARDS
WITH (
   "allocation.max_retries" = 5,
   "blocks.metadata" = false,
   "blocks.read" = false,
   "blocks.read_only" = false,
   "blocks.read_only_allow_delete" = false,
   "blocks.write" = false,
   codec = 'default',
   column_policy = 'strict',
   "mapping.total_fields.limit" = 1000,
   max_ngram_diff = 1,
   max_shingle_diff = 3,
   number_of_replicas = '0-1',
   "routing.allocation.enable" = 'all',
   "routing.allocation.total_shards_per_node" = -1,
   "store.type" = 'fs',
   "translog.durability" = 'REQUEST',
   "translog.flush_threshold_size" = 536870912,
   "translog.sync_interval" = 5000,
   "unassigned.node_left.delayed_timeout" = 60000,
   "write.wait_for_active_shards" = '1'
)

See the linked community post for a dataset to reproduce my results.

The with limit variant is faster because it uses an optimized plan:
cr> explain select f from doc.test5kk_025 group by f limit 1000000;
+-------------------------------------------+
| EXPLAIN                                   |
+-------------------------------------------+
| TopNDistinct[1000000::bigint;0 | [f]]     |
|   └ Collect[doc.test5kk_025 | [f] | true] |
+-------------------------------------------+

I guess the intuition is that it shouldn't matter if the limit is bigger than the result-set, but in practice it does because the TopNDistinct can avoid a merge step that is necessary without it. In the regular GROUP BY operator we first group and aggregate on the shard level, and then need to merge the results of each shard together. (Assuming a single node)
As for the multiply/no multiply difference, I cannot reproduce that.
V1: Without multiply; V2: with multiply
| Version |         Mean ±    Stdev |        Min |     Median |         Q3 |        Max |
|   V1    |     5947.365 ±  109.184 |   5722.326 |   5950.086 |   6029.328 |   6062.938 |
|   V2    |     5989.272 ±   79.720 |   5877.447 |   5969.755 |   6033.520 |   6156.371 |
├---------┴-------------------------┴------------┴------------┴------------┴------------┘
|               +   0.70%                           +   0.33%
There is a 66.00% probability that the observed difference is not random, and the best estimate of that difference is 0.70%
The test has no statistical significance

Here's the full script I used to compare results:
PID=$(jps | awk '/CrateDB/ { print $1 }' | head -n 1)
#jcmd $PID JFR.start name=recording duration=1m filename=$(pwd)/profile.jfr settings=profile

~/apps/async-profiler/profiler.sh start $PID
echo 'select f * 2 from doc.test5kk_025 group by f' | cr8 timeit --host http://localhost:4200 -w 3 -r 10 -of json | jq '.runtime_stats.samples[]' -r | tee /tmp/perf_multiply.txt
~/apps/async-profiler/profiler.sh stop $PID -f /tmp/flamegraph_multiply.html
firefox /tmp/flamegraph_multiply.html

~/apps/async-profiler/profiler.sh start $PID
echo 'select f from doc.test5kk_025 group by f' | cr8 timeit --host http://localhost:4200 -w 3 -r 10 -of json | jq '.runtime_stats.samples[]' -r | tee /tmp/perf_field.txt
~/apps/async-profiler/profiler.sh stop $PID -f /tmp/flamegraph_field.html
firefox /tmp/flamegraph_field.html

~/apps/async-profiler/profiler.sh start $PID
echo 'select f from doc.test5kk_025 group by f limit 1000000' | cr8 timeit --host http://localhost:4200 -w 3 -r 10 -of json | jq '.runtime_stats.samples[]' -r | tee /tmp/perf_limit.txt
~/apps/async-profiler/profiler.sh stop $PID -f /tmp/flamegraph_limit.html
firefox /tmp/flamegraph_limit.html

echo "V1: Without multiply; V2: with multiply"
./compare_measures.py --old /tmp/perf_field.txt --new /tmp/perf_multiply.txt

echo "V1: Without limit; V2: with limit"
./compare_measures.py --old /tmp/perf_field.txt --new /tmp/perf_limit.txt

Hi @mfussenegger
Thank you for the response. Regarding optimization with limit, could you give more information about situation when merge step is avoided? Is it good practice to always set limit even if it is way too big for expected results just to increase performance? Will it result in faster execution for all cases?
Regarding issue with doubling I can see that you are grouping by f but you should group by doubled value, ie.
'select f * 2 as ff from doc.test5kk_025 group by ff'

Regarding issue with doubling I can see that you are grouping by f but you should group by doubled value, ie.
'select f * 2 as ff from doc.test5kk_025 group by ff'

Ah right, thanks for the pointer. Now I can reproduce the difference. Will take a closer look at it.

Regarding optimization with limit, could you give more information about situation when merge step is avoided? Is it good practice to always set limit even if it is way too big for expected results just to increase performance? Will it result in faster execution for all cases?

I think it depends on the cardinality ratio. With few unique values, the extra merge step may result in a performance improvement because it is possible to parallelize the operations on the shard level.
Ideally we'd tune the optimizer to choose the better execution plan.

Turns out that the performance difference between GROUP BY on f * 2 and f is due to the different values which lead to different hashing and collisions in the underlying Map implementation we use for the grouping operation.
@jayeff last test with the projected table also shows this.

I think it depends on the cardinality ratio. With few unique values, the extra merge step may result in a performance improvement because it is possible to parallelize the operations on the shard level.

The number of distinct values is the same between the normal and doubled set of values. So is it maybe related to the specific range of values?

My comment there was in regards to when using TopNDistinct vs. using regular GroupBy.

@mfussenegger
thank you for your response. Could you tell me what implementation of hashing function are you using?
Is it possible to use own hashing function? Ie. based on https://github.com/Cyan4973/xxHash

@mfussenegger
thank you for your response. Could you tell me what implementation of hashing function are you using?
Is it possible to use own hashing function? Ie. based on https://github.com/Cyan4973/xxHash

Currently we use either the JDK HashMap, which calculates the index like this:
        int h;
        return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16);

Where the hashCode for long values is implemented like this:
    public static int hashCode(long value) {
        return (int)(value ^ (value >>> 32));
    }

In some cases we instead use the LongObjectHashMap implementation from netty, which has a similar implementation:
    /**
     * Returns the hashed index for the given key.
     */
    private int hashIndex(long key) {
        // The array lengths are always a power of two, so we can use a bitmask to stay inside the array bounds.
        return hashCode(key) & mask;
    }

    /**
     * Returns the hash code for the key.
     */
    private static int hashCode(long key) {
       return (int) (key ^ (key >>> 32));
    }

With the given test data I didn't notice much of a difference between the two.
It would be possible to create another Map implementation which supports custom hashing methods.

@mfussenegger
It would be great if we could pick hash implementation. I have compiled crate 4.5.1 replacing hashCode function in LongObjectHashMap with xxhash implementation from lz4 lib
   private static final XXHash32 XX_HASH_32 = XXHashFactory.fastestInstance().hash32();     private static final int SEED = 0x9747b28c;     /**      * Returns the hash code for the key.      */     private static int hashCode(long key) {         return XX_HASH_32.hash(Longs.toByteArray(key), 0, Long.BYTES, SEED);     }
The times has dropped from 11.6s to 3.4 which is bigger than 2.2s which I have received on doubled keys. Probably hashing overhead is quite big. Also I have tried Long2ObjectOpenHashMap from fastutill and have received results in 2.8s.
Maybe imprementation from netty is not the best The crate may use;)
It would be great if you could evaluate other hashMaps, ie fastutil or eclipse-collections in case of performance, memory footprint and collision managing

@mfussenegger
is there ETA for checking other hashMap implementations?

@mfussenegger
is there ETA for checking other hashMap implementations?

No

@kamcio181 short update here. Looks like we're going to work on this for the 4.8 release

@mfussenegger that's great news, thanks for handling this. Could you update me with some short description of solution you have used once you pick one?

@mfussenegger that's great news, thanks for handling this. Could you update me with some short description of solution you have used once you pick one?

Sure

Hi @kamcio181, we evaluated more different map options and some performed better on your data set but none perform consistently better than current implementation over all test data sets.

authors: BaurzhanSakhariev jayeff kamcio181 mfussenegger

repo: crate/crate


text:
Support Azure AD integrated authentication

Problem Statement
In a large organization there is people joining, leaving, and moving teams all the time.
The permissions people should have on data depend on the teams they are on.
Sysadmins are also often asked to enforce rules around password complexity, account lockout, etc.
Considering the above, as a DBA/sysadmin in an organization using Azure AD, I would like to be able to map my Azure AD groups to "roles" in CrateDB so that I can grant privileges on my CrateDB cluster to these roles and I do not need to worry about provisioning and deprovisioning individual user accounts and managing their individual permissions and passwords. My users and applications could then authenticate securely with CrateDB without having to use dedicated passwords or certificates and they could get the permissions assigned to the groups they belong to.
Possible Solutions
Something along the lines of:

https://www.azureblue.io/how-to-manage-psql-db-permissions-with-aad-groups/

Other related links:

https://www.postgresql.org/docs/current/auth-methods.html
https://github.com/crate/crate/issues/12109

Considered Alternatives
Provision and deprovision user accounts and privileges for each user either manually or through scripted identity management processes, then have users and applications updating the passwords/certificates used for CrateDB connections whenever they are changed.
Level of LDAP integration at customers and prospects
Customers are being asked which level of integration of LDAP they are using and are planning to use:
LDAP (Lightweight Directory Access Protocol) integration can occur at various levels within an organization's IT infrastructure. These levels can range from basic to advanced, depending on the extent to which LDAP is utilized for authentication, authorization, and directory services. Here are the different levels of LDAP integration:

Basic Authentication Integration: At the most fundamental level, LDAP integration involves using LDAP as a centralized authentication mechanism. This typically entails configuring applications, services, or systems to authenticate users against an LDAP directory server such as Microsoft Active Directory or OpenLDAP. Users' credentials (e.g., username and password) are verified against LDAP entries.

Single Sign-On (SSO): SSO extends basic authentication integration by enabling users to access multiple applications or systems with a single set of credentials. LDAP is often employed as the backend identity provider for SSO solutions. Once users authenticate against LDAP, they receive access tokens or assertions that grant them access to various resources without needing to re-enter credentials.

Authorization and Access Control: LDAP integration can also be utilized for authorization purposes, determining what resources or actions users are allowed to access within an application or system. LDAP attributes, such as group memberships or user roles, can be used to define access control policies. This level of integration allows for fine-grained access control based on LDAP user attributes.

Directory Services Integration: LDAP serves as a directory service, storing structured information about users, groups, devices, and other entities within an organization. Integrating LDAP at this level involves leveraging LDAP directories as a central repository for managing and accessing information about users and resources. Applications and systems can query LDAP directories to retrieve user profiles, group memberships, and other directory information.

Federated Identity Management: LDAP integration can be extended to support federated identity management, where identities are shared across multiple organizations or domains. This involves establishing trust relationships between LDAP directories or federating identity providers to enable seamless authentication and access across organizational boundaries.

Policy-Based Integration: LDAP can be integrated into policy-based systems for enforcing security policies, compliance requirements, and governance rules. Organizations can use LDAP attributes to define and enforce policies related to password management, account provisioning, data access, and other security controls.

Custom Integration: Organizations may develop custom integrations with LDAP to address specific use cases or requirements not covered by off-the-shelf solutions. Custom integrations can involve building connectors, APIs, or middleware layers to interact with LDAP directories and extend their functionality.

Each level of LDAP integration offers different benefits and capabilities, allowing organizations to leverage LDAP to meet their authentication, authorization, and directory services needs across diverse IT environments. The choice of integration level depends on factors such as security requirements, scalability, interoperability, and the complexity of the organization's IT infrastructure.

@hlcianfagna may I suggest CrateDB just implements https://github.com/crate/crate/issues/14238, and then Azure AD would be something we can do in CrateDB Cloud.

@hlcianfagna may I suggest CrateDB just implements #14238, and then Azure AD would be something we can do in CrateDB Cloud.

That could make sense, maybe we should re-scope this ticket for on-premises Active Directory?

Customer Ola: Level 1 & 2 right now, Level 3 as soon as it is in production

I think, that only

LDAP authentication (listed as 1)
LDAP authorization  (listed as 3)

of the described Level of LDAP integrations are relevant for us to support a complete AD integration. As discussed in a different channel, it probably makes sense to create dedicated feature requests(issues) for these 2 implementation steps.

authors: SStorm hlcianfagna seut vvulf


text:
include subContexts values in JobExecutionContext toString

We use the toString() on the JobExecutionContex to debug errors if a context
hasn't been removed. For that case it is crucial to include the subContexts so
that we can see which subContext got stuck.
Removed the keepAliveListener from the JobCollectContext toString() because it
is actually the JobExecutionContext and it would cause an infinite recursion.

ack

authors: bogensberger mfussenegger


text:
WIP: Add fetch propagation logic to simple subquery planner

This optimizes the execution for simple subqueries where the fetch-phase
can be deferred. Queries like:
select x, y from
    (select x, y from t order by x asc limit 100)  tt
order by x desc limit 50

Were executed as:
Collect [_fetchId, x]
    orderBy x asc
    limit 100
    fetch _fetchId -> y
    order by x desc
    limit 50

Now they're executed as:
Collect [_fetchId, x]
    orderBy x asc
    limit 100
    order by x desc
    limit 50
    fetch _fetchId -> y

Note that this fetch-propagation is all-or-nothing. There are no partial
intermediate fetches (yet).

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@87fd938). Click here to learn what that means.
The diff coverage is 89.6%.

@@            Coverage Diff            @@
##             master    #5427   +/-   ##
=========================================
  Coverage          ?   82.39%
  Complexity        ?    11313
=========================================
  Files             ?     1361
  Lines             ?    44413
  Branches          ?     5570
=========================================
  Hits              ?    36592
  Misses            ?     5214
  Partials          ?     2607

Impacted Files
Coverage Δ
Complexity Δ

.../planner/projection/builder/ProjectionBuilder.java
78.94% <ø> (ø)
17 <0> (?)

...n/java/io/crate/planner/consumer/FetchDecider.java
100% <100%> (ø)
3 <1> (?)

.../main/java/io/crate/planner/ResultDescription.java
100% <100%> (ø)
1 <1> (?)

.../crate/planner/consumer/QueryAndFetchConsumer.java
90.8% <87.5%> (ø)
28 <14> (?)

...ate/planner/node/dql/PlanWithFetchDescription.java
90% <90%> (ø)
14 <14> (?)

...ain/java/io/crate/planner/fetch/FetchRewriter.java
96.51% <95%> (ø)
12 <0> (?)

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 87fd938...ce2e47c. Read the comment docs.

authors: codecov-io mfussenegger


text:
work节点无法更新使用

Bug 描述
工作节点在平台上添加成功，爬虫任务指派后长时间不显示，子节点安装包和现有环境信息，主节点也没有显示。
我在一个节点上 按照你们github 的部署方式，其他节点是可以工作的，跨节点就工作不起来了。
尝试修改work节点容器 pip源， 在master节点上也没有反应。
直接在pip 安装包，基本上都是秒装成功。
期望结果
能够正常工作。
截屏

可以去掉敏感信息发一下配置么 docker-compose.yml
另外还可以将docker日志附上

docker  master和work 节点完全按照 官网的方法来安装的。
下面是work节点docker 情况

我尝试在主节点的机器上 也安装了一个工作节点。 他们在同一个服务器上一切工作正常。 而在另外一个服务器上的节点，始终无法安装包，也无法执行爬虫任务。 但是在节点管理，节点显示是正常的。

# 工作节点
version: '3.3'
services:
  worker:
    image: crawlabteam/crawlab
    container_name: crawlab_worker
    restart: always
    environment:
      CRAWLAB_NODE_MASTER: "N"  # N: 工作节点
      CRAWLAB_GRPC_ADDRESS: "<master_node_ip>:9666"  # grpc address
      CRAWLAB_FS_FILER_URL: "http://<master_node_ip>:8080/api/filer"  # seaweedfs api
    volumes:
      - "/opt/crawlab/master:/data"  # 持久化 crawlab 数据

是否可以执行一下查看工作节点的docker日志命令
docker logs crawlab_worker

下面是 crawlab_worker 的日志

repo: crawlab-team/crawlab


text:
使用go build命令时，会产生错误

crawlab/services
services\task.go:186:10: undefined: syscall.Kill
services\task.go:292:42: unknown field 'Setpgid' in struct literal of type syscall.SysProcAttr

syscall 是 [U|L]inx  系统下的命令，windows不支持


text:
Request for Docker tags

Hi there! I was using the built containers here (thanks for making them available!) and after a recent update, my local builds failed because the paths updated with the new version of the SDK. At present, I have no way to stay on a particular build, so my only recourse is to take this repository and build my own, or update my project for the new SDK after it breaks.
So the request is to add tags, perhaps based on the included SDK version, for the built docker images on Dockerhub.

What tag did you use? And when did you pulled it when it worked?

Okay so I've looked through the tags on dockerhub before, but I somehow missed that there were numbered releases as I just requested. I saw the latest and edge ones and missed the others. So embarrassing, sorry for taking your time, and thanks for already having the requested feature!

authors: crazy-max dfego

repo: crazy-max/docker-osxcross


text:
Force manual mode when randomizing

This'll prevent a lot of headaches down the line

Done!


text:
How to add ioncube extension

I'd like to use ioncube Protecting source code

ioncube is a closed source project, so we cannot compile it.

Linux static binary does not support .so file, it's not supported.
macOS and windows static php binary can use .so,.dll file with external php.ini, you can download and add external extension to your static php.

ioncube is a closed source project, so we cannot compile it.

Linux static binary does not support .so file, it's not supported.
macOS and windows static php binary can use .so,.dll file with external php.ini, you can download and add external extension to your static php.

All right so Linux static binary cannot to load .so file as extension?

All right so Linux static binary cannot to load .so file as extension?

@louishot No. See: https://static-php.dev/en/faq/#can-statically-compiled-php-install-extensions

authors: crazywhalecc louishot

repo: crazywhalecc/static-php-cli


text:
Returning a translated record from the DB

👋🏼 Hi there, I just started using this great library (thanks for sharing it 🙌🏼 ), and I was wondering what would be the best approach to return a translated record from the DB. From what I've read in the main version, translated_as returns a translated field that Ecto can load into a struct, so I'm doing something like the following:
  def with_translated_name(query, locale) do
    from c in query,
      select_merge: %{name: translated_as(Car, c.name, locale)}
  end

Is this how it is intended to be used, or is there a better way of doing it without the select_merge?
I haven't found any examples in the tests.
Thanks in advance!

At the moment this is the best way that we have. I have to think about it a bit more but maybe we can have a macro that allows you to translate multiple fields at once. This looks like a common use case that should be covered by the library.

authors: bigardone crbelaus

repo: crbelaus/trans