[BUG] The feature of auto remount read only volume not work on a single node cluster.

Describe the bug
After https://github.com/longhorn/longhorn/issues/6386 implemented, Longhorn will automatically remount read-only RWO volume to read-write. It worked well on multi nodes cluster, the volume will remount in few seconds and can write data again.
But in single node cluster it seems not worked properly, after change volume to read only, after 20 minutes, the volume stiil can not write data.
To Reproduce

Create single node cluster curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=v1.28.5+k3s1 sh -s - --write-kubeconfig-mode 644
Deploy Longhorn master-head
Create a single replica volume, attach to node with deployment, record the PVC name
Find the PVC location by command find /var/lib -name ${PVC name}
Remount PVC to read only by below command (replace below command by result of step 4, do not remove /mount in the command end )

mount -o remount,ro /var/lib/kubelet/pods/39dad47a-3724-4f3e-9385-c38c90e3cd3b/volumes/kubernetes.io~csi/pvc-617eee44-df06-4c37-9575-d5f2b92c0690/mount

The deployment pod kept recreate, but volume still attached, write data in pod, the file system still read-only
The longhorn-manager log size is 17 MB after extracted from support bundle and can see a bunch of below:

2024-02-05T07:26:33.987587217Z time="2024-02-05T07:26:33Z" level=info msg="Current time is not 5 seconds after request remount, requeue the pod test-deployment-754dd9fc66-hhcls to handle it later" func="controller.(*KubernetesPodController).handlePodDeletionIfVolumeRequestRemount" file="kubernetes_pod_controller.go:343" controller=longhorn-kubernetes-pod node=ip-172-31-32-43

After 20 minutes passed by, the volume still read only and deployment pod still kept recreateing.

Expected behavior
Auto remount read only volume work on a single node cluster.
Support bundle for troubleshooting
supportbundle_b3abd9ae-8fc9-44f4-ad95-2deceffe927b_2024-02-05T07-26-29Z.zip
Environment

Longhorn version: master-head
Impacted volume (PV): pvc-12b01b25-0f09-4f88-8a76-96a8bce90a41
Installation method (e.g. Rancher Catalog App/Helm/Kubectl): kubectl
Kubernetes distro (e.g. RKE/K3s/EKS/OpenShift) and version: v1.28.5+k3s1

Number of control plane nodes in the cluster: 1
Number of worker nodes in the cluster: 1

Node config

OS type and version: Ubuntu 22.04, 100 Gi, t2.xlarge

Number of Longhorn volumes in the cluster: 1

Additional context
N/A

I can reproduce the issue.
If there is only one node or the pod keeps recreating on the same node
Kubernetes won't detach and reattach the volume to the node, because it is on the same node
It only remount the global mount point into the newly created pod.
But the global mount point on the host would still be read-only.
This is a day-1 issue, we trust that when Kubernetes recreates the pod it will reattach the volume but it is not true in this case.
cc @innobead @derekbit

Workaround

Scale down the deployment to 0 so the volume is truly detach
Scale it back to reattach

After discussed with @derekbit
We can check if the current global mount path is read-only here to request re-stage Volume
cc @innobead

Note
The root cause is

When the mount point becomes read-only
We then try to delete the current pod and let the deployment to recreate the pod
When the previous pod still under terminating, it won't call UnPublishVolume so the mount of the pod is still there
But the next pod is now starting and call PublishVolume which will try to remount the globalmount
However, since the previous pod mount is there and ro, the remount of globalmount will still be ro
So even the pod is recreated the mount point is still ro

/dev/longhorn/pvc-2d7f3352-f549-4565-a4b8-61ef7121a182 on /host/var/lib/kubelet/pods/4e7d6e15-e754-4755-8948-079b
c98a8509/volumes/kubernetes.io~csi/pvc-2d7f3352-f549-4565-a4b8-61ef7121a182/mount type ext4 (ro,relatime)
/dev/longhorn/pvc-2d7f3352-f549-4565-a4b8-61ef7121a182 on /host/var/lib/kubelet/plugins/kubernetes.io/csi/driver.
longhorn.io/536e9cde86b7c02e277285c8cc459b13625f724485127fae824f102463baae5c/globalmount type ext4 (ro,relatime)

Workaround:
Scale down to 0 wait for pod to be terminated and cleaned up  and set the replicas back to 1

I am a bit confused on a couple of points. Can you help to clarify?

When the previous pod still under terminating, it won't call UnPublishVolume so the mount of the pod is still there

