OpenEBS Pods CrashLoopBackOff/Error State after VM Reboot

Hi Team,
First of all thanks for providing a great product with many use cases and add its adding a lot of value.
We have installed OpenEBS a few months back and we are able to take VolumeSnapshots, restore snapshots, and all things are working fine.
Recently we have to bring down our Virtual Machines to a powered of state for some maintenance and POWERED ON the VMS back on in next 5 mins. But for some reason the OpenEBS pods went into  CrashLoopBackOff/Error State aren't coming up.
So wanted to know, do we need to perform any set of steps in an order for the safe shutdown of OpenEBS pods as well Kubernetes Cluster and back on.
Before Shutdown
-bash-4.2$ kubectl get pods -A
NAMESPACE     NAME                                             READY   STATUS    RESTARTS       AGE
kube-system   calico-kube-controllers-784dcb7597-9d6qb         1/1     Running   2 (65m ago)    88m
kube-system   calico-node-jgl88                                1/1     Running   2 (65m ago)    79m
kube-system   calico-node-wqhq9                                1/1     Running   2 (65m ago)    88m
kube-system   coredns-64897985d-j9wmx                          1/1     Running   2 (65m ago)    97m
kube-system   coredns-64897985d-wn9zt                          1/1     Running   2 (65m ago)    97m
kube-system   etcd-iackube-01vm1                               1/1     Running   5 (65m ago)    97m
kube-system   kube-apiserver-iackube-01vm1                     1/1     Running   4 (65m ago)    97m
kube-system   kube-controller-manager-iackube-01vm1            1/1     Running   5 (6m6s ago)   97m
kube-system   kube-proxy-kgsx9                                 1/1     Running   4 (65m ago)    97m
kube-system   kube-proxy-nd9nw                                 1/1     Running   2 (65m ago)    79m
kube-system   kube-scheduler-iackube-01vm1                     1/1     Running   5 (6m7s ago)   97m
openebs       cspc-operator-64c67c894c-bsh4r                   1/1     Running   1 (65m ago)    74m
openebs       cstor-pool-cluster-x1-jhq4-58fcf58c4c-49vqn      3/3     Running   0              53m
openebs       cvc-operator-5697fb984f-9rmfj                    1/1     Running   1 (65m ago)    74m
openebs       openebs-cstor-admission-server-7fbd9b48d-4wkmm   1/1     Running   7 (67m ago)    74m
openebs       openebs-cstor-csi-controller-0                   6/6     Running   7 (6m4s ago)   74m
openebs       openebs-cstor-csi-node-mw47q                     2/2     Running   2 (65m ago)    74m
openebs       openebs-ndm-cluster-exporter-b5f8f4745-km7wr     1/1     Running   7 (67m ago)    74m
openebs       openebs-ndm-hzdgh                                1/1     Running   1 (65m ago)    74m
openebs       openebs-ndm-node-exporter-bs6ms                  1/1     Running   7 (67m ago)    74m
openebs       openebs-ndm-operator-7769f77f8b-z6lzr            1/1     Running   7 (67m ago)    74m
After Reboot
-bash-4.2$ kubectl get pods -A
NAMESPACE     NAME                                             READY   STATUS             RESTARTS          AGE
kube-system   calico-kube-controllers-784dcb7597-9d6qb         1/1     Running            3 (31h ago)       32h
kube-system   calico-node-jgl88                                1/1     Running            4 (31h ago)       32h
kube-system   calico-node-wqhq9                                1/1     Running            3 (31h ago)       32h
kube-system   coredns-64897985d-j9wmx                          1/1     Running            3 (31h ago)       33h
kube-system   coredns-64897985d-wn9zt                          1/1     Running            3 (31h ago)       33h
kube-system   etcd-iackube-01vm1                               1/1     Running            7 (31h ago)       33h
kube-system   kube-apiserver-iackube-01vm1                     1/1     Running            6 (31h ago)       33h
kube-system   kube-controller-manager-iackube-01vm1            1/1     Running            7 (31h ago)       33h
kube-system   kube-proxy-kgsx9                                 1/1     Running            7 (31h ago)       33h
kube-system   kube-proxy-nd9nw                                 1/1     Running            4 (31h ago)       32h
kube-system   kube-scheduler-iackube-01vm1                     1/1     Running            7 (31h ago)       33h
openebs       cspc-operator-64c67c894c-bsh4r                   1/1     Running            3 (31h ago)       32h
openebs       cstor-pool-cluster-x1-jhq4-58fcf58c4c-49vqn      3/3     Running            77 (6m6s ago)     32h
openebs       cvc-operator-5697fb984f-9rmfj                    1/1     Running            4 (31h ago)       32h
openebs       openebs-cstor-admission-server-7fbd9b48d-4wkmm   0/1     CrashLoopBackOff   124 (2m12s ago)   32h
openebs       openebs-cstor-csi-controller-0                   6/6     Running            19 (31h ago)      32h
openebs       openebs-cstor-csi-node-mw47q                     2/2     Running            8 (31h ago)       32h
openebs       openebs-ndm-cluster-exporter-b5f8f4745-km7wr     0/1     CrashLoopBackOff   124 (3m23s ago)   32h
openebs       openebs-ndm-hzdgh                                1/1     Running            3 (31h ago)       32h
openebs       openebs-ndm-node-exporter-bs6ms                  0/1     CrashLoopBackOff   124 (2m40s ago)   32h
openebs       openebs-ndm-operator-7769f77f8b-z6lzr            0/1     CrashLoopBackOff   124 (3m32s ago)   32h
-bash-4.2$
-bash-4.2$
-bash-4.2$ kubectl get nodes -o wide
NAME            STATUS   ROLES                  AGE   VERSION   INTERNAL-IP    EXTERNAL-IP   OS-IMAGE                                      KERNEL-VERSION           CONTAINER-RUNTIME
iackube-01vm1   Ready    control-plane,master   33h   v1.23.1   x           Red Hat Enterprise Linux Server 7.9 (Maipo)   3.10.0-1160.el7.x86_64   docker://20.10.12
iackube-01vm2   Ready                     33h   v1.23.1   1x           Red Hat Enterprise Linux Server 7.9 (Maipo)   3.10.0-1160.el7.x86_64   docker://20.10.12
Please advise us, if  any safe practices do we need to follow before we shut down the cluster for any maintenance tasks.

@xigifty  Can you provide the logs from the crashing pods, so that we can debug the issue.

Thanks @akhilerm, Please find the below pod logs
-bash-4.2$ kubectl describe pod openebs-cstor-admission-server-7fbd9b48d-4wkmm -n openebs
Name:         openebs-cstor-admission-server-7fbd9b48d-4wkmm
Namespace:    openebs
Priority:     0
Node:         iackube-01vm2/<IP_ADDRESS>
Start Time:   Tue, 21 Dec 2021 02:31:19 -0600
Labels:       app=cstor-admission-webhook
openebs.io/component-name=cstor-admission-webhook
openebs.io/version=3.0.0
pod-template-hash=7fbd9b48d
Annotations:  cni.projectcalico.org/containerID: b89c4e7ffe881793eb27e566827f0d81a1579fa05ddd3b0c2242de317ebce390
cni.projectcalico.org/podIP: X/32
cni.projectcalico.org/podIPs: X/32
Status:       Running
IP:           X
IPs:
IP:           X
Controlled By:  ReplicaSet/openebs-cstor-admission-server-7fbd9b48d
Containers:
admission-webhook:
Container ID:  docker://153ae7d321b512d8340e001606e584b04861632e5ffcfc31a4895675e27dfb6e
Image:         openebs/cstor-webhook:3.0.0
Image ID:      docker-pullable://openebs/cstor-webhook@sha256:72df75a3dc09512f85baee3f258252ea72df7227d8b659f925098e2046e9d1f9
Port:
Host Port:
Args:
-alsologtostderr
-v=2
2>&1
State:          Waiting
Reason:       CrashLoopBackOff
Last State:     Terminated
Reason:       Error
Exit Code:    255
Started:      Wed, 22 Dec 2021 12:56:13 -0600
Finished:     Wed, 22 Dec 2021 12:56:14 -0600
Ready:          False
Restart Count:  145
Environment:
OPENEBS_NAMESPACE:                 openebs (v1:metadata.namespace)
ADMISSION_WEBHOOK_NAME:            openebs-cstor-admission-server
ADMISSION_WEBHOOK_FAILURE_POLICY:  Ignore
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-5xnwb (ro)
Conditions:
Type              Status
Initialized       True
Ready             False
ContainersReady   False
PodScheduled      True
Volumes:
kube-api-access-5xnwb:
Type:                    Projected (a volume that contains injected data from multiple sources)
TokenExpirationSeconds:  3607
ConfigMapName:           kube-root-ca.crt
ConfigMapOptional:
DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:
Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
Type     Reason   Age                     From     Message

Warning  BackOff  7m53s (x3148 over 11h)  kubelet  Back-off restarting failed container
Normal   Pulled   3m2s (x137 over 11h)    kubelet  Container image "openebs/cstor-webhook:3.0.0" already present on machine
-bash-4.2$ kubectl describe pod openebs-ndm-cluster-exporter-b5f8f4745-km7wr -n openebs
Name:         openebs-ndm-cluster-exporter-b5f8f4745-km7wr
Namespace:    openebs
Priority:     0
Node:         iackube-01vm2/<IP_ADDRESS>
Start Time:   Tue, 21 Dec 2021 02:31:19 -0600
Labels:       name=openebs-ndm-cluster-exporter
openebs.io/component-name=ndm-cluster-exporter
openebs.io/version=3.0.0
pod-template-hash=b5f8f4745
Annotations:  cni.projectcalico.org/containerID: cbbaceddc06d2c0deca38718bbfe0dc8a9d3ae50bf72f246c897d4ffdd4b0c51
cni.projectcalico.org/podIP: X/32
cni.projectcalico.org/podIPs: 1X/32
Status:       Running
IP:           X
IPs:
IP:           X
Controlled By:  ReplicaSet/openebs-ndm-cluster-exporter-b5f8f4745
Containers:
ndm-cluster-exporter:
Container ID:  docker://7b32703cedbd5e3be1b06f3431dd738b196ea17750935ee55a24c11069cea3da
Image:         openebs/node-disk-exporter:1.7.0
Image ID:      docker-pullable://openebs/node-disk-exporter@sha256:d1c65c09857900e5d785256e1d0cbd6f323be54ead999f27f8179a940c6bcc18
Port:          9100/TCP
Host Port:     0/TCP
Command:
/usr/local/bin/exporter
Args:
start
--mode=cluster
--port=$(METRICS_LISTEN_PORT)
--metrics=/metrics
State:          Waiting
Reason:       CrashLoopBackOff
Last State:     Terminated
Reason:       Error
Exit Code:    1
Started:      Wed, 22 Dec 2021 13:00:25 -0600
Finished:     Wed, 22 Dec 2021 13:00:26 -0600
Ready:          False
Restart Count:  146
Environment:
NAMESPACE:            openebs (v1:metadata.namespace)
METRICS_LISTEN_PORT:  :9100
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-96qgq (ro)
Conditions:
Type              Status
Initialized       True
Ready             False
ContainersReady   False
PodScheduled      True
Volumes:
kube-api-access-96qgq:
Type:                    Projected (a volume that contains injected data from multiple sources)
TokenExpirationSeconds:  3607
ConfigMapName:           kube-root-ca.crt
ConfigMapOptional:
DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:
Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
Type     Reason   Age                   From     Message

