[BUG] RWX PV not attaching to every node

Describe the bug
I'd like to use RWX volumes in my guest cluster.
The Longhorn PV, NetworkFilesystem object and the Longhorn share-manager are created and operational.
I have 3 nodes in my guest cluster but these RWX attachments can only be mounted on one node at a time.
k --kubeconfig dfaltum-hv-ds.yaml get po -o wide
NAME                       READY   STATUS              RESTARTS   AGE     IP             NODE                              NOMINATED NODE   READINESS GATES
busybox-79c6b4f9d9-7p9zv   0/1     ContainerCreating   0          2m52s   <none>         dfaltum-hv-ds-pool1-fczkn-5lgh6   <none>           <none>
busybox-79c6b4f9d9-nwrd6   1/1     Running             0          2m52s   <IP_ADDRESS>   dfaltum-hv-ds-pool1-fczkn-8p2bc   <none>           <none>
busybox-79c6b4f9d9-vjqgs   0/1     ContainerCreating   0          4m49s   <none>         dfaltum-hv-ds-pool1-fczkn-9b82h   <none>           <none>

The CSI driver sets all of my volumeattachments to attached state. But these aren't attached anywhere.
k --kubeconfig dfaltum-hv-ds.yaml get volumeattachments.storage.k8s.io  | grep pvc-bab295d3-28ba-4c26-ac96-23d9871bed53
csi-65995ba2ddaa92c5d130970181be8a9b0aa8ca57c385af68459246da5f2e4ce2   driver.harvesterhci.io   pvc-bab295d3-28ba-4c26-ac96-23d9871bed53   dfaltum-hv-ds-pool1-fczkn-5lgh6   true       3m35s
csi-688c88b16bec8a4def1e2dd0da7176dd0c5ef6294dddb456fee1d4d5b0ea5981   driver.harvesterhci.io   pvc-bab295d3-28ba-4c26-ac96-23d9871bed53   dfaltum-hv-ds-pool1-fczkn-9b82h   true       5m25s
csi-be2eccf4583657be7075a9a0b9140797824e9be712de532230ecf7afce8b9cb2   driver.harvesterhci.io   pvc-bab295d3-28ba-4c26-ac96-23d9871bed53   dfaltum-hv-ds-pool1-fczkn-8p2bc   true       3m35s

k --kubeconfig dfaltum-hv-ds.yaml get volumeattachments.storage.k8s.io  csi-65995ba2ddaa92c5d130970181be8a9b0aa8ca57c385af68459246da5f2e4ce2 -o yaml
apiVersion: storage.k8s.io/v1
kind: VolumeAttachment
metadata:
  annotations:
    csi.alpha.kubernetes.io/node-id: dfaltum-hv-ds-pool1-fczkn-5lgh6
  creationTimestamp: "2024-12-11T12:20:27Z"
  finalizers:
  - external-attacher/driver-harvesterhci-io
  name: csi-65995ba2ddaa92c5d130970181be8a9b0aa8ca57c385af68459246da5f2e4ce2
  resourceVersion: "42328"
  uid: b75cb5b3-a2f4-44ce-a599-78d5f5b61d5a
spec:
  attacher: driver.harvesterhci.io
  nodeName: dfaltum-hv-ds-pool1-fczkn-5lgh6
  source:
    persistentVolumeName: pvc-bab295d3-28ba-4c26-ac96-23d9871bed53
status:
  attached: true

I can't see any problem in the csi driver logs, even with verbosity level 10:
I1211 12:20:27.359852       1 round_trippers.go:435] curl -k -v -XPATCH  -H "Content-Type: application/merge-patch+json" -H "Authorization: Bearer <masked>" -H "Accept: application/json, */*" -H "User-Agent: csi-attacher/v0.0.0 (linux/amd64) kubernetes/$Format" 'https://<IP_ADDRESS>:443/apis/storage.k8s.io/v1/volumeattachments/csi-be2eccf4583657be7075a9a0b9140797824e9be712de532230ecf7afce8b9cb2'
I1211 12:20:27.365114       1 controller.go:208] Started VA processing "csi-65995ba2ddaa92c5d130970181be8a9b0aa8ca57c385af68459246da5f2e4ce2"
I1211 12:20:27.365653       1 csi_handler.go:218] CSIHandler: processing VA "csi-65995ba2ddaa92c5d130970181be8a9b0aa8ca57c385af68459246da5f2e4ce2"
I1211 12:20:27.365794       1 csi_handler.go:245] Attaching "csi-65995ba2ddaa92c5d130970181be8a9b0aa8ca57c385af68459246da5f2e4ce2"
I1211 12:20:27.365832       1 csi_handler.go:424] Starting attach operation for "csi-65995ba2ddaa92c5d130970181be8a9b0aa8ca57c385af68459246da5f2e4ce2"
I1211 12:20:27.365925       1 csi_handler.go:338] PV finalizer is already set on "pvc-bab295d3-28ba-4c26-ac96-23d9871bed53"
I1211 12:20:27.365940       1 csi_handler.go:742] Found NodeID dfaltum-hv-ds-pool1-fczkn-5lgh6 in CSINode dfaltum-hv-ds-pool1-fczkn-5lgh6
I1211 12:20:27.365997       1 csi_handler.go:306] VA finalizer added to "csi-65995ba2ddaa92c5d130970181be8a9b0aa8ca57c385af68459246da5f2e4ce2"
I1211 12:20:27.366006       1 csi_handler.go:320] NodeID annotation added to "csi-65995ba2ddaa92c5d130970181be8a9b0aa8ca57c385af68459246da5f2e4ce2"
I1211 12:20:27.366177       1 request.go:1123] Request Body: {"metadata":{"annotations":{"csi.alpha.kubernetes.io/node-id":"dfaltum-hv-ds-pool1-fczkn-5lgh6"},"finalizers":["external-attacher/driver-harvesterhci-io"]}}

On the Harvester side these are my objects connected to that PV:
kubectl  -n harvester-system  get networkfilesystems.harvesterhci.io pvc-478a237e-895e-434f-ab64-db5b03f30337 -o yaml
apiVersion: harvesterhci.io/v1beta1
kind: NetworkFilesystem
metadata:
  creationTimestamp: "2024-12-11T12:18:34Z"
  generation: 2
  name: pvc-478a237e-895e-434f-ab64-db5b03f30337
  namespace: harvester-system
  resourceVersion: "222722622"
  uid: d4e59d94-2232-4c9d-a5fb-ca7434c05f3e
spec:
  desiredState: Enabled
  networkFSName: pvc-478a237e-895e-434f-ab64-db5b03f30337
  provisioner: Longhorn
status:
  conditions:
  - lastTransitionTime: "2024-12-11T12:18:53Z"
    message: Endpoint address is initialized with <IP_ADDRESS>
    reason: Endpoint is changed
    status: "True"
    type: EndpointChanged
  - lastTransitionTime: "2024-12-11T12:19:28Z"
    message: Endpoint contains the corresponding address
    reason: Endpoint is ready
    status: "True"
    type: Ready
  endpoint: <IP_ADDRESS>
  mountOpts: vers=4.2,noresvport,softerr,timeo=600,retrans=5
  state: Enabled
  status: Ready
  type: NFS

kubectl  -n longhorn-system  get lhsm  pvc-478a237e-895e-434f-ab64-db5b03f30337  -o yaml
apiVersion: longhorn.io/v1beta2
kind: ShareManager
metadata:
  creationTimestamp: "2024-12-11T12:18:30Z"
  finalizers:
  - longhorn.io
  generation: 1
  labels:
    longhorn.io/component: share-manager
    longhorn.io/managed-by: longhorn-manager
    longhorn.io/share-manager: pvc-478a237e-895e-434f-ab64-db5b03f30337
    longhorn.io/share-manager-image: smi-75d19208
  name: pvc-478a237e-895e-434f-ab64-db5b03f30337
  namespace: longhorn-system
  ownerReferences:
  - apiVersion: longhorn.io/v1beta2
    kind: Volume
    name: pvc-478a237e-895e-434f-ab64-db5b03f30337
    uid: a87e6b28-2fd8-4ce2-b668-fb4674c008a9
  resourceVersion: "222722252"
  uid: dc574a0e-d792-43a0-988e-b6cd0604fc3a
spec:
  image: longhornio/longhorn-share-manager:v1.7.2
status:
  endpoint: nfs://<IP_ADDRESS>/pvc-478a237e-895e-434f-ab64-db5b03f30337
  ownerID: harvester-qemu-2
  state: running

To Reproduce
Steps to reproduce the behavior:

Create a new cluster from Rancher with "Harvester" cloud provider
Follow this guide: https://docs.harvesterhci.io/v1.4/rancher/csi-driver/#rwx-volumes-support
Try to create a deployment like this: https://docs.harvesterhci.io/v1.4/rancher/csi-driver/#usage

Expected behavior
Pods can run on any node with RWX mount.
Environment

Harvester ISO version: 1.4.0
Underlying Infrastructure (e.g. Baremetal with Dell PowerEdge R630): KVM
Guest cluster version: v1.31.2+rke2r1
harvester-csi-driver: harvester-csi-driver:0.1.2000
harvester-cloud-provider: harvester-cloud-provider:0.2.600

These are my storageclasses:
Guest:
allowVolumeExpansion: false
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: rwx
parameters:
  hostStorageClass: longhorn-rwx
provisioner: driver.harvesterhci.io
reclaimPolicy: Delete
volumeBindingMode: Immediate

Host:
allowVolumeExpansion: true
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: longhorn-rwx
parameters:
  fromBackup: ""
  fsType: ext4
  nfsOptions: vers=4.2,noresvport,softerr,timeo=600,retrans=5
  numberOfReplicas: "1"
  staleReplicaTimeout: "2880"
provisioner: driver.longhorn.io
reclaimPolicy: Delete
volumeBindingMode: Immediate

I've sent a supportbundle by e-mail.

Hi @dfaltum,
Could you collect the harvester csi driver log on each node?
Also, did you install the NFS client package on each guest VM node?

Hi @dfaltum
What's the Harvester CSI driver version in your environment?

Hi there,
Yes, the nfs-client package is installed on all of my (openSUSE 15.6) nodes.
I'm using the harvester-csi-driver:0.1.2000 helm chart version.
If I increase the replica count, the new pods can run, but somehow only on one specific node...
NAME                       READY   STATUS              RESTARTS   AGE     IP             NODE                              NOMINATED NODE   READINESS GATES
busybox-79c6b4f9d9-47ng4   1/1     Running             0          7s      <IP_ADDRESS>   dfaltum-hv-ds-pool1-fczkn-8p2bc   <none>           <none>
busybox-79c6b4f9d9-6ml9s   0/1     ContainerCreating   0          7s      <none>         dfaltum-hv-ds-pool1-fczkn-5lgh6   <none>           <none>
busybox-79c6b4f9d9-7p9zv   0/1     ContainerCreating   0          4d20h   <none>         dfaltum-hv-ds-pool1-fczkn-5lgh6   <none>           <none>
busybox-79c6b4f9d9-8btfm   0/1     ContainerCreating   0          7s      <none>         dfaltum-hv-ds-pool1-fczkn-5lgh6   <none>           <none>
busybox-79c6b4f9d9-8z9js   0/1     ContainerCreating   0          7s      <none>         dfaltum-hv-ds-pool1-fczkn-9b82h   <none>           <none>
busybox-79c6b4f9d9-9jrqg   0/1     ContainerCreating   0          7s      <none>         dfaltum-hv-ds-pool1-fczkn-9b82h   <none>           <none>
busybox-79c6b4f9d9-nwrd6   1/1     Running             0          4d20h   <IP_ADDRESS>   dfaltum-hv-ds-pool1-fczkn-8p2bc   <none>           <none>
busybox-79c6b4f9d9-pcjqh   1/1     Running             0          7s      <IP_ADDRESS>   dfaltum-hv-ds-pool1-fczkn-8p2bc   <none>           <none>
busybox-79c6b4f9d9-vjqgs   0/1     ContainerCreating   0          4d20h   <none>         dfaltum-hv-ds-pool1-fczkn-9b82h   <none>           <none>
busybox-79c6b4f9d9-xsntb   0/1     ContainerCreating   0          7s      <none>         dfaltum-hv-ds-pool1-fczkn-9b82h   <none>           <none>