I understand that UnpulishVolume hasn't been called yet, but it seems to me the real problem is that UnstageVolume hasn't been called yet. (Of course, it can't be until after UnpublishVolume.)

However, since the previous pod mount is there and ro, the remount of globalmount will still be ro

I don't get the cause and effect here. It sounds like you are implying the following, but I don't see how the bind mount can affect the global mount.

CAUSE: Previous pod mount still exists and is read only.
EFFECT: Global mount is still read only.

Is the following flow accurate?

CAUSE: Previous pod mount still exists.
EFFECT1: UnstageVolume was not called.
EFFECT2: Global mount is still read only.
EFFECT3: StageVolume is not called (volume is already staged).
EFFECT4: Global mount is still read only.

Hi @ejweber
The story is as follow

Intentionally mounted the globalmount to read only, then the bind mount would also become read only. The workload then suffered from I/O error because it was now read only

/dev/longhorn/${VOLUME} on /host/var/lib/kubelet/pods/${OLDPOD}/volumes/kubernetes.io~csi/${PVC}/mount type ext4 (ro,relatime)
/dev/longhorn/${VOLUME} on /host/var/lib/kubelet/plugins/kubernetes.io/csi/driver.longhorn.io/${VOLUME}/globalmount type ext4 (ro,relatime)

The original implementation was to delete the pod to let the deployment recreate the pod, so it would remount the volume to the pod.
However, when the previous pod, lets say PodOld, was still under terminating and the bind mount was still there, the new pod
, PodNew, was creating. Because deployment recreates the pod when it is aware that the old pod is terminating.
PodNew became running even before the PodOld was terminated, the container of PodOld was still there and the bind mount was also there. (Maybe because grace period deletion time delay and the new pod starts too fast)
That is, PodNew triggered NodePublishVolume before PodOld triggered NodeUnPublishVolume

From the log I didn't see it triggered NodeStageVolume, I think it was because the volume was still attached.

When the PodNew triggered NodePublishVolume to bind mount the globlalmount to the pod, we actually verified if the globalmount was healthy here by checking if the mount can perform I/O ensureMountPoint().
If it is not healthy we unmount the mount point and call NodeUnstageVolume => NodeStageVolume to remount the globalmount. And the globalmount was unhealthy because it was read only

The logs matches the steps above. (There are two pods)
# PodNew cb3d3b82-58e2-4d93-be58-6394018da53a triggered NodePublishVolume
time="2024-02-06T10:03:57Z" level=info msg="NodePublishVolume: req: {\"staging_target_path\":\"/var/lib/kubelet/plugins/kubernetes.io/csi/driver.longhorn.io/536e9cde86b7c02e277285c8cc459b13625f724485127fae824f102463baae5c/globalmount\",\"target_path\":\"/var/lib/kubelet/pods/cb3d3b82-58e2-4d93-be58-6394018da53a/volumes/kubernetes.io~csi/pvc-2d7f3352-f549-4565-a4b8-61ef7121a182/mount\",\"volume_capability\":{\"AccessType\":{\"Mount\":{\"fs_type\":\"ext4\"}},\"access_mode\":{\"mode\":1}},\"volume_context\":{\"csi.storage.k8s.io/ephemeral\":\"false\",\"csi.storage.k8s.io/pod.name\":\"test-deployment-fd47b4f4-v8gtn\",\"csi.storage.k8s.io/pod.namespace\":\"default\",\"csi.storage.k8s.io/pod.uid\":\"cb3d3b82-58e2-4d93-be58-6394018da53a\",\"csi.storage.k8s.io/serviceAccount.name\":\"default\",\"dataLocality\":\"disabled\",\"fromBackup\":\"\",\"fsType\":\"ext4\",\"numberOfReplicas\":\"3\",\"staleReplicaTimeout\":\"30\",\"storage.kubernetes.io/csiProvisionerIdentity\":\"1707213517288-841-driver.longhorn.io\"},\"volume_id\":\"pvc-2d7f3352-f549-4565-a4b8-61ef7121a182\"}" func=csi.logGRPC file="server.go:132"
time="2024-02-06T10:03:57Z" level=info msg="NodePublishVolume is called with req volume_id:\"pvc-2d7f3352-f549-4565-a4b8-61ef7121a182\" staging_target_path:\"/var/lib/kubelet/plugins/kubernetes.io/csi/driver.longhorn.io/536e9cde86b7c02e277285c8cc459b13625f724485127fae824f102463baae5c/globalmount\" target_path:\"/var/lib/kubelet/pods/cb3d3b82-58e2-4d93-be58-6394018da53a/volumes/kubernetes.io~csi/pvc-2d7f3352-f549-4565-a4b8-61ef7121a182/mount\" volume_capability:<mount:<fs_type:\"ext4\" > access_mode:<mode:SINGLE_NODE_WRITER > > volume_context:<key:\"csi.storage.k8s.io/ephemeral\" value:\"false\" > volume_context:<key:\"csi.storage.k8s.io/pod.name\" value:\"test-deployment-fd47b4f4-v8gtn\" > volume_context:<key:\"csi.storage.k8s.io/pod.namespace\" value:\"default\" > volume_context:<key:\"csi.storage.k8s.io/pod.uid\" value:\"cb3d3b82-58e2-4d93-be58-6394018da53a\" > volume_context:<key:\"csi.storage.k8s.io/serviceAccount.name\" value:\"default\" > volume_context:<key:\"dataLocality\" value:\"disabled\" > volume_context:<key:\"fromBackup\" value:\"\" > volume_context:<key:\"fsType\" value:\"ext4\" > volume_context:<key:\"numberOfReplicas\" value:\"3\" > volume_context:<key:\"staleReplicaTimeout\" value:\"30\" > volume_context:<key:\"storage.kubernetes.io/csiProvisionerIdentity\" value:\"1707213517288-841-driver.longhorn.io\" > " func="csi.(*NodeServer).NodePublishVolume" file="node_server.go:82" component=csi-node-server function=NodePublishVolume
time="2024-02-06T10:03:57Z" level=info msg="Volume pvc-2d7f3352-f549-4565-a4b8-61ef7121a182 using user and longhorn provided ext4 fs creation params: -b4096" func="csi.(*NodeServer).getMounter" file="node_server.go:841"
# PodNew verified if the globalmount was healthy
time="2024-02-06T10:03:57Z" level=info msg="Trying to ensure mount point /var/lib/kubelet/plugins/kubernetes.io/csi/driver.longhorn.io/536e9cde86b7c02e277285c8cc459b13625f724485127fae824f102463baae5c/globalmount" func=csi.ensureMountPoint file="util.go:296"
time="2024-02-06T10:03:57Z" level=info msg="Mount point /var/lib/kubelet/plugins/kubernetes.io/csi/driver.longhorn.io/536e9cde86b7c02e277285c8cc459b13625f724485127fae824f102463baae5c/globalmount try opening and syncing dir to make sure it's healthy" func=csi.ensureMountPoint file="util.go:304"
time="2024-02-06T10:03:57Z" level=warning msg="Mount point /var/lib/kubelet/plugins/kubernetes.io/csi/driver.longhorn.io/536e9cde86b7c02e277285c8cc459b13625f724485127fae824f102463baae5c/globalmount was identified as corrupt by opening and syncing" func=csi.ensureMountPoint file="util.go:306" error="open /var/lib/kubelet/plugins/kubernetes.io/csi/driver.longhorn.io/536e9cde86b7c02e277285c8cc459b13625f724485127fae824f102463baae5c/globalmount/.longhorn-volume-mount-point-test.tmp: read-only file system"
# PodNew tried to umount the corrupt mount point and re-stage the volume
time="2024-02-06T10:03:57Z" level=info msg="Trying to unmount potential mount point /var/lib/kubelet/plugins/kubernetes.io/csi/driver.longhorn.io/536e9cde86b7c02e277285c8cc459b13625f724485127fae824f102463baae5c/globalmount" func=csi.unmount file="util.go:353"
time="2024-02-06T10:03:57Z" level=info msg="Unmounted existing corrupt mount point /var/lib/kubelet/plugins/kubernetes.io/csi/driver.longhorn.io/536e9cde86b7c02e277285c8cc459b13625f724485127fae824f102463baae5c/globalmount" func=csi.ensureMountPoint file="util.go:318"
time="2024-02-06T10:03:57Z" level=error msg="Staging target path /var/lib/kubelet/plugins/kubernetes.io/csi/driver.longhorn.io/536e9cde86b7c02e277285c8cc459b13625f724485127fae824f102463baae5c/globalmount is no longer valid for volume pvc-2d7f3352-f549-4565-a4b8-61ef7121a182" func="csi.(*NodeServer).NodePublishVolume" file="node_server.go:183" component=csi-node-server error="<nil>" function=NodePublishVolume
time="2024-02-06T10:03:57Z" level=warning msg="Calling NodeUnstageVolume for volume pvc-2d7f3352-f549-4565-a4b8-61ef7121a182" func="csi.(*NodeServer).NodePublishVolume" file="node_server.go:189" component=csi-node-server function=NodePublishVolume
# PodNew manually triggered NodeUnstageVolume in our csi
time="2024-02-06T10:03:57Z" level=info msg="NodeUnstageVolume is called with req volume_id:\"pvc-2d7f3352-f549-4565-a4b8-61ef7121a182\" staging_target_path:\"/var/lib/kubelet/plugins/kubernetes.io/csi/driver.longhorn.io/536e9cde86b7c02e277285c8cc459b13625f724485127fae824f102463baae5c/globalmount\" " func="csi.(*NodeServer).NodeUnstageVolume" file="node_server.go:553" component=csi-node-server function=NodeUnstageVolume
time="2024-02-06T10:03:57Z" level=info msg="Trying to force unmount potential mount point /var/lib/kubelet/plugins/kubernetes.io/csi/driver.longhorn.io/536e9cde86b7c02e277285c8cc459b13625f724485127fae824f102463baae5c/globalmount" func=csi.unmount file="util.go:350"
time="2024-02-06T10:03:57Z" level=info msg="Trying to cleanup mount point /var/lib/kubelet/plugins/kubernetes.io/csi/driver.longhorn.io/536e9cde86b7c02e277285c8cc459b13625f724485127fae824f102463baae5c/globalmount/pvc-2d7f3352-f549-4565-a4b8-61ef7121a182" func=csi.cleanupMountPoint file="util.go:372"
time="2024-02-06T10:03:57Z" level=info msg="Trying to force unmount potential mount point /var/lib/kubelet/plugins/kubernetes.io/csi/driver.longhorn.io/536e9cde86b7c02e277285c8cc459b13625f724485127fae824f102463baae5c/globalmount/pvc-2d7f3352-f549-4565-a4b8-61ef7121a182" func=csi.unmount file="util.go:350"
time="2024-02-06T10:03:57Z" level=info msg="No need for unmount not a mount point /var/lib/kubelet/plugins/kubernetes.io/csi/driver.longhorn.io/536e9cde86b7c02e277285c8cc459b13625f724485127fae824f102463baae5c/globalmount/pvc-2d7f3352-f549-4565-a4b8-61ef7121a182" func=csi.unmount file="util.go:362"
time="2024-02-06T10:03:57Z" level=info msg="Cleaned up mount point /var/lib/kubelet/plugins/kubernetes.io/csi/driver.longhorn.io/536e9cde86b7c02e277285c8cc459b13625f724485127fae824f102463baae5c/globalmount/pvc-2d7f3352-f549-4565-a4b8-61ef7121a182" func=csi.cleanupMountPoint file="util.go:378"
W0206 10:03:57.162254 1062985 mount_helper_common.go:34] Warning: mount cleanup skipped because path does not exist: /var/lib/kubelet/plugins/kubernetes.io/csi/driver.longhorn.io/536e9cde86b7c02e277285c8cc459b13625f724485127fae824f102463baae5c/globalmount/pvc-2d7f3352-f549-4565-a4b8-61ef7121a182
time="2024-02-06T10:03:57Z" level=warning msg="Device /dev/mapper/pvc-2d7f3352-f549-4565-a4b8-61ef7121a182 is not an active LUKS device" func=crypto.DeviceEncryptionStatus file="crypto.go:171" error="failed to execute: /usr/bin/nsenter [nsenter --mount=/proc/1062858/ns/mnt --ipc=/proc/1062858/ns/ipc cryptsetup status pvc-2d7f3352-f549-4565-a4b8-61ef7121a182], output /dev/mapper/pvc-2d7f3352-f549-4565-a4b8-61ef7121a182 is inactive.\n, stderr : exit status 4"
time="2024-02-06T10:03:57Z" level=info msg="Volume pvc-2d7f3352-f549-4565-a4b8-61ef7121a182 unmounted from node path /var/lib/kubelet/plugins/kubernetes.io/csi/driver.longhorn.io/536e9cde86b7c02e277285c8cc459b13625f724485127fae824f102463baae5c/globalmount" func="csi.(*NodeServer).NodeUnstageVolume" file="node_server.go:602" component=csi-node-server function=NodeUnstageVolume
# PodNew manually triggered NodeStageVolume in our csi
time="2024-02-06T10:03:57Z" level=warning msg="Calling NodeStageVolume for volume pvc-2d7f3352-f549-4565-a4b8-61ef7121a182" func="csi.(*NodeServer).NodePublishVolume" file="node_server.go:195" component=csi-node-server function=NodePublishVolume
time="2024-02-06T10:03:57Z" level=info msg="NodeStageVolume is called with req volume_id:\"pvc-2d7f3352-f549-4565-a4b8-61ef7121a182\" staging_target_path:\"/var/lib/kubelet/plugins/kubernetes.io/csi/driver.longhorn.io/536e9cde86b7c02e277285c8cc459b13625f724485127fae824f102463baae5c/globalmount\" volume_capability:<mount:<fs_type:\"ext4\" > access_mode:<mode:SINGLE_NODE_WRITER > > volume_context:<key:\"csi.storage.k8s.io/ephemeral\" value:\"false\" > volume_context:<key:\"csi.storage.k8s.io/pod.name\" value:\"test-deployment-fd47b4f4-v8gtn\" > volume_context:<key:\"csi.storage.k8s.io/pod.namespace\" value:\"default\" > volume_context:<key:\"csi.storage.k8s.io/pod.uid\" value:\"cb3d3b82-58e2-4d93-be58-6394018da53a\" > volume_context:<key:\"csi.storage.k8s.io/serviceAccount.name\" value:\"default\" > volume_context:<key:\"dataLocality\" value:\"disabled\" > volume_context:<key:\"fromBackup\" value:\"\" > volume_context:<key:\"fsType\" value:\"ext4\" > volume_context:<key:\"numberOfReplicas\" value:\"3\" > volume_context:<key:\"staleReplicaTimeout\" value:\"30\" > volume_context:<key:\"storage.kubernetes.io/csiProvisionerIdentity\" value:\"1707213517288-841-driver.longhorn.io\" > " func="csi.(*NodeServer).NodeStageVolume" file="node_server.go:376" component=csi-node-server function=NodeStageVolume
time="2024-02-06T10:03:57Z" level=info msg="Volume pvc-2d7f3352-f549-4565-a4b8-61ef7121a182 using user and longhorn provided ext4 fs creation params: -b4096" func="csi.(*NodeServer).getMounter" file="node_server.go:841"
time="2024-02-06T10:03:57Z" level=info msg="Volume pvc-2d7f3352-f549-4565-a4b8-61ef7121a182 device /dev/longhorn/pvc-2d7f3352-f549-4565-a4b8-61ef7121a182 contains filesystem of format ext4" func="csi.(*NodeServer).NodeStageVolume" file="node_server.go:462" component=csi-node-server function=NodeStageVolume
time="2024-02-06T10:03:57Z" level=info msg="Trying to ensure mount point /var/lib/kubelet/plugins/kubernetes.io/csi/driver.longhorn.io/536e9cde86b7c02e277285c8cc459b13625f724485127fae824f102463baae5c/globalmount" func=csi.ensureMountPoint file="util.go:296"
time="2024-02-06T10:03:57Z" level=info msg="Mount point /var/lib/kubelet/plugins/kubernetes.io/csi/driver.longhorn.io/536e9cde86b7c02e277285c8cc459b13625f724485127fae824f102463baae5c/globalmount try opening and syncing dir to make sure it's healthy" func=csi.ensureMountPoint file="util.go:304"
# PodNew manually triggered NodeStageVolume, but something went wrong.
time="2024-02-06T10:03:57Z" level=info msg="Formatting device /dev/longhorn/pvc-2d7f3352-f549-4565-a4b8-61ef7121a182 with fsType ext4 and mounting at /var/lib/kubelet/plugins/kubernetes.io/csi/driver.longhorn.io/536e9cde86b7c02e277285c8cc459b13625f724485127fae824f102463baae5c/globalmount with mount flags []" func="csi.(*NodeServer).nodeStageMountVolume" file="node_server.go:313" component=csi-node-server function=NodePublishVolume
I0206 10:03:57.187150 1062985 mount_linux.go:452] `fsck` error fsck from util-linux 2.37.4
/dev/longhorn/pvc-2d7f3352-f549-4565-a4b8-61ef7121a182 is mounted.
e2fsck: Cannot continue, aborting.