Warning  BackOff  58s (x3184 over 11h)  kubelet  Back-off restarting failed container
-bash-4.2$
-bash-4.2$ kubectl describe pod openebs-ndm-node-exporter-bs6ms -n openebs
Name:         openebs-ndm-node-exporter-bs6ms
Namespace:    openebs
Priority:     0
Node:         iackube-01vm2/<IP_ADDRESS>
Start Time:   Tue, 21 Dec 2021 02:31:19 -0600
Labels:       controller-revision-hash=86c89474d4
name=openebs-ndm-node-exporter
openebs.io/component-name=ndm-node-exporter
openebs.io/version=3.0.0
pod-template-generation=1
Annotations:  cni.projectcalico.org/containerID: c6dd07861c2c4d9ac66282a24fd1b1cc33c159f479cd312727fd36356aa207b7
cni.projectcalico.org/podIP: 1X
cni.projectcalico.org/podIPs: 1X
Status:       Running
IP:           1X
IPs:
IP:           1X
Controlled By:  DaemonSet/openebs-ndm-node-exporter
Containers:
node-disk-exporter:
Container ID:  docker://e8c8adf6c8752dcec6d1aeeb2e5a4384ed9e637468e70ff7547bb693bf7fc2c0
Image:         openebs/node-disk-exporter:1.7.0
Image ID:      docker-pullable://openebs/node-disk-exporter@sha256:d1c65c09857900e5d785256e1d0cbd6f323be54ead999f27f8179a940c6bcc18
Port:          9101/TCP
Host Port:     0/TCP
Command:
/usr/local/bin/exporter
Args:
start
--mode=node
--port=$(METRICS_LISTEN_PORT)
--metrics=/metrics
State:          Waiting
Reason:       CrashLoopBackOff
Last State:     Terminated
Reason:       Error
Exit Code:    1
Started:      Wed, 22 Dec 2021 13:00:50 -0600
Finished:     Wed, 22 Dec 2021 13:00:51 -0600
Ready:          False
Restart Count:  146
Environment:
NAMESPACE:            openebs (v1:metadata.namespace)
METRICS_LISTEN_PORT:  :9101
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-8ctqq (ro)
Conditions:
Type              Status
Initialized       True
Ready             False
ContainersReady   False
PodScheduled      True
Volumes:
kube-api-access-8ctqq:
Type:                    Projected (a volume that contains injected data from multiple sources)
TokenExpirationSeconds:  3607
ConfigMapName:           kube-root-ca.crt
ConfigMapOptional:
DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:
Tolerations:                 node.kubernetes.io/disk-pressure:NoSchedule op=Exists
node.kubernetes.io/memory-pressure:NoSchedule op=Exists
node.kubernetes.io/not-ready:NoExecute op=Exists
node.kubernetes.io/pid-pressure:NoSchedule op=Exists
node.kubernetes.io/unreachable:NoExecute op=Exists
node.kubernetes.io/unschedulable:NoSchedule op=Exists
Events:
Type     Reason   Age                     From     Message

Warning  BackOff  2m20s (x3173 over 11h)  kubelet  Back-off restarting failed container
-bash-4.2$ kubectl describe pod openebs-ndm-operator-7769f77f8b-z6lzr -n openebs
Name:         openebs-ndm-operator-7769f77f8b-z6lzr
Namespace:    openebs
Priority:     0
Node:         iackube-01vm2/<IP_ADDRESS>
Start Time:   Tue, 21 Dec 2021 02:31:19 -0600
Labels:       name=openebs-ndm-operator
openebs.io/component-name=ndm-operator
openebs.io/version=3.0.0
pod-template-hash=7769f77f8b
Annotations:  cni.projectcalico.org/containerID: 4c7d706f588eac733eb85f5462f45736abbadf3e25b099d94457128da5008086
cni.projectcalico.org/podIP: X
cni.projectcalico.org/podIPs: X
Status:       Running
IP:           1X
IPs:
IP:           X
Controlled By:  ReplicaSet/openebs-ndm-operator-7769f77f8b
Containers:
node-disk-operator:
Container ID:   docker://a384e3e08eeafb4a1fe67562cf8a26c94ea39f45b80cbc99016eb9fe725e64cf
Image:          openebs/node-disk-operator:1.7.0
Image ID:       docker-pullable://openebs/node-disk-operator@sha256:828e84db2c7913e97f5fa472164687ec59f527a5f2272d8fbd652c9127dcc1ea
Port:
Host Port:
State:          Waiting
Reason:       CrashLoopBackOff
Last State:     Terminated
Reason:       Error
Exit Code:    1
Started:      Wed, 22 Dec 2021 13:00:40 -0600
Finished:     Wed, 22 Dec 2021 13:00:41 -0600
Ready:          False
Restart Count:  146
Liveness:       http-get http://:8585/healthz delay=15s timeout=1s period=20s #success=1 #failure=3
Readiness:      http-get http://:8585/readyz delay=5s timeout=1s period=10s #success=1 #failure=3
Environment:
WATCH_NAMESPACE:    openebs (v1:metadata.namespace)
POD_NAME:           openebs-ndm-operator-7769f77f8b-z6lzr (v1:metadata.name)
SERVICE_ACCOUNT:     (v1:spec.serviceAccountName)
OPERATOR_NAME:      node-disk-operator
CLEANUP_JOB_IMAGE:  openebs/linux-utils:3.0.0
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-b44x4 (ro)
Conditions:
Type              Status
Initialized       True
Ready             False
ContainersReady   False
PodScheduled      True
Volumes:
kube-api-access-b44x4:
Type:                    Projected (a volume that contains injected data from multiple sources)
TokenExpirationSeconds:  3607
ConfigMapName:           kube-root-ca.crt
ConfigMapOptional:
DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:
Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
Type     Reason   Age                     From     Message

Warning  BackOff  3m22s (x3332 over 11h)  kubelet  Back-off restarting failed container
-bash-4.2$

Thanks @akhilerm, Please find the below pod logs
-bash-4.2$ kubectl describe pod openebs-cstor-admission-server-7fbd9b48d-4wkmm -n openebs
Name:         openebs-cstor-admission-server-7fbd9b48d-4wkmm
Namespace:    openebs
Priority:     0
Node:         iackube-01vm2/x
Start Time:   Tue, 21 Dec 2021 02:31:19 -0600
Labels:       app=cstor-admission-webhook
openebs.io/component-name=cstor-admission-webhook
openebs.io/version=3.0.0
pod-template-hash=7fbd9b48d
Annotations:  cni.projectcalico.org/containerID: b89c4e7ffe881793eb27e566827f0d81a1579fa05ddd3b0c2242de317ebce390
cni.projectcalico.org/podIP: X/32
cni.projectcalico.org/podIPs: X/32
Status:       Running
IP:           X
IPs:
IP:           X
Controlled By:  ReplicaSet/openebs-cstor-admission-server-7fbd9b48d
Containers:
admission-webhook:
Container ID:  docker://153ae7d321b512d8340e001606e584b04861632e5ffcfc31a4895675e27dfb6e
Image:         openebs/cstor-webhook:3.0.0
Image ID:      docker-pullable://openebs/cstor-webhook@sha256:72df75a3dc09512f85baee3f258252ea72df7227d8b659f925098e2046e9d1f9
Port:
Host Port:
Args:
-alsologtostderr
-v=2
2>&1
State:          Waiting
Reason:       CrashLoopBackOff
Last State:     Terminated
Reason:       Error
Exit Code:    255
Started:      Wed, 22 Dec 2021 12:56:13 -0600
Finished:     Wed, 22 Dec 2021 12:56:14 -0600
Ready:          False
Restart Count:  145
Environment:
OPENEBS_NAMESPACE:                 openebs (v1:metadata.namespace)
ADMISSION_WEBHOOK_NAME:            openebs-cstor-admission-server
ADMISSION_WEBHOOK_FAILURE_POLICY:  Ignore
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-5xnwb (ro)
Conditions:
Type              Status
Initialized       True
Ready             False
ContainersReady   False
PodScheduled      True
Volumes:
kube-api-access-5xnwb:
Type:                    Projected (a volume that contains injected data from multiple sources)
TokenExpirationSeconds:  3607
ConfigMapName:           kube-root-ca.crt
ConfigMapOptional:
DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:
Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
Type     Reason   Age                     From     Message

Warning  BackOff  7m53s (x3148 over 11h)  kubelet  Back-off restarting failed container
Normal   Pulled   3m2s (x137 over 11h)    kubelet  Container image "openebs/cstor-webhook:3.0.0" already present on machine
-bash-4.2$ kubectl describe pod openebs-ndm-cluster-exporter-b5f8f4745-km7wr -n openebs
Name:         openebs-ndm-cluster-exporter-b5f8f4745-km7wr
Namespace:    openebs
Priority:     0
Node:         iackube-01vm2/x
Start Time:   Tue, 21 Dec 2021 02:31:19 -0600
Labels:       name=openebs-ndm-cluster-exporter
openebs.io/component-name=ndm-cluster-exporter
openebs.io/version=3.0.0
pod-template-hash=b5f8f4745
Annotations:  cni.projectcalico.org/containerID: cbbaceddc06d2c0deca38718bbfe0dc8a9d3ae50bf72f246c897d4ffdd4b0c51
cni.projectcalico.org/podIP: X/32
cni.projectcalico.org/podIPs: 1X/32
Status:       Running
IP:           X
IPs:
IP:           X
Controlled By:  ReplicaSet/openebs-ndm-cluster-exporter-b5f8f4745
Containers:
ndm-cluster-exporter:
Container ID:  docker://7b32703cedbd5e3be1b06f3431dd738b196ea17750935ee55a24c11069cea3da
Image:         openebs/node-disk-exporter:1.7.0
Image ID:      docker-pullable://openebs/node-disk-exporter@sha256:d1c65c09857900e5d785256e1d0cbd6f323be54ead999f27f8179a940c6bcc18
Port:          9100/TCP
Host Port:     0/TCP
Command:
/usr/local/bin/exporter
Args:
start
--mode=cluster
--port=$(METRICS_LISTEN_PORT)
--metrics=/metrics
State:          Waiting
Reason:       CrashLoopBackOff
Last State:     Terminated
Reason:       Error
Exit Code:    1
Started:      Wed, 22 Dec 2021 13:00:25 -0600
Finished:     Wed, 22 Dec 2021 13:00:26 -0600
Ready:          False
Restart Count:  146
Environment:
NAMESPACE:            openebs (v1:metadata.namespace)
METRICS_LISTEN_PORT:  :9100
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-96qgq (ro)
Conditions:
Type              Status
Initialized       True
Ready             False
ContainersReady   False
PodScheduled      True
Volumes:
kube-api-access-96qgq:
Type:                    Projected (a volume that contains injected data from multiple sources)
TokenExpirationSeconds:  3607
ConfigMapName:           kube-root-ca.crt
ConfigMapOptional:
DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:
Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
Type     Reason   Age                   From     Message

Warning  BackOff  58s (x3184 over 11h)  kubelet  Back-off restarting failed container
-bash-4.2$
-bash-4.2$ kubectl describe pod openebs-ndm-node-exporter-bs6ms -n openebs
Name:         openebs-ndm-node-exporter-bs6ms
Namespace:    openebs
Priority:     0
Node:         iackube-01vm2/1x
Start Time:   Tue, 21 Dec 2021 02:31:19 -0600
Labels:       controller-revision-hash=86c89474d4
name=openebs-ndm-node-exporter
openebs.io/component-name=ndm-node-exporter
openebs.io/version=3.0.0
pod-template-generation=1
Annotations:  cni.projectcalico.org/containerID: c6dd07861c2c4d9ac66282a24fd1b1cc33c159f479cd312727fd36356aa207b7
cni.projectcalico.org/podIP: 1X
cni.projectcalico.org/podIPs: 1X
Status:       Running
IP:           1X
IPs:
IP:           1X
Controlled By:  DaemonSet/openebs-ndm-node-exporter
Containers:
node-disk-exporter:
Container ID:  docker://e8c8adf6c8752dcec6d1aeeb2e5a4384ed9e637468e70ff7547bb693bf7fc2c0
Image:         openebs/node-disk-exporter:1.7.0
Image ID:      docker-pullable://openebs/node-disk-exporter@sha256:d1c65c09857900e5d785256e1d0cbd6f323be54ead999f27f8179a940c6bcc18
Port:          9101/TCP
Host Port:     0/TCP
Command:
/usr/local/bin/exporter
Args:
start
--mode=node
--port=$(METRICS_LISTEN_PORT)
--metrics=/metrics
State:          Waiting
Reason:       CrashLoopBackOff
Last State:     Terminated
Reason:       Error
Exit Code:    1
Started:      Wed, 22 Dec 2021 13:00:50 -0600
Finished:     Wed, 22 Dec 2021 13:00:51 -0600
Ready:          False
Restart Count:  146
Environment:
NAMESPACE:            openebs (v1:metadata.namespace)
METRICS_LISTEN_PORT:  :9101
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-8ctqq (ro)
Conditions:
Type              Status
Initialized       True
Ready             False
ContainersReady   False
PodScheduled      True
Volumes:
kube-api-access-8ctqq:
Type:                    Projected (a volume that contains injected data from multiple sources)
TokenExpirationSeconds:  3607
ConfigMapName:           kube-root-ca.crt
ConfigMapOptional:
DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:
Tolerations:                 node.kubernetes.io/disk-pressure:NoSchedule op=Exists
node.kubernetes.io/memory-pressure:NoSchedule op=Exists
node.kubernetes.io/not-ready:NoExecute op=Exists
node.kubernetes.io/pid-pressure:NoSchedule op=Exists
node.kubernetes.io/unreachable:NoExecute op=Exists
node.kubernetes.io/unschedulable:NoSchedule op=Exists
Events:
Type     Reason   Age                     From     Message