I see a lot of error in my harvester-csi-driver's log:
time="2024-12-16T09:02:26Z" level=error msg="GRPC error: rpc error: code = Internal desc = Could not mount <IP_ADDRESS>:/pvc-478a237e-895e-434f-ab64-db5b03f30337 for global path: timeout after 3m0s: nsenter [--mount=/proc/5466/ns/mnt --net=/proc/5466/ns/net --ipc=/proc/5466/ns/ipc mount -t nfs -o vers=4.2,noresvport,softerr,timeo=600,retrans=5 <IP_ADDRESS>:/pvc-478a237e-895e-434f-ab64-db5b03f30337 /var/lib/kubelet/plugins/kubernetes.io/csi/driver.harvesterhci.io/2ecba54217a6f377e5d8c86271ecf624b357a6b647646e15324c3650d289fad8/globalmount]: command timeout"

I've sent an RKE2 supportbundle from the guest cluster, which includes the csi logs.

Could you try the following command on the VM dfaltum-hv-ds-pool1-fczkn-9b82h or dfaltum-hv-ds-pool1-fczkn-5lgh6?
$ mount -t nfs vers=4.2,noresvport,softerr,timeo=600,retrans=5 <IP_ADDRESS>:/pvc-478a237e-895e-434f-ab64-db5b03f30337 <tmp dir> -v

I thought that might be something blocked, maybe a firewall or something.
Thanks

Yes, I've tried that.
dfaltum-hv-ds-pool1-fczkn-9b82h:~ # mount -vvv -t nfs -o vers=4.2,noresvport,softerr,timeo=600,retrans=5 <IP_ADDRESS>:/pvc-478a237e-895e-434f-ab64-db5b03f30337 /srv
mount.nfs: timeout set for Mon Dec 16 15:50:11 2024
mount.nfs: trying text-based options 'vers=4.2,noresvport,softerr,timeo=600,retrans=5,addr=<IP_ADDRESS>,clientaddr=<IP_ADDRESS>'
mount.nfs: mount(2): Connection timed out
mount.nfs: Connection timed out for <IP_ADDRESS>:/pvc-478a237e-895e-434f-ab64-db5b03f30337 on /srv