time="2024-02-06T10:03:57Z" level=info msg="Mounted volume pvc-2d7f3352-f549-4565-a4b8-61ef7121a182 on node kworker1 does not require filesystem resize" func="csi.(*NodeServer).NodeStageVolume" file="node_server.go:543" component=csi-node-server function=NodeStageVolume
time="2024-02-06T10:03:57Z" level=info msg="Mounted volume pvc-2d7f3352-f549-4565-a4b8-61ef7121a182 on node kworker1 via device /dev/longhorn/pvc-2d7f3352-f549-4565-a4b8-61ef7121a182" func="csi.(*NodeServer).NodeStageVolume" file="node_server.go:546" component=csi-node-server function=NodeStageVolume
time="2024-02-06T10:03:57Z" level=info msg="Trying to ensure mount point /var/lib/kubelet/pods/cb3d3b82-58e2-4d93-be58-6394018da53a/volumes/kubernetes.io~csi/pvc-2d7f3352-f549-4565-a4b8-61ef7121a182/mount" func=csi.ensureMountPoint file="util.go:296"
# PodNew cb3d3b82-58e2-4d93-be58-6394018da53a NodePublishVolume still succeeded in the end and the PodNew was now running
time="2024-02-06T10:03:57Z" level=info msg="NodePublishVolume: rsp: {}" func=csi.logGRPC file="server.go:141"
# PodOld cdf8fa36-df88-4796-b474-97a486024a8c triggered NodeUnpublishVolume
time="2024-02-06T10:04:20Z" level=info msg="NodeUnpublishVolume: req: {\"target_path\":\"/var/lib/kubelet/pods/cdf8fa36-df88-4796-b474-97a486024a8c/volumes/kubernetes.io~csi/pvc-2d7f3352-f549-4565-a4b8-61ef7121a182/mount\",\"volume_id\":\"pvc-2d7f3352-f549-4565-a4b8-61ef7121a182\"}" func=csi.logGRPC file="server.go:132"
time="2024-02-06T10:04:20Z" level=info msg="NodeUnpublishVolume is called with req volume_id:\"pvc-2d7f3352-f549-4565-a4b8-61ef7121a182\" target_path:\"/var/lib/kubelet/pods/cdf8fa36-df88-4796-b474-97a486024a8c/volumes/kubernetes.io~csi/pvc-2d7f3352-f549-4565-a4b8-61ef7121a182/mount\" " func="csi.(*NodeServer).NodeUnpublishVolume" file="node_server.go:353" component=csi-node-server function=NodeUnpublishVolume
time="2024-02-06T10:04:20Z" level=info msg="Trying to cleanup mount point /var/lib/kubelet/pods/cdf8fa36-df88-4796-b474-97a486024a8c/volumes/kubernetes.io~csi/pvc-2d7f3352-f549-4565-a4b8-61ef7121a182/mount" func=csi.cleanupMountPoint file="util.go:372"
time="2024-02-06T10:04:20Z" level=info msg="Trying to force unmount potential mount point /var/lib/kubelet/pods/cdf8fa36-df88-4796-b474-97a486024a8c/volumes/kubernetes.io~csi/pvc-2d7f3352-f549-4565-a4b8-61ef7121a182/mount" func=csi.unmount file="util.go:350"
time="2024-02-06T10:04:20Z" level=info msg="Cleaned up mount point /var/lib/kubelet/pods/cdf8fa36-df88-4796-b474-97a486024a8c/volumes/kubernetes.io~csi/pvc-2d7f3352-f549-4565-a4b8-61ef7121a182/mount" func=csi.cleanupMountPoint file="util.go:378"
time="2024-02-06T10:04:20Z" level=info msg="Volume pvc-2d7f3352-f549-4565-a4b8-61ef7121a182 unmounted from path /var/lib/kubelet/pods/cdf8fa36-df88-4796-b474-97a486024a8c/volumes/kubernetes.io~csi/pvc-2d7f3352-f549-4565-a4b8-61ef7121a182/mount" func="csi.(*NodeServer).NodeUnpublishVolume" file="node_server.go:369" component=csi-node-server function=NodeUnpublishVolume
time="2024-02-06T10:04:20Z" level=info msg="NodeUnpublishVolume: rsp: {}" func=csi.logGRPC file="server.go:141"

To see what went wrong exactly (``fsck error fsck from util-linux 2.37.4 in the log), I did an experiment. I tried to unmount and remount the global mount point when the bind mount was still there and was read only

Initally

/dev/longhorn/pvc-2d7f3352-f549-4565-a4b8-61ef7121a182 on /host/var/lib/kubelet/pods/4e7d6e15-e754-4755-8948-079b
c98a8509/volumes/kubernetes.io~csi/pvc-2d7f3352-f549-4565-a4b8-61ef7121a182/mount type ext4 (ro,relatime)
/dev/longhorn/pvc-2d7f3352-f549-4565-a4b8-61ef7121a182 on /host/var/lib/kubelet/plugins/kubernetes.io/csi/driver.
longhorn.io/536e9cde86b7c02e277285c8cc459b13625f724485127fae824f102463baae5c/globalmount type ext4 (ro,relatime)

umount the globlamount

/dev/longhorn/pvc-2d7f3352-f549-4565-a4b8-61ef7121a182 on /host/var/lib/kubelet/pods/4e7d6e15-e754-4755-8948-079b
c98a8509/volumes/kubernetes.io~csi/pvc-2d7f3352-f549-4565-a4b8-61ef7121a182/mount type ext4 (ro,relatime)

use fsck to check the device, got

instance-manager-1d2defe020180358325daa37768b1023:/ # fsck -a /dev/longhorn/pvc-2d7f3352-f549-4565-a4b8-61ef7121a182
fsck from util-linux 2.37.4
/dev/longhorn/pvc-2d7f3352-f549-4565-a4b8-61ef7121a182 is mounted.
e2fsck: Cannot continue, aborting.

Note: when doing k8s.io/mount-utils FormatAndMount(), it calls checkAndRepairFilesystem to check the device here . However, it by pass the error because it didn't return the error in this error case here

mount the globalmount back

instance-manager-1d2defe020180358325daa37768b1023:/ # mount /dev/longhorn/pvc-2d7f3352-f549-4565-a4b8-61ef7121a182 host/var/lib/kubelet/plugins/kubernetes.io/csi/driver.longhorn.io/536e9cde86b7c02e277285c8cc459b13625f724485127fae824f102463baae5c/globalmount
mount: /host/var/lib/kubelet/plugins/kubernetes.io/csi/driver.longhorn.io/536e9cde86b7c02e277285c8cc459b13625f724485127fae824f102463baae5c/globalmount: WARNING: source write-protected, mounted read-only.

Summary
So I believe that the issue here was because the old pod bind mount was not unmount first.
In this case the remount of the global mount would still be mounted read-only and the bind mount of the new pod would also be read only.

Verified pass on longhorn master(longhorn-manager 8cdf68) with test stpes
Remount PVC to read only, can see engine FilesystemReadOnly changed from True to False and data can write into workload without problem.
> k get engine -A -o yaml -w | grep FilesystemReadOnly -B 1
    status: "False"
    type: FilesystemReadOnly
--
    status: "True"
    type: FilesystemReadOnly
--
    status: "False"
    type: FilesystemReadOnly

related: https://github.com/longhorn/longhorn/issues/6651


Support multiple datasets in @ExpectedDatabase

I'm trying to use spring-test-dbunit to create minimal datasets for integration tests. To achieve this goal, it would be great to be able to put multiple additive datasets into the @ExpectedDatabase annotation just like into the @DatabaseSetup annotation.

It'd be awesome if this PR would make it into the next release, since then it would be possible to create really modular test database files!


Unable to run YARN job. Can you guys please tell me what the issue is? Shared the issue log below