Warning  BackOff  2m20s (x3173 over 11h)  kubelet  Back-off restarting failed container
-bash-4.2$ kubectl describe pod openebs-ndm-operator-7769f77f8b-z6lzr -n openebs
Name:         openebs-ndm-operator-7769f77f8b-z6lzr
Namespace:    openebs
Priority:     0
Node:         iackube-01vm2/x
Start Time:   Tue, 21 Dec 2021 02:31:19 -0600
Labels:       name=openebs-ndm-operator
openebs.io/component-name=ndm-operator
openebs.io/version=3.0.0
pod-template-hash=7769f77f8b
Annotations:  cni.projectcalico.org/containerID: 4c7d706f588eac733eb85f5462f45736abbadf3e25b099d94457128da5008086
cni.projectcalico.org/podIP: X
cni.projectcalico.org/podIPs: X
Status:       Running
IP:           1X
IPs:
IP:           X
Controlled By:  ReplicaSet/openebs-ndm-operator-7769f77f8b
Containers:
node-disk-operator:
Container ID:   docker://a384e3e08eeafb4a1fe67562cf8a26c94ea39f45b80cbc99016eb9fe725e64cf
Image:          openebs/node-disk-operator:1.7.0
Image ID:       docker-pullable://openebs/node-disk-operator@sha256:828e84db2c7913e97f5fa472164687ec59f527a5f2272d8fbd652c9127dcc1ea
Port:
Host Port:
State:          Waiting
Reason:       CrashLoopBackOff
Last State:     Terminated
Reason:       Error
Exit Code:    1
Started:      Wed, 22 Dec 2021 13:00:40 -0600
Finished:     Wed, 22 Dec 2021 13:00:41 -0600
Ready:          False
Restart Count:  146
Liveness:       http-get http://:8585/healthz delay=15s timeout=1s period=20s #success=1 #failure=3
Readiness:      http-get http://:8585/readyz delay=5s timeout=1s period=10s #success=1 #failure=3
Environment:
WATCH_NAMESPACE:    openebs (v1:metadata.namespace)
POD_NAME:           openebs-ndm-operator-7769f77f8b-z6lzr (v1:metadata.name)
SERVICE_ACCOUNT:     (v1:spec.serviceAccountName)
OPERATOR_NAME:      node-disk-operator
CLEANUP_JOB_IMAGE:  openebs/linux-utils:3.0.0
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-b44x4 (ro)
Conditions:
Type              Status
Initialized       True
Ready             False
ContainersReady   False
PodScheduled      True
Volumes:
kube-api-access-b44x4:
Type:                    Projected (a volume that contains injected data from multiple sources)
TokenExpirationSeconds:  3607
ConfigMapName:           kube-root-ca.crt
ConfigMapOptional:
DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:
Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
Type     Reason   Age                     From     Message

Warning  BackOff  3m22s (x3332 over 11h)  kubelet  Back-off restarting failed container
-bash-4.2$

These are the kubectl describe output right. This helps with the events on the pods.
The kubectl logs would be more useful as we can see why the pod actually crashed.

Thanks @akhilerm
-bash-4.2$ kubectl logs pod openebs-cstor-admission-server-7fbd9b48d-4wkmm  -n openebs
Error from server (NotFound): pods "pod" not found
-bash-4.2$ kubectl logs openebs-cstor-admission-server-7fbd9b48d-4wkmm  -n openebs
F1222 19:11:48.771244       1 main.go:80] failed to list admission deployment: Get "https://<IP_ADDRESS>:443/apis/apps/v1/namespaces/openebs/deployments?labelSelector=openebs.io%2Fcomponent-name%3Dcstor-admission-webhook": dial tcp <IP_ADDRESS>:443: connect: no route to hostfailed to get a reference of the admission deployment object
-bash-4.2$ kubectl logs openebs-ndm-cluster-exporter-b5f8f4745-km7wr   -n openebs
E1222 19:10:31.954244       1 logs.go:35] unable to set flag, Error: no such flag -logtostderr
I1222 19:10:31.955481       1 exporter.go:52] Starting NDM Exporter...
I1222 19:10:31.955548       1 exporter.go:53] Version Tag : 1.7.0
I1222 19:10:31.955563       1 exporter.go:54] GitCommit : 6745dcf02d78c3b273c2646ff4bf027709c3a038
E1222 19:10:32.966132       1 exporter.go:69] error creating client from config. Get "https://<IP_ADDRESS>:443/api?timeout=32s": dial tcp <IP_ADDRESS>:443: connect: no route to host
Get "https://<IP_ADDRESS>:443/api?timeout=32s": dial tcp <IP_ADDRESS>:443: connect: no route to host
-bash-4.2$ kubectl logs openebs-ndm-node-exporter-bs6ms   -n openebs
E1222 19:11:08.708663       1 logs.go:35] unable to set flag, Error: no such flag -logtostderr
I1222 19:11:08.709464       1 exporter.go:52] Starting NDM Exporter...
I1222 19:11:08.709507       1 exporter.go:53] Version Tag : 1.7.0
I1222 19:11:08.709521       1 exporter.go:54] GitCommit : 6745dcf02d78c3b273c2646ff4bf027709c3a038
E1222 19:11:09.719737       1 exporter.go:69] error creating client from config. Get "https://<IP_ADDRESS>:443/api?timeout=32s": dial tcp <IP_ADDRESS>:443: connect: no route to host
Get "https://<IP_ADDRESS>:443/api?timeout=32s": dial tcp <IP_ADDRESS>:443: connect: no route to host
-bash-4.2$ kubectl logs openebs-ndm-operator-7769f77f8b-z6lzr    -n openebs
E1222 19:10:57.798401       1 cluster.go:159] controller-runtime/manager "msg"="Failed to get API Group-Resources" "error"="Get "https://<IP_ADDRESS>:443/api?timeout=32s\": dial tcp <IP_ADDRESS>:443: connect: no route to host"
E1222 19:10:57.799208       1 deleg.go:144] setup "msg"="unable to start manager" "error"="Get "https://<IP_ADDRESS>:443/api?timeout=32s\": dial tcp <IP_ADDRESS>:443: connect: no route to host"
-bash-4.2$

@akhilerm its weird but, I have just ran these commands
on Master
sudo systemctl restart firewalld
sudo systemctl enable firewalld
sudo systemctl status firewalld
sudo firewall-cmd --add-port={6443,2379-2380,10250,10251,10252,5473,179,5473,443}/tcp --permanent
sudo firewall-cmd --add-port={4789,8285,8472}/udp --permanent
sudo firewall-cmd --reload
sudo iptables --flush
sudo iptables -tnat --flush
sleep 60
on worker
sudo systemctl restart firewalld
sudo systemctl enable firewalld
sudo systemctl status firewalld
sudo firewall-cmd --permanent --add-port=10250/tcp
sudo firewall-cmd --permanent --add-port=10251/tcp
sudo firewall-cmd --permanent --add-port=10255/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --reload
sudo iptables --flush
sudo iptables -tnat --flush
sleep 60
Now things looks fine
NAMESPACE     NAME                                             READY   STATUS    RESTARTS          AGE
kube-system   calico-kube-controllers-784dcb7597-9d6qb         1/1     Running   3 (33h ago)       35h
kube-system   calico-node-jgl88                                1/1     Running   4 (33h ago)       34h
kube-system   calico-node-wqhq9                                1/1     Running   3 (33h ago)       35h
kube-system   coredns-64897985d-j9wmx                          1/1     Running   3 (33h ago)       35h
kube-system   coredns-64897985d-wn9zt                          1/1     Running   3 (33h ago)       35h
kube-system   etcd-iackube-01vm1                               1/1     Running   7 (33h ago)       35h
kube-system   kube-apiserver-iackube-01vm1                     1/1     Running   6 (33h ago)       35h
kube-system   kube-controller-manager-iackube-01vm1            1/1     Running   7 (33h ago)       35h
kube-system   kube-proxy-kgsx9                                 1/1     Running   7 (33h ago)       35h
kube-system   kube-proxy-nd9nw                                 1/1     Running   4 (33h ago)       34h
kube-system   kube-scheduler-iackube-01vm1                     1/1     Running   7 (33h ago)       35h
openebs       cspc-operator-64c67c894c-bsh4r                   1/1     Running   3 (33h ago)       34h
openebs       cstor-pool-cluster-x1-jhq4-58fcf58c4c-49vqn      3/3     Running   93 (12m ago)      34h
openebs       cvc-operator-5697fb984f-9rmfj                    1/1     Running   4 (33h ago)       34h
openebs       openebs-cstor-admission-server-7fbd9b48d-4wkmm   1/1     Running   150 (8m37s ago)   34h
openebs       openebs-cstor-csi-controller-0                   6/6     Running   19 (33h ago)      34h
openebs       openebs-cstor-csi-node-mw47q                     2/2     Running   8 (33h ago)       34h
openebs       openebs-ndm-cluster-exporter-b5f8f4745-km7wr     1/1     Running   150 (9m53s ago)   34h
openebs       openebs-ndm-hzdgh                                1/1     Running   3 (33h ago)       34h
openebs       openebs-ndm-node-exporter-bs6ms                  1/1     Running   150 (9m16s ago)   34h
openebs       openebs-ndm-operator-7769f77f8b-z6lzr            1/1     Running   150 (9m25s ago)   34h
@akhilerm Do we need to follow any set of steps while bringing down the Kubernetes Cluster with OpenEBS pods in it for the VM Host patching etc

@xigifty This is a networking issue, The pods are not able to contact API server and list the resources.

@xigifty. Were you able to resolve this issue?

@akhilerm Sorry for the delayed response. Things are working fine. The OpenEBS  pods will not come up even after n number of pod restarts after the VMS are powered On and Off and On.
This is because of some stale entries in the firewall related rules.
sudo iptables --flush has to run on all the Master Node and Worker Node and the OpenEBS pods were automatically  back online in the immediate next pod restart.
We have tested that like 20-25 Times and on different setups and its working.

Closing this issue as it is not related to openebs, but due to an issue in firewall rules.


Update the index.html template to say "Flask" instead of "Ruby on Rails"

https://github.com/TwilioDevEd/account-verification-flask/blob/master/account_verification_flask/templates/index.html#L6 still says "Ruby on Rails" - please update it to say "Flask"

Ok thanks, I'll correct it

Fixed!


Integration testing of jmeter-lightning-maven-plugin

Research if maven-invoker-plugin can offer better ways of integration testing for jmeter-lightning-maven-plugin.

Done


fix #1833 update performance related doc

Should we cut the picture to highlight the performance charts?
+1

you mean like this?

Yes

updated


The option "progressiveDownload" not work

In xcode 8 and Swift3, using SDWebImage 3.8.2
When using sd_setImage and set options "progressiveDownload", the image is not display progressively as before.

Can you add some extra details? See the ISSUE TEMPLATE. Does it happen with our demo project? Any image or just a particular one? ...

New Issue Checklist

