Update etcd to 3.4.10+ (3.4.13)

Why is this PR needed?
fixes CVE-2020-15106 bsc#1174951 https://github.com/SUSE/avant-garde/issues/1876
Reminder: Add the "fixes bsc#XXXX" to the title of the commit so that it will
appear in the changelog.
What does this PR do?
fix a security issue for etcd
Anything else a reviewer needs to know?
The packages are in https://build.suse.de/project/show/Devel:CaaSP:4.5:Branches:etcd_3.4.10
Info for QA
This is info for QA so that they can validate this. This is mandatory if this PR fixes a bug.
If this is a new feature, a good description in "What does this PR do" may be enough.
Related info
Info that can be relevant for QA:

link to other PRs that should be merged together
link to packages that should be released together
upstream issues

Status BEFORE applying the patch
How can we reproduce the issue? How can we see this issue? Please provide the steps and the prove
this issue is not fixed.
** Check the etcd version **
Status AFTER applying the patch
How can we validate this issue is fixed? Please provide the steps and the prove this issue is fixed.
** Check etcd version and check test results for regressions **
Docs
If docs need to be updated, please add a link to a PR to https://github.com/SUSE/doc-caasp.
At the time of creating the issue, this PR can be work in progress (set its title to [WIP]),
but the documentation needs to be finalized before the PR can be merged.
etcd version should be updated into the attributes file
https://github.com/SUSE/doc-caasp/pull/972
Merge restrictions
(Please do not edit this)
We are in v4-maintenance phase, so we will restrict what can be merged to prevent unexpected surprises:
What can be merged (merge criteria):
    2 approvals:
        1 developer: code is fine
        1 QA: QA is fine
    there is a PR for updating documentation (or a statement that this is not needed)