I can't reach this address from the VM, I don't have a configured firewall:
dfaltum-hv-ds-pool1-fczkn-9b82h:~ # nmap <IP_ADDRESS>
Starting Nmap 7.94 ( https://nmap.org ) at 2024-12-16 15:52 CET
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 3.10 seconds

@dfaltum Looking at the support bundle of node dfaltum-hv-ds-pool1-fczkn-5lgh6, it doesn't look like the tcp connection to the nfs endpoint was ever established at the node level. I'd expect there is an ESTAB reply to the earlier SYN-SENT message:
tcp   SYN-SENT  0      1       <IP_ADDRESS>:38860   <IP_ADDRESS>:2049

Same issue when targeting the <IP_ADDRESS> endpoint from the same node. These don't look like in-cluster CIDRs. Any idea what's going on?

Yes, I've tried that.
dfaltum-hv-ds-pool1-fczkn-9b82h:~ # mount -vvv -t nfs -o vers=4.2,noresvport,softerr,timeo=600,retrans=5 <IP_ADDRESS>:/pvc-478a237e-895e-434f-ab64-db5b03f30337 /srv
mount.nfs: timeout set for Mon Dec 16 15:50:11 2024
mount.nfs: trying text-based options 'vers=4.2,noresvport,softerr,timeo=600,retrans=5,addr=<IP_ADDRESS>,clientaddr=<IP_ADDRESS>'
mount.nfs: mount(2): Connection timed out
mount.nfs: Connection timed out for <IP_ADDRESS>:/pvc-478a237e-895e-434f-ab64-db5b03f30337 on /srv

I can't reach this address from the VM, I don't have a configured firewall:
dfaltum-hv-ds-pool1-fczkn-9b82h:~ # nmap <IP_ADDRESS>
Starting Nmap 7.94 ( https://nmap.org ) at 2024-12-16 15:52 CET
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 3.10 seconds

Can you try nmap command with -Pn again?
Here is my result:
// without -Pn
root@rke2-guest-01-pool1-htg5w-rsxt4:~# nmap <IP_ADDRESS>
Starting Nmap 7.80 ( https://nmap.org ) at 2024-12-17 09:15 UTC
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 3.10 seconds

// with -Pn
root@rke2-guest-01-pool1-htg5w-rsxt4:~# nmap -Pn <IP_ADDRESS>
Starting Nmap 7.80 ( https://nmap.org ) at 2024-12-17 09:16 UTC
Nmap scan report for <IP_ADDRESS>
Host is up (0.0029s latency).
Not shown: 999 filtered ports
PORT     STATE SERVICE
2049/tcp open  nfs

Nmap done: 1 IP address (1 host up) scanned in 29.98 seconds

No, I can't reach that address. Same output from every node (the lhsm svc IP has changed since then):
dfaltum-hv-ds-pool1-fczkn-9b82h:~ # nmap -Pn <IP_ADDRESS>
Starting Nmap 7.94 ( https://nmap.org ) at 2024-12-17 11:07 CET
Nmap scan report for <IP_ADDRESS>
Host is up.
All 1000 scanned ports on <IP_ADDRESS> are in ignored states.
Not shown: 1000 filtered tcp ports (no-response)

Nmap done: 1 IP address (1 host up) scanned in 201.34 seconds
dfaltum-hv-ds-pool1-fczkn-9b82h:~ # nc -v -z <IP_ADDRESS> 2049
nc: connect to <IP_ADDRESS> port 2049 (tcp) failed: Connection timed out

I think the problem is that I do not have a route for this Harvester CIDR:
harvester-qemu-1:~ # ps aux | grep cluster-cidr
root      2686  0.0  0.1 1287700 60720 ?       Ssl  Dec09   8:19 kube-proxy --cluster-cidr=<IP_ADDRESS>/16 --conntrack-max-per-core=0 --conntrack-tcp-timeout-close-wait=0s --conntrack-tcp-timeout-established=0s --healthz-bind-address=<IP_ADDRESS> --hostname-override=harvester-qemu-1 --kubeconfig=/var/lib/rancher/rke2/agent/kubeproxy.kubeconfig --proxy-mode=iptables

So the request for <IP_ADDRESS> is sent to my default gw, which doesn't know anything about the Harvester CIDR.
dfaltum-hv-ds-pool1-fczkn-8p2bc:~ # ip r
default via <IP_ADDRESS> dev eth0 proto dhcp
<IP_ADDRESS>/26 via <IP_ADDRESS> dev vxlan.calico onlink
blackhole <IP_ADDRESS>/26 proto 80
<IP_ADDRESS> dev cali11cc95f816f scope link
<IP_ADDRESS> dev cali84fa78c4847 scope link
<IP_ADDRESS> dev cali6cb8c884ad6 scope link
<IP_ADDRESS> dev cali169050e4c52 scope link
<IP_ADDRESS>/26 via <IP_ADDRESS> dev vxlan.calico onlink
<IP_ADDRESS>/24 via <IP_ADDRESS> dev eth0 proto dhcp
<IP_ADDRESS>/16 dev eth0 proto kernel scope link src <IP_ADDRESS>

Hi @dfaltum,
Could you help get the following command result for all your harvester nodes?
$ sysctl net.bridge.bridge-nf-call-iptables

Hi @Vicente-Cheng,
This is enabled everywhere:
sysctl net.bridge.bridge-nf-call-iptables
net.bridge.bridge-nf-call-iptables = 1

BTW can you reproduce my problem? I did with recreating my guest cluster.

Hi @dfaltum
I guess you use mgmt for guest cluster RWX volume? Can you try to use it through Storage Network?

BTW can you reproduce my problem? I did with recreating my guest cluster.

Hi @dfaltum
Currently, I cannot reproduce your issue with
net.bridge.bridge-nf-call-iptables = 1

But we have some internal discussions, I will work on the document update. It looks like we need to update some docs for this practice.
So far, you still cannot provision to everyone, but can it work with one node?

I've tested the RWX settings. Unfortunately I can still reproduce the problem. Here's what I've done.

My Harvester cluster runs on a KVM host, so I need to define a vswitch for the Harvester VMs: (source)

cat virsh-network.xml
<network>
  <name>ovs-network</name>
  <forward mode='bridge'/>
  <bridge name='ovsbr0'/>
  <virtualport type='openvswitch'/>
  <portgroup name='vlan100'>
    <vlan>
      <tag id='100'/>
    </vlan>
  </portgroup>
</network>

virsh net-define  virsh-network.xml
virsh net-start ovs-network
virsh edit harvester-qemu-1
# ADD
    <interface type='network'>
      <source network='ovs-network'/>
      <model type='virtio'/>
    </interface>

Restart the Harvester VMs and configure the new interface with an IP for testing. The connection works as designed.
Create ClusterNetwork and corresponding VlanConfig object

apiVersion: network.harvesterhci.io/v1beta1
kind: ClusterNetwork
metadata:
  name: storage

apiVersion: network.harvesterhci.io/v1beta1
kind: VlanConfig
metadata:
  name: vlan-100
spec:
  clusterNetwork: storage
  uplink:
    bondOptions:
      miimon: -1
      mode: active-backup
    linkAttributes:
      txQLen: -1
    nics:
      - enp7s0

Set up storage network for Harvester (source)

apiVersion: harvesterhci.io/v1beta1
kind: Setting
metadata:
  name: storage-network
status:
  conditions:
  - lastUpdateTime: "2024-12-30T13:00:04Z"
    reason: Completed
    status: "True"
    type: configured
value: '{"vlan":100,"clusterNetwork":"storage","range":"<IP_ADDRESS>/24"}'

Set up storage network for RWX volumes (source)
Verify Longhorn components after pods restarting (source). Everything works well.
Starting guest cluster

I see the same error. However, the cluster is trying to reach the share manager with it's correct (storage-network) address:
NAME                      READY   STATUS              RESTARTS   AGE   IP       NODE                              NOMINATED NODE   READINESS GATES
busybox-bb55c898d-kxkdz   0/1     ContainerCreating   0          14m   <none>   dfaltum-hv-ds-pool1-fczkn-5lgh6   <none>           <none>
busybox-bb55c898d-n7cjq   0/1     ContainerCreating   0          14m   <none>   dfaltum-hv-ds-pool1-fczkn-8p2bc   <none>           <none>
busybox-bb55c898d-prsz8   0/1     ContainerCreating   0          14m   <none>   dfaltum-hv-ds-pool1-fczkn-9b82h   <none>           <none>

time="2024-12-30T13:36:33Z" level=error msg="GRPC error: rpc error: code = Internal desc = Could not mount <IP_ADDRESS>:/pvc-5eccbe57-62fb-4566-9886-c0cea8acf74d for global path: timeout after 3m0s: nsenter [--mount=/proc/3110/ns/mnt --net=/proc/3110/ns/net --ipc=/proc/3110/ns/ipc mount -t nfs -o vers=4.2,noresvport,softerr,timeo=600,retrans=5 <IP_ADDRESS>:/pvc-5eccbe57-62fb-4566-9886-c0cea8acf74d /var/lib/kubelet/plugins/kubernetes.io/csi/driver.harvesterhci.io/98e4c5a730484436cbeff8510cba77b69c4b281dfe5d500e8ce6ac9f0e0d34ff/globalmount]: command timeout"

dfaltum-hv-ds-pool1-fczkn-5lgh6:~ # ip r
default via <IP_ADDRESS> dev eth0 proto dhcp
blackhole <IP_ADDRESS>/26 proto 80
<IP_ADDRESS> dev cali5279b44352e scope link
<IP_ADDRESS> dev cali5881b007d79 scope link
<IP_ADDRESS> dev cali65584bda6e2 scope link
<IP_ADDRESS> dev calif865a60998b scope link
<IP_ADDRESS> dev califf537cf483e scope link
<IP_ADDRESS> dev calib6f3623e37c scope link
<IP_ADDRESS> dev calid2fbb7eacf8 scope link
<IP_ADDRESS> dev cali469bc51a2a8 scope link
<IP_ADDRESS> dev calied2502eebfa scope link
<IP_ADDRESS> dev cali833b0a6a044 scope link
<IP_ADDRESS> dev cali545e2a2def0 scope link
<IP_ADDRESS> dev cali14f95abeeaf scope link
<IP_ADDRESS> dev calie6b361d7766 scope link
<IP_ADDRESS>/26 via <IP_ADDRESS> dev vxlan.calico onlink
<IP_ADDRESS>/26 via <IP_ADDRESS> dev vxlan.calico onlink
<IP_ADDRESS>/24 via <IP_ADDRESS> dev eth0 proto dhcp
<IP_ADDRESS>/16 dev eth0 proto kernel scope link src <IP_ADDRESS>

How should the VM reach the storage network? It's not in the guide, but if I understand correctly, I should also create a NetworkAttachmentDefinition and attach a new interface to the VM. At the moment the VM VM does not have an interface that can reach the storage network.


feat(comp:image): add image and imageViewer components

fix #698
PR Checklist
Please check if your PR fulfills the following requirements:

[x] The commit message follows our guidelines
[ ] Tests for the changes have been added/updated or not needed
[ ] Docs and demo have been added/updated or not needed

PR Type
What kind of change does this PR introduce?

[ ] Bugfix
[x] Feature
[ ] Component style update
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[ ] Documentation content changes
[ ] Application (the showcase website) / infrastructure changes
[ ] Other... Please describe:

What is the current behavior?

What is the new behavior?
add image and imageViewer components
Other information

补充type.d.ts


InlineCompletion selectedSuggestInfo context enrichment

Problem statement
TLDR: Having the snippetText exposed allows for deeper understanding of where the users cursor would land, allowing for more precise (and conditioned) inline completions. (with no completions added before the cursor position).
Currently the InlineCompletion context provides a limited view over the selectedSuggestInfo context (provides only parsed text and range of replacement). This makes it hard for the inline completion providers to better understand where the users cursor will end after accepting the suggest completion in case its a snippet text.
E.g. suggest completion foo() and suggest completion foo($0) may show totally different behavior when retrieving & applying the current completion. In current case (when foo($0) is used) the foo() as a whole would be used as a prefix to code completion models without additional extension side guessing (or none of the text would be used as prefix potentionally completing also between the foo & ()), when instead the completion models might want to only complete from the cursor position, allowing to insert the arguments after foo( (e.g. bar, baz)).
Solution
With the current selectedSuggestInfo, pass in optional semanticText, which would be provided inside context to the provideInlineCompletions() so that downstream providers can have tighter control over the inline completion.
(The extension of the selectedSuggestInfo could be added to the current vscode.proposed.inlineCompletionsAdditions.d.ts)
Happy to add the change, if agreed on.

I understand the problem statement, but I don't understand the relevance of the problem.
Can you motivate why this problem should be fixed? What is the common use case that users would run into?
I don't like about the solution that it breaks abstraction. semanticText: string is not really a semantic data type.
So far, I tried to hide suggest implementation details from the inline completion. Augmenting snippets was more of an after-thought and not the primary use-case for completion-augmentation.

Hi! Sorry for the late response, this slipped my radar due to load of other priorities.
I think I should have started with saying, that we are modifying the augment function, to actually return always only the text before the the first snippet, because we found this to be too restrictive (dropping significant amount of completions). So as a leading point to this one, I would say it would be great to allow completions to augment, not only based on full prefix alignment, but also to check based on the snippet params, whether the completions are aligned.
But to answer your questions:

I don't like about the proposed solution that it breaks abstraction.

I agree that it kinda breaks the abstraction, but truth be told, both of these components are interconnected. And having just the pure parsed text of the semantic completion a bit misrepresents what actually flows from LSP.
The common use case very much depends on the completions that flow from the LSP server. If in most cases they contain only the parameter/function names, without additional context, the inline suggest wouldn't be impacted.

Can you motivate why this problem should be fixed? What is the common use case that users would run into?

But take for example a case when the LSP server returns foo($0). Potentionally this means that there is content to be inserted in space of the $0, but the core processing logic will return only foo().
The same would happen also in case when the server returns baz() (note that in this case the baz would not have any arguments, and would look like const baz = () => {}  unlike previous const foo = (arg1, arg2) => {} ).
So there are 2 very different completions, which may require different treatment, but won't get it. Neither the code completion provider would know whether it can insert any parameters inside the function so its not easily how much impact is lost, but as well currently in the core functionality also it wouldn't be possible to attach those parameters.
So by providing the snippets to the provider we can have

a better understanding of the completions provided
Increase the amount of (successful/accepted) completions
Increase the user happiness as they may get unblocked easier & more e.g. when typing out function parameters.

So you want to use ${i} in a snippet as signal for the AI to fill in the "placeholder"?

It sounds like it could work, but I'm not sure it should be solved like this. Instead, the AI should get this data from LSP server directly somehow.

We can either use that, or we can provide an array of split tokens, so e.g. for foo(${1}, ${2}), we could either provide the direct string, or ['foo(', ', ', ')'] which extensions/users can read as between these tokens anything can be inserted and the first token being the actual prefix.
I wouldn't want to delegate this data to the LSP server, as that:

introduces unneccessary potentional concurency issues
requires all AI extensions that vscode has to connect to the LSP (while some connect directly to local models, e.g. Tabby)
Complicates the whole interaction for the extensions & potentially increases latency, which could have this information made ready


When a new cluster is added select it as the active cluster

When I add a mention to a new cluster, I expect that cluster to become the active one.
On the demo when I add a new cluster with ctrl+space the previously active cluster remains active which is confusing and causes errors

Good advice we will check it out.


registerElement is deprecated in chome

Chrome does this warning when using asciinema-player:
asciinema-player.js:308 [Deprecation] document.registerElement is deprecated and will be removed in M73, around March 2019. Please use window.customElements.define instead. See https://www.chromestatus.com/features/4642138092470272 for more details.
registerAsciinemaPlayerElement @ asciinema-player.js:308
(anonymous) @ asciinema-player.js:1209
(anonymous) @ asciinema-player.js:1210
main.js:60 Uncaught TypeError: Cannot read property 'addEventListener' of null
    at main.js:60
(anonymous) @ main.js:60

March 2019 seems not too far away, I think this issue should be handled.

Thanks for bringing this up @RandomReaper ! 👌

I've checked it with Chrome Canary (81) and yes it's still working.

Excellent @mxschmitt, thanks for checking! 👌

This is no longer an issue in the latest version of the player (3.0) since it doesn't use registerElement anymore.


[GSSOC]: change color option is not working properly

change color feature is not working properly,

working fine, sorry my mistake


NEW: per-column missing values (INSDC)

Still a draft, will update with additional test and docs

fixes #616

Thanks for the review @thermokarst!

Re:

We should update the metadata tutorial to include some mention of this
We should confirm that the api docs in the dev docs still look okay with this
q2cli inspect-metadata should show this new directive
q2-metadata tabulate should show this new directive

Agree on all counts.

The new RST definition list seems to render fine in the dev-docs, as do the methods.

Thank you @ebolyen and @thermokarst; this looks great!
@ackermag and I were chatting about the options and values and we have two comments that might be good to consider:

I'm not sure if "blank" being the default would be clear, for whatever reason the first time I read it I thought that was for BLANK samples; what about just using "default"?
Note that "missing" is not a valid lower term "INSDC:missing" value.

Hey @antgonza (and @ackermag)!
I think we're going to leave blank as the name, since it describes how the data is missing: a blank cell. We're hoping future documentation makes that clearer.
Re: missing, according to the ENA Docs:

For any use cases, we discourage the usage of the top level term ‘missing’ and encourage to use a lower level term with a higher granularity to declare the reason for the absence of a true value.

Which suggests that missing is an allowed term, but the finest granularity is ideal. It makes sense that the top-level term is still valid, because there may be situations where the data is a compilation of other sources or historical data, where the fine-grained information about "why" a value is missing may simply not exist (for example, maybe someone recorded missing using a blank cell).

Also, since I have you, here's what I anticipate you will want to do on the Qiita end of things:
qiime2.Metadata.load('<whatever>.tsv', default_missing_scheme='INSDC:missing')

(and if you are creating metadata via the __init__ constructor, that same keyword is also available)
This will interpret all columns as the selected missing scheme, unless they have a column-annotation in the file (via a #q2:missing line, or they are overridden by a column_missing_schemes dictionary (which has highest precedence, but requires the column names to be known in advance).
Whatever the final scheme was, it will be maintained all the way through and including .save() so that round tripping and general manipulation is possible. column.get_missing() will produce the original terms (i.e. some string, or NaN), while column.to_series()/md.to_dataframe() will produce NaNs as before so that methods interpret these values correctly. There is also an encode_missing parameter on to_series/to_dataframe which may be useful for visualizing the metadata, but displaying the missing in a different shade may be worthwhile, so column.get_missing() is likely the best approach overall.
In any case, there should be plenty of options!

Updated my parent reply, had misunderstood the comment.
Not to bike-shed too much, but what are there any obviously clearer terms for:

INSDC top+lower level terms, collectively the "INSDC Missing Value Reporting Terms"

(I have looked for ontologies that maybe have bothered to name them, but surprisingly everyone just links to the webpage and calls it a day.)
Alternatively, would just documenting that INSDC:missing includes top and lower level terms fix any confusion?

blank cells

column_missing_schemes: Amazing! Thanks.
default: sounds good, thank you for considering.
missing: I think INSDC:missing is fine but the other 2 options are also good. Anyway, I think your first reply was on point to what I meant: that missing should not be allowed because I believe this new functionality shouldn't allow something that the INSDC discourages and there is a better value for the examples you mentioned: "not provided". However, agree to leave it as this, if you feel strongly about it.

I think there's a few good reasons to have missing:

It would be very confusing if a user did provide missing and then annotated the column as using INSDC terms, but then their value is interpreted as a literal string, turning a numeric column into a categorical one or otherwise adding a new level to a categorical column.

While not really stated, it seems reasonable for a researcher to assume that these terms are related to a sampling-event, rather than the receipt of data. In which case, a "blank cell" style missing which was received well after any sampling has been forgotten does not carry enough information. To write "not provided" is a kind of assumption that the data is explicitly not one of the other lower-level terms. Since we don't have any information, that isn't necessarily true, so "missing" would be appropriate (under the perspective that these terms are in relation to sampling).
If we took an alternative perspective, then "not provided" would also be accurate, although I would argue that it would no longer be a particularly informative term, since it may be the case that a "not provided" value is missing as a result of the other terms (so why not make this ambiguity clear with "missing"?).

There is some situation no-one has thought of yet, which is presumably why "missing" exists as a catch-all term.

Since QIIME 2 doesn't really care how you encode missing, I would prefer it be as generic as possible, and allow the researcher to make the judgement call.

I think using the higher level term "missing" is a short cut to avoid if
possible and I fear loss of granularity.
Use of "not provided" is helpful for historical data sets where it is not
possible to retrieve the data, or the user sees no need to provide it.  The
more specific "not collected" and "restricted access" are more helpful
because there is a reason they are not provided.
While I can see a use for missing I think it will promote misuse of the
more granular lower levels
On Wed, May 11, 2022 at 1:29 PM Evan Bolyen @.***>
wrote:

I think there's a few good reasons to have missing:

It would be very confusing if a user did provide missing and then
annotated the column as using INSDC terms, but then their value is
interpreted as a literal string, turning a numeric column into a
categorical one or otherwise adding a new level to a categorical column.
2.
While not really stated, it seems reasonable for a researcher to
assume that these terms are related to a sampling-event, rather than the
receipt of data. In which case, a "blank cell" style missing which was
received well after any sampling has been forgotten does not carry enough
information. To write "not provided" is a kind of assumption that the data
is explicitly not one of the other lower-level terms. Since we don't have
any information, that isn't necessarily true, so "missing" would be
appropriate (under the perspective that these terms are in relation to
sampling).
If we took an alternative perspective, then "not provided" would also
be accurate, although I would argue that it would no longer be a
particularly informative term, since it may be the case that a "not
provided" value is missing as a result of the other terms (so why not make
this ambiguity clear with "missing"?).
3.
There is some situation no-one has thought of yet, which is presumably
why "missing" exists as a catch-all term.
Since QIIME 2 doesn't really care how you encode missing, I would prefer
it be as generic as possible, and allow the researcher to make the
judgement call.
—
Reply to this email directly, view it on GitHub
https://github.com/qiime2/qiime2/pull/624#issuecomment-1124266369, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAPL3AC73QZCTMU74ZKXQYDVJQKDRANCNFSM5UAMVZTQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

--
Gail Ackermann
Knight Lab
UCSD
@.*** @.***>

I feel pretty strongly about including all valid INSDC terms. It's up to the researcher to annotate their data appropriately and I think the INSDC has given fair guidance on the matter.

Then I guess we should include all.  I just wanted to provide additional
context from my perspective
On Wed, May 11, 2022 at 4:52 PM Evan Bolyen @.***>
wrote:

I feel pretty strongly about including all valid INSDC terms. It's up to
the researcher to annotate their data appropriately and I think the INSDC
has given fair guidance on the matter.
—
Reply to this email directly, view it on GitHub
https://github.com/qiime2/qiime2/pull/624#issuecomment-1124391505, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAPL3ABMJG4T73J2XCOLTVLVJRB5TANCNFSM5UAMVZTQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

--
Gail Ackermann
Knight Lab
UCSD
@.*** @.***>

Of course, and much appreciated @ackermag!

I agree we have to defer to INSDC on this, they have a very extensive community feedback process.

On May 11, 2022, at 5:00 PM, Gail Ackermann @.***> wrote:
Then I guess we should include all. I just wanted to provide additional
context from my perspective
On Wed, May 11, 2022 at 4:52 PM Evan Bolyen @.***>
wrote:

I feel pretty strongly about including all valid INSDC terms. It's up to
the researcher to annotate their data appropriately and I think the INSDC
has given fair guidance on the matter.
—
Reply to this email directly, view it on GitHub
https://github.com/qiime2/qiime2/pull/624#issuecomment-1124391505 https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_qiime2_qiime2_pull_624-23issuecomment-2D1124391505-253E&d=DwQFaQ&c=-35OiAkTchMrZOngvJPOeA&r=vt0B9Qp_JCoeLoyZarnPr0Ufv0tST88BXyW26Kh9-pU&m=lNMEN85kOiEHNxJtbFIm8BHSZYLnWc2V4Lt9ijfiae3vWF7OkmepcKzHMctbxvDQ&s=MImy3Ny1DVj9P-e7_trVE6vnRj-YkgV5OkErI4gBwqk&e=, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAPL3ABMJG4T73J2XCOLTVLVJRB5TANCNFSM5UAMVZTQ https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_notifications_unsubscribe-2Dauth_AAPL3ABMJG4T73J2XCOLTVLVJRB5TANCNFSM5UAMVZTQ-253E&d=DwQFaQ&c=-35OiAkTchMrZOngvJPOeA&r=vt0B9Qp_JCoeLoyZarnPr0Ufv0tST88BXyW26Kh9-pU&m=lNMEN85kOiEHNxJtbFIm8BHSZYLnWc2V4Lt9ijfiae3vWF7OkmepcKzHMctbxvDQ&s=p7SYBd6sS-a38zdqlC7SxcT_YnIVqtvjA6ZwiLs-EYA&e=
.
You are receiving this because you were mentioned.Message ID:
@.***>

--
Gail Ackermann
Knight Lab
UCSD
@.*** @.***>
—
Reply to this email directly, view it on GitHub https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_qiime2_qiime2_pull_624-23issuecomment-2D1124394472&d=DwMFaQ&c=-35OiAkTchMrZOngvJPOeA&r=vt0B9Qp_JCoeLoyZarnPr0Ufv0tST88BXyW26Kh9-pU&m=lNMEN85kOiEHNxJtbFIm8BHSZYLnWc2V4Lt9ijfiae3vWF7OkmepcKzHMctbxvDQ&s=bradQHL8JVFsp4XcK1k-PWdf_dOsl5AYdAFyMzh9Efs&e=, or unsubscribe https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_notifications_unsubscribe-2Dauth_AAPL2KMGNGEUXDGPLQTVQFDVJRC2JANCNFSM5UAMVZTQ&d=DwMFaQ&c=-35OiAkTchMrZOngvJPOeA&r=vt0B9Qp_JCoeLoyZarnPr0Ufv0tST88BXyW26Kh9-pU&m=lNMEN85kOiEHNxJtbFIm8BHSZYLnWc2V4Lt9ijfiae3vWF7OkmepcKzHMctbxvDQ&s=ZYirWG-1YGuLRtGUKbvP11mboBS_8sfE6-vm0qwvN74&e=.
You are receiving this because you are subscribed to this thread.


Fix arrow lengths in visualization.

Based on docs here: http://wiki.ros.org/rviz/DisplayTypes/Marker#Arrow_.28ARROW.3D0.29

Trivial, self-LGTM


Configure DB connection in PhpStorm

Is this something you plan on doing? I've been trying to set up the PHPStorm database for a while now but I just can't get it to work!
These are the steps I've followed:
Add new database source
Select SSH/SSL Tab, Use SSH tunnel
Proxy host: <IP_ADDRESS>
Port: [as configured in config.yaml]
Proxy user: vagrant
Proxy password: vagrant
I then click Test Connection, and get told the specified user/password combination is rejected: [28000][1045] Access denied for user ''@'localhost' (using password: NO), so I put in root and no password, press ok, then get a Successfull test connection
I then click on the Schemas tab, and make sure that magento and magento_integration_tests are both selected
Go back to the General tab, click on Test Connection again (it works)
Press OK
The databases window now has @localhost listed, but the only thing under that is the word Schemas....
I would be expecting to see magento and magento_integration_tests.
Can you at least update the README with some specific instructions on how to set up PHPStorm to connect to the database?
Thanksk

Hi @luke-denton-aligent , Schemas.... was introduced in one of the latest versions of PhpStorm and was confusing to me at first too, just click on it and you will get the full list of available DBs. BTW, this topic is briefly covered by https://github.com/paliarush/magento2-vagrant-for-developers#connecting-to-mysql-db
Sorry for missing your message, posting answer just in case someone has similar question.


[web] Fix JS crash when FF blocks service workers.

When FF users enable the "Delete cookies and site data when Firefox is closed" browser option, it has the side effect of blocking service workers. See Bugzilla#1429714 (and several others).
When a Flutter app attempts to load in a browser configured like so, first the browser will log an error:

Failed to register/update a ServiceWorker for scope 'https://domain': Storage access is restricted in this context due to user settings or private browsing mode.

And then reject the register promise with a DOMException: The operation is insecure. that goes unhandled into our flutter.js code.
The unhandled DOMException interrupts the JS bootstrap code, and the application stops loading, resulting in a white screen.
This PR handles this issue by .catching the rejected Promise from the service worker registration, then falling back to inject a script tag.

Fixes https://github.com/flutter/flutter/issues/103972

Testing

Added an integration test to ensure that a Flutter Web app starts, even when the Service Workers are "blocked" (in the way that FF blocks them)
Manually tested here with the actual browser: https://dit-bootstrap-tests.web.app

Pre-launch Checklist

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[x] I signed the CLA.
[x] I listed at least one issue that this PR fixes in the description above.
[x] I updated/added relevant documentation (doc comments with ///).
[x] I added new tests to check the change I am making, or this PR is test-exempt.
[x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

Verified new test is running in CI:

https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket/8811241288664232129/+/u/run_test.dart_for_web_long_running_tests_shard_and_subshard_2_5/test_stdout

(search for runWebServiceWorkerTestWithBlockedServiceWorkers )


[SPARK-14599][ML] BaggedPoint should support sample weights.

What changes were proposed in this pull request?
This PR changes BaggedPoint to store the number of subsamples AND the sample weight of Datum. Specifically:

subsampleWeights: Array[Double] is changed to subsampleCounts: Array[Int]
A sampleWeight: Double field is added to the BaggedPoint constructor
A function to extract the sample weight from datum is added to convertToBaggedPointRDD. This will be helpful when we add weights to decision trees, so that we can extract the instance weight from the RDD[Instance].

How was this patch tested?
This PR does not introduce any new functional changes, so there are no tests added.

In a previous "TODO" it was proposed that we could incorporate sample weights by simply multiplying the subsample counts by the sample weight and storing them in an array. I chose not to do this because of the need to have both raw counts and weighted counts when adding weights to decision trees. If we simply store the weighted counts, we lose the information about the raw counts, which makes it impossible to track minInstancesPerNode for decision trees.

Test build #55748 has started for PR 12370 at commit a673658.

Test build #55748 has finished for PR 12370 at commit a673658.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/55748/
Test PASSed.

cc @jkbradley If you get a chance to review it would be much appreciated.

cc @MLnick could you take a look? This is blocking SPARK-9478 which I have a PR ready to submit for.

ping @jkbradley @MLnick
I created this PR and #12374 to make SPARK-9478 easier to review. Alternatively, I could submit them all as one PR. It would be nice to get sample weights for trees into Spark 2.0. Thoughts?
Also ping @holdenk

@sethah just to confirm, is SPARK-9478 about sample weights, or class weights? The title is for class weights but I think the actual idea and PR etc is for sample weights, yes?

@MLnick Yes, SPARK-9478 is for sample weighting.

Should be there a sanity check providing input RDD of instance objects and extractSampleWeight as callable that just returns the weight for each instance?


Add the missing Thermal Ores

Can you remove the unnecessary commits? Since they don't add anything


no props for data-full-width-responsive

Google Adsense now has automatic responsive ad unit size and there are no props for that yet.

You can help to send a pr.

okay


Support newly added kubelogin cli flag --oidc-use-access-token

Description
Busola currently does not support the newly added --oidc-use-access-token flag in the kubelogin utility. This flag is essential for enabling authentication using the access_token instead of the id_token. Implementing support for this flag in Busola would allow users to authenticate with XSUAA (SAP BTP) and leverage BTP roles provided in the access token's scope attribute for granting permissions.
Reasons

allows authorization of users based on roles in SAP BTP

Attachments

https://github.com/int128/kubelogin/pull/1084
Example of kubeconfig configuration using the new flag:

apiVersion: v1
kind: Config
clusters:
- cluster:
server: https://<your-kubernetes-api-server>
certificate-authority-data: <base64-encoded-ca-cert>
name: <your-cluster-name>
contexts:
- context:
cluster: <your-cluster-name>
user: <your-user>
name: <your-context-name>
current-context: <your-context-name>
users:
- name: <your-user>
user:
exec:
apiVersion: client.authentication.k8s.io/v1beta1
command: kubelogin
args:
- get-token
- --oidc-issuer-url=https://issuer.example.com
- --oidc-client-id=<your-client-id>
- --oidc-client-secret=<your-client-secret>
- --oidc-use-access-token

Busola evaluates the kubelogin arguments at the following location:
https://github.com/kyma-project/busola/blob/773233faf6e0a7a2139c8ce0cab45ce2a5f04fb0/src/components/Clusters/components/oidc-params.ts#L3-L48
To support the --oidc-use-access-token argument, you'll need to add it to the OIDC_PARAM_NAMES map. This update is necessary so that the login logic can determine whether to forward the id_token or the access_token. Three locations require changes for this update:
https://github.com/kyma-project/busola/blob/773233faf6e0a7a2139c8ce0cab45ce2a5f04fb0/src/state/authDataAtom.ts#L69
https://github.com/kyma-project/busola/blob/773233faf6e0a7a2139c8ce0cab45ce2a5f04fb0/src/state/authDataAtom.ts#L87
https://github.com/kyma-project/busola/blob/773233faf6e0a7a2139c8ce0cab45ce2a5f04fb0/src/state/authDataAtom.ts#L101


Cyclonedx SBOMs from Iron Bank Images fail to validate against Cyclonedx-cli

Summary
CycloneDX-formatted SBOMs fail to validate against the official cyclonedx-cli.
Steps to reproduce

Generate an SBOM locally with syft "$IMAGE_NAME" -o cyclonedx-json --file "$OUTPUT_FILE"
Attempt SBOM validation with cyclonedx validate --input-format json --input-version v1_4 --fail-on-errors --input-file "$OUTPUT_FILE"

Generating SBOMs for non-IB images appears to work fine.
What is the current bug behavior?
Validation fails. The exact point of failure changes with locally generated SBOMs, but generally look like this:
Validating JSON BOM...
Validation failed:
#
BOM is not valid.

What is the expected correct behavior?
Validating JSON BOM...
BOM validated successfully.

Possible fixes
It is possible to run older versions of Syft to generate a "valid" SBOM, but this may be due to newer versions adding better scanning and the new scans may be finding issues that weren't seen before in the images. The most recent version found to work for Syft is 0.72.0. The fact that the SBOMs are valid on the latest versions of Syft for non-IB images leads us to believe the issue is with the IB images, but I'm filing a ticket here to get people on both sides looking at it. I've also filed a ticket with Iron Bank.
Environment:

Output of syft version:

Application:        syft
Version:            0.76.1
JsonSchemaVersion:  7.1.1
BuildDate:          2023-04-05T18:13:51Z
GitCommit:<PHONE_NUMBER>e873f65fd5013f44b7d85168ced5f5
GitDescription:     v0.76.1
Platform:           linux/amd64
GoVersion:          go1.19.7
Compiler:           gc

OS (e.g: cat /etc/os-release or similar):
Tested against RHEL 7 and MacOS 13.3.1.

Here are a few for now, I'm still scanning some others:
registry1.dso.mil/ironbank/anchore/enterprise/enterprise:4.5.0:
Validating JSON BOM...
Validation failed: Expected value to match one of the values specified by the enum
#/properties/components/items/$ref/properties/licenses/items/$ref/properties/license/$ref/properties/id/$ref/enum
BOM is not valid.

registry1.dso.mil/ironbank/big-bang/argocd:v2.6.6:
Validating JSON BOM...
Validation failed: Expected value to match one of the values specified by the enum
#/properties/components/items/$ref/properties/licenses/items/$ref/properties/license/$ref/properties/id/$ref/enum
BOM is not valid.

I thought there were other errors as well for different images but I may be wrong. I'll post again when I finish them all.

It looks like this may be an issue with Iron Bank's images:

Hello!  Looks like we might have added some additional keys that are resulting in an unsuccessful validation.  Our team is one it, and we will comment here when we've made the appropriate fix.

Once they get back to me i'll re-scan P1's Big Bang images and see if everything is good again and let you know.

Thanks a million - I'll take a second when I have some cycles to try and add validation on our end so we can put some guardrails around the enum for license properties:
https://cyclonedx.org/docs/1.4/json/#components_items_licenses_items_license_id <-- The error seems to be pointing to this field.
Would you be able to tell me what the value is for the licenses in the SBOM that is not validating?

It looks like the missing license was TTWL:
      "bom-ref": "pkg:rpm/rhel/perl-Text-Tabs+Wrap@2013.0523-395.el8?arch=noarch&upstream=perl-Text-Tabs+Wrap-2013.0523-395.el8.src.rpm&distro=rhel-8.7&package-id=308bcee89c893428",
      "type": "library",
      "publisher": "Red Hat, Inc.",
      "name": "perl-Text-Tabs+Wrap",
      "version": "2013.0523-395.el8",
      "licenses": [
        {
          "license": {
            "id": "TTWL"
          }
        }

Let me know if you need anything else

Yea this is interesting since TTWL is in the 3.20 SPDX license list. Syft uses this list as the canonical "valid" list of all things we can include as licenses - it just so happens the cyclone-dx schema has an enum for this field that does not include this value. It's unclear where they are pulling this enum from as I can't find any documentation on which SPDX list it's sourcing from at the moment. We can include more guardrails here possibly, but it feels like an issue where cyclone-dx needs to communicate the source of the enum so we have an accurate backing to compare against.

The Iron Bank pipelines are currently using Syft v 0.68.1 to create SBOMs, and the cyclonedx SBOM is able to be successfully validated.
➜ Downloads/syft version
Application:        syft
Version:            0.68.1
JsonSchemaVersion:  6.2.0
BuildDate:          2023-01-25T17:46:33Z
GitCommit:          4c0aef09b8d7fb78200b04416f474b90b79370de
GitDescription:     v0.68.1
Platform:           darwin/amd64
GoVersion:          go1.18.10
Compiler:           gc

➜ Downloads/syft packages registry1.dso.mil/ironbank/opensource/argoproj/argocd:latest --file argocd.json --scope all-layers -o cyclonedx-json
 ✔ Loaded image
 ✔ Parsed image
 ✔ Cataloged packages      [1065 packages]

➜ cyclonedx validate --input-format json --input-version v1_4 --input-file argocd.json
Validating JSON BOM...
BOM validated successfully.

If I use the latest version of 0.79.0, the SBOM fails to validate
➜ syft version
Application:        syft
Version:            0.79.0
JsonSchemaVersion:  7.1.4
BuildDate:          2023-04-21T16:20:25Z
GitCommit:          b2b332e8b2b66af0905e98b54ebd713a922be1a8
GitDescription:     v0.79.0
Platform:           darwin/amd64
GoVersion:          go1.19.8
Compiler:           gc

➜ syft packages registry1.dso.mil/ironbank/opensource/argoproj/argocd:latest --file argocd.json --scope all-layers -o cyclonedx-json
 ✔ Loaded image
 ✔ Parsed image
 ✔ Cataloged packages      [1069 packages]

➜ cyclonedx validate --input-format json --input-version v1_4 --input-file argocd.json
Validating JSON BOM...
Validation failed: Expected value to match one of the values specified by the enum
#/properties/components/items/$ref/properties/licenses/items/$ref/properties/license/$ref/properties/id/$ref/enum
BOM is not valid.

Another thing that's curious is that 0.68.1 creates an SBOM that can be validated without needing to pass the --input-format or --input-version flags to cyclonedx, whereas the 0.79.0 SBOM cannot begin the validation without these flags.
0.68.1 SBOM
➜ cyclonedx validate --input-file argocd.json
BOM validated successfully.

0.79.0 SBOM
➜ cyclonedx validate --input-file argocd.json
Unable to validate against any JSON schemas.
BOM is not valid.

➜ cyclonedx validate --input-format json --input-file argocd.json
Unable to validate against any JSON schemas.
BOM is not valid.

➜ cyclonedx validate --input-format json --input-version v1_4 --input-file argocd.json
Validating JSON BOM...
Validation failed: Expected value to match one of the values specified by the enum
#/properties/components/items/$ref/properties/licenses/items/$ref/properties/license/$ref/properties/id/$ref/enum
BOM is not valid.


Gitlab project include does not seem to be working

Hello,
sorry if I created this issue as a bug as it may be more of a feature request.
I've read the documentation, mostly the quirks section and this commit
Minimal .gitlab-ci.yml illustrating the issue
---
include:
  - project: 'ansible_hosting/ansible_config'
    file: '/ci/gitlab-ci-templates/.gitlab-ci.yml'
    ref: master

In the variables I specified a gitlab token:
~/.gitlab-ci-local/variables.yml
---
global:
  ANSIBLE_HOSTING_DEV_RO_USER: ro_token
  ANSIBLE_HOSTING_DEV_RO_TOKEN: xxxx

I'm using the above .gitlab-ci.yml on several projects to avoid rewriting the core ci in every projects.
Expected behavior
This should fetch the /ci/gitlab-ci-templates/.gitlab-ci.yml of the project ansible_hosting/ansible_config
It seems that gitlab-ci-local find the correct URL (probably because my current project come from the same gitlab URL) but it cannot use the token and prompts for a password:
<EMAIL_ADDRESS>password:

Is it possible to use this feature with gitlab's token ?
I also tried this version:
Minimal .gitlab-ci.yml illustrating the issue
---
include:
  - remote: 'https://gitlab.xxx.com/api/v4/projects/xxxx/repository/files/ci%2Fgitlab-ci-templates%2F.gitlab-ci%2Eyml/raw'

It doesn't work either and this time I get this error:
Remote include could not be fetched https://gitlab.xxx.com/api/v4/projects/xxx/repository/files/ci%2Fgitlab-ci-templates%2F.gitlab-ci%2Eyml/raw AxiosError: Request failed with status code 404

If I try to download the file with curl and the above token, it works.
curl  --location --header "PRIVATE-TOKEN: xxx" https://gitlab.xxx.com/api/v4/projects/xxx/repository/files/ci%2Fgitlab-ci-templates%2F.gitlab-ci%2Eyml/raw

If I create a public snippet on my gitlab, the include remote will work but it's not really a suitable solution for me.
Is there any other way so I can grab my ci file remotely with gitlab-ci-local ?
Thanks.
Host information
Ubuntu
gitlab-ci-local 4.38.1
Containerd binary
Docker version 24.0.5, build ced0996l.
Thanks !

I wonder how Gitlab CI knows that the remote include, which is basicly just a curl request needs a gitlab private-token.
What if the url was not gitlab..com.
They must be doing some sort of matching to find that the URL contains subdomain.domain matching the gitlab instance.

Thanks for your fast answer, in my case I have a self hosted gitlab.
I guess it's checking the remote (git remote -v) and simply take the same domain to fetch.
That's a good question about the private-token :thinking:
Maybe since it's in the same "context" and going through a runner that's already "logged in" it's bypassing the auth.
I will try to reach a ci file from an unauthorized project.

OK that's weird.
So I created a project in a specific namespace with a private visibility.
In my other project on a different namespace, I defined the .gitlab-ci.yml to include the .gitlab-ci.yml from the first project.
And it works, the other project's ci got injected and started to run.

What...
Well, if your user has access to both project, I'm guessing the pipeline is generating a tmp token impersonating, so you need to include a file that your user don't have access to.

OK I checked and it's because my user has admin access, I would have expected that the permissions were about the projects and not the users when you run the pipeline.

Indeed the access (or not) to remote include/trigger depends exclusively on the person launching the pipeline 😉

We need to implement a similar token feature that requires users to put a CI_JOB_TOKEN in their gcl variables.
This token will then be used by include fetching if git remote "matches" include url.

It would be the best :)
Getting the base gitlab URL in this case and clone it would be the dream:
---
include:
  - project: 'ansible_hosting/ansible_config'
    file: '/ci/gitlab-ci-templates/.gitlab-ci.yml'
    ref: master


scanf C tutorial

Populate C file with a tutorial and challenge.

Sure @LuisFerTR , you're assigned now


Caught by surprise using field() without a type annotation

I know, I know you...recommend against subclassing...but I was doing it in the hopes of reducing boilerplate. And I was really caught off guard by what happened when I mixed type annotations (which I now see the docs say you shouldn't do).
Specifically, I couldn't figure out why my child classes were using parent class default attributes. It took me a while to track it down: when I thought I was redefining the default value for an attribute for a child class, it was being ignored since I also had a field()-defined attribute without a type annotation.

MRE code
#%%
from attrs import define, field
# %%
@define
class Parent:
    x: int = 0
    y: int = 0

@define
class ChildNoAnnotNoField(Parent):
    x: int = 1
    y = 1

@define
class ChildMixedAnnot(Parent):
    # this x Attribute definition is ignored because
    # there is a field without a type annotation
    x: int = 1
    y = field(default=1)

@define
class ChildAnnotField(Parent):
    x: int = 1
    y: int = field(default=1)

print(Parent())               # x=0, y=0
print(ChildNoAnnotNoField())  # x=1, y=0
print(ChildMixedAnnot())      # x=0, y=1
print(ChildAnnotField())      # x=1, y=1

What I suggest is potentially raising a warning for cases like this to spare users from headaches. I had even read most of the docs in some detail, if not super closely, and this threw me for a loop.
Honestly, it wasn't until running into this that I realized you needed type annotations to define an Attribute either. The only place I see is on the Overview page: "Simply assign attrs.field() to the attributes instead of annotating them with types" which could be easily missed. So I'd also suggest making it a little more obvious (maybe on the 'By example' page?) that attributes are defined either by type annotations or by field.

I've added two warnings; one as suggested to examples, the other to the types chapter. I hope that suffices, thank you for reporting!


The name 'Model' does not exist in the current context

I am using RazorEngine in a WPF application and have created a .cshtml file for my template. However I get a lot of errors in the VS2013 designer as shown in the issue title (see screenshot below). The project builds and runs OK but Is there a way to make the designer happy with my .cshtml file?

You can try one of the answers of http://stackoverflow.com/questions/26862336/how-to-make-intellisense-works-with-razorengine? Either one should work, just note that for the app.config solution you do not get intellisense for a custom base class (if you use one).
Another example (with a custom base class) is here: https://antaris.github.io/RazorEngine/IntellisenseAndResharper.html (note: the Model property is not required as it is already in the base class)

Thanks for those links. I didn't want to bloat the application by including the MVC assemblies so I went with the later solution. This is the class I created:
public class RazorEngineTemplate<T> : TemplateBase<T>
{
    public new T Model
    {
        get { return base.Model; }
        set { base.Model = value; }
    }
}

I had to add an overriding Model property because the cshtml designer couldn't find TemplateBase.Model for some reason and still showed the error

That should work. Do you use Resharper?
Because without Resharper @inherits TemplateBase<MyModel> is working for me.

I did try that first but for some reason the designer could not resolve the RazorEngine assembly, even though it is referenced in the project that the cshtml file resides in

You are right... after looking into this a bit more I found another solution in http://stackoverflow.com/questions/4953330/razor-based-view-doesnt-see-referenced-assemblies.
If you change the project settings to build into bin\ instead of bin\Debug and bin\Release it will work. I assume it would also work if you would copy all project references into the bin\ directory.
You don't need any custom base class in this case (it will work with TemplateBase<>). I try to add this to the docs.

I updated the docs in https://antaris.github.io/RazorEngine/IntellisenseAndResharper.html. Please tell me if it doesn't work as described there (and my last post).

Interesting, I wonder if its because a normal MVC application wouid output to bin\ rather than bin\Debug etc? Maybe the VS designer is always expecting to find the assemblies there?

Yes that's what I'm thinking as well. I have no idea if this is hard-coded or can be changed somewhere (I didn't found any hint for that though).


Browser: Safari Nav & Grid Issue

Hi,
We are facing an issue in Browser Safari, where bootstrap 4 grid/navbar is content is not wrapping.
Please suggest bootstrap 4 supports Safari also?
When I have checked the bootstrap website in Safari it's also having an issue.
Please suggest what should we do to resolve the Safari Issue.
Thanks
Vipin

Bug reports must include a live demo of the problem. Per our contributing guidelines, please create a reduced test case via CodePen or JS Bin and report back with your link, Bootstrap version, and specific browser and OS details.

Hey there!
We're automatically closing this issue since the original poster (or another commenter) hasn't yet responded to the question or request made to them 14 days ago. We therefore assume that the user has lost interest or resolved the problem on their own. Closed issues that remain inactive for a long period may get automatically locked.
Don't worry though; if this is in error, let us know with a comment and we'll be happy to reopen the issue.
Thanks!
(Please note that this is an automated comment.)


Extended update_os_image method

update_os_image now takes an instance of OSImage and allows to update
all elements of an OSImage in the same way as it can be done with
update_vm_image

tests failing, sorry will come up with a new pr


Normal CPU Usage for Awake feature?

Microsoft PowerToys version
0.41.3
Running as admin

[X] Yes

Area(s) with issue?
Awake
Steps to reproduce
select mode keep awake indefinitely
✔ Expected Behavior
use less CPU ?
❌ Actual Behavior
uses too much CPU ?

same on PC and laptop
Other Software
No response

Duplicate of #12052


dart2js null operator + cascade operator error

The following code will produce an error when compiled with dart2js:
main()
{
  new Item()
      ..blah = false
      ..userData?.cancel()
      ..userData = null;

  print('ok');
}

class Item
{
  bool blah = false;
  UserData userData;
}

class UserData
{
  cancel(){}
}

It produces the error:
Error compiling to JavaScript:
[error on line 5] Expected ';' after this.
Same code works fine on vm.
Dartpad here: https://dartpad.dartlang.org/afbc0983fef1444a0609565e117c44c0
SDK version 1.21.0

seems like our parser is not handling this correctly - @peter-ahe-google I'm adding the area-fasta here since this is most likely going to need to be fixed in the code base that you are currently working on, but feel free to change the label if you prefer

I can reproduce this with package:dart_parser.

Just for completeness, the grammar for cascade sections is:
cascadeSection:
    ‘..’ (cascadeSelector arguments*) (assignableSelector arguments*)*
          (assignmentOperator expressionWithoutCascade)?
    ;

so  ..userData?.cancel() should be allowed.
userData is a cascadeSelector, ?. cancel is an assignableSelector and () is an `arguments.
Hmm, it also allows ..foo() = 42, which shouldn't be possible. Might need a little tweaking.

.. ..foo() = 42 ..

That shouldn't be a problem as long as it is detected as being a compile time error (which it is). For instance, dart2js clearly treats one and only one of the following snippets as a syntax error:
Error: Unexpected token '!'.
  1..! = 42;
     ^
Error: Compilation failed.
...
Error: Not assignable.
  1..foo() = 42;
  ^^^^^^^^
Error: Compilation failed.

Looking closely at the output from the analyzer you can see that it uses a similar approach. So let's just keep the grammar simple and catch this kind of error after parsing.

I would be more comfortable if one could quote the specification instead of implementations.

Indeed.
The point I made was that we should not put a lot of complexity into the grammar in cases where a simple grammar and some simple static semantic checks will yield the same (and the intended) set of valid programs. It may not be so complex to fix in the grammar, but I haven't looked into that in any detail.
But it's of course completely fair that you raise the following issue: "Where does the language specification say that these constructs are compile-time errors?". That wasn't immediately obvious to me, so thanks for insisting on it. ;-)
The spec (current version, Sect. 16.19 Assignment) describes the semantics of assignment in a large number of cases (where the left hand side is a local variable, a library variable, getter, or setter, etc.etc.). I cannot see that it explicitly states that missing cases are errors (nor, of course, whether they are compile time errors etc.), so we need to ensure that this is mentioned explicitly.
As far as I can see, the spec does not make it explicit what an assignment is, so we need to add the assumption that the rules in Sect. 16.19 are applicable to expressions on the form assignableExpression assignmentOperator expression as wall as a number of other forms that we consider to be assignments, including the ones that may arise in a cascadeSection. Surely Sect. 16.19 will need to be inspected carefully in order to ensure that it covers all those forms as intended.
With those two assumptions I believe we can claim that the unwanted forms mentioned above are compile-time errors.
I created a language-team issue to follow up on this.

Thank you, @eernstg. I want to be clear that I'm not blocked by waiting for the specification. In this case, it's obvious what the right thing to do is, and if I discover anything when fixing this bug, I'll update the specification bug.

This example is working fine in dart2js, and vm in the latest SDK. I think CFE is handling it correctly.


Training Bard

Is there a way I can train the bard on my own?

Please refer to the README.md. This is an unofficial project undertaken by individuals, designed to test only certain functionalities before the official API for Bard is released. Additionally, Bard is not free, and the current approach is a project aimed at assisting developers in implementing and verifying features.
Therefore, support for features beyond training is not available. For tasks such as training or fine-tuning, please refer to resources like Llama.


clean up nydus vestige when starting

Nydusd judges if it should enter failover phrase by
checking residual disconnected unix socket file and mounted
mountpoint. But if snapshotter is restarting, nydusd can't fetch
back its states. So just start a fresh nydusd
Signed-off-by: Changwei Ge<EMAIL_ADDRESS>

Codecov Report

Merging #148 (c61b91e) into main (a0f3d22) will decrease coverage by 0.60%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #148      +/-   ##
==========================================
- Coverage   29.87%   29.26%   -0.61%
==========================================
  Files          20       20
  Lines        1647     1647
==========================================
- Hits          492      482      -10
- Misses       1089     1100      +11
+ Partials       66       65       -1

Impacted Files
Coverage Δ

pkg/filesystem/fs/blob_manager.go
44.44% <0.00%> (-11.12%)
:arrow_down:

pkg/auth/kubesecret.go
23.71% <0.00%> (-7.22%)
:arrow_down:

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


Fix goroutine leak in websocket

Fix a leak in websocket
To explain:
We have two goroutines, one for the connection with the backend, and one for the connection with the client.
If an error occurs on one of the goroutines, we close both connection. By buffering the err channel, we can ignore the error on the goroutine which occurs because we close the connection intentionally.

@marco-jantke good idea, we will push 1.5.2 next week so that's all good :)


CONSEP UX - Testing list: Handoff for dev

Background information:
After finalizing the design through iterations and usability evaluations, the next step is to prepare the assets for handoff to the development team.
Problem/Requirement:
Ensure that all design assets and documentation are organized and ready for a smooth handoff to the development team for implementation.
Expected Outcome:
All design assets are handed off to the development team, along with comprehensive documentation to guide the implementation process.
Acceptance criteria:

[ ] Compile all final design assets, including high-fidelity screens, breakpoints and light/dark themes
[ ] Create comprehensive documentation detailing the design guidelines, interaction flows, and any other relevant information.
[ ] Conduct a handoff meeting with the development team to walk through the design and address any questions or concerns
[ ] Ensure that all assets and documentation are stored in an accessible location for the development team.
[ ] The ticket is considered done when the development team has all the necessary assets and information to begin implementation, and any initial queries have been resolved.

Testing list handoff file:  https://www.figma.com/design/G1QiojoBUo8JW5Y7lSsVl6/Testing-list---Handoff?m=auto&t=KsOKIm7F1jSQGoIU-6
Testing activities handoff file: https://www.figma.com/design/wWqNmvDMzrJDU8NDpCJ46b/Testing-activities-(Purity---Moisture---Xray---Fungal---SPG---etc.)?m=auto&t=KsOKIm7F1jSQGoIU-6


A Hat in Time Crashing when entering Level

Problem is that the game crashes whenever I enter a bigger level.
I can start a new game without any issues, but one I enter Mafia Town or load a newer save that has more areas of the space ship unlocked, the game will crash.
Software information
A Hat in Time. All settings on low.
System information

GPU: Intel HD 615
Driver: <IP_ADDRESS>09 (can't go higher without sacrificing custom resolutions)
Wine version: -
DXVK version: 0.12

Apitrace file(s)

Put a link here

Log files

d3d9.log:
HatinTimeGame_d3d9.log

Please rerun the game with Vulkan validation layers.

<IP_ADDRESS>09 (can't go higher without sacrificing custom resolutions)

Old drivers could cause this.

Your driver is the cause of this, it's out of date.
In addition, it's also Intel on Windows which is a bit crap, not gonna lie there.


XML output should use std notation for hex

Not sure how I've not seen this before but it looks like some of the fields in the XML output are in hex but aren't prefixed with a '0x'.
For example, I have a reset value of 5'd10 which gets translated to <reset>a</reset>.
For now am I safe to assume these will always be in hex?

Yes, reset is hex in xml output though it's missing the 0x prefix.


Settings crashes when toggling VCM on

Microsoft PowerToys version
0.49.1
Running as admin

Yes

Area(s) with issue?
Settings, VCM
Steps to reproduce
Opened Settings as administrator.
~Go to page for Find My Mouse and flick it ON.
Within seconds after that, double-tap Ctrl to activate.~
Apparently it happened after turning VCM on.
✔ Expected Behavior
~Just to see the animation.~
Just VCM be on, nothing special.
❌ Actual Behavior
Setting freezes and an error message.
There was a different text shortly before this standard OS message - can't remember what that was exactly.

Zip:
PowerToysReport_2021-11-22-22-14-09.zip

Can't reproduce it myself now.

(off-topic) @crutkas thanks for these new powers! 😁

I do see an error in the settings log wondering if this is causing the crash.
ERROR: 21:32:24.9967331
    [Method]: SaveSettings [Class]: SettingsUtils
    Exception encountered while saving \Video Conference settings.
The process cannot access the file 'C:\Users\Abdes Chakir\AppData\Local\Microsoft\PowerToys\Video Conference\settings.json' because it is being used by another process.
Inner exception:

Stack trace:
   at System.IO.FileStream.ValidateFileHandle(SafeFileHandle fileHandle)
   at System.IO.FileStream.CreateFileOpenHandle(FileMode mode, FileShare share, FileOptions options)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
   at System.IO.StreamWriter.ValidateArgsAndOpenPath(String path, Boolean append, Encoding encoding, Int32 bufferSize)
   at System.IO.StreamWriter..ctor(String path)
   at System.IO.File.WriteAllText(String path, String contents)
   at System.IO.Abstractions.FileWrapper.WriteAllText(String path, String contents)
   at Microsoft.PowerToys.Settings.UI.Library.SettingsUtils.SaveSettings(String jsonSettings, String powertoy, String fileName)

Oh indeed, I turned on VCM very shortly before this happened. Maybe that's the problem.

@yuyoyuppe FYI

Can't reproduce for myself anymore, so unless somebody thinks otherwise, I'm willing to close this.


Fixed Sf 4.2 deprecation & try to fix Travis versions

You should pass parameter ($table) to firePostCreateHooks here
https://github.com/wouterj/WouterJEloquentBundle/blob/bb48338cffc36c6d5d53e4e55a4e3e789fbf0632/src/Migrations/Creator.php#L44
coz it is required now
https://github.com/illuminate/database/blob/67c51f820e215fac20bb6f790efb2fe5981f60e6/Migrations/MigrationCreator.php#L157

Closing in favor of #104


DALQueryError on 4. TAP: Using the TAP to cross-correlate our objects with a catalog

Moved from old repo https://github.com/NASA-NAVO/aas_workshop_2020_winter/issues/13

Was closed there.


copy/paste with another theme

Turn on default dark them
edit a markdown file
copy, paste text into email
result: the black background of the text is also pasted into the email. I just want the text...

I turned on the dark theme in Visual Studio, copy/pasted some code, and here are the results.  the first block of code is the copy/paste from VS, the second is the copy/paste from VS Code:

Is this related  #20811?

Firstly, we can't just copy the colored text without background as in Dark theme, the font color is light (sometimes just white) so copying white text with no background is not reasonable. You can hardly see anything when pasting it to a light themed application.
Visual Studio has three built-in themes, even if you are in Dark theme, the content is always copied with the light theme. So this feature request is actually similar to Copy text with Syntax Highlighting in another specific theme. It's easy to do so as VS gets all ideas about the light theme but for us, as we support third party themes, we cannot decide what theme to use when copy/paste so right now we choose the one users are using at the moment.
For short, temporary workaround is switching to the ideal theme you want to copy/paste. In the long term, we can provide an option for users to configure what theme they want to use for copy/paste. But users need to pay the price of this feature: we have to render all lines with correct CSS class/styles if you choose any theme other than the one you are using, it might take a while.

Strong request to improve this feature.
Copy the text to Outlook, there is a large black with background color.
But copy to Micorsoft Lync, no background color, it's difficult to read text as below picture.

Very thanks for your effort.

I think the feature should be that you can set one theme for display, and a separate theme for copy/paste.
I'd like to set my display theme to Dark+ (default dark), but when I copy and paste to another application with formatting, I want the theme to be Light+ (default light).  So there should be a way of selecting those two themes separately.
If nothing else, perhaps there should be a user setting where I can override the theme to apply to copied text.

I would like to voice my support here -- while I prefer to write code with a dark background, any time I copy/paste it to another app, itll be going against a white background. Neither paste-with-background or paste-without-background are good options, there, and it would really be best to simply copy as if i were using a light theme.

A simple solution would be to have two capabilities, copy with formatting and copy without formatting, and then let the users decide which one is used when Edit -> Copy is chosen; they can put the other on a different key combination, if desired.

The summary then:

ctrl+c (or copy) should copy only text
Provide a copy with formatting option
Provide a different shortcut for it like ctrl+shift+c

VSCode really lags behind with this feature. Really wish this was present - maybe as someone suggested, that copy+paste works on a default theme always and display has a different theme.

Adding my voice to the mix, I agree with @oxydron it should be

ctrl+c (or copy) should copy only text
Provide a copy with formatting option
Provide a different shortcut for it like ctrl+shift+c

Text editors that copy plaintext with ctrl-c:

SublimeText
Atom
Notepad++
BBEdit
EditPlus
Notepad
Eclipse
Kedit
TextEdit

Editors that copy with theme formatting with ctrl-c:

VS Code

This is a big productivity breaker. Copy/Paste into a Gmail email has become very cumbersome. Somehow, I did not notice that until a few months ago.
My workaround right now is to paste it into an empty sublime text tab and then copy paste it back to gmail. I really love VSCode, and I am 99% migrated to VSCode, but for this "feature".
I think the default should be without style, but even if the default is with style, we should have at least a way to copy text only.

For short, temporary workaround is switching to the ideal theme you want to copy/paste. In the long term, we can provide an option for users to configure what theme they want to use for copy/paste.

why not providing an option to use text copying by default?
From https://github.com/Microsoft/vscode/issues/21071#issuecomment-303750728

Make this a user setting like "editor.copyWithFormatting" and with the options true/false.

p.s. I use dark theme but I usually copy-paste the code as plain text. It's very inconvenient right now and I have to open some other editor and first paste the code there...

+1 This really is a no-brainer user setting to add, in fact, if nothing else, it should be turned off by default.

I feel good when copy with black background.

After install Xcode，I lost this functionality. I don't know the reaon. How can i get it back? @rebornix

+1. This is a necessity.

While waiting for a fix, I hacked up an ugly bit of Swift (my first time coding Swift) that removes the background color on OS X.
https://gist.github.com/pragdave/6fc95ff2420dea51842717a5da7a98ff

Is anyone working on this? It's very annoying. It's hard to believe that this is not bothering more people, ;)

In latest Insiders, you can disable copy with syntax highlighting by setting editor.copyWithSyntaxHighlighting to false and command "Copy with syntax highlighting" still works as expected.
Right now,  we don't have plan to support copying with another theme in the near term.

The config setting which allows switching to a plain text copy editor.copyWithSyntaxHighlighting pointed out by @rebornix above is available in the stable release now (possibly since some time ago).

The config setting which allows switching to a plain text copy editor.copyWithSyntaxHighlighting pointed out by @rebornix above is available in the stable release now (possibly since some time ago).

This is not correct, sadly. I just tested this, copying an xml attribute that is styled as bold and blue. Setting copyWithSyntaxHighlighting to true removes the blue color from the copied text, but the bold format still remains. That is clearly not "plain text".

@jihu In such case you may try to open new issue, if it is not already covered by one of open or rejected ones.
Here "copy with another theme" was rejected, but "copy as a proper plaintext like any sane editor" was not (maybe it was rejected elsewhere!)

@matkoniecz I did create a ticket after posting that comment:
https://github.com/microsoft/vscode/issues/117879

I recently found this thread. I solved this issue for myself by setting up a convenient hotkey to toggle the Dark mode.
Hit Ctrl + Shift + P to pull up the Command Palette. Search for "Toggle" and you should see the following option appear: "Preferences: Toggle between Light/Dark Themes".
You can set a hotkey combo for this function and VSCode will switch between your preferred Light and Dark themes quickly. This makes copying the text while using light theme much quicker, and allows you to switch back to Dark mode for editing quickly.
Cheers.

This issue was closed by someone that never copies and pastes code from a dark theme VSCode editor into Word documents or PowerPoint presentations. 😞

@wyckster it seems that's true but tbh I will probably stick to dark mode because I can't find any well-designed syntax highlighting color scheme for light mode, they all seem not to be as informational as dark one. I feel like they are less informative. And extension I mentioned before has its problems, for example when switching that fast not all syntax is colored because it takes some time cor coloring to fully load which can be observed while changing theme.


Precalculate Non-zero divisors for lak

Simplify division step in Lak calculations so that we don't need to check for divide by zero.

It is OK, do you want to change division later to division-by-multiplication here?

Not sure the division-by-multiply will fly because of the i16 cast to determine the sign.

Unfortunately it is slower than current main:
main 82d6547e924b3b54af57c576438fa63b94eddc2c
2024-11-15T21:03:34.699Z INFO  [lepton_jpeg::structs::lepton_file_writer] compressing to Lepton format
2024-11-15T21:03:35.173Z INFO  [lepton_jpeg::structs::lepton_file_writer] Number of threads: 8
2024-11-15T21:03:36.610Z INFO  [lepton_jpeg::structs::lepton_file_writer] worker threads 9632ms of CPU time in 1436ms of wall time
2024-11-15T21:03:36.610Z INFO  [lepton_jpeg::structs::lepton_file_writer] decompressing to verify contents
2024-11-15T21:03:38.216Z INFO  [lepton_jpeg_util] compressed input 22171278, output 17324076 bytes (compression = 28.0%)
2024-11-15T21:03:38.216Z INFO  [lepton_jpeg_util] Main thread CPU: 3517ms, Worker thread CPU: 20710 ms, walltime: 3517 ms

 Performance counter stats for 'taskset -c 10 nice -n -20 target/release/lepton_jpeg_util images/img_52MP_7k.jpg images/img_52MP_7k2.lep':

       871 003 064      cache-references                                                        (41,51%)
        86 439 870      cache-misses                     #    9,92% of all cache refs           (41,52%)
    15 795 148 123      cycles                                                                  (41,72%)
       834 608 725      ic_fetch_stall.ic_stall_back_pressure                                        (41,87%)
     1 014 898 692      stalled-cycles-frontend          #    6,43% frontend cycles idle        (42,14%)
    39 107 914 014      instructions                     #    2,48  insn per cycle
                                                  #    0,03  stalled cycles per insn     (42,43%)
     4 396 207 542      branch-instructions                                                     (42,50%)
       162 547 993      branch-misses                    #    3,70% of all branches             (42,32%)
     5 434 637 214      ic_fetch_stall.ic_stall_any                                             (42,14%)
        45 374 631      ic_fetch_stall.ic_stall_dq_empty                                        (41,99%)
        72 770 962      l2_cache_misses_from_ic_miss                                            (41,75%)
     2 149 017 778      l2_latency.l2_cycles_waiting_on_fills                                        (41,47%)
           184 005      faults
                 1      migrations

       3,551824055 seconds time elapsed

       3,224073000 seconds user
       0,324906000 seconds sys

this PR rebased on main:
2024-11-15T21:02:37.776Z INFO  [lepton_jpeg::structs::lepton_file_writer] compressing to Lepton format
2024-11-15T21:02:38.258Z INFO  [lepton_jpeg::structs::lepton_file_writer] Number of threads: 8
2024-11-15T21:02:39.715Z INFO  [lepton_jpeg::structs::lepton_file_writer] worker threads 9853ms of CPU time in 1456ms of wall time
2024-11-15T21:02:39.715Z INFO  [lepton_jpeg::structs::lepton_file_writer] decompressing to verify contents
2024-11-15T21:02:41.327Z INFO  [lepton_jpeg_util] compressed input 22171278, output 17324076 bytes (compression = 28.0%)
2024-11-15T21:02:41.327Z INFO  [lepton_jpeg_util] Main thread CPU: 3550ms, Worker thread CPU: 20941 ms, walltime: 3550 ms

 Performance counter stats for 'taskset -c 10 nice -n -20 target/release/lepton_jpeg_util images/img_52MP_7k.jpg images/img_52MP_7k2.lep':

       871 415 376      cache-references                                                        (41,78%)
        81 979 646      cache-misses                     #    9,41% of all cache refs           (41,60%)
    15 921 809 354      cycles                                                                  (41,64%)
       927 421 935      ic_fetch_stall.ic_stall_back_pressure                                        (41,85%)
     1 064 411 574      stalled-cycles-frontend          #    6,69% frontend cycles idle        (42,04%)
    38 932 713 731      instructions                     #    2,45  insn per cycle
                                                  #    0,03  stalled cycles per insn     (42,18%)
     4 399 352 404      branch-instructions                                                     (42,15%)
       163 853 521      branch-misses                    #    3,72% of all branches             (42,07%)
     5 490 454 599      ic_fetch_stall.ic_stall_any                                             (42,14%)
        40 739 513      ic_fetch_stall.ic_stall_dq_empty                                        (42,01%)
        67 832 885      l2_cache_misses_from_ic_miss                                            (41,87%)
     2 175 383 646      l2_latency.l2_cycles_waiting_on_fills                                        (41,81%)
           184 003      faults
                 1      migrations

       3,585066645 seconds time elapsed

       3,248145000 seconds user
       0,333706000 seconds sys


[SSR] Incorrect styles for InputLabel if input not empty

Duplicates

[X] I have searched the existing issues

Latest version

[X] I have tested the latest version

Steps to reproduce 🕹
Link to live example: https://codesandbox.io/s/vigorous-bessie-pcu4j4
based on https://github.com/mui/material-ui/tree/master/examples/material-next-ts
extended with example https://mui.com/material-ui/react-autocomplete/#controlled-states (with initial inputValue)
Current behavior 😯
InputLabel styled for unfilled input in SSR response when input not empty.
Expected behavior 🤔
InputLabel has correct styles in SSR response when input not empty.
Context 🔦
No response
Your environment 🌎
No response

same on https://mui.com/x/react-date-pickers/getting-started/ page

Thanks, we'll need to dive a bit deeper to see what's the problem. As a workaround you can use shrink: true in the InputLabelProps, see: https://codesandbox.io/s/condescending-lumiere-ryv982?file=/src/ControllableStates.tsx


no word wrap after 80 characters?

The page I am writing in does not word wrap. Instead it scrolls to the right until a carriage return. Any ideas?

Does it help if you do  M-x toggle-truncate-lines? If so, something in your setup is setting the variable truncale-lines to t. That's basically all I can think of...


Problem closing the modal in Android's default browser

I'm having trouble closing the modal using the standard android browser.
The test was:
1- Open the site https://limonte.github.io/sweetalert2/ in the Android browser. (I used AVD API 22 / Android 5.1 and another test in Asus Zenfone 2 Android 5.0)
2- Click the "Show success message"
3- Click the "OK" button. The modal does not close. :(
No errors were shown on the console. I already tried to use core-js and it still did not work.
Thank you.

For some reason, this is related only to all.min.js version. I replaced it with regular .js + .css files and everything works fine now.
@lucas-jc could you please verify that https://limonte.github.io/sweetalert2/ works for your device, thanks in advance!

Nice @limonte ! All working now.
Thanks!

It's working, but let's not close the issue just now :) We need to figure out what is wrong with all.min.js and why it doesn't work with Android native browser. My guess - the CSS injecting doesn't have a proper browsers support.

Gotcha! The issue is happening because of missing webkit- and other prefixes. I can't figure out how to add autoprefixer before injecting CSS, @samturrell could you please help with adding autoprefixer?

I'll take a look!

Thanks @samturrell!

Fixed in v6.11.3, thanks @lucas-jc for reporting!


Install private charts from app registry

The new helm chart registry supports private applications. Support them being installed via k2.

@joejulian do you need this for a client?

Yes. PR #661


[SPARK-34241][SQL] For DDL command plan, we should define producedAttributes as it's outputSet

What changes were proposed in this pull request?
When write test about command,  when checkAnswer,
Always got error as below
[info]   AttributeSet(partition#607) was not empty The analyzed logical plan has missing inputs:
[info]   ShowPartitionsCommand `ns`.`tbl`, [partition#607] (QueryTest.scala:224)
[info]   org.scalatest.exceptions.TestFailedException:
[info]   at org.scalatest.Assertions.newAssertionFailedException(Assertions.scala:472)
[info]   at org.scalatest.Assertions.newAssertionFailedException$(Assertions.scala:471)

For Command DDL plan, we can define  producedAttributes as it's outputSet and it's reasonable
Why are the changes needed?
Add default   producedAttributes for Command LogicalPlan
Does this PR introduce any user-facing change?
No
How was this patch tested?
Not need

FYI @cloud-fan @HyukjinKwon @beliefer

FYI @cloud-fan @HyukjinKwon @beliefer

Test build #134494 has started for PR 31342 at commit 1364af3.

Test build #134494 has started for PR 31342 at commit 1364af3.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/39080/

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/39080/

Test build #134494 has finished for PR 31342 at commit 1364af3.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Test build #134494 has finished for PR 31342 at commit 1364af3.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

retest this please

retest this please

Kubernetes integration test status success
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/39080/

Kubernetes integration test status success
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/39080/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/39080/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/134494/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/134494/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/39080/

Test build #134496 has started for PR 31342 at commit 1364af3.

Test build #134496 has started for PR 31342 at commit 1364af3.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/39082/

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/39082/

Kubernetes integration test status success
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/39082/

Kubernetes integration test status success
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/39082/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/39082/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/39082/

Test build #134496 has finished for PR 31342 at commit 1364af3.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test build #134496 has finished for PR 31342 at commit 1364af3.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

thanks, merging to master!

thanks, merging to master!

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/134496/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/134496/


Have a ranking system based on number of slots that each accumulated schedule has

Make sure to add the criteria for number of slots in the schedules.

Already implemented!


Crash When Rendering Tooltip for Inscription

When hovering over the inscription in the Living Chest loot page of JEI, the game crashes. I tested without the mod, and it doesn't crash.
Crash Log

This should be fixed with https://github.com/kendrome/kendrome_vh_tweaks/releases/tag/v1.0.2, let me know if it's still an issue when you update.

It works! Thanks!


Integration Test - Release - 2019/06/12 20:45:00

Auto create for integration test. AnotherAuthorUpdatedArticleFlow

@PRMergerTest3 : Thanks for your contribution! The author(s) have been notified to review your proposed change.


OKOK Scale not working anymore on

OKOK 0.0.2
core 2024.6.24
Supervisor 2024.06.2
OS 12.4
Needs attention it reports      and does not report anymore :-(

Working again !! Many thanks for your support !!


Improve flit subcommand help

I'd expect e.g. flit -h install to do what currently flit install -h does. Especially since the usage message puts -h before subcommands.

 I believe that as soon as it sees -h it dumps the help message and exits.

There should already be argparse extensions to do this on PyPI to search through, if anyone would like to help.

The extension can be just copypasted. I don't think it is worth to be maintained as a dependency.

Just for the record, I thought the fix was way easier. I think vendoring additional packages from PyPI is an overkill. So I withdraw my feature request. Though of course, Thomas is welcome to do as he wishes. :-)

If there is an easy way to make flit -h install equivalent to flit install -h with argparse, I'd be glad to hear of it. :slightly_smiling_face:


Run bot on review state change

https://github.com/ethereum/EIPs/pull/4835

https://github.com/ethereum/EIPs/pull/4835#issuecomment-1048458635

this should already be happening so the fact it's not suggests something else

so the last run was at 11:18 my time but then the author marked their PR for review at 11:19

So most likely, the action wasn't called. I also verified this behavior here:
https://github.com/ethereum/EIPs/pull/4840
You'll see that when I open for review the auto merge bot remains skipped

Which, means that the activity types described in the pull_request_target is incorrect. And that pull_request_target is not called on ready_for_review

I submitted a support ticket for this topic because it appears to be on github's side (see above)
link, you probably can't access but just in case.. https://support.github.com/ticket/personal/0/1514149

See also #4833, I think the bot just failed to run for an hour.

that's an interesting idea..

Might be possible with https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#issue_comment (and then check if the message contains @eth-bot?)

Hopefully https://github.com/ethereum/EIPs/pull/4922 should provide enough info.

Closing this as it appears to be a GitHub bug.


enum generation issue

When trying to generate enum structs, it generates something not useful.  Or am I getting something wrong?
I would have expected something like this:
package dbo

// LimitType is generated type for enum 'limit_type'
type LimitType string

const (
	LARGE LimitType = "large" // a large customer
	STANDARD LimitType = "standard" // a standard customer
        OTHER LimitType = "other" // a other customer
)

What do you think?

Writing the enums in lowercase worked. Could you make both possible or is there any part of the dbml specification, that I am missing?