[x] I have read and understood the CONTRIBUTING guide
[x] I have read the Documentation
[x] I have searched for a similar issue in the project and found none

Issue Info

Info
Value

Platform Name
iOS

Platform Version
10.2

SDWebImage Version
3.8.2

Integration Method
cocoapods

Xcode Version
Xcode 8.2

Repro rate
all the time (100%)

Repro with our demo prj
no

Demo project link
https://github.com/superk589/SDWebImageDemo_ProgressiveDownloadIssue

Issue Description and Steps
When using sd_setImage and set options "progressiveDownload", the image is not displayed progressively(use a large web image here and make sure it's not cached before), but shows suddenly after download finished.
Using simulator of iOS 9.x or 8.x in the same environment, "progressiveDownload" works correctly.

Thanks for the info @superk589, will look into this

@superk589 can you try with the latest version and let me know?

@mythodeia
I tried in iOS 10.3, the bug disappeared. Everything works fine just as in iOS 9.x.

great to hear that. closing


New version: PowerModelsAnnex v0.2.6

Registering package: PowerModelsAnnex
Repository: https://github.com/lanl-ansi/PowerModelsAnnex.jl
Created by: @ccoffrin
Version: v0.2.6
Commit: 3cae105da878c5b76f1906f88ff226f25af236f8
Reviewed by: @ccoffrin
Reference: https://github.com/lanl-ansi/PowerModelsAnnex.jl/issues/50#issuecomment-568017062

@dilumaluthge, I am confused by this feedback.  As I understand the  compat system, Unitful should have an UB  of 1.0.  See https://github.com/lanl-ansi/PowerModelsAnnex.jl/blob/master/Project.toml

[noblock]
Unitful = ">= 0.7, < 1.0" means greater than or equal to 0.7 OR less than 1.0. So in fact this compat allows any version of Unitful.

Ok, so what's the simplest way to encode ">= 0.7 AND < 1.0"?

Option 1: https://julialang.github.io/Pkg.jl/dev/compatibility/#Hyphen-specifiers-1
But this requires at least Julia 1.4. And AutoMerge runs on the latest release, which is Julia 1.3. So I wouldn’t recommend using hyphen specifies until Julia 1.4 is released.
Option 2: just list out all of the breaking versions that you support, e.g. "0.7, 0.8, 0.9"
[noblock]

@DilumAluthge after being fixed this still seems to be missing the auto merge.  Do you know what is up?
[noblock]

If there are any comments on the pull request that don’t contain the text [noblock], then the automerge is blocked.


Timezone Support

Should use node-time to better manage different time zones between development and server and endpoints.

No longer valid because using Ruby on Rails.


Glusterfs Thin Arbiter

Hallo.
I'm using your Lab description as basement for my setup. Everything is clear here for me, except the GlusterFs Thin Arbiter. I'm able to install Thin-Arbiter module on my "vote" node. But I'm completely confused about the thin-arbiter.vol file.
https://github.com/gluster/glusterfs/tree/devel/extras/thin-arbiter
I think that this file must fit my other volumes, but I Can't find any other piece of information how to deal with this.
Seem's that I'm not only one, because for example this issue:
https://github.com/gluster/glusterdocs/issues/621
Notices that doc is incomplete and confusing.
For example I'm not able to verify that the Thin Arbiter is fully functional...
Do you have any progres with the Thin Arbiter please? Can you share the volume file with us, or extend the doc  about the Thin Arbiter config steps?
Any help will be highly appreciated.
PS: I can create real arbiter node too, because it's not as much hungry for resources as real node, but Thin Arbiter completely fit my setup needs, but is hard to configure it..

Hello @polachz!
Unfortunately, I have moved to a three PVE host configuration before I could figure out a working thin arbiter setup. I gave up on this after a lot of trial and error.
I may update the documentation to make this clear.
Cheers, Adam

Jut or FYI> here is functional recipe for the GlusterFS  Thin Arbiter: https://polach.me/posts/howto-setup-glusterfs-thin-arbiter-at-homelab/

This is great! Thanks for sharing! I will update the guide in a moment.


chore(Dashboard): Highlight errored filters on the left pane of the Native Filters form plus several enhancements

SUMMARY
This PR introduces several enhancements to the native filters form and some new functionalities:

It shows [untitled] on the left pane when no name is entered. This is consistent with other parts of the platform
It shows an error indication on the left pane when an error is generated on the fly or on save. This drags the attention of the user to the right filters where an action is required
It restructures a little bit the form using the Antdesign Form.Item wherever possible. However, the constraints of this implementation are huge and I advocate for a full refactor asap

AFTER
https://user-images.githubusercontent.com/60598000/135862247-1c6d729b-4d15-4b8e-b2f0-e03297f4bfdb.mp4
TESTING INSTRUCTIONS

Open a Dashboard with native filters enabled
Fill in the form and observe the behavior when an error is generated

ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Required feature flags:
[ ] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

@mihir174 @junlincc @rusackas the proposed layout with a red title with a red icon indicator is tentative. Feel free to come up with better suggestions and I'll be happy to change accordingly. Thank you!

Thanks for the feature @geido. Some points:

When creating a new filter, the name is "New Filter" and not "[untitled]". I liked your idea, so it should start as "[untitled]"
If you generate an error in a saved filter, like deleting its name, and cancel, the error shows when reopening
The error icon position will conflict with the drag icon that is being implemented here. Maybe position it on the right side?
Should we make the error icon the same as the trash icon?

Hey @michael-s-molina thanks for your feedback! I implemented what you suggested above and updated the video in the description


Images folder for mobile applications

Can you please tell me the "images" folder path for mobile application and how to load the background image from images folder in tns.scss file?

You can use the ~/images/anything.png to reference an image in (for example) and images folder within the nativescript/src directory.
.coverImage {
    background-image: ~/images/anything.jpg;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
}

https://stackoverflow.com/questions/43333238/nativescript-how-to-set-a-background-image


No source language for translations with the only source BnF

When using dataprofile-aggregated.sparql to get a CSV according to our dataprofile, translations which are linked to only BnF (and not KBR or KB) do not indicate source languages.

The BnF source data indicates languages using dcterms:language. Sometimes French is indicated, sometimes Dutch and sometimes both. We "know" which one is the source and which the target language, because in our pipeline we also take information from the BnF catalogue's advanced search into account. If for example a manifestation URI was mentioned in the search results of NL-FR, we annotate the target language ourselves:
https://github.com/kbrbe/beltrans-data-integration/blob/10b92ab4cfc8c91b6961b3cace30d7a631fbacf8/data-integration/sparql-queries/transform-bnf-data-fr-nl.sparql#L23-L43
We basically have to do the same for the source language.


Any plans on adding a skdh indicator?

This project is amazing, thanks for sharing.
I'm wondering if you have plans (or a solution) on adding skdh into the menubar. It would be very helpful for knowing in what mode are you currently and would play nice with the indicator.
Thanks!

I have not considered that yet and will probably not implement that myself, since I don't use modes that much. If you are interested in implementing something, PRs are always welcome :)


Implement Manifest template support for targets with packageName attribute

Right now packageName we define in build config and package in the manifest is just duplicated.
So what we need is create a universal manifest file, smth like:
<?xml version="1.0" encoding="utf-8"?>
<manifest package="${packageName}"/>

And make sure the generation of this file is automated for every new target, or even better - use a symlink(or some other approach) to a single file for all targets which need manifest. So having AndroidManisest in every target will become obsolete
We can figure out manifest extensions for Activities later. (Like merge universal template with additional provided manifest file)

👍

Already implemented via new AGP API's


Status

Don't put many hopes in this. Based on the comments on the magento 2 repo the grid system will be changed...A LOT.

Did that change happen with 2.1? Can we consider that your model here is the stable one or will be changed by magento in the near future?
Thanks!

@ClaudiuCreanga There are (at least were) a lot of changes happening weekly in the Magento 2 repo and I couldn't keep up with them.
Most of the changes were related to the way that grids and forms act in the backend.
The latest version of this module should be compatible with M2.1 now. I just hope there are no other big changes in the following weeks.
I tried to follow the standards of the ui components, remove all calls to deprecated methods, remove all load and save calls from models.
From the talks I had with the core team members, this should be the stable model for the future, but I cannot guarantee it.
I've already tested this approach on the M2.2 - dev branch and it seams to work.
Let's just hope for the best :smile: .


Add a Sling Models 1.2 compliant injector-specific annotation.

All dependencies are marked optional to make sure the bundle still runs with AEM 6.0.
This fixes #470

Some comments:
I renamed the AemObjectsInjector to AemObjectInjector to be more inline with the original SlingInjector (and its annotation, injector).
This injector is only compatible with Sling Models 1.2 which is not shipped until AEM 6.2. If I would provide an injector which is compatible with Sling Models 1.1 (shipped with AEM 6.1) that one would not support default injection strategies properly (https://issues.apache.org/jira/browse/SLING-4155).
@justinedelson WDYT?

So with this change, what happens when you install ACS AEM Commons on an AEM instance with Sling Models 1.0 or 1.1 installed?

With Sling Models 1.0 or 1.1 the annotation processor factory would just not be available and therefore the annotation would be ignored. I had to mark the according dependencies as optional in the manifest.

@justinedelson any outstanding concerns with this or can we merge?

This cannot be merged into master as-is. Doing so makes ACS AEM Commons uninstallable on an otherwise unmodified 6.1 instance due to
org.apache.sling.models.spi,version=[1.1,2) -- Cannot be resolved

Merged into the 6.2-compatibility branch. Not sure how this can be made compatible with 6.1, but if it can, we can address on master at a later point in time. Closing this.


Channel unusable: FAILURE_REASON_INSUFFICIENT_BALANCE

Background
I just opened a channel but can't balance it with lncli sendpayment because no payment through it could be made, every attempt quickly fails with error Payment status: FAILED, reason: FAILURE_REASON_INSUFFICIENT_BALANCE. My local balance is fine, however, the local max_pending_amt_msat parameter is weird (unusually high, in hex it's 0xFFFFFFFFFFFFFFFF so -1 int64 I assume?). Here's the channel info as reported by my node:
        {
            "active": true,
            "remote_pubkey": "02fe153690061fa27049bae0faa236ddb95df98c514416a350449c24a8018851dc",
            "channel_point": "bbbc88139224f18246f646df7504e18f3be5a705283c54ae5a1781242f4e3889:1",
            "chan_id": "758268298569842689",
            "capacity": "1000000",
            "local_balance": "989855",
            "remote_balance": "0",
            "commit_fee": "10145",
            "commit_weight": "600",
            "fee_per_kw": "14013",
            "unsettled_balance": "0",
            "total_satoshis_sent": "0",
            "total_satoshis_received": "0",
            "num_updates": "1",
            "pending_htlcs": [
            ],
            "csv_delay": 144,
            "private": false,
            "initiator": true,
            "chan_status_flags": "ChanStatusDefault",
            "local_chan_reserve_sat": "10000",
            "remote_chan_reserve_sat": "10000",
            "static_remote_key": true,
            "commitment_type": "STATIC_REMOTE_KEY",
            "lifetime": "186",
            "uptime": "186",
            "close_address": "",
            "push_amount_sat": "0",
            "thaw_height": 0,
            "local_constraints": {
                "csv_delay": 144,
                "chan_reserve_sat": "10000",
                "dust_limit_sat": "573",
                "max_pending_amt_msat": "18446744073709551615",
                "min_htlc_msat": "0",
                "max_accepted_htlcs": 30
            },
            "remote_constraints": {
                "csv_delay": 144,
                "chan_reserve_sat": "10000",
                "dust_limit_sat": "546",
                "max_pending_amt_msat": "990000000",
                "min_htlc_msat": "1",
                "max_accepted_htlcs": 483
            }
        },

I opened it using Ride-The-Lightning, took a while because the block rate suddenly dropped and fees skyrocketed but after three hours it got confirmed and the channel became active. But I can't send any sats through it to the other side and back to myself.
Your environment

version of lnd: 0.13-beta (originally built from 20ef37d8)
which operating system (uname -a on *Nix): Linux 5.10.46-v7l+ #1432 SMP Fri Jul 2 21:17:20 BST 2021 armv7l GNU/Linux (RaspberryPi 4 B)
version of btcd, bitcoind, or other backend: bitcoind 0.21.1

Steps to reproduce
Opened a channel using RTL. Try to pay to yourself using lncli sendpayment --amp -d 021c3ec6432d2b9b5abcb01dd64b3a8f2afe3ba7d8c021f63ffd0a994cd3bc9b88 --allow_self_payment -a 10000 --outgoing_chan_id<PHONE_NUMBER>69842689
Expected behaviour
I should be able to use the channel to at least balance it to 50/50
Actual behaviour
rebalance.py fails with ✘ Could not find any suitable route, lncli sendpayment fails with FAILURE_REASON_INSUFFICIENT_BALANCE. Log:
Jul 04 23:02:47 fullnode lnd[22879]: 2021-07-04 23:02:47.464 [WRN] CRTR: Failed to find route for payment fda26e4f9ab2b7669b273d1e53013575e73fa2197b0ee978d0b94e4ddcbce940: insufficient local balance
Jul 04 23:02:47 fullnode lnd[22879]: 2021-07-04 23:02:47.482 [ERR] CRTR: Payment fda26e4f9ab2b7669b273d1e53013575e73fa2197b0ee978d0b94e4ddcbce940 failed: insufficient_balance

I experienced some system instability, probably due to the power issues (SSD freezes) so the channel issue might be caused by a database corruption. I checked the channel.db and other database files with bolt and it hasn't found any errors so might not be it in the end.
I have another channel with this -1 max_pending_amt_msat, the peer in question connects and disconnects instantly so that channel doesn't work because the peer is always offline. However, the peer in this report above connects normally and the channel was opened after the latest hardware issue. I also opened other channels before today and they work fine, only this one misbehaves.

Hmm, something's definitely weird here. I think the max_pending_amt_msat is not allowed to be larger than the channel capacity. It's even validated when opening a channel. So this does sound like a case of data corruption.
I would advise you to try and coop-close those two channels while the fees are low and try again. Or even start over completely by closing all channels and restarting the node on a new SSD (it freezing can be a sign of hardware failure too).

I opened a new channel and it yet again shows incorrect information and doesn't allow to send sats due to insufficient local balance:
        {
            "active": true,
            "remote_pubkey": "03baa70886d9200af0ffbd3f9e18d96008331c858456b16e3a9b41e735c6208fef",
            "channel_point": "950c3ad3b0dd18e5b8db9d9066918cc53cbbb76d87bb5d1534dadf41bcb96888:1",
            "chan_id": "758369453673480193",
            "capacity": "2500000",
            "local_balance": "2498398",
            "remote_balance": "0",
            "commit_fee": "1602",
            "commit_weight": "600",
            "fee_per_kw": "2214",
            "unsettled_balance": "0",
            "total_satoshis_sent": "0",
            "total_satoshis_received": "0",
            "num_updates": "0",
            "pending_htlcs": [
            ],
            "csv_delay": 144,
            "private": false,
            "initiator": true,
            "chan_status_flags": "ChanStatusDefault",
            "local_chan_reserve_sat": "25000",
            "remote_chan_reserve_sat": "25000",
            "static_remote_key": true,
            "commitment_type": "STATIC_REMOTE_KEY",
            "lifetime": "1143",
            "uptime": "1143",
            "close_address": "",
            "push_amount_sat": "0",
            "thaw_height": 0,
            "local_constraints": {
                "csv_delay": 144,
                "chan_reserve_sat": "25000",
                "dust_limit_sat": "573",
                "max_pending_amt_msat": "18446744073709551615",
                "min_htlc_msat": "0",
                "max_accepted_htlcs": 30
            },
            "remote_constraints": {
                "csv_delay": 300,
                "chan_reserve_sat": "25000",
                "dust_limit_sat": "546",
                "max_pending_amt_msat": "2475000000",
                "min_htlc_msat": "1",
                "max_accepted_htlcs": 483
            }
        },

The logs:
Jul 05 12:03:43 fullnode lnd[22879]: 2021-07-05 12:03:43.685 [INF] NTFN: New block: height=689735, sha=0000000000000000000edbebedcd49e11be9c22806d80034691b3135ff425922
Jul 05 12:03:43 fullnode lnd[22879]: 2021-07-05 12:03:43.687 [INF] NTFN: Dispatching 3 confirmation notification for txid=950c3ad3b0dd18e5b8db9d9066918cc53cbbb76d87bb5d1534dadf41bcb96888
Jul 05 12:03:43 fullnode lnd[22879]: 2021-07-05 12:03:43.687 [INF] UTXN: Attempting to graduate height=689735: num_kids=0, num_babies=0
Jul 05 12:03:43 fullnode lnd[22879]: 2021-07-05 12:03:43.692 [INF] FNDG: ChannelPoint(950c3ad3b0dd18e5b8db9d9066918cc53cbbb76d87bb5d1534dadf41bcb96888:1) is now active: ChannelID(8868b9bc41dfda34155dbb876db7bb3cc58c9166909ddbb8e518ddb0d33a0c94)
Jul 05 12:03:43 fullnode lnd[22879]: 2021-07-05 12:03:43.799 [ERR] FNDG: unable to report short chan id: link 8868b9bc41dfda34155dbb876db7bb3cc58c9166909ddbb8e518ddb0d33a0c94 not found
Jul 05 12:03:43 fullnode lnd[22879]: 2021-07-05 12:03:43.801 [INF] CHBU: Updating on-disk multi SCB backup: num_old_chans=28, num_new_chans=28
Jul 05 12:03:43 fullnode lnd[22879]: 2021-07-05 12:03:43.861 [INF] FNDG: Peer(03baa70886d9200af0ffbd3f9e18d96008331c858456b16e3a9b41e735c6208fef) is online, sending FundingLocked for ChannelID(8868b9bc41dfda34155dbb876db7bb3cc58c9166909ddbb8e518ddb0d33a0c94)
...
Jul 05 12:04:01 fullnode lnd[22879]: 2021-07-05 12:04:01.348 [INF] PEER: New channel active ChannelPoint(950c3ad3b0dd18e5b8db9d9066918cc53cbbb76d87bb5d1534dadf41bcb96888:1) with Node
Key(03baa70886d9200af0ffbd3f9e18d96008331c858456b16e3a9b41e735c6208fef)
Jul 05 12:04:01 fullnode lnd[22879]: 2021-07-05 12:04:01.355 [INF] HSWC: Removing channel link with ChannelID(8868b9bc41dfda34155dbb876db7bb3cc58c9166909ddbb8e518ddb0d33a0c94)
Jul 05 12:04:01 fullnode lnd[22879]: 2021-07-05 12:04:01.357 [INF] HSWC: ChannelLink(689733:1719:1): starting
Jul 05 12:04:01 fullnode lnd[22879]: 2021-07-05 12:04:01.363 [INF] HSWC: Trimming open circuits for chan_id=689733:1719:1, start_htlc_id=0
Jul 05 12:04:01 fullnode lnd[22879]: 2021-07-05 12:04:01.365 [INF] HSWC: Adding live link chan_id=8868b9bc41dfda34155dbb876db7bb3cc58c9166909ddbb8e518ddb0d33a0c94, short_chan_id=689733:1719:1
Jul 05 12:04:01 fullnode lnd[22879]: 2021-07-05 12:04:01.365 [INF] CNCT: Attempting to update ContractSignals for ChannelPoint(950c3ad3b0dd18e5b8db9d9066918cc53cbbb76d87bb5d1534dadf41bcb96888:1)
Jul 05 12:04:01 fullnode lnd[22879]: 2021-07-05 12:04:01.365 [INF] HSWC: ChannelLink(689733:1719:1): HTLC manager started, bandwidth=2473017000 mSAT

Any debugging ideas?

I opened two more small channels:

to 02fe153690061fa27049bae0faa236ddb95df98c514416a350449c24a8018851dc, 50k sats, same bug
to 026d1de80e59f3fe2b27aa3dc8012f4437165bf99971bd9b7d8afedb066f92d695, 20k sats, it works fine

I don't think it's data corruption at this point. Both 03baa70886d9200af0ffbd3f9e18d96008331c858456b16e3a9b41e735c6208fef and 02fe153690061fa27049bae0faa236ddb95df98c514416a350449c24a8018851dc somehow trigger this bug on my side. However, another peer that I never connected before works as expected. Of course, I already restarted lnd many times during these experiments. I'll try to open more channels to other nodes. There's no information about the software implementation that second buggy node runs.

Do you see the high max_pending_amt_msat for the other buggy channel as well? Did you open all channels through RTL?

Yes, all buggy channels have 0xFFFFFFFFFFFFFFFF max_pending_amt_msat set. These two small channels were opened manually with lncli just in case it might be an RTL's fault. It seems not to be the case.

Oh, and now something funny happened: someone forwarded four payments through my node and they all went out of that buggy channel just fine! So I can't send sats from it but other users can.

Opened another 50k channel with a previously unseen node and it's broken.
        {
            "active": true,
            "remote_pubkey": "02e389d861acd9d6f5700c99c6c33dd4460d6f1e2f6ba89d1f4f36be85fc60f8d7",
            "channel_point": "0b138ce36d3a54e33eb13a97aa1349bd80f958c81fbaf8562387a52634584cc8:0",
            "chan_id": "758387045833441280",
            "capacity": "50000",
            "local_balance": "49234",
            "remote_balance": "0",
            "commit_fee": "766",
            "commit_weight": "600",
            "fee_per_kw": "1059",
            "unsettled_balance": "0",
            "total_satoshis_sent": "0",
            "total_satoshis_received": "0",
            "num_updates": "0",
            "pending_htlcs": [
            ],
            "csv_delay": 144,
            "private": false,
            "initiator": true,
            "chan_status_flags": "ChanStatusDefault",
            "local_chan_reserve_sat": "573",
            "remote_chan_reserve_sat": "546",
            "static_remote_key": true,
            "commitment_type": "STATIC_REMOTE_KEY",
            "lifetime": "212",
            "uptime": "212",
            "close_address": "",
            "push_amount_sat": "0",
            "thaw_height": 0,
            "local_constraints": {
                "csv_delay": 144,
                "chan_reserve_sat": "573",
                "dust_limit_sat": "573",
                "max_pending_amt_msat": "18446744073709551615",
                "min_htlc_msat": "0",
                "max_accepted_htlcs": 30
            },
            "remote_constraints": {
                "csv_delay": 144,
                "chan_reserve_sat": "546",
                "dust_limit_sat": "546",
                "max_pending_amt_msat": "49500000",
                "min_htlc_msat": "1",
                "max_accepted_htlcs": 483
            }
        },

Opened a working channel with Blixt Wallet node, I chose it on 1ml.com going through the owned nodes list (just looked through the channels to the 1ml alpha node one by one) because the owner says it runs lnd specifically. The channel is completely normal and I'm able to send through it back to myself, the constraints are also okay.
At this point may I ask you, @guggero, to try to open channels to the nodes that I marked as buggy? Using the latest lnd build from master, of course. I'd like to get to the root of this issue, reopening and balancing 25 channels due to a supposed database corruption would be a significant inconvenience, especially if it's really an lnd bug after all. Maybe it won't happen on your setup but a bug is a bug and fixing it is a great good. So far I can reproduce it pretty reliably and it seems to happen only with some nodes.
Meanwhile I'll try to carefully add some logging around the parts that cause the insufficient balance error and see why it happens exactly.

Interesting, this does start to sound like an interop problem with c-lightning. Will try as soon as I find the time.

Could be, even though I must be pretty unlucky to hit this many c-lightning nodes in a row but who knows. So I added some debug logging and found a bit of interesting information that might help to solve the issue. First of all, here we get 0 from bandwidthHints. It's populated elsewhere in this function. Specifically this check fails (the error is not logged anywhere at any level so it's not easy to see what's wrong). It fails during the validation of whether we can add another HTLC. A mock HTLC is added here and since our local config is borked an HTLC with zero amount is added, the check then fails right here. The broken HTLC appears when remoteChain=true.
Here's the relevant pieces of my log (enhanced to see the internals, I removed a lot of zeroes in the OnionBlob field):
Jul 05 19:32:37 fullnode lnd[14912]: 2021-07-05 19:32:37.278 [INF] LNWL: ChannelPoint(0b138ce36d3a54e33eb13a97aa1349bd80f958c81fbaf8562387a52634584cc8:0): Remote side: true, entry: {
RHash:[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] RPreimage:[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] Timeout:0 Amount:0 mSAT LogIndex:1
 HtlcIndex:0 ParentIndex:0 SourceRef:<nil> DestRef:<nil> OpenCircuitKey:(Chan ID=0:0:0, HTLC ID=0) ClosedCircuitKey:<nil> localOutputIndex:0 remoteOutputIndex:0 sig:<nil> addCommitHeightRemote:0 addCommitHeightLocal:0 removeCommitHeightRemote:0 removeCommitHeightLocal:0 OnionBlob:[0 0 0 0 0 0 ... 0 0 0 0 0] ShaOnionBlob:[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
FailReason:[] FailCode:<unknown> ourPkScript:[] ourWitnessScript:[] theirPkScript:[] theirWitnessScript:[] EntryType:Add isForwarded:false}
Jul 05 19:32:37 fullnode lnd[14912]: 2021-07-05 19:32:37.281 [INF] LNWL: ChannelPoint(0b138ce36d3a54e33eb13a97aa1349bd80f958c81fbaf8562387a52634584cc8:0): entry amount is zero
Jul 05 19:32:37 fullnode lnd[14912]: 2021-07-05 19:32:37.281 [WRN] SRVR: Link to<PHONE_NUMBER>3833343236613538373233353666386261316663383538663938306264343931336161393733616231336565333
534336136646533386331333062 can't add outgoing htlc: proposed HTLC value must be positive

Next, another (working) channel that doesn't throw any errors:
Jul 05 19:32:37 fullnode lnd[14912]: 2021-07-05 19:32:37.275 [INF] LNWL: ChannelPoint(e11d4d6df475eb0a64c03497d36d4cf80d12071736e18767b5e917bb30292233:0): Remote side: false, entry:
{RHash:[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] RPreimage:[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] Timeout:0 Amount:1 mSAT LogIndex:
5 HtlcIndex:3 ParentIndex:0 SourceRef:<nil> DestRef:<nil> OpenCircuitKey:(Chan ID=0:0:0, HTLC ID=0) ClosedCircuitKey:<nil> localOutputIndex:0 remoteOutputIndex:0 sig:<nil> addCommitHeightRemote:0 addCommitHeightLocal:0 removeCommitHeightRemote:0 removeCommitHeightLocal:0 OnionBlob:[0 0 0 0 0 0 ... 0 0 0 0 0] ShaOnionBlob:[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
 FailReason:[] FailCode:<unknown> ourPkScript:[] ourWitnessScript:[] theirPkScript:[] theirWitnessScript:[] EntryType:Add isForwarded:false}

Now the reason of it not working is pretty clear, the local config isn't properly populated so we get weird default values that say that we may route 0 sat HTLCs and this self-test catches it before the payment is made (no matter the amount in it). I don't know how the wire protocol works so I'll leave it to the developers who know exactly where these values are filled (LocalChanCfg.MinHTLC in particular).

I just opened a channel to 02e389d861acd9d6f5700c99c6c33dd4460d6f1e2f6ba89d1f4f36be85fc60f8d7 and can confirm I have the same symptoms (using v0.13.1-beta.rc1):
            "local_constraints": {
                "csv_delay": 144,
                "chan_reserve_sat": "1000",
                "dust_limit_sat": "573",
                "max_pending_amt_msat": "18446744073709551615",
                "min_htlc_msat": "0",
                "max_accepted_htlcs": 30
            },

And then FAILED, reason: FAILURE_REASON_INSUFFICIENT_BALANCE when trying to use the channel.
Definitely something up here. Thanks for the debugging work too! This should be helpful.

            "min_htlc_msat": "0",

Ok, so this is the actual issue. The recently added MayAddOutgoingHtlc, uses the MinHLTC setting (given to us by the other value), which causes us to attempt to see if we can add an HTLC of value 0. That runs into the "HTLC value must be positive check", which ends up bubbling up as this insufficient value error. cc @carlaKC
As a follow up, we wanted to thread through the actual value here (of the proposed HTLC) so it would get proper validation, but it seems we need to use another value here before we finish the larger overhaul. We could use their dust value here perhaps?


[Feature Request] always incognito mode

I would like a always incognito mode similar to the one available in Bromite
Additional context
Add any other context or screenshots about the feature request here.

+1

This is a neat option

This already exists!  Just add --incognito to your launch switches.

This already exists! Just add --incognito to your launch switches.

Not really the best work around a official implementation would be nice

There is a configuration file for this:
$ vi "/etc/chromium/default"
CHROMIUM_FLAGS="--incognito"

I hope your question has been answered, otherwise please let us know.
Closing this issue for now.


feat:

Is your request related to a problem? Please describe.

The component VtmnSearch from @vtmn/vue can't hide the clear button even it is empty.
Describe the solution you'd like

Hide it when the user don't input any content.
Additional context

Thanks @ESTABZENITH2452 for this issue.
As the @vtmn/vue is a community library, I hope someone will take this issue to help you.
If you want, feel free to contribute also! We are there to help you if needed regarding launching & contributing on the vitamin-web stack.


Revamp the Upload screen

As stated in #1037:

It's quite odd to show the image being uploaded in the background. It seems to be cluttering up with the text in the screen (the text Wikimedia Commons policies is barely visible). It would be better to show a small preview of the image and let the users see it fully if they want to.

@tanvidadu Yes if you create an activity to zoom/pan into the picture, I am pretty sure it will get used. Thanks! :-)

Workflow: A class which has a function that takes imageview as parameter  to be zoomed in zoomed out. class implements onTouchListener. Is it okay ?

What kind of zoom/pan do you think @nicolas-raoul ? Don't you also think the upload screen is very crowded for such thing? @tanvidadu probably discussing more before implementation would be nicer. Can you share some mockups, what do you have in your mind?

I was aiming for something like this

I mean, how do you think to adapt this into our app?

we could apply this feature to the image at the background.
In order to write a correct title/description I often need to see all small details of the picture.

I am not able to imagine this since we already have buttons on top of image at the background, and a transparent layer. As a user I wouldn't expect to zoom an image behind a semitransparent layer. I think this can be only implemented after UI screen is improved. But it is my personal opinion and asking to the team for discussion, what do you think, team?

I agree with what you say @neslihanturan. But I think @nicolas-raoul didn't mean to incorporate the zoom feature into the current upload screen. I thought he advised @tanvidadu to create a separate activity that allows a given picture to be zoomed/panned which we could later use as part of the revamp of the upload screen. I might be wrong so it might be better to confirm this with him.

I do agree that this needs further discussion. I'm not sure if allowing the user to directly zoom the background image in the upload activity is a good idea, and given that it is semi-transparent, will the user be able to see much?
As an alternative, could we have a "view image" option in the upload activity, and tapping on it could pop up a zoomable version of the image?

I was thinking about something like below: A preview of the image is visible, and clicking on this thumbnail brings in the zoom/pan activity that @tanvidadu implemented. Pressing "Back" leaves the zoom/pan activity and brings the user back to adding more details about the picture.
I don't think this is a crowded screen, but the preview can be made much smaller if needed, for instance as a thumbnail at the right of the license.

I think @nicolas-raoul 's mockup looks great. :) Although I do wonder how we will make it work with #604 , which will be implemented soon.

Maybe same design would work with a grid composed from uploading multiple images, sure zooming and moving should work independently on each grid cells, what do you think?

Maybe same design would work with a grid composed from uploading multiple images, sure zooming and moving should work independently on each grid cells, what do you think?

Sounds good, but we would probably need to set a limit to the number of pictures displayed.

Besides, since I am not able to read the language on mockup, can't understand which field is which one. Can you please write them from top to the bottom?

I can't read that language either, but I am pretty sure the ordering of the fields is title and desc on top, then license and policies on the bottom. ;) Just realized that that mockup is missing the "use previous title/description" button, though.

Sorry it was just to give an idea, a better mockup would be needed :-)

Haha, sorry, Nicolas, didn't mean to rag on your mockup! :) Just mentioned it so that the person working on the implementation knows what else to add.

I am almost done with zoom/ pan class should i send a PR for the same ? thanks :)