This is the error I see
Aug 18 12:26:10<PHONE_NUMBER>144 kubelet[20993]: I0818 12:26:10.978689   20993 kubelet_getters.go:173] status for pod etcd-caasp-master-105-caasp-jobs-dev-e2e-test-0 updated to {Running [{Initialized True 0001-01-01 00:00:00 +0000 UTC 2020-08-18 12:11:11 +0000 UTC  } {Ready True 0001-01-01 00:00:00 +0000 UTC 2020-08-18 12:25:59 +0000 UTC  } {ContainersReady True 0001-01-01 00:00:00 +0000 UTC 2020-08-18 12:25:59 +0000 UTC  } {PodScheduled True 0001-01-01 00:00:00 +0000 UTC 2020-08-18 12:11:11 +0000 UTC  }]    <IP_ADDRESS> <IP_ADDRESS> [{<IP_ADDRESS>}] 2020-08-18 12:11:11 +0000 UTC [] [{etcd {nil &ContainerStateRunning{StartedAt:2020-08-18 12:25:59 +0000 UTC,} nil} {nil nil &ContainerStateTerminated{ExitCode:2,Signal:0,Reason:Error,Message:,StartedAt:2020-08-18 12:21:45 +0000 UTC,FinishedAt:2020-08-18 12:23:15 +0000 UTC,ContainerID:cri-o://6680ca37dbcffa0b2a75f2868221e61951f8630bc568156861fe012dfe492630,}} true 7 registry.suse.de/devel/caasp/4.5/containers/containers/caasp/v4.5/etcd:3.4.10 registry.suse.de/devel/caasp/4.5/containers/containers/caasp/v4.5/etcd@sha256:1ba623cd1cfe7e96161bb0306b3d9981ac69b8915a199a17cff74a5f739bf73b cri-o://471d4157cb521c57303c117ac5f0e28893caacd9f127ff127bbac2cadce1675a 0xc001b137a9}] BestEffort []}
Aug 18 12:26:10<PHONE_NUMBER>144 kubelet[20993]: I0818 12:26:10.978723   20993 kubelet_getters.go:173] status for pod kube-apiserver-caasp-master-105-caasp-jobs-dev-e2e-test-0 updated to {Running [{Initialized True 0001-01-01 00:00:00 +0000 UTC 2020-08-18 12:11:11 +0000 UTC  } {Ready False 0001-01-01 00:00:00 +0000 UTC 2020-08-18 12:22:29 +0000 UTC ContainersNotReady containers with unready status: [kube-apiserver]} {ContainersReady False 0001-01-01 00:00:00 +0000 UTC 2020-08-18 12:22:29 +0000 UTC ContainersNotReady containers with unready status: [kube-apiserver]} {PodScheduled True 0001-01-01 00:00:00 +0000 UTC 2020-08-18 12:11:11 +0000 UTC  }]    <IP_ADDRESS> <IP_ADDRESS> [{<IP_ADDRESS>}] 2020-08-18 12:11:11 +0000 UTC [] [{kube-apiserver {&ContainerStateWaiting{Reason:CrashLoopBackOff,Message:back-off 5m0s restarting failed container=kube-apiserver pod=kube-apiserver-caasp-master-105-caasp-jobs-dev-e2e-test-0_kube-system(89696ff2b9d2600bb7ad2106752bb89e),} nil nil} {nil nil &ContainerStateTerminated{ExitCode:2,Signal:0,Reason:Error,Message:,StartedAt:2020-08-18 12:22:08 +0000 UTC,FinishedAt:2020-08-18 12:22:28 +0000 UTC,ContainerID:cri-o://22ac539d13180a243b10ef22225324ac35fae5044577fe376f6dfe47491103e4,}} false 7 registry.suse.de/devel/caasp/4.5/containers/containers/caasp/v4.5/kube-apiserver:v1.18.6 registry.suse.de/devel/caasp/4.5/containers/containers/caasp/v4.5/kube-apiserver@sha256:a16e46ca50fadbe5676d8cf37a8f3f2194e06b0a70f3aa0d6c59edcd71ee403b cri-o://22ac539d13180a243b10ef22225324ac35fae5044577fe376f6dfe47491103e4 0xc000eba609}] Burstable []}
Aug 18 12:26:10<PHONE_NUMBER>144 kubelet[20993]: I0818 12:26:10.978754   20993 kubelet_getters.go:173] status for pod kube-scheduler-caasp-master-105-caasp-jobs-dev-e2e-test-0 updated to {Running [{Initialized True 0001-01-01 00:00:00 +0000 UTC 2020-08-18 12:11:11 +0000 UTC  } {Ready True 0001-01-01 00:00:00 +0000 UTC 2020-08-18 12:13:11 +0000 UTC  } {ContainersReady True 0001-01-01 00:00:00 +0000 UTC 2020-08-18 12:13:11 +0000 UTC  } {PodScheduled True 0001-01-01 00:00:00 +0000 UTC 2020-08-18 12:11:11 +0000 UTC  }]    <IP_ADDRESS> <IP_ADDRESS> [{<IP_ADDRESS>}] 2020-08-18 12:11:11 +0000 UTC [] [{kube-scheduler {nil &ContainerStateRunning{StartedAt:2020-08-18 12:13:10 +0000 UTC,} nil} {nil nil &ContainerStateTerminated{ExitCode:255,Signal:0,Reason:Error,Message:,StartedAt:2020-08-18 12:09:56 +0000 UTC,FinishedAt:2020-08-18 12:13:10 +0000 UTC,ContainerID:cri-o://a859af8bc5046a70e65c008f7f4bd452522b3263c3cb8c242b9535fedd6bed6d,}} true 1 registry.suse.de/devel/caasp/4.5/containers/containers/caasp/v4.5/kube-scheduler:v1.18.6 registry.suse.de/devel/caasp/4.5/containers/containers/caasp/v4.5/kube-scheduler@sha256:90685b90dcb5c7f427b02150d08fd94fffd8c524e4eda85a752ee3cf8b8e9b0b cri-o://a98528ef0365b58392708e75b2c8df37c58f8b6c5c351cabc63bb74e14b5a9d3 0xc0017c4b89}] Burstable []}
Aug 18 12:26:11<PHONE_NUMBER>144 kubelet[20993]: E0818 12:26:11.295505   20993 event.go:269] Unable to write event: 'Post https://<IP_ADDRESS>:6443/api/v1/namespaces/kube-system/events: EOF' (may retry after sleeping)
Aug 18 12:26:13<PHONE_NUMBER>144 kubelet[20993]: E0818 12:26:13.196127   20993 reflector.go:178] object-"kube-system"/"oidc-gangway-cert": Failed to list *v1.Secret: an error on the server ("") has prevented the request from succeeding (get secrets)
Aug 18 12:26:13<PHONE_NUMBER>144 kubelet[20993]: W0818 12:26:13.431141   20993 status_manager.go:556] Failed to get status for pod "etcd-caasp-master-105-caasp-jobs-dev-e2e-test-0_kube-system(33d5f96b91fa3565cbfa8e3e52da970f)": an error on the server ("") has prevented the request from succeeding (get pods etcd-caasp-master-105-caasp-jobs-dev-e2e-test-0)
Aug 18 12:26:14<PHONE_NUMBER>144 kubelet[20993]: I0818 12:26:14.020966   20993 topology_manager.go:219] [topologymanager] RemoveContainer - Container ID: 0f7b30184cb6150fb560691bc9267451d4582e4d1dc6b1422a9a4cb930ee77a0
Aug 18 12:26:14<PHONE_NUMBER>144 kubelet[20993]: I0818 12:26:14.020996   20993 topology_manager.go:219] [topologymanager] RemoveContainer - Container ID: 22ac539d13180a243b10ef22225324ac35fae5044577fe376f6dfe47491103e4
Aug 18 12:26:14<PHONE_NUMBER>144 kubelet[20993]: E0818 12:26:14.021356   20993 pod_workers.go:191] Error syncing pod 5cae50ee-3a6b-45b7-9298-431d379487cc ("kucero-tjdjq_kube-system(5cae50ee-3a6b-45b7-9298-431d379487cc)"), skipping: failed to "StartContainer" for "kucero" with CrashLoopBackOff: "back-off 5m0s restarting failed container=kucero pod=kucero-tjdjq_kube-system(5cae50ee-3a6b-45b7-9298-431d379487cc)"
Aug 18 12:26:14<PHONE_NUMBER>144 kubelet[20993]: E0818 12:26:14.021558   20993 pod_workers.go:191] Error syncing pod 89696ff2b9d2600bb7ad2106752bb89e ("kube-apiserver-caasp-master-105-caasp-jobs-dev-e2e-test-0_kube-system(89696ff2b9d2600bb7ad2106752bb89e)"), skipping: failed to "StartContainer" for "kube-apiserver" with CrashLoopBackOff: "back-off 5m0s restarting failed container=kube-apiserver pod=kube-apiserver-caasp-master-105-caasp-jobs-dev-e2e-test-0_kube-system(89696ff2b9d2600bb7ad2106752bb89e)"
Aug 18 12:26:15<PHONE_NUMBER>144 kubelet[20993]: E0818 12:26:15.096292   20993 controller.go:136] failed to ensure node lease exists, will retry in 7s, error: an error on the server ("") has prevented the request from succeeding (get leases.coordination.k8s.io caasp-master-105-caasp-jobs-dev-e2e-test-0)
Aug 18 12:26:15<PHONE_NUMBER>144 kubelet[20993]: I0818 12:26:15.384257   20993 prober.go:124] Liveness probe for "etcd-caasp-master-105-caasp-jobs-dev-e2e-test-0_kube-system(33d5f96b91fa3565cbfa8e3e52da970f):etcd" failed (failure): HTTP probe failed with statuscode: 503
at https://ci.suse.de/view/CaaSP/view/CaaSP-Dev/job/caasp-jobs/job/dev/job/e2e-test/105/artifact/platform_logs/master_10_164_95_144/kubelet.log

This is the log from the etcd container that "exited":

sles@0100164095144:~> sudo crictl logs dc2b32768f9d5
2020-08-18 12:48:44.162007 W | pkg/flags: unrecognized environment variable ETCD_UNSUPPORTED_ARCH=arm64
[WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead
2020-08-18 12:48:44.162096 I | etcdmain: etcd Version: 3.4.10
2020-08-18 12:48:44.162099 I | etcdmain: Git SHA: Not provided (use ./build instead of go build)
2020-08-18 12:48:44.162101 I | etcdmain: Go Version: go1.14.2
2020-08-18 12:48:44.162103 I | etcdmain: Go OS/Arch: linux/amd64
2020-08-18 12:48:44.162106 I | etcdmain: setting maximum number of CPUs to 4, total number of available CPUs is 4
2020-08-18 12:48:44.162149 N | etcdmain: the server is already initialized as member before, starting as etcd member...
[WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead
2020-08-18 12:48:44.162166 I | embed: peerTLS: cert = /etc/kubernetes/pki/etcd/peer.crt, key = /etc/kubernetes/pki/etcd/peer.key, trusted-ca = /etc/kubernetes/pki/etcd/ca.crt, client-cert-auth = true, crl-file =
2020-08-18 12:48:44.162776 I | embed: name = caasp-master-105-caasp-jobs-dev-e2e-test-0
2020-08-18 12:48:44.162783 I | embed: data dir = /var/lib/etcd
2020-08-18 12:48:44.162786 I | embed: member dir = /var/lib/etcd/member
2020-08-18 12:48:44.162788 I | embed: heartbeat = 100ms
2020-08-18 12:48:44.162790 I | embed: election = 1000ms
2020-08-18 12:48:44.162792 I | embed: snapshot count = 10000
2020-08-18 12:48:44.162796 I | embed: advertise client URLs = https://<IP_ADDRESS>:2379
2020-08-18 12:48:44.162799 I | embed: initial advertise peer URLs = https://<IP_ADDRESS>:2380
2020-08-18 12:48:44.162808 I | embed: initial cluster =
2020-08-18 12:48:44.177965 I | etcdserver: restarting member 404272f994ea9271 in cluster 279d994dc5d9c353 at commit index 1394
raft2020/08/18 12:48:44 INFO: 404272f994ea9271 switched to configuration voters=()
raft2020/08/18 12:48:44 INFO: 404272f994ea9271 became follower at term 723
raft2020/08/18 12:48:44 INFO: newRaft 404272f994ea9271 [peers: [], term: 723, commit: 1394, applied: 0, lastindex: 1398, lastterm: 2]
2020-08-18 12:48:44.178949 W | auth: simple token is not cryptographically signed
2020-08-18 12:48:44.183967 I | etcdserver: starting server... [version: 3.4.10, cluster version: to_be_decided]
raft2020/08/18 12:48:44 INFO: 404272f994ea9271 switched to configuration voters=(4630389783161115249)
2020-08-18 12:48:44.184456 I | etcdserver/membership: added member 404272f994ea9271 [https://<IP_ADDRESS>:2380] to cluster 279d994dc5d9c353
2020-08-18 12:48:44.184523 N | etcdserver/membership: set the initial cluster version to 3.4
2020-08-18 12:48:44.184552 I | etcdserver/api: enabled capabilities for version 3.4
2020-08-18 12:48:44.185522 I | embed: ClientTLS: cert = /etc/kubernetes/pki/etcd/server.crt, key = /etc/kubernetes/pki/etcd/server.key, trusted-ca = /etc/kubernetes/pki/etcd/ca.crt, client-cert-auth = true, crl-file =
2020-08-18 12:48:44.185591 I | embed: listening for peers on <IP_ADDRESS>:2380
2020-08-18 12:48:44.185658 I | embed: listening for metrics on http://<IP_ADDRESS>:2381
raft2020/08/18 12:48:44 INFO: 404272f994ea9271 switched to configuration voters=(4630389783161115249<PHONE_NUMBER>297662078)
2020-08-18 12:48:44.188752 I | etcdserver/membership: added member 69736148f60bba7e [https://<IP_ADDRESS>:2380] to cluster 279d994dc5d9c353
2020-08-18 12:48:44.188774 I | rafthttp: starting peer 69736148f60bba7e...
2020-08-18 12:48:44.188797 I | rafthttp: started HTTP pipelining with peer 69736148f60bba7e
2020-08-18 12:48:44.189221 I | rafthttp: started streaming with peer 69736148f60bba7e (writer)
2020-08-18 12:48:44.189464 I | rafthttp: started streaming with peer 69736148f60bba7e (writer)
2020-08-18 12:48:44.190243 I | rafthttp: started peer 69736148f60bba7e
2020-08-18 12:48:44.190289 I | rafthttp: added peer 69736148f60bba7e
2020-08-18 12:48:44.190294 I | rafthttp: started streaming with peer 69736148f60bba7e (stream MsgApp v2 reader)
2020-08-18 12:48:44.190339 I | rafthttp: started streaming with peer 69736148f60bba7e (stream Message reader)
raft2020/08/18 12:48:45 INFO: 404272f994ea9271 is starting a new election at term 723
raft2020/08/18 12:48:45 INFO: 404272f994ea9271 became candidate at term 724
raft2020/08/18 12:48:45 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 724
raft2020/08/18 12:48:45 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 724
raft2020/08/18 12:48:46 INFO: 404272f994ea9271 is starting a new election at term 724
raft2020/08/18 12:48:46 INFO: 404272f994ea9271 became candidate at term 725
raft2020/08/18 12:48:46 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 725
raft2020/08/18 12:48:46 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 725
raft2020/08/18 12:48:47 INFO: 404272f994ea9271 is starting a new election at term 725
raft2020/08/18 12:48:47 INFO: 404272f994ea9271 became candidate at term 726
raft2020/08/18 12:48:47 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 726
raft2020/08/18 12:48:47 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 726
raft2020/08/18 12:48:48 INFO: 404272f994ea9271 is starting a new election at term 726
raft2020/08/18 12:48:48 INFO: 404272f994ea9271 became candidate at term 727
raft2020/08/18 12:48:48 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 727
raft2020/08/18 12:48:48 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 727
2020-08-18 12:48:49.190429 W | rafthttp: health check for peer 69736148f60bba7e could not connect: dial tcp <IP_ADDRESS>:2380: connect: connection refused
2020-08-18 12:48:49.190493 W | rafthttp: health check for peer 69736148f60bba7e could not connect: dial tcp <IP_ADDRESS>:2380: connect: connection refused
raft2020/08/18 12:48:50 INFO: 404272f994ea9271 is starting a new election at term 727
raft2020/08/18 12:48:50 INFO: 404272f994ea9271 became candidate at term 728
raft2020/08/18 12:48:50 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 728
raft2020/08/18 12:48:50 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 728
2020-08-18 12:48:51.184247 E | etcdserver: publish error: etcdserver: request timed out
raft2020/08/18 12:48:51 INFO: 404272f994ea9271 is starting a new election at term 728
raft2020/08/18 12:48:51 INFO: 404272f994ea9271 became candidate at term 729
raft2020/08/18 12:48:51 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 729
raft2020/08/18 12:48:51 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 729
raft2020/08/18 12:48:53 INFO: 404272f994ea9271 is starting a new election at term 729
raft2020/08/18 12:48:53 INFO: 404272f994ea9271 became candidate at term 730
raft2020/08/18 12:48:53 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 730
raft2020/08/18 12:48:53 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 730
2020-08-18 12:48:54.190542 W | rafthttp: health check for peer 69736148f60bba7e could not connect: dial tcp <IP_ADDRESS>:2380: connect: connection refused
2020-08-18 12:48:54.190573 W | rafthttp: health check for peer 69736148f60bba7e could not connect: dial tcp <IP_ADDRESS>:2380: connect: connection refused
raft2020/08/18 12:48:54 INFO: 404272f994ea9271 is starting a new election at term 730
raft2020/08/18 12:48:54 INFO: 404272f994ea9271 became candidate at term 731
raft2020/08/18 12:48:54 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 731
raft2020/08/18 12:48:54 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 731
raft2020/08/18 12:48:56 INFO: 404272f994ea9271 is starting a new election at term 731
raft2020/08/18 12:48:56 INFO: 404272f994ea9271 became candidate at term 732
raft2020/08/18 12:48:56 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 732
raft2020/08/18 12:48:56 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 732
raft2020/08/18 12:48:57 INFO: 404272f994ea9271 is starting a new election at term 732
raft2020/08/18 12:48:57 INFO: 404272f994ea9271 became candidate at term 733
raft2020/08/18 12:48:57 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 733
raft2020/08/18 12:48:57 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 733
2020-08-18 12:48:58.184358 E | etcdserver: publish error: etcdserver: request timed out
2020-08-18 12:48:59.190677 W | rafthttp: health check for peer 69736148f60bba7e could not connect: dial tcp <IP_ADDRESS>:2380: connect: connection refused
2020-08-18 12:48:59.190808 W | rafthttp: health check for peer 69736148f60bba7e could not connect: dial tcp <IP_ADDRESS>:2380: connect: connection refused
raft2020/08/18 12:48:59 INFO: 404272f994ea9271 is starting a new election at term 733
raft2020/08/18 12:48:59 INFO: 404272f994ea9271 became candidate at term 734
raft2020/08/18 12:48:59 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 734
raft2020/08/18 12:48:59 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 734
raft2020/08/18 12:49:00 INFO: 404272f994ea9271 is starting a new election at term 734
raft2020/08/18 12:49:00 INFO: 404272f994ea9271 became candidate at term 735
raft2020/08/18 12:49:00 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 735
raft2020/08/18 12:49:00 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 735
raft2020/08/18 12:49:02 INFO: 404272f994ea9271 is starting a new election at term 735
raft2020/08/18 12:49:02 INFO: 404272f994ea9271 became candidate at term 736
raft2020/08/18 12:49:02 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 736
raft2020/08/18 12:49:02 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 736
raft2020/08/18 12:49:03 INFO: 404272f994ea9271 is starting a new election at term 736
raft2020/08/18 12:49:03 INFO: 404272f994ea9271 became candidate at term 737
raft2020/08/18 12:49:03 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 737
raft2020/08/18 12:49:03 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 737
2020-08-18 12:49:04.190859 W | rafthttp: health check for peer 69736148f60bba7e could not connect: dial tcp <IP_ADDRESS>:2380: connect: connection refused
2020-08-18 12:49:04.190884 W | rafthttp: health check for peer 69736148f60bba7e could not connect: dial tcp <IP_ADDRESS>:2380: connect: connection refused
2020-08-18 12:49:05.184537 E | etcdserver: publish error: etcdserver: request timed out
2020-08-18 12:49:05.384131 W | etcdserver/api/etcdhttp: /health error; no leader (status code 503)
raft2020/08/18 12:49:05 INFO: 404272f994ea9271 is starting a new election at term 737
raft2020/08/18 12:49:05 INFO: 404272f994ea9271 became candidate at term 738
raft2020/08/18 12:49:05 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 738
raft2020/08/18 12:49:05 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 738
raft2020/08/18 12:49:06 INFO: 404272f994ea9271 is starting a new election at term 738
raft2020/08/18 12:49:06 INFO: 404272f994ea9271 became candidate at term 739
raft2020/08/18 12:49:06 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 739
raft2020/08/18 12:49:06 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 739
raft2020/08/18 12:49:08 INFO: 404272f994ea9271 is starting a new election at term 739
raft2020/08/18 12:49:08 INFO: 404272f994ea9271 became candidate at term 740
raft2020/08/18 12:49:08 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 740
raft2020/08/18 12:49:08 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 740
2020-08-18 12:49:09.190928 W | rafthttp: health check for peer 69736148f60bba7e could not connect: dial tcp <IP_ADDRESS>:2380: connect: connection refused
2020-08-18 12:49:09.190954 W | rafthttp: health check for peer 69736148f60bba7e could not connect: dial tcp <IP_ADDRESS>:2380: connect: connection refused
raft2020/08/18 12:49:09 INFO: 404272f994ea9271 is starting a new election at term 740
raft2020/08/18 12:49:09 INFO: 404272f994ea9271 became candidate at term 741
raft2020/08/18 12:49:09 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 741
raft2020/08/18 12:49:09 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 741
raft2020/08/18 12:49:10 INFO: 404272f994ea9271 is starting a new election at term 741
raft2020/08/18 12:49:10 INFO: 404272f994ea9271 became candidate at term 742
raft2020/08/18 12:49:10 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 742
raft2020/08/18 12:49:10 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 742
2020-08-18 12:49:12.184673 E | etcdserver: publish error: etcdserver: request timed out
raft2020/08/18 12:49:12 INFO: 404272f994ea9271 is starting a new election at term 742
raft2020/08/18 12:49:12 INFO: 404272f994ea9271 became candidate at term 743
raft2020/08/18 12:49:12 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 743
raft2020/08/18 12:49:12 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 743
raft2020/08/18 12:49:13 INFO: 404272f994ea9271 is starting a new election at term 743
raft2020/08/18 12:49:13 INFO: 404272f994ea9271 became candidate at term 744
raft2020/08/18 12:49:13 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 744
raft2020/08/18 12:49:13 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 744
2020-08-18 12:49:14.190991 W | rafthttp: health check for peer 69736148f60bba7e could not connect: dial tcp <IP_ADDRESS>:2380: connect: connection refused
2020-08-18 12:49:14.191018 W | rafthttp: health check for peer 69736148f60bba7e could not connect: dial tcp <IP_ADDRESS>:2380: connect: connection refused
raft2020/08/18 12:49:15 INFO: 404272f994ea9271 is starting a new election at term 744
raft2020/08/18 12:49:15 INFO: 404272f994ea9271 became candidate at term 745
raft2020/08/18 12:49:15 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 745
raft2020/08/18 12:49:15 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 745
2020-08-18 12:49:15.384113 W | etcdserver/api/etcdhttp: /health error; no leader (status code 503)
raft2020/08/18 12:49:16 INFO: 404272f994ea9271 is starting a new election at term 745
raft2020/08/18 12:49:16 INFO: 404272f994ea9271 became candidate at term 746
raft2020/08/18 12:49:16 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 746
raft2020/08/18 12:49:16 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 746
raft2020/08/18 12:49:17 INFO: 404272f994ea9271 is starting a new election at term 746
raft2020/08/18 12:49:17 INFO: 404272f994ea9271 became candidate at term 747
raft2020/08/18 12:49:17 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 747
raft2020/08/18 12:49:17 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 747
raft2020/08/18 12:49:18 INFO: 404272f994ea9271 is starting a new election at term 747
raft2020/08/18 12:49:18 INFO: 404272f994ea9271 became candidate at term 748
raft2020/08/18 12:49:18 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 748
raft2020/08/18 12:49:18 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 748
2020-08-18 12:49:19.184806 E | etcdserver: publish error: etcdserver: request timed out
2020-08-18 12:49:19.191158 W | rafthttp: health check for peer 69736148f60bba7e could not connect: dial tcp <IP_ADDRESS>:2380: connect: connection refused
2020-08-18 12:49:19.191183 W | rafthttp: health check for peer 69736148f60bba7e could not connect: dial tcp <IP_ADDRESS>:2380: connect: connection refused
raft2020/08/18 12:49:20 INFO: 404272f994ea9271 is starting a new election at term 748
raft2020/08/18 12:49:20 INFO: 404272f994ea9271 became candidate at term 749
raft2020/08/18 12:49:20 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 749
raft2020/08/18 12:49:20 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 749
raft2020/08/18 12:49:21 INFO: 404272f994ea9271 is starting a new election at term 749
raft2020/08/18 12:49:21 INFO: 404272f994ea9271 became candidate at term 750
raft2020/08/18 12:49:21 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 750
raft2020/08/18 12:49:21 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 750
raft2020/08/18 12:49:23 INFO: 404272f994ea9271 is starting a new election at term 750
raft2020/08/18 12:49:23 INFO: 404272f994ea9271 became candidate at term 751
raft2020/08/18 12:49:23 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 751
raft2020/08/18 12:49:23 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 751
2020-08-18 12:49:24.191212 W | rafthttp: health check for peer 69736148f60bba7e could not connect: dial tcp <IP_ADDRESS>:2380: connect: connection refused
2020-08-18 12:49:24.191253 W | rafthttp: health check for peer 69736148f60bba7e could not connect: dial tcp <IP_ADDRESS>:2380: connect: connection refused
raft2020/08/18 12:49:24 INFO: 404272f994ea9271 is starting a new election at term 751
raft2020/08/18 12:49:24 INFO: 404272f994ea9271 became candidate at term 752
raft2020/08/18 12:49:24 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 752
raft2020/08/18 12:49:24 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 752
2020-08-18 12:49:25.384031 W | etcdserver/api/etcdhttp: /health error; no leader (status code 503)
raft2020/08/18 12:49:25 INFO: 404272f994ea9271 is starting a new election at term 752
raft2020/08/18 12:49:25 INFO: 404272f994ea9271 became candidate at term 753
raft2020/08/18 12:49:25 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 753
raft2020/08/18 12:49:25 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 753
2020-08-18 12:49:26.184983 E | etcdserver: publish error: etcdserver: request timed out
raft2020/08/18 12:49:27 INFO: 404272f994ea9271 is starting a new election at term 753
raft2020/08/18 12:49:27 INFO: 404272f994ea9271 became candidate at term 754
raft2020/08/18 12:49:27 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 754
raft2020/08/18 12:49:27 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 754
raft2020/08/18 12:49:28 INFO: 404272f994ea9271 is starting a new election at term 754
raft2020/08/18 12:49:28 INFO: 404272f994ea9271 became candidate at term 755
raft2020/08/18 12:49:28 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 755
raft2020/08/18 12:49:28 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 755
2020-08-18 12:49:29.191279 W | rafthttp: health check for peer 69736148f60bba7e could not connect: dial tcp <IP_ADDRESS>:2380: connect: connection refused
2020-08-18 12:49:29.191319 W | rafthttp: health check for peer 69736148f60bba7e could not connect: dial tcp <IP_ADDRESS>:2380: connect: connection refused
raft2020/08/18 12:49:29 INFO: 404272f994ea9271 is starting a new election at term 755
raft2020/08/18 12:49:29 INFO: 404272f994ea9271 became candidate at term 756
raft2020/08/18 12:49:29 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 756
raft2020/08/18 12:49:29 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 756
raft2020/08/18 12:49:30 INFO: 404272f994ea9271 is starting a new election at term 756
raft2020/08/18 12:49:30 INFO: 404272f994ea9271 became candidate at term 757
raft2020/08/18 12:49:30 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 757
raft2020/08/18 12:49:30 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 757
raft2020/08/18 12:49:32 INFO: 404272f994ea9271 is starting a new election at term 757
raft2020/08/18 12:49:32 INFO: 404272f994ea9271 became candidate at term 758
raft2020/08/18 12:49:32 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 758
raft2020/08/18 12:49:32 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 758
2020-08-18 12:49:33.185154 E | etcdserver: publish error: etcdserver: request timed out
raft2020/08/18 12:49:33 INFO: 404272f994ea9271 is starting a new election at term 758
raft2020/08/18 12:49:33 INFO: 404272f994ea9271 became candidate at term 759
raft2020/08/18 12:49:33 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 759
raft2020/08/18 12:49:33 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 759
2020-08-18 12:49:34.191326 W | rafthttp: health check for peer 69736148f60bba7e could not connect: dial tcp <IP_ADDRESS>:2380: connect: connection refused
2020-08-18 12:49:34.191363 W | rafthttp: health check for peer 69736148f60bba7e could not connect: dial tcp <IP_ADDRESS>:2380: connect: connection refused
raft2020/08/18 12:49:35 INFO: 404272f994ea9271 is starting a new election at term 759
raft2020/08/18 12:49:35 INFO: 404272f994ea9271 became candidate at term 760
raft2020/08/18 12:49:35 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 760
raft2020/08/18 12:49:35 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 760
2020-08-18 12:49:35.384093 W | etcdserver/api/etcdhttp: /health error; no leader (status code 503)
raft2020/08/18 12:49:36 INFO: 404272f994ea9271 is starting a new election at term 760
raft2020/08/18 12:49:36 INFO: 404272f994ea9271 became candidate at term 761
raft2020/08/18 12:49:36 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 761
raft2020/08/18 12:49:36 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 761
raft2020/08/18 12:49:37 INFO: 404272f994ea9271 is starting a new election at term 761
raft2020/08/18 12:49:37 INFO: 404272f994ea9271 became candidate at term 762
raft2020/08/18 12:49:37 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 762
raft2020/08/18 12:49:37 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 762
raft2020/08/18 12:49:38 INFO: 404272f994ea9271 is starting a new election at term 762
raft2020/08/18 12:49:38 INFO: 404272f994ea9271 became candidate at term 763
raft2020/08/18 12:49:38 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 763
raft2020/08/18 12:49:38 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 763
2020-08-18 12:49:39.191390 W | rafthttp: health check for peer 69736148f60bba7e could not connect: dial tcp <IP_ADDRESS>:2380: connect: connection refused
2020-08-18 12:49:39.191418 W | rafthttp: health check for peer 69736148f60bba7e could not connect: dial tcp <IP_ADDRESS>:2380: connect: connection refused
2020-08-18 12:49:40.185273 E | etcdserver: publish error: etcdserver: request timed out
raft2020/08/18 12:49:40 INFO: 404272f994ea9271 is starting a new election at term 763
raft2020/08/18 12:49:40 INFO: 404272f994ea9271 became candidate at term 764
raft2020/08/18 12:49:40 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 764
raft2020/08/18 12:49:40 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 764
raft2020/08/18 12:49:41 INFO: 404272f994ea9271 is starting a new election at term 764
raft2020/08/18 12:49:41 INFO: 404272f994ea9271 became candidate at term 765
raft2020/08/18 12:49:41 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 765
raft2020/08/18 12:49:41 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 765
raft2020/08/18 12:49:42 INFO: 404272f994ea9271 is starting a new election at term 765
raft2020/08/18 12:49:42 INFO: 404272f994ea9271 became candidate at term 766
raft2020/08/18 12:49:42 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 766
raft2020/08/18 12:49:42 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 766
2020-08-18 12:49:44.191499 W | rafthttp: health check for peer 69736148f60bba7e could not connect: dial tcp <IP_ADDRESS>:2380: connect: connection refused
2020-08-18 12:49:44.191529 W | rafthttp: health check for peer 69736148f60bba7e could not connect: dial tcp <IP_ADDRESS>:2380: connect: connection refused
raft2020/08/18 12:49:44 INFO: 404272f994ea9271 is starting a new election at term 766
raft2020/08/18 12:49:44 INFO: 404272f994ea9271 became candidate at term 767
raft2020/08/18 12:49:44 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 767
raft2020/08/18 12:49:44 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 767
2020-08-18 12:49:45.384079 W | etcdserver/api/etcdhttp: /health error; no leader (status code 503)
raft2020/08/18 12:49:46 INFO: 404272f994ea9271 is starting a new election at term 767
raft2020/08/18 12:49:46 INFO: 404272f994ea9271 became candidate at term 768
raft2020/08/18 12:49:46 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 768
raft2020/08/18 12:49:46 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 768
2020-08-18 12:49:47.185449 E | etcdserver: publish error: etcdserver: request timed out
raft2020/08/18 12:49:47 INFO: 404272f994ea9271 is starting a new election at term 768
raft2020/08/18 12:49:47 INFO: 404272f994ea9271 became candidate at term 769
raft2020/08/18 12:49:47 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 769
raft2020/08/18 12:49:47 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 769
raft2020/08/18 12:49:49 INFO: 404272f994ea9271 is starting a new election at term 769
raft2020/08/18 12:49:49 INFO: 404272f994ea9271 became candidate at term 770
raft2020/08/18 12:49:49 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 770
raft2020/08/18 12:49:49 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 770
2020-08-18 12:49:49.191978 W | rafthttp: health check for peer 69736148f60bba7e could not connect: dial tcp <IP_ADDRESS>:2380: connect: connection refused
2020-08-18 12:49:49.192004 W | rafthttp: health check for peer 69736148f60bba7e could not connect: dial tcp <IP_ADDRESS>:2380: connect: connection refused
raft2020/08/18 12:49:50 INFO: 404272f994ea9271 is starting a new election at term 770
raft2020/08/18 12:49:50 INFO: 404272f994ea9271 became candidate at term 771
raft2020/08/18 12:49:50 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 771
raft2020/08/18 12:49:50 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 771
raft2020/08/18 12:49:52 INFO: 404272f994ea9271 is starting a new election at term 771
raft2020/08/18 12:49:52 INFO: 404272f994ea9271 became candidate at term 772
raft2020/08/18 12:49:52 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 772
raft2020/08/18 12:49:52 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 772
2020-08-18 12:49:54.185609 E | etcdserver: publish error: etcdserver: request timed out
2020-08-18 12:49:54.192084 W | rafthttp: health check for peer 69736148f60bba7e could not connect: dial tcp <IP_ADDRESS>:2380: connect: connection refused
2020-08-18 12:49:54.192150 W | rafthttp: health check for peer 69736148f60bba7e could not connect: dial tcp <IP_ADDRESS>:2380: connect: connection refused
raft2020/08/18 12:49:54 INFO: 404272f994ea9271 is starting a new election at term 772
raft2020/08/18 12:49:54 INFO: 404272f994ea9271 became candidate at term 773
raft2020/08/18 12:49:54 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 773
raft2020/08/18 12:49:54 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 773
2020-08-18 12:49:55.383951 W | etcdserver/api/etcdhttp: /health error; no leader (status code 503)
raft2020/08/18 12:49:55 INFO: 404272f994ea9271 is starting a new election at term 773
raft2020/08/18 12:49:55 INFO: 404272f994ea9271 became candidate at term 774
raft2020/08/18 12:49:55 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 774
raft2020/08/18 12:49:55 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 774
raft2020/08/18 12:49:57 INFO: 404272f994ea9271 is starting a new election at term 774
raft2020/08/18 12:49:57 INFO: 404272f994ea9271 became candidate at term 775
raft2020/08/18 12:49:57 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 775
raft2020/08/18 12:49:57 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 775
raft2020/08/18 12:49:58 INFO: 404272f994ea9271 is starting a new election at term 775
raft2020/08/18 12:49:58 INFO: 404272f994ea9271 became candidate at term 776
raft2020/08/18 12:49:58 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 776
raft2020/08/18 12:49:58 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 776
2020-08-18 12:49:59.192241 W | rafthttp: health check for peer 69736148f60bba7e could not connect: dial tcp <IP_ADDRESS>:2380: connect: connection refused
2020-08-18 12:49:59.192268 W | rafthttp: health check for peer 69736148f60bba7e could not connect: dial tcp <IP_ADDRESS>:2380: connect: connection refused
raft2020/08/18 12:50:00 INFO: 404272f994ea9271 is starting a new election at term 776
raft2020/08/18 12:50:00 INFO: 404272f994ea9271 became candidate at term 777
raft2020/08/18 12:50:00 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 777
raft2020/08/18 12:50:00 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 777
2020-08-18 12:50:01.185778 E | etcdserver: publish error: etcdserver: request timed out
raft2020/08/18 12:50:01 INFO: 404272f994ea9271 is starting a new election at term 777
raft2020/08/18 12:50:01 INFO: 404272f994ea9271 became candidate at term 778
raft2020/08/18 12:50:01 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 778
raft2020/08/18 12:50:01 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 778
raft2020/08/18 12:50:02 INFO: 404272f994ea9271 is starting a new election at term 778
raft2020/08/18 12:50:02 INFO: 404272f994ea9271 became candidate at term 779
raft2020/08/18 12:50:02 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 779
raft2020/08/18 12:50:02 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 779
2020-08-18 12:50:04.192350 W | rafthttp: health check for peer 69736148f60bba7e could not connect: dial tcp <IP_ADDRESS>:2380: connect: connection refused
2020-08-18 12:50:04.192375 W | rafthttp: health check for peer 69736148f60bba7e could not connect: dial tcp <IP_ADDRESS>:2380: connect: connection refused
raft2020/08/18 12:50:04 INFO: 404272f994ea9271 is starting a new election at term 779
raft2020/08/18 12:50:04 INFO: 404272f994ea9271 became candidate at term 780
raft2020/08/18 12:50:04 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 780
raft2020/08/18 12:50:04 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 780
2020-08-18 12:50:05.384017 W | etcdserver/api/etcdhttp: /health error; no leader (status code 503)
raft2020/08/18 12:50:06 INFO: 404272f994ea9271 is starting a new election at term 780
raft2020/08/18 12:50:06 INFO: 404272f994ea9271 became candidate at term 781
raft2020/08/18 12:50:06 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 781
raft2020/08/18 12:50:06 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 781
raft2020/08/18 12:50:08 INFO: 404272f994ea9271 is starting a new election at term 781
raft2020/08/18 12:50:08 INFO: 404272f994ea9271 became candidate at term 782
raft2020/08/18 12:50:08 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 782
raft2020/08/18 12:50:08 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 782
2020-08-18 12:50:08.185936 E | etcdserver: publish error: etcdserver: request timed out
raft2020/08/18 12:50:09 INFO: 404272f994ea9271 is starting a new election at term 782
raft2020/08/18 12:50:09 INFO: 404272f994ea9271 became candidate at term 783
raft2020/08/18 12:50:09 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 783
raft2020/08/18 12:50:09 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 783
2020-08-18 12:50:09.192418 W | rafthttp: health check for peer 69736148f60bba7e could not connect: dial tcp <IP_ADDRESS>:2380: connect: connection refused
2020-08-18 12:50:09.192454 W | rafthttp: health check for peer 69736148f60bba7e could not connect: dial tcp <IP_ADDRESS>:2380: connect: connection refused
raft2020/08/18 12:50:10 INFO: 404272f994ea9271 is starting a new election at term 783
raft2020/08/18 12:50:10 INFO: 404272f994ea9271 became candidate at term 784
raft2020/08/18 12:50:10 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 784
raft2020/08/18 12:50:10 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 784
raft2020/08/18 12:50:12 INFO: 404272f994ea9271 is starting a new election at term 784
raft2020/08/18 12:50:12 INFO: 404272f994ea9271 became candidate at term 785
raft2020/08/18 12:50:12 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 785
raft2020/08/18 12:50:12 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 785
raft2020/08/18 12:50:13 INFO: 404272f994ea9271 is starting a new election at term 785
raft2020/08/18 12:50:13 INFO: 404272f994ea9271 became candidate at term 786
raft2020/08/18 12:50:13 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 786
raft2020/08/18 12:50:13 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 786
2020-08-18 12:50:14.192547 W | rafthttp: health check for peer 69736148f60bba7e could not connect: dial tcp <IP_ADDRESS>:2380: connect: connection refused
2020-08-18 12:50:14.192574 W | rafthttp: health check for peer 69736148f60bba7e could not connect: dial tcp <IP_ADDRESS>:2380: connect: connection refused
raft2020/08/18 12:50:15 INFO: 404272f994ea9271 is starting a new election at term 786
raft2020/08/18 12:50:15 INFO: 404272f994ea9271 became candidate at term 787
raft2020/08/18 12:50:15 INFO: 404272f994ea9271 received MsgVoteResp from 404272f994ea9271 at term 787
raft2020/08/18 12:50:15 INFO: 404272f994ea9271 [logterm: 2, index: 1398] sent MsgVote request to 69736148f60bba7e at term 787
2020-08-18 12:50:15.186071 E | etcdserver: publish error: etcdserver: request timed out
2020-08-18 12:50:15.384067 W | etcdserver/api/etcdhttp: /health error; no leader (status code 503)

@dannysauer Were you able to deploy a cluster with this new etcd? Can you give it a try?

It ran, but I didn't do a full cluster. I'll give that a shot now.

It ran, but I didn't do a full cluster. I'll give that a shot now.

Well, that's not working out.  My SCC access still doesn't work, so I can't enable anything on my SLES 15.2 image, which inhibits building an actual cluster.  :facepalm:
The etcd container log above indicates that there are two nodes in this etcd cluster - 404272f994ea9271 is the one running (on <IP_ADDRESS>), and 69736148f60bba7e, which should be reachable at <IP_ADDRESS>:2380.  However, messages sent to 69736148f60bba7e are getting "connection refused", which means either that second etcd instance isn't listening on port 2080, or the connection is being rejected by a firewall rule.  I don't think that indicates an error in etcd, since this container's instance didn't log an issue with starting up and binding to port 2080.  But that does cause kubeadm to fail to work, since the etcd cluster appears to fail to enter a healthy state.
I thought I'd pull down the container and see if I could replicate that behavior in just a manual etcd cluster, but the registry URL in the kubelet log - registry.suse.de/devel/caasp/4.5/containers/containers/caasp/v4.5/etcd:3.4.10 - isn't something podman will pull for me.  I had to use registry.suse.de/devel/caasp/4.5/branches/etcd_3.4.10/containers/caasp/v4.5/etcd:3.4.10.  So I'm a little curious how the CI worked when I can't get that container to run at all here.  But that's maybe a separate thing.

It ran, but I didn't do a full cluster. I'll give that a shot now.

Well, that's not working out. My SCC access still doesn't work, so I can't enable anything on my SLES 15.2 image, which inhibits building an actual cluster. facepalm
The etcd container log above indicates that there are two nodes in this etcd cluster - 404272f994ea9271 is the one running (on <IP_ADDRESS>), and 69736148f60bba7e, which should be reachable at <IP_ADDRESS>:2380. However, messages sent to 69736148f60bba7e are getting "connection refused", which means either that second etcd instance isn't listening on port 2080, or the connection is being rejected by a firewall rule. I don't think that indicates an error in etcd, since this container's instance didn't log an issue with starting up and binding to port 2080. But that does cause kubeadm to fail to work, since the etcd cluster appears to fail to enter a healthy state.
I thought I'd pull down the container and see if I could replicate that behavior in just a manual etcd cluster, but the registry URL in the kubelet log - registry.suse.de/devel/caasp/4.5/containers/containers/caasp/v4.5/etcd:3.4.10 - isn't something podman will pull for me. I had to use registry.suse.de/devel/caasp/4.5/branches/etcd_3.4.10/containers/caasp/v4.5/etcd:3.4.10. So I'm a little curious how the CI worked when I can't get that container to run at all here. But that's maybe a separate thing.

Hi! I just sent you a subscription key for SCC on private message.
CI uses a cri-o feature for mirroring registry.suse.de/devel/caasp/4.5/containers/containers/ to registry.suse.de/devel/caasp/4.5/branches/etcd_3.4.10/. In short, you can see the registries.conf configuration in:
https://ci.suse.de/job/caasp-jobs/job/pr/job/test/job/PR-1327/1/artifact/platform_logs/master_10_164_95_77/containers/registries.conf
unqualified-search-registries = [ "docker.io",]
[[registry]]
prefix = "registry.suse.de/devel/caasp/4.5/containers/containers"
location = "registry.suse.de/devel/caasp/4.5/containers/containers"
[[registry.mirror]]
location = "registry.suse.de/devel/caasp/4.5/branches/etcd_3.4.10/containers"
insecure = true

I was able to pass the tests with master, this is why I think the etcd update is the cause of the "broken deployment"

Well, if changing etcd is what breaks it, then it's reasonable to guess that etcd is the problem. 😂
Thanks for sharing the key. I'll get a cluster up this afternoon and see if I can track down where things are going wrong.

Ah.  On the other master node, which is .139, there's this:
sles@0100164095139:~> sudo crictl logs 05b5d90a0028a
2020-08-18 16:44:44.111591 W | pkg/flags: unrecognized environment variable ETCD_UNSUPPORTED_ARCH=arm64
[WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead
2020-08-18 16:44:44.111672 I | etcdmain: etcd Version: 3.4.10
2020-08-18 16:44:44.111675 I | etcdmain: Git SHA: Not provided (use ./build instead of go build)
2020-08-18 16:44:44.111678 I | etcdmain: Go Version: go1.14.2
2020-08-18 16:44:44.111681 I | etcdmain: Go OS/Arch: linux/amd64
2020-08-18 16:44:44.111683 I | etcdmain: setting maximum number of CPUs to 4, total number of available CPUs is 4
[WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead
2020-08-18 16:44:44.111736 I | embed: peerTLS: cert = /etc/kubernetes/pki/etcd/peer.crt, key = /etc/kubernetes/pki/etcd/peer.key, trusted-ca = /etc/kubernetes/pki/etcd/ca.cr
t, client-cert-auth = true, crl-file =
2020-08-18 16:44:44.112171 I | embed: name = caasp-master-105-caasp-jobs-dev-e2e-test-1
2020-08-18 16:44:44.112180 I | embed: data dir = /var/lib/etcd
2020-08-18 16:44:44.112183 I | embed: member dir = /var/lib/etcd/member
2020-08-18 16:44:44.112186 I | embed: heartbeat = 100ms
2020-08-18 16:44:44.112188 I | embed: election = 1000ms
2020-08-18 16:44:44.112190 I | embed: snapshot count = 10000
2020-08-18 16:44:44.112200 I | embed: advertise client URLs = https://<IP_ADDRESS>:2379
2020-08-18 16:44:44.112285 C | etcdmain: cannot access data directory: directory "/var/lib/etcd","drwxr-xr-x" exist without desired file permission "-rwx------".

So node .144 has an etcd which (perhaps accurately) thinks it's in an existing cluster with .139, but .139 isn't starting because the permissions on the datadir are wrong.  Sure enough:
sles@0100164095139:~> ls -ld /var/lib/etcd
drwxr-xr-x 1 root root 0 Aug 18 12:12 /var/lib/etcd
sles@0100164095139:~> sudo chmod 0700 /var/lib/etcd

After fixing the data directory permissions to what they're supposed to be, the second etcd came up just fine and then the first one also came up.  Provisioning failed because the second etcd was added but didn't run, which makes a 2-node etcd cluster that thinks its in split-brain.  In that case, etcd doesn't handle reads or writes, and then the API server can't API so everything fails.

How do we fix this? And why is it happening with the new etcd and not with the old one?

I wonder if it was a sporadic failure in the CI?  I'm digging to see what makes that directory to begin with.  I think the container expects that to exist before it starts, so I'm assuming either kubernetes or skuba?  Does cri-o create the directory if a non-existing directory is specified as a volume?  That would make sense for why it was created with the default 022 umask.

Adding the second etcd node failed the same way on reexecution.  So this seems likely to be related to the container somehow.  I'll look into what is different here this afternoon.
If we can't find the issue, I don't think this vulnerability is significant enough to delay the initial release.  The etcd endpoints should only be accessible inside the cluster if a customer has set up their firewall rules / network segmentation following our suggestions in the admin guide; etcd should only be accessible by k8s nodes (or by trusted nodes).  Exploiting this vulnerability requires an attacker to take control of the etcd leader in order to send crafted WAL entries, which means access to the SSL certs or local machine access.  Those are generally pretty high bars.  So, delaying this to a maintenance release rather than calling it a release blocker should be ok.

Looks like this is actually a feature in newer etcd.  I looked at an old 4.2.0 cluster:
sauer@macdanny:~> ssh <IP_ADDRESS> ls -ld /var/lib/etcd/
drwx------ 3 root root 20 Jul  9 13:48 /var/lib/etcd/
sauer@macdanny:~> ssh <IP_ADDRESS> ls -ld /var/lib/etcd/
drwxr-xr-x 3 root root 20 Jul  9 14:48 /var/lib/etcd/
sauer@macdanny:~> ssh <IP_ADDRESS> ls -ld /var/lib/etcd/
drwxr-xr-x 3 root root 20 Jun 26 01:26 /var/lib/etcd/

Note that the first master node created has the right permissions on /var/lib/etcd, but the second and third nodes do not.  What's new is that etcd requires the tighter perms.  There was an issue created in kubeadm which addressed this behavior a while ago - https://github.com/kubernetes/kubeadm/issues/1308.  So, could be that there's actually a defect (either on our end of kubeadm) when growing the etcd cluster.
This directory permission checking behavior is newly introduced with etcd 3.4.10 in https://github.com/etcd-io/etcd/pull/11798, and is mentioned as a breaking change in the changelog (whoops) https://github.com/etcd-io/etcd/blob/master/CHANGELOG-3.4.md

Looks like the mkdir for additional etcd nodes was removed in https://github.com/kubernetes/kubernetes/commit/6bbed9fef00d9789abf041f3961c9543e7a4ff45#diff-0960dc0bb7c3e7113a0daa027856b8f9.  Opening upstream issue.

https://github.com/kubernetes/kubeadm/issues/2256

I am happy we could test this before accepting the packages into the build service repo. @pablochacin @davidcassany well done with the "github label to ibs project" link CI feature :+1:

The failure was reduced to a warning in 3.4.13 at the end of last week, so we can deploy that without waiting for the kubectl fix/backport or breaking customers. I'll get the IBS request updated.

I'm still having a problem with it not building cleanly after the OBS go module service updates the vendor tarball  I might need some help from someone who knows how go module vendoring works better than I do (which is setting the bar pretty low :D).

if Im not mistaken this is superseeded by https://github.com/SUSE/skuba/pull/1402 so closing this


Broken Link on page

Hi this link is broken:
"Azure Stack Hybrid CI/CD Solution Guide"

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

ID: 9cf42ceb-0ba8-1faf-9324-f0720a28ea38
Version Independent ID: 3c17583e-a441-875a-1a73-e2512fcf397a
Content: Create an edge machine learning solution with Azure and Azure Stack
Content Source: articles/azure-stack/user/azure-stack-solution-machine-learning.md
Service: azure-stack
GitHub Login: @mattbriggs
Microsoft Alias: mabrigg

@cenkersoy Thanks for the feedback! I have assigned the issue to the content author to evaluate and update as appropriate. You can find the correct link Here.
@mattbriggs I would make this change myself, but there are other pending changes to the doc.

@cenkersoy Thanks! fixed. #please-close

@cenkersoy We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.


Store which song was played before and after

This would help with the analysis of suggested songs.

This is not necessary as it is possible to assess this through the listening activity ID (-1 and +1)


Setting a GridLayout with both rows and columns equal to 1 and adding a second widget

Environment Info
kivy: 1.9.2.dev0
pygments: 2.2.0
docutils: 0.13.1
watchdog: 0.8.3
jedi: 0.10.0
gitpython: 2.1.3
six: 1.10.0
kivy-garden: 0.1.4
Platform: Windows-7-6.1.7601-SP1
Python: 3.6.0
Traceback
Traceback (most recent call last):
File "c:\Python36\lib\site-packages\kivy\core\window\window_sdl2.py", line 659, in mainloop
self._mainloop()
File "c:\Python36\lib\site-packages\kivy\core\window\window_sdl2.py", line 405, in _mainloop
EventLoop.idle()
File "c:\Python36\lib\site-packages\kivy\base.py", line 348, in idle
Clock.tick_draw()
File "c:\Python36\lib\site-packages\kivy\clock.py", line 588, in tick_draw
self._process_events_before_frame()
File "kivy_clock.pyx", line 405, in kivy._clock.CyClockBase._process_events_before_frame (kivy_clock.c:8381)
File "kivy_clock.pyx", line 445, in kivy._clock.CyClockBase._process_events_before_frame (kivy_clock.c:8255)
File "kivy_clock.pyx", line 443, in kivy._clock.CyClockBase._process_events_before_frame (kivy_clock.c:8176)
File "kivy_clock.pyx", line 167, in kivy._clock.ClockEvent.tick (kivy_clock.c:3490)
File "c:\Python36\lib\site-packages\kivy\uix\gridlayout.py", line 506, in do_layout
self._fill_rows_cols_sizes()
File "c:\Python36\lib\site-packages\kivy\uix\gridlayout.py", line 357, in _fill_rows_cols_sizes
rows_sh[row] = nmax(rows_sh[row], shh)
IndexError: list index out of range
End of Traceback

I can't duplicate this message, though I am using a different environment (Kivy 1.9.1, Python 3.4.4, Windows 10). However I do get error messages, though they are only in console and do not cause any crash.
I receive several of the following:
Traceback (most recent call last):
  File "kivy\properties.pyx", line 501, in kivy.properties.Property.dispatch (kivy\properties.c:6557)
  File "kivy\_event.pyx", line 1224, in kivy._event.EventObservers.dispatch (kivy\_event.c:13497)
  File "kivy\_event.pyx", line 1130, in kivy._event.EventObservers._dispatch (kivy\_event.c:12696)
  File "C:\Python34\lib\site-packages\kivy\uix\gridlayout.py", line 276, in on_children
    'Too many children in GridLayout. Increase rows/cols!')
kivy.uix.gridlayout.GridLayoutException: Too many children in GridLayout. Increase rows/cols!

I expected the Kivy Designer "KV Lang Area" or Error console to report this as an error or warning, however no such message appears. The widget in the area still appears to be a child of the GridLayout, but only the positioning (bottom left corner) states otherwise.


Use a single timestamp for the build

We compute a timestamp for the build. This timestamp is currently saved into the index.json file.
We also use a timestamp to compute the build folder (pkg_name_123123123) where 123132123 is the timestamp. We use a different timestamp there.
For reproducibilty purposes it would be much better to use the same timestamp in both places. At the start of the build we should compute the timestamp and then use it for the build id as well.
The high-level goal is that we can do rattler-build rebuild mypkg.tar.bz2 and rattler-build would extract the timestamp from the package and use it for setting up the build to get a bit-by-bit same result.

This is where we currently compute the timestamp: https://github.com/prefix-dev/rattler-build/blob/bca64fed2956fe394ac5e555e1d596b4f0ae08c3/src/main.rs#L305

This is done, single timestamp is used everywhere.


Embed logo image into repository and upgrade to SVG

The current image is a low-res PNG, the new SVG brings higher fidelity.
Embedding it into the repository ensures availability without internet access.
The docs generator does not support static assets, so we need to copy the asset explicitly into the docs folder (see #13756).

it's a bit hard to read on dark theme, and not nice to look at
it might be a good idea to keep the white background like the old png
or you could make two separate versions, one for dark and one for light, but that likely won't work outside of github's markdown viewer

Good catch 👍
I actually went a different route making the SVG itself aware of the color scheme.

that's even better, i forgot you can do that :octocat:


Would love editable props

What problem does this feature solve?
Lot's of times I would like to see quick changes when a prop is changed, but most of the time the props getting sent in are hard coded. I would love to be able to change props on the fly as well as data.
What does the proposed API look like?
Make props editable the same way that data is editable.

уоu can edit data (which is passed to your component as prop) in parent controller.

I think editing props shouldn't be added as a feature to devtools because following warning will be thrown every time:
[Vue warn]: Avoid mutating a prop directly since the value will be
overwritten whenever the parent component re-renders. Instead,
use a data or computed property based on the prop's value.

But feel free to test it yourself
chrome.zip

Download and extract chrome.zip to chrome
Open Chrome extension page
Check "developer mode"
Click "load unpacked extension", and choose chrome.

maybe as an option? :D
"Enable Prop manipulation*"
or something

@cannap We'll have to wait until we have the settings tab #547

@emanuelmutschlechner what are the plan for #547, it actually looks pretty dead.

This is a great feature, I just used it for testing a component I'm making. Thanks for adding it :)

is it possible there's been regression on this feature? I'm unable to edit props in 2022
https://user-images.githubusercontent.com/45208632/180294718-65ae37ba-1fc0-4cab-b222-ad2a7db344d3.mov

is it possible there's been regression on this feature? I'm unable to edit props in 2022
Screen.Recording.2022-07-21.at.11.56.25.AM.mov


Can you remove the sudo in the makefile ?

Maybe this is a left over. I cant see the rationale behind using the sudo in here

because docker user is root after one runs develop the resulting dist and node_modules directory are both owned by root. We could remove sudo from the Makefile it just means folks would need to run sudo make clean which maybe that's fine (?)

I would think a better fix would be to remove the root cause (ie not running as root) as well as removing the sudo.

We'd welcome that PR


Slurp seems to have stopped working today

Hi,
Obsidian 1.6.5 on a Macbook Air M3 running Sonoma -- Slurp throws up errors.
URLs that failed:
https://www.breastcancer.org/research-news/men-at-high-risk-benefit-from-mammograms
https://coned-findacontractor.icfsightline.com/
One URL -- a New York Times news story -- went through.

Firefox is able to parse the breastcancer.org link using Readability. breastcancer.org might be blocking requests from scripts like Slurp, i've seen that before with other sites. there also might be something off in the preparsing steps. i'll take a look this weekend and see what's up.
the icfsightline page is a type that often isn't parseable by Slurp. pages that dynamically load information or don't contain much text generally can't be parsed since slurp can't operate a form, run javascript, or simplify a page that doesn't have information to simplify. i'll have a look at it as well, but i'm fairly certain it's simply not compatible.
i'll also have a look at improving that error message to better indicate when a page is simply incompatible.
thanks for the report!

Thanks for the answer! Not surprised about the icfsightline page, as it’s dynamic and I thought that might be trouble.
Wanted to flag these because generally Slurp works like a charm. It’s really useful plugin. Thanks for making and maintaining it!
David

David Berreby
www.davidberreby.com
On Jul 19, 2024 at 6:00 PM -0400, Shaun Martin @.***>, wrote:

Firefox is able to parse the breastcancer.org link using Readability. breastcancer.org might be blocking requests from scripts like Slurp, i've seen that before with other sites. there also might be something off in the preparsing steps. i'll take a look this weekend and see what's up.
the icfsightline page is a type that often isn't parseable by Slurp. pages that dynamically load information or don't contain much text generally can't be parsed since slurp can't operate a form, run javascript, or simplify a page that doesn't have information to simplify. i'll have a look at it as well, but i'm fairly certain it's simply not compatible.
i'll also have a look at improving that error message to better indicate when a page is simply incompatible.
thanks for the report!
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>


could lombok add type embedded feature?

like type embedded in golang

I have no idea what this means.


Add play-square icon

Generic ‘play video’ icon, especially since https://lucide.dev/icon/youtube will be removed soon…

A bit left heavy.

A bit left heavy.

@jguddas Maybe, but shifting it right 1px also looks off. The only other alternative being to shift it right by half a pixel, knocking it off-grid… Not sure that’s desirable?

Yeah, being off grid is out of the question.
1st row: originals+PR
2nd row: shifted 1px to the right
3rd & 4th row: size bump proportional to play icon w/ & w/o added rounding as per #1043

What about using circumcenter?

Well, if you can illustrate to me how exactly we would use this while also sticking to a 24px grid, then sure. 😄

What about using circumcenter?

Well, if you can illustrate to me how exactly we would use this while also sticking to a 24px grid, then sure. 😄

Since when are we so strict on sticking to the grid, why not just make it align well even if it is not snapped to the grid?

Since when are we so strict on sticking to the grid, why not just make it align well even if it is not snapped to the grid?

It's always been and always will be a concern, because not sticking to the grid will result in blurry lines such as this:

Ahh, good point, for this I don't think it's that bad.
That preview is super helpful, we should think about adding a preview like this to the PR comment.


Add a note to jersey maxThread configuration documentation

https://github.com/dropwizard/dropwizard/issues/1375
It's a little difficult for me to explain the situation in the documentation, but I did my best :). I can update it as you see fit.
I could also move it to above like this note:

Thanks!


HTML

HTML
User Story
As a bootcamp student
I want the prework notes to be structured on a webpage
so that I can easily find and read information
Acceptance Criteria
GIVEN a Prework Study Guide webiste
WHEN I visit the website in my browser
THEN I see four boxes titles HTML, CSS, Git and JavaScript with associated notes listed


Clean up RPi2 configurations

This is an attempt to fuse and clean up the different RPi2 configurations.
The PR contains 3 main changes:

Use common build config for native and cross build.
Get rid of Navio2 config because all we support for now is Navio2.
Rename release to cross and default to native to avoid confusion.

This PR goes together with: https://github.com/PX4/Devguide/pull/15
This PR includes #5051 and fixes #4818.
What do you think @mayanez?

Looks good. Just two things to consider:

I think we should consider changing RPi 2 naming to just RPi as this works on either RPi 2 or 3.
Should we keep the navio2.config naming as eventually if another HAT comes out there will be no confusion with mainapp.config?

@mayanez thanks for the feedback.

I think we should consider changing RPi 2 naming to just RPi as this works on either RPi 2 or 3.

I think that would make sense. On that topic, do you know if it also works (or could work) with RPi1?

Should we keep the navio2.config naming as eventually if another HAT comes out there will be no confusion with mainapp.config?

Let's keep it simple and call it mainapp.config for now. We might get away with just auto-detecting things for other hats or configurations later. We do that in a similar way on Pixhawk where we just try all the sensors that we know.

Technically it should work on the RPi 1 as well. Although it looks like Emlid recommends using the RPi2 or above since they don't really test on the 1 anymore.

Technically it should work on the RPi 1 as well. Although it looks like Emlid recommends using the RPi2 or above since they don't really test on the 1 anymore.

Fair enough, I'll add the rename to this PR then.

What about Raspberry Pi Zero, maybe it will need it's own ifdefs :-S.

Most likely not. It should work the same as far as I'm aware.

Raspberry Pi Zero has other GPIO base address. sysfs GPIO API  is persistent across different versions, though. I'm bringing this up just in case somebody will ever want to use GPIO pins on PX4 on Navio's.

We have Navio2's GPIO and RGBLed drivers with limited features which does not rely on sysfs. The GPIO driver currently only works for RPi2 & 3, but we can extend it to dynamically find out the board version as Emlid sysfs driver does. These drivers have only been used for controlling RGBLed so far and may need further testing. If anybody is interested in trying them out we can also submit a PR.
@julianoes We also have a clang cross build support for RPi. Once your configuration cleanup is merged to the master, we can submit a PR for it with related addition to DevGuide as well. What do you think?

@HidenoriKobayashi I'm interested in seeing a PR. Is the RGBLED the same as on Pixhawks?
About clang, may I ask why you have added support for it? Does it bring advantages?

Rebased and applied.

Hi @julianoes ,
It looks like the mainapp.config was mistakenly deleted and never added back.

@mayanez oh that wasn't nice, sorry. I'll add it back.

@mayanez I blame .gitignore for swallowing the file, fix is here: #5091

@julianoes I will submit a PR for RGBLED this week. I don't think they are the same, but I'm not sure. All I could find as reference was Emlid source code. As such, the ability of the driver is quite limited now, but it seems to work to some extent with commander.
As for clang, the reason why we've added support for it is because we thought it might be easier for us to add plugins for our research purpose. I think it opens a door for other researchers too. In addition, with the clang support you can properly run clang static analyzer to get warnings like these:

src/modules/commander/calibration_routines.cpp:444:30: warning:
Potential buffer overflow. Replace with 'sizeof(pendingStr) - strlen(pendingStr) - 1' or
use a safer 'strlcat' API
strncat(pendingStr, " ", sizeof(pendingStr) - 1);
^~~~~~~~~~~~~~~~~~~~~~
src/modules/commander/calibration_routines.cpp:445:98: warning:
Potential buffer overflow. Replace with 'sizeof(pendingStr) - strlen(pendingStr) - 1' or
use a safer 'strlcat' API
...detect_orientation_return)cur_orientation), sizeof(pendingStr) - 1);
^~~~~~~~~~~~~~~~~~~~~~
2 warnings generated.

@HidenoriKobayashi Ok I understand. Feel free to make a PR for the clang changes, that would be appreciated.


Make section for einsum

Einsum.jl and tullio.jl at least.

Closed by https://github.com/JuliaPackageComparisons/JuliaPackageComparisons.github.io/commit/3f3b15ca773212bed055d01742578aab8289c2a6


collectionView?.cellForItem is nil and incorrectly unwrapped

I have a collectionView that implements RAReorderableLayout  and when I long press a collection item the cells must enter in edit mode and they must look different so that edit buttons appear in each cell view.
Everything works fine unless after I enter the screen, where this collection view is, I long press a cell very quickly and it does not manage to finish redrawing the cells and it reaches this line in your code and crashes because currentCell is nil and you don't unwrap it correctly:
            let currentCell = collectionView?.cellForItem(at: indexPath!)

            cellFakeView = RACellFakeView(cell: currentCell!)

Please unwrap it correctly so I can still use cocoapods with the bug fix. Thank you!

if let indexPath = indexPath, let currentCell = collectionView?.cellForItem(at: indexPath) {
cellFakeView = RACellFakeView(cell: currentCell)
}


option to hide join/part messages

The backlog for IRC rooms I am in is often filled with huge numbers of these join/part messages that I would like to hide, but I don't see any obvious way to do that:
screenshot showing joins/parts

Some matrix clients let you collapse that mess, others don't, and I'd rather just not see them at all anywhere without having to rely on being able to do it client-side.

You can't hide them server side, the users need to join the room after all so they can write there.
In theory you could never part them, but that would build up a huge mess quickly.

The message you see is your client generating a message for the users joining/leaving. Hence hiding them can only be done on the client side.
Heisenbridge is not explicitly printing that.


user-profile: Break long emails into multiple lines.

Before the user profile bounding box width was not set so it
would overflow the 240px and there would be grey space next to
the avatar. Now the width is always maintained and long text
is cut into multiple lines.
Fixes: #5938.

Automated message from Dropbox CLA bot
@brockwhittaker, it looks like you've already signed the Dropbox CLA. Thanks!

Here is the simple fix.

Nice find, merged, thanks @brockwhittaker!


Run AWS containers with DEBUG=False

We should not be using DEBUG=True in our containers on AWS. But if we turn that to False with our current set up, we don't get any of the static files served. Install nginx in the container and serve static files from that and the dynamic stuff by proxying to gunicorn.

Ngnix + gunicorn was too heavy - needed more memory and still was running 2 instances.
Instead I backed out those hosting changes and added 'white-noise' to serve static files while running with DEBUG=False


Update jacoco dependencies of Spring Cloud Azure

spring-cloud-azure-starter-* doesn't have any codes, so remove them from jacoco test.

/checkenforcer-override

/check-enforcer override


Must always scan all cells to determine field count

The dimension record can be incorrect.
Fixes issue #2.

Because of this we could probably simplify InitializeSheetRead/ReadWorkSheetGlobals quite a lot. For sheets with lots of cells implementing FindMaxReferencedColumn in a way that do not create an object for each record might also be a good idea.

If I read this correctly, then you could remove the last call to _stream.Read(); from FindMaxReferencedColumn(), and then revert all the changes in ReadNextBlock() ?
I think ReadNextBlock() was easier to follow before this, because you could see the single call to _stream.Read(). Now its using _stream.LastRead" for the first chunk, and you have to trace it back to FindMaxReferencedColumn() where it comes from.

I don't think we can because then we'd miss the first cell if there is no dimension or row records. ReadWorkSheetGlobals reads until the first cell in that case.
Since the stream is in-memory FindMaxReferencedColumn could be moved into ReadWorkSheetGlobals instead. And there we can keep track of the position of the record before the first cell record if we ever read that far and seek to it before returning. Then we could remove the whole LastRecord ugliness.

Nice, I like this. Do you think we can simplify further and just seek to sheet.DataOffset before each loop (i.e globals, max-columns, rows), and eliminate the previousPosition stuff?
Looks like each loop just looks at the chunks its interested in anyway, and we get slightly leaner code in exchange for a few extra iterations over ignored chunks. (sorry for being pedantic about this but since we're first looking at this code :bowtie:)
(I also noticed AppVeyor automatically built and tested the last PR commit, which is sweet)

Usually this means that we'll do the work to read and create record instances for the sheet header (around 15 +  records) and the row records for the first cell block twice. But considering that we read all cell records twice the cost for that is relatively low.
If it is a problem we might be able to improve performance a little by using a specialized read in ReadWorkSheetGlobals that does not create record instances.


Use customized files in Kubeflow  pipeline

I have read through this documentation https://www.kubeflow.org/docs/pipelines/sdk/,
but have no idea how to implement the following requirement:
I have several py and txt  files in my ml pipeline, these files will be used in pipeline execution, how can the k8s pods get these files when scheduled on kubeflow since I find that the pipeline is compiled into a single yaml file.

/kind question
/priority p1

Hello, does it mean that the kubeflow pipeline zip package can not contain my customize files? @jtfogarty


Session Cookie Without Secure and HttpOnly Flags Set

Application does not set two mandatory security flags, Secure and HttpOnly, to the session
identifier in token cookie.
If the Secure flag is set on a cookie, then browsers will not submit the cookie in any requests that use an unencrypted HTTP connection, thereby preventing the cookie from being trivially intercepted by an attacker monitoring the network traffic.
If the HttpOnly attribute is set on a cookie, then the cookie's value cannot be read or set by client- side JavaScript. This measure makes certain client-side attacks, such as cross-site scripting, slightly harder to exploit by preventing them from trivially capturing the cookie's value via an injected script.

Recommendations
The Secure flag should be set on all cookies that are used for transmitting sensitive data when accessing content over HTTPS.
Set the HttpOnly flag on the session cookie to protect it from being captured via trivial XSS attacks.

There should be no problems with 'secure' flag, but setting 'httpOnly' contradicts current implementation of communication between web and API.
Gateway expects authorization token in the header of requests and to do that we have to store token in cookies or other kind of persistent storage. Setting 'httpOnly' will unable us to read token and add it to headers.
Using  session or local storage for storing authorization token instead of cookies will not fix the problem as that will open same XSS vulnerabilities that 'httpOnly' deals with for cookies.
To solve security issue we can try to enable cookies reading on the gateway. This link can be useful.
https://github.com/Kong/kong/issues/2894


Restore -Wunused to CMake build and add dev mode to disable

Avoiding unused variables is good for committed code and really annoying
as a build error when doing interactive builds. We let users distinguish
between these two situations with the IREE_DEV_MODE option. The CI
will enforce the strictest options.

Depends on https://github.com/google/iree/pull/7003 to clean up existing unused variables in EmitC


find error

Hello! I am a college student from China. I am really glad to find littleVGL, which is a very good GUI. However, when I studied littleVGL, I found some problems. In version 5.2, the return value of "lv_arc_get_angle_end(lv_obj_t * arc)" function in the source code is" ext->angle_start", maybe there is something wrong with the source code, maybe I don't understand it. I hope you can tell me.

@caoliuchao Good catch! ext->angle_end is definitely used in other places like lv_arc_set_angles so it belongs in lv_arc_get_angle_end as well. This problem is in v5.3 as well.

@caoliuchao Thank you for pointing this out!
And @embeddedt Thank you for the fix :)

@embeddedt
The notification above says:

How did you close a PR in a commit? Or did I miunderstand something?

@kisvegabor When you put Fixes #<issue-number> in a commit, it will automatically close the related issue once the commit is pushed to master. I didn't make a PR for this change.
https://help.github.com/articles/closing-issues-using-keywords/

@embeddedt I see, thanks! Good to know. It's a really useful feature!


CHAP for Google Authenticator with freeRADIUS

Hi Team,
I am successfully integrated the Google Authenticator with our product and 2F authentication is success.
Our product supports both PAP & CHAP for RADIUS authentication. But Google Authenticator supports only PAP and not for CHAP. If we select CHAP then 2F authentication getting failed.
Can you help me how can we make Google Authenticator support CHAP as well ?
Please note that, we are using freeRADIUS for first level authentication (User name & Password) and using Google Authenticator for second level authentication (User name & OTP).
We follow the below link for 2F authentication:
http://www.supertechguy.com/help/security/freeradius-google-auth
Thanks,
Aul

To my knowledge, neither HOTP or TOTP have functionality to support CHAP. The code generation function takes 2 inputs: an incremented number and the secret key, where the incremented number is uses in HOTP and time in TOTP.
In addition, CHAP would require a direct server -> app communication channel that does not exist for any other uses of this app.

I don't know that it's HOTP/TOTP that don't support CHAP, I think it may be PAM. I'm not a PAM expert though.

Leaving this issue open since there's the open question whether it's possible with PAM or not. My initial googling says that it is not.

The problem is that CHAP requires access to the full password (including OTP) in order to hash it and check it against the hash provided in the CHAP response packet. To get OTP working over radius with chap, you would need to write an extension to Freeradius that would concatenate a plaintext-stored static password for the user and calculate their OTP value at that time. Once you have those components in plain text, they would be suitable to be consumed by the CHAP authentication mechanism.
Having said that, I don't have the required knowledge of FreeRADIUS's internal workings to comment about whether that is possible. I would say the best chance of it working would be to implement a new authentication provider in FreeRADIUS based off of the otp authentication module.


convert to pdf

Added a new attribute to signals: lsb, the startbit which is displayed in Vector CANdb++ (and is different from start, the value which is saved in the dbc file), see commit dd7137a57129920c823ad4086bafe943a8d75e25
Extended the convert command so that it can also convert to tex and pdf files, see python3 -m cantools convert --help | less
Changed the test work flow so that the tests pass again on github instead of failing with "gcc-8: not found", see commits c91b641ff499db0d16130c1deab8c14fc858719f, d901bd0e83ff42c3f2ad0e5d3ba09c2279898c5d and 660a879ea269e67fe7a58a3dadd0af5d85a170b2

Coverage decreased (-0.6%) to 95.918% when pulling c4834ba45508443c6c092d9c8383572fef9c8a3b on erzoe:dev-convert-to-pdf into f8fd300bd1a2d2d25e5ca4cd70b87c4c4b81f2f9 on eerimoq:master.

I don't know why appveyor failed. Is there any way to display what has gone wrong?

I don't know why appveyor failed. Is there any way to display what has gone wrong?

click on the "Details" link on the pull-request's status box here, then on the run of interest on appveyor, e.g. "Environment: PYTHON=C:\Python38-x64, PYTHON_ARCH=64". the console output of the failed run should be displayed. For the aforementioned run, the first relevant bit is probably:
[...]
Test the send method with scaling. ... ok
test_set_and_get_signals (tests.test_tester.CanToolsTesterTest)
Set and get signals. ... ok
======================================================================
FAIL: test_break_signal_name_anywhere (tests.test_convert.CanToolsConvertFullTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "c:\projects\cantools\tests\test_convert.py", line 1221, in test_break_signal_name_anywhere
    self.assert_file_content_equal(expected_content, fn_out)
  File "c:\projects\cantools\tests\test_convert.py", line 57, in assert_file_content_equal
    self.assertEqual(content_expected, content_is)
AssertionError: Lists differ: ['% ![882 chars]itle{Long Names Multiple Relations}', '\\date{[6513 chars]nt}'] != ['% ![882 chars]itle{Textbackslash long Names Multiple Relatio[6477 chars]nt}']
First differing element 39:
'\\title{Long Names Multiple Relations}'
'\\title{Textbackslash long Names Multiple Relations}'
  ['% !TeX program = pdflatex',
   '\\documentclass[a4paper, a5paper]{article}',
[...]

BTW: while I like the ability to generate a big PDF of the signals database of a bus in principle, this PR would benefit from some serious cleanup/squashing work before reviewing it. Also, be aware that merging it will probably have to until we split the current monolithic cantools module into several more specialized ones (e.g., cantools-core, cantools-monitor, cantools-plot, etc) because I'm too skittish to introduce a new dependency on pdflatex even if it is supposed to be optional (the appveyor test failures prove this point ;)).

@andlaus thank you for your help.

click on the "Details" link on the pull-request's status box here, then on the run of interest on appveyor, e.g. "Environment: PYTHON=C:\Python38-x64, PYTHON_ARCH=64". the console output of the failed run should be displayed.

Yes, now I see it. Weird, I thought I had done just that and nothing happened when I clicked on the job ^^"

this PR would benefit from some serious cleanup/squashing work before reviewing it

Yes, I will try to find the time to make a rebase.

Also, be aware that merging it will probably have to until we split the current monolithic cantools module into several more specialized ones (e.g., cantools-core, cantools-monitor, cantools-plot, etc) because I'm too skittish to introduce a new dependency on pdflatex even if it is supposed to be optional

Yes, it was supposed to be optional, I wouldn't have wanted a hard dependency on LaTeX either.
Sounds like a good idea to split it up. Do you have a rough plan how long that will take?


add a11y-addon to storybook

Follow the instructions at Storybook - set up ally addon in order to install and configure the accessibility add on. (Only this section needs to be followed, no need to add anything in the configure section)
Please use yarn to install the new package and follow the Typescript instructions for configuration.

Hey @EmmaDawsonDev. I would love to work on this issue 🙂

Hey @YuriDevAT, sure! Please go ahead! 😄

Perfect, thanks.


Layer Util

Created the LayerUtil class, which allows our scripts to use layers without specifying them in the tag settings.  It dynamically finds and assigns names to empty layers so that usage is basically the same as usual, when using the LayerMask class.
@RandomOutput
@yuwilbur

After thinking about this for a little bit, I don't like that there is no edit time assurances or safety.  I think I will close this until a more robust solution can be found.


TabIndex and a11y in form controls

Description
Okay. So there is two issues. Both are related to each other so I will combine it into one.
See this gif first

Bug 1) When user reaches to dropdown widget via hitting tab tab tab it is not highlighting as other controls like textbox but control has reached there, It is just not showing it. You will know it by hitting ⬆ ⬇ key
Bug 2) when dropdown is open and user is navigating in the options the same thing happens. Control is navigating but it is not showing the way when it shows with mouse hover event
Steps to reproduce the behavior:
steps to reproduce this behavior, include console / network logs & screenshots

Take a form widget
add text box and drop down widget same as shown in gif
hit keyboard keys same as shown in gif

Important Details

Version: Cloud
OS: Windows
Browser: Chrome

Focused state for dropdown
Focused state for dropdown entries
Focused state for datepicker
Borders on datepicker field
Borders on datepicker popup when placed inside a container.
Focused state for checkbox
Focused state for radio
Focused state for switch

@momcilo-appsmith @Tooluloope we would need designs for these widgets and their appropriate states.
we need to make sure to reach these widgets using keyboard interactions. Today most of them are interactable but we don't show a difference(by highlighting) when they are focused.

Is there any approx timeline which you can provide me for this? I can understand it's a lot to ask as the appsmith service and code is free. and of course you have a other things which are ongoing.
But the thing is we have built an entire stock management system using appsmith cloud. The fact that we can do this without writing front-end or backend code is really really remarkable. so thank you for making appsmith.
For us it is time to go to production, and these data entry people can't afford to use mouse while entering thousands of entries.
It is confusing when you are jumping in the long form using tab.... tab.... tab.... and boom, it vanishes like thanos snapped it out of existence.

Hi @vasani-arpit, Thanks for the kind words. While we started looking into this we realized that this is something we need to work on product wide scale to provide a better UX. Hence we have taken to call to properly design this and then develop it. Given all that, this falls low on our priority list and I do not have the right timelines for this. I will still try my best to push this ahead and keep you posted about it here.

@Tooluloope This issue still exists in release
https://loom.com/share/96fba8f765394376bf4c25fe63c27a7d

The a11y controls don't work for all the widgets, Button Widget when used inside a form does not get focus on a tab press. This is very crucial, especially for the Submit & Reset buttons inside the Form.

Fixed in https://github.com/appsmithorg/appsmith/issues/7757


No such file or directory Error

Hello everyone;
I want to use tus-client to upload my videos on a remote endpoint. but after choosing a video from my android device and when I start upload it shows an Error which says
Failed because: Error: file:/storage/emulated/0/Movies/c5326f6c-dc42-4eb0-97c8-040233f08352.mp4 (No such file or directory)
is there any solution for that or could you help me to find the right way for uploading my files?
best regards;
my react-native version is 0.60.6
the video uri is like: file:/storage/emulated/0/Movies/c5326f6c-dc42-4eb0-97c8-040233f08352.mp4
and the way I'm trying to send my files is:
let uploadOptions = {
"url": my_EndpointUri,
"authorization": ${authorization_key},
"acceptLanguage": 'en',
"uuid": "salam"//ImageUri.name + ImageUri.size + ImageUri.lastModified,
};
const upload = new Upload(ImageUri, {
fingerprint: () => {
return uploadOptions.uuid;
},
resume: true,
chunkSize: 1048576, // 1MB
retryDelays: [0, 500, 1000, 1500, 2000, 2500],
endpoint: uploadOptions.url,
headers: {
'Authorization': uploadOptions.authorization,
'Accept-Language': uploadOptions.acceptLanguage,
},
metadata: {
filename: "video.mp4",
filetype: "video/mp4"
},
onError: function (error) {
console.log("Failed because: " + error)
},
onProgress: function (bytesUploaded, bytesTotal) {
var percentage = (bytesUploaded / bytesTotal * 100).toFixed(2)
console.log(bytesUploaded, bytesTotal, percentage + "%")
},
onSuccess: function () {
console.log("Download %s from %s", upload.file.name, upload.url)
}
});
await upload.start();
}

@AbbasNarimani  Did you get it  to work?? i need help facing same issue.

@AbbasNarimani Did you get it to work?? i need help facing same issue.
sorry for late answer.
just left it and used react js package. now it works very well.
https://github.com/tus/tus-js-client

@AbbasNarimani I believe your issue was related to the original file path.
@HarishJangra if you're facing a similar issue, please post your snippet as well with information about your RN version and device/simulator you are using.

yes actually i fixed it to work with vimeo support in this commit 76592360aa1a21195063d59063e3188ce11004d0

thanks for sharing @HarishJangra. True, Vimeo has a different way of handling tus file upload creation. I will pass an extra option for handling this specific case.

have the same issue:
absoluteFilePath file:///storage/emulated/0/Download/brooke-cagle-pJqfhKUpCh8-unsplash.jpg
const upload = new Upload(absoluteFilePath, options);
upload.start();
TSU Upload error [Error: file:/storage/emulated/0/Download/brooke-cagle-pJqfhKUpCh8-unsplash.jpg (No such file or directory)]


[bug] [socket] Multi-thread socket client will have IO errors because of add_interest conflict

POC:
Set up a socket client with multiple threads, each of the threads establishing a connection to a server. (Not using pooled-socket.)
In each send/recv, we would use wait_for_fd to do one-shot poll, and the underlying method is add_interest.
The error occurs at line 127.
https://github.com/alibaba/PhotonLibOS/blob/87d0baed48b95e040c09775064be30d629920df3/io/epoll.cpp#L114-L129
Below is a POC you can verify:
Client:       ./net-perf -client -ip <IP_ADDRESS> -client_thread_num 8
Server:      ./net-perf
https://github.com/beef9999/PhotonLibOS/tree/beef9999/poc-conflicted-interest

io_uring engine doesn't have this problem


added bash

Codecov Report

Merging #9 into master will decrease coverage by 4.46%.
The diff coverage is 66.66%.

@@            Coverage Diff             @@
##           master       #9      +/-   ##
==========================================
- Coverage   85.71%   81.25%   -4.47%
==========================================
  Files           2        2
  Lines          14       16       +2
==========================================
+ Hits           12       13       +1
- Misses          2        3       +1

Impacted Files
Coverage Δ

src/index.py
70% <66.66%> (-5%)
:arrow_down:


docker-compose up failed: exited with code 127

Describe the bug
When trying to set-up the rest-nvd container through 'docker-compose up' the container is exited with code 127. How should I fix this?
To Reproduce

Clone repo steady
Change directory to steady/rest-nvd
Run 'docker-compose up'
See error:

In case of bugs in a Web frontend:

Go to '...'
Click on '....'
Scroll down to '....'
See error

In case of bugs happening on the client (when performing scans):

Clone repo '...'
Add profile '....'
Run plugin goal '....'
See error

Expected behavior
A successful build of the docker container.
In case of bugs happening on the client (when performing scans)

OS: Windows 10
Python 3.8

Hi @daanhommersom,
As you are using Windows, the file endings have been changed from UNIX(Line Feed) to windows line endings(Carriage Return followed by Line Feed) which is causing this issue.
You can use git settings on your system to change the line endings and check if it works as expected - https://help.github.com/en/github/using-git/configuring-git-to-handle-line-endings

Hi @sumeetpatil,
Thank you for your response.
I already have the git config core.autocrlf command set to true, and when opening for instance prestart.sh in VS Code I see that it is encoded as UTF-8 with line ending CRLF.

Hi @daanhommersom ,
You need to set it to - > --config core.autocrlf=input

Hi @daanhommersom ,
As discussed, it is working fine now.
The image was already built with the wrong prestart.sh having CRLF and that is why it was not running even with cloning the repo with core.autocrlf=input.
We followed these steps to fix it -

delete the image with docker rmi
Clone the repo once again with core.autocrlf=input
docker-compose up


Fix OIDC Test

Change the URL in the config manager test to prevent an html response from coming back, which causes the test to fail

Is sending traffic to a random uri potentially insecure? Rather than misspelling it could we use something msft owns consistent with other tests in the repo like contoso.com?

Is sending traffic to a random uri potentially insecure? Rather than misspelling it could we use something msft owns consistent with other tests in the repo like contoso.com?

We'll use the localhost address instead.

If that runs into similar issues, why can't we handle the "<" character?

We're only deserializing JSON, not HMTL.


Failover of loadbalancer for 2 DCs

Investigate how a cross-DC failover for the loadbalancer can work.
Possibly summarize the finding in a single slide and present it to the team. Investigate on how this can be scripted for an automated test.

Evaluate Route 53 or other options

Reopening this issue to allow for a second step of the implementation: This should allow for multiple pairs of OpenShift clusters in our team. This would need to be scripted, and it should outline the high level overall steps necessary to set up such a cluster. Thanks!