16/02/22 19:20:17 INFO dmlc.ApplicationMaster: Start AM as user=sandeep
16/02/22 19:20:17 INFO dmlc.ApplicationMaster: Try to start 0 Servers and 1 Workers
16/02/22 19:20:17 INFO client.RMProxy: Connecting to ResourceManager at /<IP_ADDRESS>:8030
16/02/22 19:20:17 INFO impl.NMClientAsyncImpl: Upper bound of the thread pool size is 500
16/02/22 19:20:17 INFO impl.ContainerManagementProtocolProxy: yarn.client.max-cached-nodemanagers-proxies : 0
16/02/22 19:20:17 INFO dmlc.ApplicationMaster: [DMLC] ApplicationMaster started
16/02/22 19:20:19 INFO impl.AMRMClientImpl: Received new token for : Sandeep-Lenovo-T430:39791
16/02/22 19:20:19 INFO dmlc.ApplicationMaster: {run_hdfs_prog.py=resource { scheme: "hdfs" port: -1 file: "/tmp/temp-dmlc-yarn-application_1456147750591_0003/run_hdfs_prog.py" } size: 1522 timestamp:<PHONE_NUMBER>313 type: FILE visibility: APPLICATION, xgboost=resource { scheme: "hdfs" port: -1 file: "/tmp/temp-dmlc-yarn-application_1456147750591_0003/xgboost" } size: 1954662 timestamp:<PHONE_NUMBER>409 type: FILE visibility: APPLICATION, dmlc-yarn.jar=resource { scheme: "hdfs" port: -1 file: "/tmp/temp-dmlc-yarn-application_1456147750591_0003/dmlc-yarn.jar" } size: 19782 timestamp:<PHONE_NUMBER>459 type: FILE visibility: APPLICATION, mushroom.hadoop.conf=resource { scheme: "hdfs" port: -1 file: "/tmp/temp-dmlc-yarn-application_1456147750591_0003/mushroom.hadoop.conf" } size: 1085 timestamp:<PHONE_NUMBER>505 type: FILE visibility: APPLICATION}
16/02/22 19:20:19 INFO dmlc.ApplicationMaster: {DMLC_MAX_ATTEMPT=3, DMLC_ROLE=worker, DMLC_TASK_ID=0, DMLC_MEMORY_MB=1024, DMLC_CPU_VCORES=1, DMLC_TRACKER_URI=<IP_ADDRESS>, CLASSPATH=${CLASSPATH}:./*:$HADOOP_CONF_DIR:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common//hadoop-common-2.6.4-tests.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common//hadoop-common-2.6.4.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common//hadoop-nfs-2.6.4.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common//:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//httpcore-4.2.5.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//mockito-all-1.8.5.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//xz-1.0.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//jsch-0.1.42.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//commons-logging-1.1.3.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//jets3t-0.9.0.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//asm-3.2.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//junit-4.11.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//slf4j-log4j12-1.7.5.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//apacheds-kerberos-codec-2.0.0-M15.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//activation-1.1.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//jaxb-impl-2.2.3-1.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//java-xmlbuilder-0.4.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//apacheds-i18n-2.0.0-M15.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//jersey-core-1.9.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//avro-1.7.4.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//api-util-1.0.0-M20.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//jasper-compiler-5.5.23.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//servlet-api-2.5.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//jackson-mapper-asl-1.9.13.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//commons-beanutils-1.7.0.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//commons-math3-3.1.1.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//jasper-runtime-5.5.23.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//jaxb-api-2.2.2.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//paranamer-2.3.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//commons-io-2.4.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//gson-2.2.4.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//netty-3.6.2.Final.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//commons-digester-1.8.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//commons-codec-1.4.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//jsr305-1.3.9.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//jettison-1.1.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//jackson-jaxrs-1.9.13.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//jersey-json-1.9.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//jersey-server-1.9.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//curator-client-2.6.0.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//curator-framework-2.6.0.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//commons-net-3.1.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//log4j-1.2.17.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//commons-compress-1.4.1.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//guava-11.0.2.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//zookeeper-3.4.6.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//htrace-core-3.0.4.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//httpclient-4.2.5.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//commons-beanutils-core-1.8.0.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//hadoop-annotations-2.6.4.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//jsp-api-2.1.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//jackson-core-asl-1.9.13.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//stax-api-1.0-2.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//hadoop-auth-2.6.4.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//commons-configuration-1.6.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//commons-cli-1.2.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//commons-httpclient-3.1.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//hamcrest-core-1.3.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//commons-el-1.0.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//slf4j-api-1.7.5.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//protobuf-java-2.5.0.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//api-asn1-api-1.0.0-M20.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//snappy-java-<IP_ADDRESS>.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//xmlenc-0.52.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//jetty-util-6.1.26.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//jackson-xc-1.9.13.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//commons-lang-2.6.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//commons-collections-3.2.2.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//jetty-6.1.26.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//curator-recipes-2.6.0.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/common/lib//:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/hdfs//hadoop-hdfs-2.6.4-tests.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/hdfs//hadoop-hdfs-2.6.4.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/hdfs//hadoop-hdfs-nfs-2.6.4.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/hdfs//:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/hdfs/lib//commons-logging-1.1.3.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/hdfs/lib//asm-3.2.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/hdfs/lib//jersey-core-1.9.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/hdfs/lib//servlet-api-2.5.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/hdfs/lib//jackson-mapper-asl-1.9.13.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/hdfs/lib//jasper-runtime-5.5.23.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/hdfs/lib//commons-io-2.4.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/hdfs/lib//netty-3.6.2.Final.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/hdfs/lib//commons-codec-1.4.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/hdfs/lib//jsr305-1.3.9.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/hdfs/lib//jersey-server-1.9.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/hdfs/lib//xml-apis-1.3.04.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/hdfs/lib//log4j-1.2.17.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/hdfs/lib//guava-11.0.2.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/hdfs/lib//htrace-core-3.0.4.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/hdfs/lib//xercesImpl-2.9.1.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/hdfs/lib//jsp-api-2.1.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/hdfs/lib//jackson-core-asl-1.9.13.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/hdfs/lib//commons-cli-1.2.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/hdfs/lib//commons-el-1.0.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/hdfs/lib//protobuf-java-2.5.0.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/hdfs/lib//xmlenc-0.52.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/hdfs/lib//jetty-util-6.1.26.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/hdfs/lib//commons-lang-2.6.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/hdfs/lib//jetty-6.1.26.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/hdfs/lib//commons-daemon-1.0.13.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/hdfs/lib//:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn//hadoop-yarn-server-applicationhistoryservice-2.6.4.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn//hadoop-yarn-common-2.6.4.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn//hadoop-yarn-applications-unmanaged-am-launcher-2.6.4.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn//hadoop-yarn-server-tests-2.6.4.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn//hadoop-yarn-server-nodemanager-2.6.4.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn//hadoop-yarn-server-common-2.6.4.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn//hadoop-yarn-server-resourcemanager-2.6.4.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn//hadoop-yarn-applications-distributedshell-2.6.4.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn//hadoop-yarn-api-2.6.4.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn//hadoop-yarn-client-2.6.4.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn//hadoop-yarn-server-web-proxy-2.6.4.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn//hadoop-yarn-registry-2.6.4.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn//:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn/lib//xz-1.0.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn/lib//commons-logging-1.1.3.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn/lib//asm-3.2.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn/lib//aopalliance-1.0.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn/lib//activation-1.1.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn/lib//jaxb-impl-2.2.3-1.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn/lib//jersey-core-1.9.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn/lib//servlet-api-2.5.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn/lib//jackson-mapper-asl-1.9.13.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn/lib//jaxb-api-2.2.2.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn/lib//commons-io-2.4.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn/lib//jersey-client-1.9.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn/lib//netty-3.6.2.Final.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn/lib//commons-codec-1.4.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn/lib//jline-0.9.94.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn/lib//jsr305-1.3.9.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn/lib//jettison-1.1.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn/lib//guice-servlet-3.0.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn/lib//javax.inject-1.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn/lib//jackson-jaxrs-1.9.13.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn/lib//jersey-json-1.9.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn/lib//jersey-server-1.9.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn/lib//guice-3.0.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn/lib//jersey-guice-1.9.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn/lib//log4j-1.2.17.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn/lib//commons-compress-1.4.1.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn/lib//guava-11.0.2.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn/lib//zookeeper-3.4.6.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn/lib//leveldbjni-all-1.8.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn/lib//jackson-core-asl-1.9.13.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn/lib//stax-api-1.0-2.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn/lib//commons-cli-1.2.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn/lib//commons-httpclient-3.1.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn/lib//protobuf-java-2.5.0.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn/lib//jetty-util-6.1.26.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn/lib//jackson-xc-1.9.13.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn/lib//commons-lang-2.6.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn/lib//commons-collections-3.2.2.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn/lib//jetty-6.1.26.jar:/home/sandeep/Desktop/Codes/XGBoost/hadoop-2.6.4/share/hadoop/yarn/lib//, DMLC_NUM_WORKER=1, PYTHONPATH=${PYTHONPATH}:., DMLC_HDFS_OPTS=-Xmx128m, DMLC_TRACKER_PORT=9091, LD_LIBRARY_PATH=:/usr/local/hadoop-2.6.0/lib/native:/usr/lib/jvm/java-7-oracle/jre/lib/amd64:/usr/local/hadoop-2.6.0/lib/native:/usr/lib/jvm/java-7-oracle/jre/lib/amd64:$HADOOP_HDFS_HOME/lib/native:$JAVA_HOME/jre/lib/amd64/server, DMLC_NUM_ATTEMPT=0, DMLC_NUM_SERVER=0}
16/02/22 19:20:19 INFO impl.NMClientAsyncImpl: Processing Event EventType: START_CONTAINER for Container container_1456147750591_0003_01_000002
16/02/22 19:20:19 INFO impl.ContainerManagementProtocolProxy: Opening proxy : Sandeep-Lenovo-T430:39791
16/02/22 19:20:19 INFO dmlc.ApplicationMaster: onContainerStarted Invoked
16/02/22 19:20:20 INFO dmlc.ApplicationMaster: [DMLC] Task 0 exited with status 127 Diagnostics:Exception from container-launch.
Container id: container_1456147750591_0003_01_000002
Exit code: 127
Stack trace: ExitCodeException exitCode=127:
at org.apache.hadoop.util.Shell.runCommand(Shell.java:538)
at org.apache.hadoop.util.Shell.run(Shell.java:455)
at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:715)
at org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:212)
at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:302)
at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:82)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)

You can get more information by getting log from containers, using yarn logs command

Following is the log we got from nodemanager's log file. It has no description about an error except just only exit code. Can you please let us know what could be the issue? Thanks in advance!
2016-02-22 10:22:11,465 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.monitor.ContainersMonitorImpl: Memory usage of ProcessTree 24962 for container-id container_1456116662362_0001_01_000001: 122 MB of 1 GB physical memory used; 1.4 GB of 2.1 GB virtual memory used
2016-02-22 10:22:11,490 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.monitor.ContainersMonitorImpl: Memory usage of ProcessTree 25054 for container-id container_1456116662362_0001_01_000002: 3.6 MB of 1 GB physical memory used; 32.7 MB of 2.1 GB virtual memory used
2016-02-22 10:22:13,539 WARN org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor: Exit code from container container_1456116662362_0001_01_000002 is : 127
2016-02-22 10:22:13,565 WARN org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor: Exception from container-launch with container ID: container_1456116662362_0001_01_000002 and exit code: 127
ExitCodeException exitCode=127:
at org.apache.hadoop.util.Shell.runCommand(Shell.java:538)
at org.apache.hadoop.util.Shell.run(Shell.java:455)
at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:715)
at org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:212)
at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:302)
at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:82)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
2016-02-22 10:22:13,571 INFO org.apache.hadoop.yarn.server.nodemanager.ContainerExecutor: Exception from container-launch.
2016-02-22 10:22:13,571 INFO org.apache.hadoop.yarn.server.nodemanager.ContainerExecutor: Container id: container_1456116662362_0001_01_000002
2016-02-22 10:22:13,571 INFO org.apache.hadoop.yarn.server.nodemanager.ContainerExecutor: Exit code: 127
2016-02-22 10:22:13,571 INFO org.apache.hadoop.yarn.server.nodemanager.ContainerExecutor: Stack trace: ExitCodeException exitCode=127:
2016-02-22 10:22:13,571 INFO org.apache.hadoop.yarn.server.nodemanager.ContainerExecutor: 	at org.apache.hadoop.util.Shell.runCommand(Shell.java:538)
2016-02-22 10:22:13,571 INFO org.apache.hadoop.yarn.server.nodemanager.ContainerExecutor: 	at org.apache.hadoop.util.Shell.run(Shell.java:455)
2016-02-22 10:22:13,571 INFO org.apache.hadoop.yarn.server.nodemanager.ContainerExecutor: 	at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:715)
2016-02-22 10:22:13,571 INFO org.apache.hadoop.yarn.server.nodemanager.ContainerExecutor: 	at org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:212)
2016-02-22 10:22:13,571 INFO org.apache.hadoop.yarn.server.nodemanager.ContainerExecutor: 	at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:302)
2016-02-22 10:22:13,571 INFO org.apache.hadoop.yarn.server.nodemanager.ContainerExecutor: 	at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:82)
2016-02-22 10:22:13,571 INFO org.apache.hadoop.yarn.server.nodemanager.ContainerExecutor: 	at java.util.concurrent.FutureTask.run(FutureTask.java:262)
2016-02-22 10:22:13,571 INFO org.apache.hadoop.yarn.server.nodemanager.ContainerExecutor: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
2016-02-22 10:22:13,571 INFO org.apache.hadoop.yarn.server.nodemanager.ContainerExecutor: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
2016-02-22 10:22:13,571 INFO org.apache.hadoop.yarn.server.nodemanager.ContainerExecutor: 	at java.lang.Thread.run(Thread.java:745)
2016-02-22 10:22:13,572 WARN org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch: Container exited with a non-zero exit code 127
2016-02-22 10:22:13,574 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.container.Container: Container container_1456116662362_0001_01_000002 transitioned from RUNNING to EXITED_WITH_FAILURE
2016-02-22 10:22:13,574 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch: Cleaning up container container_1456116662362_0001_01_000002
2016-02-22 10:22:13,695 INFO org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor: Deleting absolute path : /tmp/hadoop-sandeep/nm-local-dir/usercache/sandeep/appcache/application_1456116662362_0001/container_1456116662362_0001_01_000002
2016-02-22 10:22:13,699 WARN org.apache.hadoop.yarn.server.nodemanager.NMAuditLogger: USER=sandeep	OPERATION=Container Finished - Failed	TARGET=ContainerImpl	RESULT=FAILURE	DESCRIPTION=Container failed with state: EXITED_WITH_FAILURE	APPID=application_1456116662362_0001	CONTAINERID=container_1456116662362_0001_01_000002
2016-02-22 10:22:13,712 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.container.Container: Container container_1456116662362_0001_01_000002 transitioned from EXITED_WITH_FAILURE to DONE
2016-02-22 10:22:13,712 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.application.Application: Removing container_1456116662362_0001_01_000002 from application application_1456116662362_0001
2016-02-22 10:22:13,712 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.AuxServices: Got event CONTAINER_STOP for appId application_1456116662362_0001

Check the stdout and stderr log of container launches, currently it only shows the log that container get killed from app master, but not the real running of the jobs

Checked the stdout and stderr log like you suggested, couldn't identify the issue. Here's the output from the code
16/02/24 02:17:39 INFO impl.TimelineClientImpl: Timeline service address: http://x.x.x.x:8188/ws/v1/timeline/
16/02/24 02:17:39 INFO client.RMProxy: Connecting to ResourceManager at x.x.x.x/x.x.x.x:8050
16/02/24 02:17:39 INFO zlib.ZlibFactory: Successfully loaded & initialized native-zlib library
16/02/24 02:17:40 INFO compress.CodecPool: Got brand-new decompressor [.deflate]
Container: container_1427444285989_0523_01_000003 on x.x.x.x_45454
LogType:stderr
Log Upload Time:24-Feb-2016 02:15:55
LogLength:0
Log Contents:
LogType:stdout
Log Upload Time:24-Feb-2016 02:15:55
LogLength:0
Log Contents:
Container: container_1427444285989_0523_01_000006 on x.x.x.x_45454
LogType:stderr
Log Upload Time:24-Feb-2016 02:15:55
LogLength:0
Log Contents:
LogType:stdout
Log Upload Time:24-Feb-2016 02:15:55
LogLength:0
Log Contents:
Container: container_1427444285989_0523_01_000012 on x.x.x.x_45454
LogType:stderr
Log Upload Time:24-Feb-2016 02:15:55
LogLength:0
Log Contents:
LogType:stdout
Log Upload Time:24-Feb-2016 02:15:55
LogLength:0
Log Contents:
Container: container_1427444285989_0523_01_000002 on x.x.x.x_45454
LogType:stderr
Log Upload Time:24-Feb-2016 02:15:56
LogLength:0
Log Contents:
LogType:stdout
Log Upload Time:24-Feb-2016 02:15:56
LogLength:0
Log Contents:
16/02/24 02:15:46 INFO dmlc.ApplicationMaster: [DMLC] Task 1 exited with status 245 Diagnostics:Exception from container-launch.
Container id: container_1427444285989_0523_01_000003
Exit code: 245
Stack trace: ExitCodeException exitCode=245:
at org.apache.hadoop.util.Shell.runCommand(Shell.java:538)
at org.apache.hadoop.util.Shell.run(Shell.java:455)
at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:715)
at org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:211)
at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:302)
at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:82)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Container exited with a non-zero exit code 245

Can any one please provide the solution for this error?

Hi guys,
did anyone end up coming across a solution to this?


started phenotyping queries

Output with 8507 hardcoded as the concept id is

Great stuff in general, a few comments to tidy it up.
The remaining piece of logic I'd like (sorry, hadn't mentioned this before now!) is that we should have an optional argument to indicate whether to use all scan reports, or to ignore mappings from archived reports. Could you add this please? Call it use_archived, defaulting to False, and if False then perform a check or filter to only extract mappings associated to fields or values in ScanReports where the column hidden=False.
If you could also add a few comments to really make the logic crystal clear that would be useful.

Done


Manage Actions

what would be great is if we could edit the actions.
f.e.
webViewController.actionEmailEnabled = NO;
webViewController.actionSafariEnabled = YES;
webViewController.actionCopyEnabled = YES;
something like this, or as an array.
(as you can see, a 'copy link' action would be cool)

Good call on a "Copy Link" feature. Disabling actions should be made possible as well. Will try to add this shortly.

Added a availableActions integer bit mask property to SVWebViewController, which now allows a Copy Link action as well. Check out the Read Me to see what the possible values are.


landing page added

Pull Request
Proposed Changes

added landing page
fixes #11
live link

@Tlazypanda Mam, want to confirm once that the landing page requires content on Elevate Lab and we have to put content over what it actually is and all about. Is there something I am missing?

@Jyotika999 yes current content is on dsc if you could replace it with content on Elevate Lab then that would be great!!


WebGPU Samples page cannot load due to missing main.js

The previously available file at https://webgpu.github.io/webgpu-samples/main.js is missing after a recent deployment.

Could be due to the recent requirement bump to Node v20. Maybe a redeploy would help?

FWIW I've just merged https://github.com/webgpu/webgpu-samples/commit/79485ded481e57610c977b94937f9764f84fd6ff and it didn't help.
I guess something is broken. @greggman Can you have a look?

Looks OK now, guessing it was fixed by #465?


Added api version 2018-06-01 folder

Automation for azure-sdk-for-java

Automation for azure-sdk-for-node

Automation for azure-sdk-for-python

Automation for azure-sdk-for-ruby

This is a plain copy to the next version.


Feature/nav clickable parent

Codecov Report

Merging #93 into develop will decrease coverage by 0.08%.
The diff coverage is 75%.

@@             Coverage Diff             @@
##           develop      #93      +/-   ##
===========================================
- Coverage    94.51%   94.43%   -0.09%
===========================================
  Files          121      121
  Lines         1934     1939       +5
===========================================
+ Hits          1828     1831       +3
- Misses         106      108       +2

Impacted Files
Coverage Δ

src/App/components/Nav/index.js
95.45% <50%> (-4.55%)
:arrow_down:

src/px-script/main/nav/index.js
99.01% <83.33%> (-0.99%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 66cd1ac...c93ff8c. Read the comment docs.

Why is it the active state not shown on mobile?
Why are the "Transactions" and "Account" items on "Two levels" disappearing on mobile?
The CSS for this component seems to have many selector with deep dependency on very common elements such as <span>, <i> and <a>, without any child combinator (>). I suspect this might be the reason for some of the frustration surrounding this component.

Do you want me to try to clean up the component? As for the two menu items dissapearing that is due to them containing child elements. We should discuss this face to face.

Why is it the active state not shown on mobile?
Why are the "Transactions" and "Account" items on "Two levels" disappearing on mobile?
The CSS for this component seems to have many selector with deep dependency on very common elements such as <span>, <i> and <a>, without any child combinator (>). I suspect this might be the reason for some of the frustration surrounding this component.

Do you want me to try to clean up the component? As for the two menu items dissapearing that is due to them containing child elements. We should discuss this face to face.
Sure.


Resize points to indicate selection

from Sehi:

[Highlighting] I think it would be more noticeable to users when a point in scatterplots is resized (e.g., 2x radius) upon mouse hover, instead of just changing the intensity of color because the points are too small in the default zoom level.

Also note that cellxgene does this

Related to #25


This repository depends on k8s.io/kubernetes

The ./pkg/util/flowcontrol/throttle.go file imports the k8s.io/kubernetes/pkg/util/ratelimit package (see here). This import makes glide pull in the entire k8s.io/kubernetes codebase in order to satisfy that dependency.
My initial understanding of this repository was that it would not have dependencies on k8s.io/kubernetes, so it could serve as a lightweight Go client for the Kubernetes API. Is that wrong?
cc/ @krancour

This looks like a dupe of #31. Looks like my answer is in there too. Closing!


Add constants for missing registered EDNS option codes

https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-11

Value
Name
Status
Reference

13
CHAIN
Standard
[RFC7901]

14
edns-key-tag
Optional
[RFC8145]

Where is the code that implements the options?

It has not yet been written; this just introduces the constants so consuming code can use e.g. option.Code == dns.EDNS0KEYTAG rather than option.Code == 14. I believe the constants alone provide sufficient value to land by replacing opaque numbers with descriptive names, but if you insist on the types and behavior as well then it may be a while because I don't think I have the time for them right now.

Yes, it will be better do this in one Go instead of giving the impression we've implemented it, without providing the pack and unpack code.

If you're unable to do this, I'll close this PR.


Change links to relative links using hugo shortcodes

Partially adresses issues #45 and #106

I could not review every single file but at least in this post the links are not working:

content/blog/2015-02-11-drew-in-hamburg.md
https://deploy-preview-117--dev-codefor-de.netlify.app/blog/drew-in-hamburg/

I could not review every single file but at least in this post the links are not working:
* content/blog/2015-02-11-drew-in-hamburg.md

* https://deploy-preview-117--dev-codefor-de.netlify.app/blog/drew-in-hamburg/

Usage of bare HTML prevents correct processing of markdown formatting.

Blocked until all pages are there


librecast: 0.7-RC3 -> 0.7.0

Description of changes
https://codeberg.org/librecast/librecast/src/branch/main/CHANGELOG.md

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 250862 run on x86_64-linux 1

2 packages built:

lcsync
librecast


Password reset should confirm users email

I had a look at:
https://github.com/lazaronixon/authentication-zero/issues/80
In case a user forgot his password but never received a confirmation mail (be it some junk filter or broken mailer) he is basically locked out. On my applications I change it to still send out a password recovery link and when the link is used the user is confirmed automatically. This makes sense in my opinion, what do you think @lazaronixon .
Let me know if I should send in a PR :)

Authentication zero follows the hey.com workflow which means that:
1 - The session never expires, so you can resend the email confirmation again in the future.
2 - To verify your email you must be signed in.
3 - To receive a "password reset" you must verify your email account.
The only problem I see is that if a user signs up with the wrong email, another person can take control of your account, I don't want to change this behavior by now but it's up to you if you can live with that.

Valid point.
What would be the best approach to go for this deadlock situation:

User signs up and uses service (usage is not prevented by default before email verification).
Confirmation Mail never appeared in his inbox.
Time passes.
User wants to comes back on another system (or browser etc.) but forgot his password.
Can't send recovery mail because he's not confirmed.

Then there is no way to retrigger the confirmation mail out of the box isn't it?
Should there then be a resend confirmation mail path?
What do you think?

A resend of the confirmation email could be triggered here?

There's a link to resend email verifications, but the user must be signed in. In your case, the user can contact the support and they can resend the confirmation email. Of course, there are other options:
1 - Remove the requirement to only send password resets from verified accounts.
2 - Remove the email confirmation process, it works for Basecamp.
3 - A recurrent job to resend verification emails =/

I ran into this lock scenario today while testing and I feel like the current functionality basically tells hackers what email addresses exist in the system and which ones don't.
This code generated by the gem feels like a security gap to me:
app/controllers/identity/password_resets_controller.rb
  def create
    if @user = User.find_by(email: params[:email], verified: true)
      send_password_reset_email
      redirect_to sign_in_path, notice: "Check your email for reset instructions"
    else
      redirect_to new_identity_password_reset_path, alert: "You can't reset your password until you verify your email"
    end
  end

My suggestion to fix this would be to allow password resets without email verification.
app/controllers/identity/password_resets_controller.rb
  def create
    if @user = User.find_by(email: params[:email])
      send_password_reset_email
      redirect_to sign_in_path, notice: "Check your email for reset instructions"
    end
  end

And then automatically re-send the email verification if a user resets their password on an account that isn't verified and remind the user to verify their email when the password reset is confirmed on the screen.

You're not wrong, this is why we have a rate_limit on this endpoint.
https://github.com/lazaronixon/authentication-zero/blob/0eb2ba99c4b46b856066bcbc1d1ece42bd87887b/lib/generators/authentication/templates/controllers/api/identity/password_resets_controller.rb.tt#L4-L6


Enable dapr tests on CI

Description
Please include a summary of the changes and the related issue. Please also include relevant motivation and context. List any dependencies that are required for this change.
Fixes # (issue)
Checklist

Is this feature complete?

[ ] Yes. Ready to ship.
[ ] No. Follow-up changes expected.

Are you including unit tests for the changes and scenario tests if relevant?

[ ] Yes
[ ] No

Did you add public API?

[ ] Yes

If yes, did you have an API Review for it?

[ ] Yes
[ ] No

Did you add <remarks /> and <code /> elements on your triple slash comments?

[ ] Yes
[ ] No

[ ] No

Does the change make any security assumptions or guarantees?

[ ] Yes

If yes, have you done a threat model and had a security review?

[ ] Yes
[ ] No

[ ] No

Does the change require an update in our Aspire docs?

[ ] Yes

Link to aspire-docs issue:

[ ] No

Microsoft Reviewers: Open in CodeFlow

2024-08-24T01:16:52.9380000
stderr Flag --dapr-http-max-request-size has been deprecated, use '--max-body-size 4Mi'
10
2024-08-24T01:16:52.9380000
stderr Flag --dapr-http-read-buffer-size has been deprecated, use '--read-buffer-size 4Ki'

Blocked on:
info: Dapr.AppHost.Resources.serviceb-dapr-cli[0] 20: 2024-08-24T06:14:39.720Z time="2024-08-24T06:14:39.720428416Z" level=error msg="Failed to init component pubsub (pubsub.redis/v1): [INIT_COMPONENT_FAILURE]: initialization error occurred for pubsub (pubsub.redis/v1): redis streams: error connecting to redis at localhost:6379: dial tcp <IP_ADDRESS>:6379: connect: connection refused" app_id=serviceb instance=a006G8Q scope=dapr.runtime.processor type=log ver=1.14.1
info: Dapr.AppHost.Resources.serviceb-dapr-cli[0] 21: 2024-08-24T06:14:39.720Z time="2024-08-24T06:14:39.72048222Z" level=warning msg="Error processing component, daprd will exit gracefully: process component pubsub error: [INIT_COMPONENT_FAILURE]: initialization error occurred for pubsub (pubsub.redis/v1): [INIT_COMPONENT_FAILURE]: initialization error occurred for pubsub (pubsub.redis/v1): redis streams: error connecting to redis at localhost:6379: dial tcp <IP_ADDRESS>:6379: connect: connection refused" app_id=serviceb instance=a006G8Q scope=dapr.runtime.processor type=log ver=1.14.1
This seems to be starting dapr before redis is ready for connections. The order probably be enforced with https://github.com/dotnet/aspire/pull/5394 .

We should be able to use waitfor to make these tests work now.


Remove archived items from campaigns

Acceptance criteria:

When archiving a page that has been added to a campaign, show a warning message, "this will be removed from X campaigns"
At that time, remove the page from the given campaigns so it no longer shows up in the campaign detail view.

We need to come up with a pattern for how archived items (items archived outside of the campaign) are displayed in campaigns, there are a few options I see for how this could work:

Remove archived items from campaigns. (history becomes complicated)
Show archived items in campaigns but add an "Archived" tag. (adds campaign bloat)
Hide archived items and have an option to show archived items. (requires more UI actions)

My preference is opt. 1, especially if we can show in the history of the campaign items were archived and automatically removed.
Eventually there will be an option to archive items when the campaign is published but this should be managed separately.

Option 1 with 1 of 2 approaches:

When opening that campaign, say "an item has been archived" without details
When archiving the page, say "this will be removed from X campaigns"

I think option 1. is a good first step (MVP) along with the notification.

Suggested updates to alert text are as follows "Warning: This page and all of its child pages will be unpublished, removed from campaigns and sent to the archive.
Are you sure you want to archive this page and all pages beneath it?"
https://invis.io/5UB2EX59Y#/226150587_Notifications

@clarkepaul So there's no mention of "x campaigns" like @sminnee suggested?

True, updated as that is nice to have that info. Hopefully it isn't hard to get that info.

It would also be good if it only mentioned child pages when archiving  page that actually has children.

Had a bit more of a thought about this, archiving a page can get quite complicated as you not only remove the page you are on from campaigns but all child pages and their associated files/linked items (which aren't being used in other parts of the campaign). I don't see the value in just communicating how many campaigns are effected by the one page, when there could also be other campaigns which are also effected by pages/files being removed.
I think its best to keep the message generic unless we can provide all the details which could get pretty crazy with edge cases (something for later on in the roadmap).
Proposed change:
"Warning: This page and all of its child pages will be unpublished. These pages will be removed from their associated campaigns along with their linked items (e.g. files) before being archived.
Are you sure you want to archive this page and all pages beneath it?"

More discussion on this matter with @sminnee, we should ignore all linked items which are implicitly added to a campaign. Hence X stands for the total number of campaigns effected:
"Warning: This page and all of its child pages will be unpublished and automatically removed from X campaigns and sent to the archive.
Are you sure you want to proceed?"


TP2000-1142 Synchronous only operation errors

TP2000-1142 Synchronous only operation errors

Why

Use of Python's async features to concurrently retrieve data from 3rd party APIs across the network is causing Django to raise SynchronousOnlyOperation exceptions.
What

Non-async Django does not permit syncronous code to be executed within the same context (i.e. on the same thread) as async code. It guards against this by trying to get an event loop on the current thread and raises an SynchronousOnlyOperation exception if a loop / message pump is found. This PR replaces the use of async with the equivalent Python threading behaviour to concurrently retrieve data from 3rd party APIs.

Checklist

Requires migrations? No
Requires dependency updates? Yes

Codecov Report
Attention: 5 lines in your changes are missing coverage. Please review.

Comparison is base (d1f3547) 92.75% compared to head (0c4f8bc) 92.74%.

:exclamation: Current head 0c4f8bc differs from pull request most recent head 0dd661e. Consider uploading reports for the commit 0dd661e to get more accurate results

Files
Patch %
Lines

common/tariffs_api.py
88.09%
4 Missing and 1 partial :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1114      +/-   ##
==========================================
- Coverage   92.75%   92.74%   -0.02%
==========================================
  Files         460      460
  Lines       35233    35251      +18
  Branches     2689     2689
==========================================
+ Hits        32680    32693      +13
- Misses       2030     2033       +3
- Partials      523      525       +2

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


global-naming form does not apply to event subscribers

The code
        [CreateSyncVersion]
        public static async Task PAsync()
        {
            var p = new Process();
            p.ErrorDataReceived += new DataReceivedEventHandler(
                (sender, e) => { }
                );
        }

is transformed into the following:

Same is true for -=.

Fixed in 1.4.3


install protobufs with golang

I might recommend rejecting this...

Protobufs are specifically built for a variety of languages, not just golang
Not necessarily widely used
Some projects check in compiled *.proto code so that hackers don't need to compile the protobufs themselves
Other projects would help you install it (rather than expecting it to be part of workstation setup)

But wanted to throw this out there

Do most people that work with go need protobuf?
If not, I would recommend putting this with the Greenplum installation directions / dependencies.

I think it's a great protocol, but no, they don't. Yep, it's in the GPDB instructions where we're starting to use it.


Add new topic on database integration

This is an important area that should be covered (at least at some level) in a "Guide" topic.   Of course, it's a big topic, but we can at least provide an introduction and helpful links, with perhaps an example using Mongo or some other common back-end.   My suggestion is to start modestly and grow the topic incrementally.
Suggestions, comments?

Progress can be tracked on the reorg branch.

This is now merged into gh-pages branch and published.  It's only a start--can open other issues for specific suggestions or improvements.


Parallel Scripture viewer missing in the develop branch

Parallel Scripture viewer is missing in the develop branch 1.0.4.

Thank you @elsylambert,
This issue will be resolved whenever we can finish the `App Integration queue
thank you!!

v1.0.5-rc.5. Parallel Scripture Viewer is displayed and the initial bug has been fixed but the "Expand All Scripture " toggle does not work now.

Tested in Automated script by test-tCCreate/ Parallel Scripture Viewer.

Confirmed issues fixed here:

 "Expand All Scripture " toggle does not work now.
Parallel Scripture viewer missing in the develop branch

Testable in v1.0.5-rc.7
https://deploy-preview-488--tc-create-app.netlify.app/
@elsylambert
@cckozie
@BincyJ
@birchamp

Looks good in Preview. Parallel Scripture viewer works as expected and the Expand All Scripture toggle works fine.

Testable in develop, v 1.0.5-rc.7
https://develop--tc-create-app.netlify.app/

Testable in develop, v 1.0.5-rc.7
https://develop--tc-create-app.netlify.app/
@elsylambert
@cckozie
@birchamp
@BincyJ

Tested in Katalon script by test-tCCreate/ Parallel Scripture Viewer. Looks good in V 1.0.5-rc 7

Looks good in v1.0.5-rc.7


Add rub21 in npm collaborators

@geohacker :
I've built many validators on this repo, not sure why is not appear my user name. Pls, Could you add my user name (rub21) on npm collaborators for osmlint?
Thanks,
cc. @lxbarth

@Rub21 - you're already on there? What permission are you missing?

Done @Rub21!


A strong type alias wrapper

I thought about the problem that @iderik was having on Gitter. This might be a solution. It's a strong type alias wrapper. It acts like a std::optional that always contains a value. Here's a usage example:
struct vec3 {
  int x, y, z;
};

vec3 operator+(const vec3 &lhs, const vec3 &rhs) {
  return {lhs.x + rhs.x, lhs.y + rhs.y, lhs.z + rhs.z};
}

using position = entt::alias<vec3, struct position_tag>;
using velocity = entt::alias<vec3, struct velocity_tag>;
using rotation = entt::alias<vec3, struct rotation_tag>;

int main() {
  entt::registry reg;
  entt::entity e = reg.create();
  reg.assign<position>(e, 1, 2, 3); // works
  reg.assign<position>(e, vec3{1, 2, 3}); // also works

  // aggregate initialization works
  velocity vel{4, 5, 6};
  // access with with -> operator
  vel->x += 3;

  // must use static_cast here
  // this is good because you don't want to accidentally assign velocity to rotation!
  rotation rot = static_cast<rotation>(vel);

  // this is allowed though
  rotation rot1 = *vel;
  // but this isn't
  // rotation rot2 = vel;

  // you have to dereference to access overloaded operators
  // you don't have to do a cast here
  rot = *rot + *rot;
  // you don't have to do a cast here either
  rotation rot1 = *rot + *rot;
  // should we allow the above implicit conversions?
  // I think so

  // move-only types work too
  using ptr = entt::alias<std::unique_ptr<int>, struct ptr_tag>;

  ptr p;
  p = std::make_unique<int>(4);
  ptr q = std::make_unique<int>(8);
  p = std::move(q);
  // obviously not allowed
  // p = q;
}

The usage example speaks for itself. Looking at the code, I can't help but think I've just overengineered a solution to a problem that doesn't really exist. You could just do this:
struct position { vec3 p; };
struct velocity { vec3 v; };
struct rotation { vec3 r; };

This wrapper removes a few characters here and there and tries to be as transparent as possible. I don't know why I feel so inclined to use constexpr and noexcept so excessively when writing generic code. I never use noexcept and rarely use constexpr when writing "real" code! I haven't used ENTT_NOEXCEPT because it doesn't allow parametized noexcept. Should we add a ENTT_NOEXCEPT_ARG macro or remove the noexcept specifications?
This is still a POC at this point. I'm not sure if this is a good idea.

Coverage remained the same at 100.0% when pulling c0848d4c5607698154a54447c7cf259b175b32f0 on Kerndog73:master into f3c1b09188964f9e281ea6ce58fe5f3b1dec0103 on skypjack:master.

Should we add a ENTT_NOEXCEPT_ARG macro or remove the noexcept specifications?

I wouldn't care much of the noexcept, the common use case is to disable exceptions anyway when use in real production code. :smile:
Let's see what are the feedback from @iderik and if this worth it, I don't know if I would ever use such a tool but I don't see any drawback too. The problem is that the issue of @iderik seems due to an idiosyncrasy of glm and I'd rather make a PR/open issue there to solve it than try to fix it with a workaround.

Thanks @Kerndog73 and @skypjack for taking your time!
If the dot operator could be overloaded (it cant be), the usage of entt::alias would have been looking so good.
I did open an issue over at glm (https://github.com/g-truc/glm/issues/891).

You probably want to look at https://github.com/doom/strong_type

@Milerius So you're suggesting we scrap entt::alias point people towards that library? I don't have a problem with that.

Some examples:
using integer = st::type<
    int,
    struct integer_tag,
    st::arithmetic,
    st::addable_with<int>
>;

using acceleration = st::type<int, struct acceleration_tag>;

using speed = st::type<
    int,
    struct speed_tag,
    st::addable,
    st::subtractable,
    st::multiplicable_with<acceleration>
>;

using position = st::type<
    int,
    struct position_tag,
    st::addable_with<int>,
    st::subtractable_to<int>,
    st::orderable
>;

@kerndog
I think that since the license is MIT we can totally do that yeah.

and we can do some magic alias:
using namespace entt = st; smth like dat

@Kerndog73 probably it makes sense not to add a small, almost incomplete class to maintain when there is a full-featured library out there to achieve the same purpose. I'm with @Milerius in this case.

@skypjack Yeah, I agree with you both.


Add support for primitive Optional classes #379

This PR contains an extension of the API for OptionalInt, OptionalLong and OptionalDouble as described in the corresponding issue. It contains tests and documentation and I have oriented myself on existing code. I also extended BDDAssertions as well as Softassertions for those classes.
Here are some examples:
assertThat(OptionalDouble.of(8)).hasValueCloseTo(8.0, within(0d));
assertThat(OptionalDouble.of(8)).hasValue(8.0);

assertThat(OptionalInt.of(7)).hasValue(7);
assertThat(OptionalLong.of(7)).hasValue(7);

assertThat(OptionalInt.empty()).isEmpty();

One thing seems not right, yet. The generic class Optional contains a value whereas an OptionalXXX has a value.
assertThat(Optional.of("Hello World")).contains("Hello World");
assertThat(OptionalDouble.of(8)).hasValue(8.0);

It is not konsistent, is it?
Do you need more help on that?

I fixed the comparison accordingly (int, long, double) and improved the OptionalShouldXXX classes so that the actual optional class appears in the error message.

cool, thanks !

I just read your comment on hasValue vs contains, it is indeed inconsistent but I think hasValueis a good name which works well wth .hasValueCloseTo(8.0, within(0d)); whereas .containsCloseTo(8.0, within(0d)); is a little bit weird.
We can't replace contains by hasValue in optional assertions, it would break the API.
If someone requests it, we might just add hasValue as an alias of contains.

Merged, thanks.


I916278: Use docker.host maven setting

https://internal.almoctane.com/ui/entity-navigation?p=131002/6001&entityType=work_item&id=916278

A developer build has not yet been created for this branch. Click here to go ahead and create the build...

CI Build Link:
https://sou-jenkins2.swinfra.net/job/CAFapi/job/CAFapi~docker-versions-maven-plugin~I916278~CI


ModuleNotFoundError: No module named 'en'

I'm using chatterbot to build a ChatBot, but I met this error when I run my code and I don't know how to deal with it, please help me . my code is:
from chatterbot import ChatBot
from chatterbot.trainers import ListTrainer
import en
Create a new chat bot named Charlie
chatbot = ChatBot('Charlie')
trainer = ListTrainer(chatbot)
trainer.train([
"Hi, can I help you?",
"Sure, I'd like to book a flight to Iceland.",
"Your flight has been booked."
])
Get a response to the input text 'I would like to book a flight.'
response = chatbot.get_response('I would like to book a flight.')
print(response)
I had download en but it still does not work, I  need help

Is this 'import en' necessary? I checked and it worked normal without it, I just needed to put it inside a While and add a input for tests, compare with u code:
from chatterbot import ChatBot
from chatterbot.trainers import ListTrainer

# import en

chatbot = ChatBot('Charlie', read_only=True)

trainer = ListTrainer(chatbot)

trainer.train([
    "Hi, can I help you?",
    "Sure, I'd like to book a flight to Iceland.",
    "Your flight has been booked."
])

while True:
    response = str(input("U: "))
    if response == 'stop':
        break
    response = chatbot.get_response(response)
    print('chatbot: ' + str(response))

Thanks for your help! I 'import en' just because if I don't import it, It will return me with the error:ModelNotFoundError. It can't find the model "en", so I installed the model and import it, but it doesn't work! I use the jupyternotebook to run the code, I also have change the environment with python 3.6 and I am sure that I have installed the model "en" in it.
Finally, I used pycharm and built a new one and it run well.

c:\users\rose\miniconda3\lib\importlib_bootstrap.py in find_and_load_unlocked(name, import)
ModuleNotFoundError: No module named 'en'
would you help me resolve this error

From spacy's dodumentation:
# set up shortcut link to load installed package as "en_default"
python -m spacy link en_core_web_md en_default

# set up shortcut link to load local model as "my_amazing_model"
python -m spacy link /Users/you/model my_amazing_model

~ https://spacy.io/usage/models
So you should be able to fix this error by running the following:
python -m spacy link en_core_web_sm en

Hi all.
I am also facing the same issue - "ModuleNotFoundError: No module named 'en' "
I have 'en' module already installed but still I am getting this error.
Please help.

Hi all.
I am also facing the same issue - "ModuleNotFoundError: No module named 'en' "
I have 'en' module already installed but still I am getting this error.
Please help.

deepu14d put in ssh this code
python -m spacy link en_core_web_sm en

Look gunthercox....

deepu14d put in ssh this code
python -m spacy link en_core_web_sm en

Look gunthercox....


Re-enable one torchvision CUDA CI for tests

It seems to have been disabled in https://github.com/pytorch/vision/pull/1980
Note that the only test that effectively uses GPUs for linux are those which calls into binary_linux_conda_cuda, which was not applied anymore.
This should be more consistent overall, but TBD if we want to have all cuda jobs that build torchvision to use GPUs

Looks like CUDA tests are still skipping...

Ok, using CUDA 9.2 fixed the issue, maybe the pytorch docker image doesn't support CUDA 10.2 yet

Merging this to unblock other work, the current test failure in CUDA is known and is being tracked in https://github.com/pytorch/vision/issues/2035 (with an open PR to fix it)


"gene regeneration timer will be reset" on serums

I see "If the user's genes are regrowing, then instead of applying the xenotype, the gene regeneration timer will be reset." on some serums, but you can't use them when genes are regrowing, which defeats the purpose. The option to use them is grayed out, with a hint that genes are regrowing.

This was never their intended purpose. But it can be used anyway if you manually set it as surgery. Select the desired serum and click on the "Administer serum" gizmo.

It's a nice hint while the fix for gene restoration serum is not up, thank you.

oh, there is no operation bill option. You can implant from serum itself, but operation aborts with a hint at the top of the screen about genes regrowing and in the end nothing changes

Hmm... Okay, I'll take a look later.


Describe in the WIKI how to use Many Fonts

// This is my example of using multiple fonts, you can show this code as a tutorial
private val nameFontMedium = "Medium"
private val nameFontBold   = "Bold"

private val fontMediumBold = Font().setFamily(Font.FontFamily(arrayOf(
    Font(fontMedium24).setName(nameFontMedium),
    Font(fontBold24).setName(nameFontBold),
)))

private val textUsed = "[@$nameFontMedium]My Medium Text[@$nameFontBold]My Bold Text"

private val lblUsed = TypingLabel(textUsed, fontMediumBold, Color.BLACK)

Yeah, the docs I have on FontFamily could be better. I usually set the first Font in the family to whatever the default should be, since I think if you reset everything with [ ] then it uses the first Font in the family. I also usually call setFamily() on the same Font that is first in the family, and use that as my main Font. There's some useful extra tricks you can do, like adding one large set of emoji to a Font, then taking a copy of that original Font and instead adding the game-icons set to it. Those couldn't all fit in one Font, there's just too many glyphs, but they can work in separate Fonts in one FontFamily.
The wiki could really be maintained better, but I kinda am focused on getting in 9+ commits every day (and have been for years), and wiki changes don't count as commits to GitHub's metrics for some reason. I need to update the effects, too (there are some new ones).
I'll see about what I can do to document this and other under-documented things in the repo itself. I might just put .md files in the docs/ folder and copy them into the wiki.


Digitalocean

How install on digital ocean?

Do you have deploy any Laravel project before?
You only need to follow the Local Installation steps https://github.com/eusonlito/GPS-Tracker#local-installation

If you have time can you create YT video


Save ID3v2 version

Hello, in this commit, ID3v2 version gets saved into Tag, and can be later retrieved using .version(). This is useful, if you want to read tag, and save with the same version. I also have idea changing the write_to functions, and make version an Option<Version>, however that would break the API so I didn't implement that.
Thank you.

I'm curious, what is the advantage of using older ID3 versions?

Mostly for compatibility with other programs, and to leave the least fingerprint (by not always changing the ID3 version to latest). Good example is date - v2.3 uses TDAT + TYER, while v2.4 uses TRDC and TDRC.

 I have a look at the code sometime this weekend :)


Microsoft Intune integration in Flutter for iOS

Hey,
you can find the SDK for iOS developer guide here: https://docs.microsoft.com/en-us/mem/intune/developer/app-sdk-ios
I have a problem with this step:

Alternatively, this would work as well:

How can this be done in flutter?

I found it.. you can do it with Xcode clicking on runner and the tab "general":


<IP_ADDRESS>2 breaks home page news feed and show all feeds

New updated version <IP_ADDRESS>2 breaks out news feed design of GitHub home page. News feed starts to show all unwanted feed instead of hiding it
. It was properly working on older versions of extension <IP_ADDRESS>9 checked by installing older version
Specs:
Browser:- Firefox 66.0.5
Extension version:- <IP_ADDRESS>2
Expected news feed (older version news feed)

Actual news feed(current Version news feed)

Yeah for some reason there was a new version pushed with an old tag. I released a new version now


Outreachy

Our recommendation is to have the Enarx project (and the Confidential Computing Consortium) as part of Outreachy program from Software Freedom Conservancy, a diversity initiative that provides paid, remote internships. Past Outreachy interns include: 92% women, 4% transgender, genderqueer, or non-binary people, 64% people of color, and 12% people from a historically disadvantaged caste or tribe.
Outreachy internships provide a stipend of $6,000 USD for full-time commitment that lasts 3 months (running from Dec. 6, 2021 to March 4, 2022).
Ideally, this initiative should be run by the Confidential Computing Consortium, and each project would be responsible for developing their own activities within this program. By promoting this initiative as a Consortium, the Enarx community can grow much faster than if promoting on its own.
Members of the Confidential Computing Consortium will be invited to mentor these interns. Interns can choose to work on any open source project that is part of the Confidential Computing Consortium. As of now, these projects are Enarx, Open Enclave SDK, Keystone, Veracruz, Graphene, Occlum, and Trusted Compute Framework.
We would have to get approval to move forward as a Consortium by September 10, 2021, the deadline to apply to the Outreachy program. Mentors are welcome to submit internship projects by September 17, 2021. If we don’t get an approval from the Consortium, Enarx can decide to run this as part of the Outreachy program on its own.
Prior to the start of the internship, the projects would have to develop one or more proposals of interesting activities that the interns should be able to complete in 3 months.
https://www.outreachy.org/

Ashley has sent the CCC community application to the Outreachy program:
https://www.outreachy.org/communities/cfp/confidential-computing-consortium/
An Enarx project proposal has also been sent to Outreachy. We'll be asking interns to create one or more demos on top of Enarx and build tutorials. Something very simple that will not require them understanding the actual internals of Enarx, and something they can complete in 3 months.

The following CCC projects are participating in the Outreachy program: Enarx, Gramine, and Occlum.

The Outreachy internship starts today. Ajay, Jennifer, and Shraddha are joining us:
https://blog.enarx.dev/welcome-outreachy-interns/

Hi, my Outreachy 2022 intial application is approved. I want to contribute to Enarx. From where should I start?


No information on which test is failing

In the first cats exercice on Semigroup, there are four slots to fill.
However if a single slot is wrong, then all answers are underlined in red. It's difficult for a beginner to figure out which answer was wrong, especially because each example is testing a corner case (combining list, combining option with None).
I had to look up the answer in the repo
https://github.com/scala-exercises/exercises-cats/blob/master/src/test/scala/catslib/SemigroupSpec.scala
I would suggest to underline only the failing tests, or split the test into 4.

More than 4 years later, the same problem still exists.


Build fails when passing @autoclosure () -> Comment? = nil to #expect

Description
The build fails when passing @autoclosure () -> Comment? to the #expect macro. Although the macro allows to pass it: https://github.com/apple/swift-testing/blob/3f73ced40e763ec193a4180726578ab430218abe/Sources/Testing/Expectations/Expectation%2BMacro.swift#L25
(Other macros are affected as well.)
Expected behavior
This builds successfully:
func testFunctionWithComment(
    _ comment: @autoclosure () -> Comment?
) {
    #expect(true, comment())
}

Actual behavior
Building this returns an error:
Cannot convert value of type 'Comment?' to expected element type 'Array<Comment>.ArrayLiteralElement' (aka 'Comment')

Steps to reproduce
Just try to build this:
import Testing

func testFunctionWithComment(
    _ comment: @autoclosure () -> Comment? = nil
) {
    #expect(true, comment())
}

swift-testing version/commit hash
3f73ced40e763ec193a4180726578ab430218abe
Swift & OS version (output of swift --version ; uname -a)
swift-driver version: 1.109.2 Apple Swift version 6.0 (swiftlang-<IP_ADDRESS>.300 clang-16<IP_ADDRESS>)
Target: arm64-apple-macosx14.0
Darwin hannes-macbook-pro.local 23.5.0 Darwin Kernel Version 23.5.0: Wed May  1 20:14:38 PDT 2024; root:xnu-10063.121.3~5/RELEASE_ARM64_T6020 arm64

The solution is to update the API here:
https://github.com/apple/swift-testing/blob/3f73ced40e763ec193a4180726578ab430218abe/Sources/Testing/Expectations/ExpectationChecking%2BMacro.swift#L67
to comments: @autoclosure () -> [Comment?],
and update this:
https://github.com/apple/swift-testing/blob/3f73ced40e763ec193a4180726578ab430218abe/Sources/Testing/Expectations/ExpectationChecking%2BMacro.swift#L113
to:
Issue.record(.expectationFailed(expectation), comments: comments().compactMap({ $0 }), backtrace: backtrace, sourceLocation: sourceLocation)

as far as I understand this library
(All other functions using __checkValue() should be updated as well.)


Remove AlterTable

Resolves: #126

Codecov Report

Merging #129 (b1525e0) into main (93e5d71) will decrease coverage by 0.15%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##             main     #129      +/-   ##
==========================================
- Coverage   81.59%   81.43%   -0.16%
==========================================
  Files         131      132       +1
  Lines        4167     4175       +8
==========================================
  Hits         3400     3400
- Misses        767      775       +8

Impacted Files
Coverage Δ

src/data/schema.rs
0.00% <0.00%> (ø)

src/store/store_mut.rs
0.00% <0.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 93e5d71...b1525e0. Read the comment docs.


[Docs]: Create a dashboard YAML reference page

Type
New content idea
What do you want to report?
Create a dashboard YAML reference page
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Review link: https://storage.googleapis.com/sem-docs/main/index.html#/docs/reference/dashboard-yaml


TypeError: Cannot read property 'children' of undefined

HMR is not working when i changed the code inside reducers.ts.
I am getting following error
"app.js:462 Uncaught TypeError: Cannot read property 'children' of undefined"

changing from 'blue' to 'yellow' in colors array which is in counter.tsx is is reflecting properly through HMR.
I am using google chrome browser (OSX)

I'm not sure I actually got HMR for the reducers working 😓. I'll have to take a look


use custom env variable for moffragmentor logger

delegating everything to loguru might not be the best if some users want to only selectively silence moffragmentor logs (and not all that loguru produces, perhaps in other dependencies).

actually, this has been resolved in the last release