Hi @tanvidadu , please feel free to submit your PR whenever. :) We will review it and get back to you with any changes that are needed (if any).

Sorry for delay I changed my class a bit in reference to issue #1128
Please tell me which mock-up would better. Thanks !!

Can someone look into the possibility of using this here? It's a fullscreen image viewer based on fresco with pinch to zoom and swipe to dismiss enabled. Downsampling is also supported. As far as I can see this can be used in two places. I've used it a few times and it works like a charm. Maybe it can also be used in the recent upload screen.
Cheers!

@maskaravivek I don't think the main reason for opening this issue, lack of readability as a consequence of showing the image being uploaded in the background, has strongly been opposed by anyone. So, I do think the upload screen needs a re-design in that respect. If that's to be covered as part of #1128 then we could leave this closed else I would possibly expect a better reason for closing this issue.

I agree this task is not totally about zooming, probably @maskaravivek merged this since zoom feature is merged though.


implement echo filter via async rust

This adds a new rust_echo filter to contrib which wraps the filter execution in a Rust executor, making it possible to implement the filter via async Rust. For now we'll add this to contrib to allow merging basic Rust support and iterate on it, then as we solve some of the outstanding issues with the build we can look at moving the executor code + the filter into the main source tree.
This is really a copy of the existing echo filter, but updated to make use of the Rust executor. The integration test remains exactly the same, demonstrating that it is able to perform the same job as the existing echo filter.
Commit Message:
Additional Description:
Risk Level: Low
Testing: IT
Docs Changes: Added docs for the rust echo filter
Release Notes: n/a
Platform Specific Features: n/a

@mattklein123 I think I got this one green adding the filter to contrib, ptal

needs main merge
/wait


Add the possibility to log the YarpTextLogging

Some modules can forward their execution log to the Yarplogger through a Yarp port. We could visualise the logged data on OpenMCT. Refer to the discussion referenced below:

It might also be useful to log the text log coming from the modules. In general anyway, it would be nice to have a shared interface between the online and offline logging.
cc @GiulioRomualdi

Originally posted by @S-Dafarra in https://github.com/ami-iit/yarp-openmct/issues/121#issuecomment-1180685833

For the TextLogging I took inspiration from what is done in YarpManager. https://github.com/ami-iit/bipedal-locomotion-framework/pull/546

Originally posted by @GiulioRomualdi in https://github.com/ami-iit/yarp-openmct/issues/121#issuecomment-1182455351

For the TextLogging I took inspiration from what is done in YarpManager. ami-iit/bipedal-locomotion-framework#546

@GiulioRomualdi , I guess you meant more specifically https://github.com/ami-iit/bipedal-locomotion-framework/pull/541.

Originally posted by @nunoguedelha in https://github.com/ami-iit/yarp-openmct/issues/121#issuecomment-1235252330
For the development, we relate to the analysis done in https://github.com/ami-iit/bipedal-locomotion-framework/pull/540 .

Using yarp_logging

yarp_logging Logging with YARP
YARP has an internal mechanism to help you debug your distributed application.
While you can simply use printf or std::cout methods to debug your
application locally, if you use the functionalities offered, YARP will collect
and show several additional information, including system and network time,
file, line, thread id, etc., and eventually forward them to
[yarplogger](@ref yarplogger).
YARP is also able to detect if it is running on a console or inside
[yarprun](@ref yarprun) and if the application output is forwarded to
[yarplogger](@ref yarplogger) (using the --log option), and change its
output accordingly, so that the extra information is forwarded properly.
When the log is forwarded over the network, the logging process opens a yarp port
with the following syntax: /log/hostname/processname/pid.
NOTE: If yarprun is used, hostname is replaced by the name of yarprun server.

Environment variables
Identifying the process which is currently broadcasting

User can set YARP_LOG_PROCESS_LABEL to specify a string which can help in identifying the
process which is currently broadcasting the log over the network.
The string will be appended after the process name in the log port and included between
two square brackets, i.e. /log/hostname/processname[user_label]/pid.
A typical use case for this environment variable is when multiple [yarprobotinterface](@ref yarprobotinterface)
and/or [yarpdev](@ref yarpdev) are running simultaneously. In this case, the name log ports are
difficult to interpret, since the process name alone is not enough to identify them.
In this case the user can set a custom label for each of them to better distinguish them
in the [yarplogger](@ref yarplogger) gui.
YARP_LOG_PROCESS_LABEL can be easily set for each individual process, via [yarpmanager](@ref yarpmanager),
using the environment section.

Forwarding output

By default, the logging callback prints the output on the stdout/stderr.
When a YARP program is started by [yarprun --log](@ref yarprun), this will
forward the output on a YARP port that can be read by
[yarplogger](@ref yarplogger), and displayed.
This behaviour can be obtained also without [yarprun](@ref yarprun), by
setting the YARP_FORWARD_LOG_ENABLE environment variable to 1.
Please note that, while [yarprun](@ref yarprun) is able to forward all the
output of the application (including printf and std::out output), this
method will forward only the output using YARP log utilities.
At the moment, not all the information gathered is forwarded. It is possible
to enable them by using the following environment variables:

YARP_FORWARD_CODEINFO_ENABLE
YARP_FORWARD_HOSTNAME_ENABLE
YARP_FORWARD_PROCESSINFO_ENABLE
YARP_FORWARD_BACKTRACE_ENABLE

Please note that yarp::os internal logging is never forwarded, since this
could cause recursions that will crash the program.

For

The YARP_FORWARD_LOG_ENABLE=1 setting is working properly, I'm able to connect to the respective logging ports and stream the expected messages.
The YARP_LOG_PROCESS_LABEL  variable is not having any effect on the port name. This is probably because I was using an old YARP version older than 3.5.1, while 3.5.1 includes the commit https://github.com/robotology/yarp/tree/64beef5720bedd3ecca59d6a315a6fb7124047c5 .
So I tried updating my setup, installing a recent superbuild (binary installation). I'm having some issues installing the whole barraca due to some cross-dependencies on Conda. I will discuss with @traversaro offline about this.

@traversaro , at the end I was able to install Gazebo 11.11.0, after:

updating conda to 4.14.0 (although you mentioned it shouldn't matter in this case, but maybe same base package was causing a conflict and resulting in a crash of Gazebo)
re-creating again the environment
installing first Gazebo 11.11.0 and running it (with success)
then installing the robotology packages in the order yarp, gazebo-yarp-plugins, icub-models, icub-main.

The installation of Robotology packages was successful, but I'm now encountering a new issue with Gazebo, unrelated to Robotology packages. Every time I try to insert any model (even native Gazebo models), it simply disappears right away:

run gazebo --verbose
go to insert tab on the left pane
select the Arm Part model (for instance)
hover the world canvas (at this point the part is displayed and follows the mouse position on the canvas)
click where you wish to drop the model => the model disappears from the canvas

No debug, warning nor error message is printed on the terminal.

When previously installing Gazebo with conda, I got the warning message:
...
Preparing transaction: done
Verifying transaction: done
Executing transaction: \ objc[39523]: Class GNotificationCenterDelegate is implemented in both /Users/nunoguedelha/miniforge3/envs/robotologybin/lib/libgio-2.0.0.dylib (0x103bc1bc0) and /usr/local/opt/glib/lib/libgio-2.0.0.dylib (0x104109330). One of the two will be used. Which one is undefined.

- objc[39594]: Class GNotificationCenterDelegate is implemented in both /Users/nunoguedelha/miniforge3/envs/robotologybin/lib/libgio-2.0.0.dylib (0x1065a9bc0) and /usr/local/opt/glib/lib/libgio-2.0.0.dylib (0x106aeb330). One of the two will be used.  One of the two will be used. Which one is undefined.

- objc[39594]: Class GNotificationCenterDelegate is implemented in both /Users/nunoguedelha/miniforge3/envs/robotologybin/lib/libgio-2.0.0.dylib (0x1065a9bc0) and /usr/local/opt/glib/lib/libgio-2.0.0.dylib (0x106aeb330). One of the two will be used. Which one is undefined.

done
(robotologybin) nunoguedelha@iiticublap199 ~
$
(robotologybin) nunoguedelha@iiticublap199 ~
$ conda list gazebo
# packages in environment at /Users/nunoguedelha/miniforge3/envs/robotologybin:
#
# Name                    Version                   Build  Channel
gazebo                    11.11.0             ha646a65_12    conda-forge

but it doesn't seem to be related to my issue.

updating conda to 4.14.0 (although you mentioned it shouldn't matter in this case, but maybe same base package was causing a conflict and resulting in a crash of Gazebo)

In theory no package in the base environment should be used by Gazebo . Anyhow, perhaps something strange was going on.

Are you able to run models by spawning an existing world?

Are you able to run models by spawning an existing world?

As discussed in Teams, yes I can, but I can't add other models from the GUI. As @traversaro noticed, it seems that the client is not connected to the server. refer to https://github.com/conda-forge/gazebo-feedstock/issues/148 submitted by @traversaro .
As this issue prevents running Gazebo ≥ 11.10.1, and installing/running Gazebo < 11.10.1 prevents running the gazebo-yarp-plugins and yarp versions required for getting the proper handling of the YARP_LOG_PROCESS_LABEL variable, I'm proceeding without it for now.

As this issue prevents running Gazebo ≥ 11.10.1, and installing/running Gazebo < 11.10.1 prevents running the gazebo-yarp-plugins and yarp versions required for getting the proper handling of the YARP_LOG_PROCESS_LABEL variable, I'm proceeding without it for now.

A possible alternative is to compile yarp and gazebo-yarp-plugins from source with gazebo 11.9, right? Anyhow, if it is not worth the trouble no problem.

Indeed, but I wanted to avoid building from source to make it quicker 😄 , at the end it was worse.. well, I'll give a shot to building from source.

Side note: it would be interesting to build Gazebo from source, installing the dependencies through Conda. This requires significant effort rewriting the CMake files.

Side note: it would be interesting to build Gazebo from source, installing the dependencies through Conda. This requires significant effort rewriting the CMake files.

I actually did this, I do not think there is any modification required in CMake files, see  https://github.com/conda-forge/gazebo-feedstock/issues/148#issuecomment-1240321643 .

Awesome, thanks @traversaro ! I wasn't aware of this.
CC @S-Dafarra

well, I'll give a shot to building from source.

I built the superbuild from source and installed Gazebo 11.9.1 on the same conda environment.
I ran Gazebo and as soon as I insert an iCub model, I get this protobuf error:
[libprotobuf ERROR google/protobuf/descriptor_database.cc:559] Invalid file descriptor data passed to EncodedDescriptorDatabase::Add().
[libprotobuf FATAL google/protobuf/descriptor.cc:1357] CHECK failed: GeneratedDatabase()->Add(encoded_file_descriptor, size):
libc++abi.dylib: terminating with uncaught exception of type google::protobuf::FatalException: CHECK failed: GeneratedDatabase()->Add(encoded_file_descriptor, size):

I'll open an issue on the superbuild repo.

I'll open an issue on the superbuild repo.

https://github.com/robotology/robotology-superbuild/issues/1253

Moving on...
Implementation Steps
I list below the steps for getting the Yarprobotinterface and WalkingController modules logging output on the OpenMCT visualizer.
In the configuration file:

[ ] Add the Yarprobotinterface and WalkingController process labels to the input settings.

On the telemetry server:

[ ] Get the list of Yarp ports
[ ] Select the ports matching the process labels set in the main configuration.
[ ] Open the ports and connect.
[ ] Add the

On OpenMCT framework:

[ ] Add a new folder "Modules process output logging".
[ ] Add to the folder the two new entries related to the Yarprobotinterface and WalkingController processes.
[ ] Add the respective dictionaries and set the appropriate data type and format.
[ ] Use plugin "Telemetry Table" to display the log data.
[ ] Set eventually the canvas form to display the message details right below the table, and synchronised with the message selected in the table.

On the telemetry server:

[ ]  Connect the Yarp text logging  ports as soon as a subscription is received from the OpenMCT client:

[ ]  Get the list of Yarp ports
[ ]  Select the ports matching the process labels set in the main configuration.
[ ]  Open the ports and connect.

I've worked on the design of this part, but it needs further analysis/improvement. I've decided to manually add the YARP ports in the config file for now and proceed with the development steps (parsing, dictionary & OpenMCT changes, etc).

Updated the Implementation Steps.

Vue.js debugging
I've checked the Vue.js components bound to the telemetry domain objects, and compared a working case with the failing case, e.g. comparing yarpopenmct.icubtelemetry:sens.legacyIMU to yarpopenmct.processLogging:yarplogger.yarpRobotInterface:
yarpopenmct.icubtelemetry:sens.legacyIMU

yarpopenmct.processLogging:yarplogger.yarpRobotInterface

domainObject.telemetry.values hasn't been evaluated (expanded), we still see the unexpanded string ${JSON.stringify(this.presetValuesBase.yarpLoggerMessage)}.
This is because the dictionary file was retrieved through an http request, and no route function was added through app.get on the server side to "evaluate" the file (evaluate template literals through evalTemplateLiteralInJSON) prior sending it.
After fixing this issue, clicking on the domain object "yarprobotinterface process logging through yarplogger" triggers a subscription and the logging data stream is established. We can see the data displayed in the canvas, in the "telemetry table" view:

After creating a "Telemetry Table" domain object in "My Items", dragging into it the "yarprobotinterface process logging through yarplogger" and arranging the table to display the more relevant data, we get:

Next step is to display messages only when they are received from the Yarp port, instead of repeating the last received message.

Next step is to display messages only when they are received from the Yarp port, instead of repeating the last received message.

=> completed in commit 126edf941d1448ba552ce3820859a1df3242c69b.
(adding details shortly)
Work now on the automatic port detection.

Additional config option: Telemetry server sends only last received Yarp messages
We added a sourceSync parameter to the portInConfig port configuration portInConfig, with two possible values, localTimer or yarpPort.
https://github.com/ami-iit/yarp-openmct/blob/126edf941d1448ba552ce3820859a1df3242c69b/conf/servers.json#L368-L377
localTimer
This was the default setting so far for which a notifierTask is triggered by a local timer every 10 ms and calls generateTelemetry which generates and sends the telemetry samples. The task used to send the samples for all the telemetry IDs in the ICubTelemetry.state buffer.
Change => The task sends the samples of the IDs scheduled for sending in ICubTelemetry.telemetryIDsToSend. Upon a call of the "read" listener, the Yarp message is parsed and the respective ID scheduled for sending.
https://github.com/ami-iit/yarp-openmct/blob/126edf941d1448ba552ce3820859a1df3242c69b/iCubTelemVizServer/iCubTelemVizServer.js#L87-L89
=> https://github.com/ami-iit/yarp-openmct/blob/126edf941d1448ba552ce3820859a1df3242c69b/iCubTelemVizServer/icubtelemetry.js#L161
=> https://github.com/ami-iit/yarp-openmct/blob/126edf941d1448ba552ce3820859a1df3242c69b/iCubTelemVizServer/icubtelemetry.js#L148-L151
...
https://github.com/ami-iit/yarp-openmct/blob/126edf941d1448ba552ce3820859a1df3242c69b/iCubTelemVizServer/icubtelemetry.js#L180-L186
yarpPort
The notifierTask is not used. Upon the call of the "read" listener, the Yarp message is parsed and the respective ID is directly sent.
https://github.com/ami-iit/yarp-openmct/blob/126edf941d1448ba552ce3820859a1df3242c69b/iCubTelemVizServer/icubtelemetry.js#L153-L156

Improved Version: auto search for ports streaming the logged data
In the configuration file

[ ] We replace the full port names by a syntax[^1] which is then evaluated by the telemetry server as a regular expression for matching existing Yarp ports. The user can integrate in the regexp the YARP_LOG_PROCESS_LABEL of his choice for matching the ports streaming the logging data fromyarprobotinterface and WalkingModule modules.

[^1] The syntax is as follows: the pattern<EMAIL_ADDRESS>wraps a regular expression which, once unwrapped, can be directly interpreted by the Javascript code.
On the telemetry server
(Re)connect the Yarp text logging  ports as soon as the client page is refreshed (servers.json config is reloaded)

[ ] Trigger the operation in the config file servers.json route function.
[ ] Evaluate the template literals in the whole file.
[ ] Build a list of all the port names integrating a regexp: <regexp-port-names-list>.
[ ] If <regexp-port-names-list> is empty, return, otherwise continue.
[ ] Run a full scan of the existing Yarp ports => <yarp-ports-list>.
[ ] For each port found in <regexp-port-names-list>:

[ ] Check if the respective <yarpjs-local-port> port exists => if not, create it.
[ ] Get the Yarp port name from <yarp-ports-list> matching the regexp pattern => <yarp-remote-port>.
[ ] Check if the connection <yarp-remote-port> --> <yarpjs-local-port> exists => if not, create it.

Trigger the regexp ports reconnection in the config file servers.json route function (nice-to-have)

@S-Dafarra , this is very useful, but not a blocker. Without this you have to restart the server if the remote yarp text logging ports are closed and opened again (with different PIDs).

Work completed.


ENH: allow MultiIndex column selection from HDFStore

Needs some more testing

@cpcloud can you update? forgot what this was for

closing, but feel free to revisit


Added beforeController hook to gain access to swaggerified

Dear overlord,
Please consider my pull request for beforeController hook, the people want to gain access to swagger contract prior to calling the controller.
We would be forever in your debt if you could accept this small request
Regards,
Cameron 'the rewriter' Singe

Hi Steve,
Any eta on when/if it will be merged?


With PDF.js and some servers, it fails to fetch the PDF

Summary
When I open pdf.js demo in Ladybird, it fails to load the file https://mozilla.github.io/pdf.js/legacy/web/viewer.html
Operating system
macOS
Steps to reproduce

Open Ladybird
Navigate to https://mozilla.github.io/pdf.js/legacy/web/viewer.html
Observe

Expected behavior
It loads
Actual behavior
PDF file doesn't load
URL for a reduced test case
https://mozilla.github.io/pdf.js/legacy/web/viewer.html
HTML/SVG/etc. source for a reduced test case
N/A

Log output and (if possible) backtrace
2024-12-27 20:54:16.884 Ladybird[34125:4329662] +[IMKClient subclass]: chose IMKClient_Modern
2024-12-27 20:54:16.994 Ladybird[34125:4329662] +[IMKInputSession subclass]: chose IMKInputSession_Modern
371776.292 WebContent(34128): FIXME: Unimplemented Navigator.maxTouchPoints
371776.657 WebContent(34128): ResourceLoader: Failed load of: "https://mozilla.github.io/favicon.ico", Error: Load failed (status: 404 Not Found), Duration: 222ms
371777.148 WebContent(34128): Failed to post message: send: Broken pipe (errno=32)

Screenshots or screen recordings

Build flags or config settings
No response
Contribute a patch?

[ ] I’ll contribute a patch for this myself.

A good thing to try is opening https://mozilla.github.io/pdf.js/legacy/web/viewer.html?file=//pdfobject.com/pdf/sample.pdf


Unable to set configHostname with ingress externalAccess

I am currently not able to provision quay using the ingress extrenalAccess type. Specifically when I include the configHostname value I receive the following error: invalid character '<' looking for beginning of value.
Running this without the configHostname gives me the following error: quayecosystem-controller  Get https:///api/v1/superuser/registrystatus: http: no Host in request URL, so I'm fairly sure this is something that needs to be set. If I use routes instead then quay will provision, however for this deployment we must use ingress. Any and all help would be appreciated.
Below is my quay-ecosystem config:
apiVersion: redhatcop.redhat.io/v1alpha1
kind: QuayEcosystem
metadata:
  name: quayecosystem
  namespace: {namespace}
spec:
  quay:
    enableRepoMirroring: true
    deploymentStrategy: Recreate
    imagePullSecretName: redhat-quay-pull-secret
    keepConfigDeployment: true
    envVars:
      - name: DEBUGLOG
        value: "true"
    skipSetup: false
    externalAccess:
      type: Ingress
      annotations:
        nginx.ingress.kubernetes.io/ssl-passthrough: "true"
        nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
        kubernetes.io/ingress.class: "ingress-public"
      configAnnotations:
        nginx.ingress.kubernetes.io/ssl-passthrough: "true"
        nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
        kubernetes.io/ingress.class: "ingress-public"
      tls:
        secretName: "{tls_secret}"
        termination: passthrough
      hostname: "quay.{base_domain}"
      configHostname: "quayconfig.{base_domain}"
    registryBackends:
      - name: s3-backend
        credentialsSecretName: {iam-secret}
        replicateByDefault: false
        s3:
          bucketName: "{bucket-name}"
          storagePath: "quay"
  clair:
    enabled: true
    imagePullSecretName: redhat-quay-pull-secret
    updateInterval: "60m"

@HenriAW you are most likely hitting the issue addressed by #204
@kurtismullins @alecmerdler would either of you be able to take a look at the PR?

Hi @sabre1041, thanks for the quick response, I'll keep and eye out for when that PR is merged. At the moment I've disabled externalAccess and am provisioning the nginx resources manually which allows me to work around this problem

@HenriAW good to hear. We will look to see if we can move things along for an overall resolution


Aliases can't handle special characters

I had an old blog post with a dash in it, so I added an alias to the URL for the old post, which means it contained "%e2%80%93". Unfortunately Hugo seems to strip out all the % signs when generating the alias which breaks the redirect.

Same as #1292


Address multi-tenancy profile loading

Currently the multi-tenancy option is not checked when a user specifies a profile that is in a different namespace than the profile.

Reviewed code and determined that this was invalid - crossNamespace access is properly controlled
https://github.com/boxboat/dockhand-secrets-operator/blob/master/pkg/controller/v2/controller.go#L196


Indicate missing residues in the model?

We'd like to indicate that some residues in our IHM model weren't modeled because insufficient data were available to constrain their position. We've implicitly done this by simply not listing them in ihm_model_representation or ihm_sphere_obj_site, but should we make this explicit? This roughly corresponds to traditional PDB "residues not observed in the experiment" (REMARK 465). Does it make sense for us to populate the mmCIF equivalent, which looks like pdbx_unobs_or_zero_occ_residues?

Interesting question... I would say yes since the presence of those in the modelling might be important for the final model even if at the end they are not really defined.

Just to be clear, it's straightforward to see which residues are missing (because no coordinates are available for them) but we want to say why they are missing, not just that we 'forgot' to include them. An enumeration for this might include options such as

Models too variable (e.g. poor precision over the entire cluster). We can speculate that this is due to insufficient experimental data (poorly constrained)
No models found that adequately satisfy all data. We can speculate that this is due to conflicting data, maybe due to noise or heterogeneity, and may indicate a need to do multi-state modeling.

@benmwebb This has been addressed in the latest update.


matrix-synapse-plugins.matrix-synapse-mjolnir-antispam: init at 0.1.17

Motivation for this change
Add the mjolnir antispam plugin for synapse. I recently migrated my matrix homeserver to NixOS and am running mjolnir as well (created a derivation for it, but that one needs to be cleaned up a little - I've modified the upstream source to be able to load additional configuration files, e.g. the secret parts like the password of the superuser). If there is interest to add mjolnir to nixpkgs i can create a PR for it.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Added a release notes entry if the change is major or breaking
[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 123879 at 8d7b4507 run on aarch64-linux 1

1 package built successfully:

matrix-synapse-plugins.matrix-synapse-mjolnir-antispam

2 suggestions:

warning: license-missing
Package is missing a license.
Near pkgs/servers/matrix-synapse/plugins/mjolnir-antispam.nix:18:3:
   |
18 |   doCheck = false; # no tests
   |   ^

warning: maintainers-missing
Package does not have a maintainer. Consider adding yourself?
Near pkgs/servers/matrix-synapse/plugins/mjolnir-antispam.nix:18:3:
   |
18 |   doCheck = false; # no tests
   |   ^

Do we also need to package the non-synapse module version of this? (Looking at this example: https://github.com/matrix-org/mjolnir#build-it-alternative-installation)


Component compatibility with lightning web security

This is possibly related to the platform rather than this component library but I think that it is worth asking here.
Does anybody know if the design system react components are tested against, or compatible with, lightning web security?
I have asked a question on the salesforce stack exchange to explain in more detail.
The short version is that I have a react app that uses the modal from this library.  I bundle that app as an LWC static resource.  Attempting to open the modal, in an org with LWS enabled, will cause the LWC to fail.

The React render library is not allowed in Lightning--outside of a workaround such as an iframe.

The React render library is not allowed in Lightning ...

@interactivellama  When you say Lightning here are you referring to LWS or LWC?


Integration of pattern library in formatting bar

For this ticket, we should look to pull out the current markdown toolbar plugin that was just chucked in there for proof of concept testing and re-add / re-write one that's fit for purpose.


Add labels for architectures that are supported

Labels are required for visibility in the UI. Add arch specific labels

Closing to start clean.


Group Collaboration Issue

This will be the n+1th issue

I suggest we do https://github.com/godotengine/godot/issues/32186 for our last one.

https://github.com/godotengine/godot/issues/33294

https://github.com/godotengine/godot/issues/32681

https://github.com/godotengine/godot/issues/30793


How many parallel processes should tests have on GitHub Actions?

Right now, when we run ARMI unit tests on GitHub Actions, we do four parallel processes:
https://github.com/terrapower/armi/blob/de4eeeec280abf155f19cd709a5f32b9f899fef0/.github/workflows/unittests.yaml#L32
https://github.com/terrapower/armi/blob/de4eeeec280abf155f19cd709a5f32b9f899fef0/.github/workflows/wintests.yaml#L27
https://github.com/terrapower/armi/blob/de4eeeec280abf155f19cd709a5f32b9f899fef0/.github/workflows/coverage.yaml#L33
But is "4" the optimum number, to make the tests run as fast as possible?
We should try various other numbers, to see if we can run these tests faster.

Timing Results:

Tests
n=2
n=3
n=4
n=5
n=6

MacOS
7m 6s
?
2m 59s - 4m 43s
?
4m 36s

Windows
10m 5s
?
5m 36s - 5m 58s
?
7m 56s

Linux x3
11m 0s
?
7m 53s - 8m 5s
?
8m 18s

Well, after dozens of test runs I find that n=4 actually is the fastest.
That's pretty surprising, as I chose that number at random years ago, and our code base and our tests has changed a ton since then.
  Oh well.


feat(datepicker): ng-model-options: timezone

for #4837
plunker http://plnkr.co/edit/eEAYYfDbEBz754iVUSYN?p=preview

The dateparser additions will need unit tests.

I think this is close to done, just needs those tasks/questions to be answered and this should be good to merge. This is a lot cleaner than my own attempt at it.


docs(devs-infra): update documentation for react-native

Summary

Close #2666
Test plan

Green CI
Does this PR introduce a breaking change?

[ ] Yes
[x] No

Other information
N.A.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 94.403%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
1011

Relevant Lines:
1037

💛  - Coveralls


[FEAT REQ.] - APT TEXT GEOMAP

Describe the solution you'd like
An .xml output "AIRPORT_TEXT_GEOMAP.xml" formatted like the attached file.
The text format:
(APT ICAO code, ELSE: FAA ID) (APT Name)
AIRPORT_TEXT_GEOMAP.txt

Added Version 0.7.1

Added Version 0.7.1


Codeception update

Composer says
Package yiisoft/yii2-codeception is abandoned, you should avoid using it. Use codeception/codeception instead.
So I think it would be great to migrate to Codeception itself.

Thank you for reporting ... I need to review and update the repo.
PRs always welcome!