504 Gateway timeout on large file

Description
We are trying to use rekor to store our  GH releases for Scorecard https://github.com/ossf/scorecard/issues/1201.
I ran into an issue with cosign that didn't support timeout on sign-blob https://github.com/sigstore/cosign/issues/990 and am in the process of fixing that issue I ran into another issue with rekor.
HTTP/2.0 504 Gateway Timeout
Content-Length: 160
Content-Type: text/html
Date: Thu, 04 Nov 2021 17:59:15 GMT
Strict-Transport-Security: max-age=15724800; includeSubDomains

<title>504 Gateway Time-out</title>

504 Gateway Time-out

nginx

Error: signing ./cosign: &{0 } (*models.Error) is not supported by the TextConsumer, can be resolved by supporting TextUnmarshaler interface
main.go:48: error during command execution: signing ./cosign: &{0 } (*models.Error) is not supported by the TextConsumer, can be resolved by supporting TextUnmarshaler interface

The size of the binary that I am trying to upload is 81M.

Looks like this is an existing issue https://github.com/sigstore/rekor/pull/264

I’m not convinced this is due to #264 since the request hit the server and timed out during processing. I think we should try to fix https://github.com/sigstore/cosign/issues/990 and see if that fixes this.

I’m not convinced this is due to #264 since the request hit the server and timed out during processing. I think we should try to fix sigstore/cosign#990 and see if that fixes this.

I have the fix for the cosign timeout and while running with the fix is where I ran into this issue.
To confirm your doubts  I used the rekor-cli to check if it works and it is also running into a similar issue.
➜  temp openssl ecparam -genkey -name prime256v1 > ec_private.pem
➜  temp openssl ec -in ec_private.pem -pubout > ec_public.pem
read EC key
writing EC key
➜  temp openssl dgst -sha256 -sign ec_private.pem -out cosign.sig cosign
➜  temp ./rekor-cli upload --artifact cosign  --signature cosign.sig --pki-format=x509 --public-key=ec_public.pem
Post "https://rekor.sigstore.dev/api/v1/log/entries": context deadline exceeded
➜  temp ./rekor-cli upload --timeout 90s  --artifact cosign  --signature cosign.sig --pki-format=x509 --public-key=ec_public.pem
&{0 } (*models.Error) is not supported by the TextConsumer, can be resolved by supporting TextUnmarshaler interface

And here is tail end of the log with rekor-cli for the same above command with DEBUG=1
gS0VZLS0tLS0KTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFekdrNjErcExJUlFRZVYzR2xXLytiajVGVURLdwpzUEJvdUtROWIwbXU5M0I2MmxRNEFmU2R1S00vVlVBZEJHZXJ5dDdFV2FUeElxNW1ZL3p6ekxZdkl3PT0KLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tCg=="}}},"kind":"rekord"}

HTTP/2.0 504 Gateway Timeout
Content-Length: 160
Content-Type: text/html
Date: Thu, 04 Nov 2021 19:20:17 GMT
Strict-Transport-Security: max-age=15724800; includeSubDomains

<title>504 Gateway Time-out</title>

504 Gateway Time-out

nginx

&{0 } (*models.Error) is not supported by the TextConsumer, can be resolved by supporting TextUnmarshaler interface

Thoughts?

I was able to run the server locally
Here is the server log after it is uploaded
rekor-rekor-server-1         | 2021-11-09T02:05:37.443Z	INFOrestapi/configure_rekor_server.go:144	[56593d4bf6fe/6kNG8UdoVI-000099] "POST http://<IP_ADDRESS>:3000/api/v1/log/entries HTTP/1.1" from <IP_ADDRESS>:43450 - 409 153B in 1m44.88365215s

Client log
./rekor-cli upload --timeout 200s  --artifact cosign  --signature cosign.sig --pki-format=x509 --public-key=ec_public.pem --rekor_server http://<IP_ADDRESS>:3000
Post "http://<IP_ADDRESS>:3000/api/v1/log/entries": EOF

I was able to confirm that it was successful on the server but it didn't respond to the client when it was successful.
Based on what I saw from the log I decide to search for the binary in rekor
./rekor-cli search --artifact cosign --rekor_server http://<IP_ADDRESS>:3000
Found matching entries (listed by UUID):
be99689f02ff2cb56b4becba926d2bd3c795ca6779ebb32e2e13aeec1d36847c

With the ☝ successful match. I decided to search the https://rekor.sigstore.dev and it was able to locate it which confirmed the upload was successful but the message to the client is the issue.
./rekor-cli search --artifact cosign
Found matching entries (listed by UUID):
be99689f02ff2cb56b4becba926d2bd3c795ca6779ebb32e2e13aeec1d36847c

I was able to run the rekor server locally
Here is the server log after it is uploaded
rekor-rekor-server-1         | 2021-11-09T02:05:37.443Z	INFOrestapi/configure_rekor_server.go:144	[56593d4bf6fe/6kNG8UdoVI-000099] "POST http://<IP_ADDRESS>:3000/api/v1/log/entries HTTP/1.1" from <IP_ADDRESS>:43450 - 409 153B in 1m44.88365215s

The 409 error code returned here after 104 seconds feels like the upload must have completed in order for us to have confirmed that there was an entry already in the log for this.
I will try to recreate this locally and see if I can run it down.

Another alternative is to replace the rekorEntry used to upload in cosign with the hash of the artifact rather than the whole payload.
https://github.com/sigstore/cosign/blob/d44259202830948517db361efd85fca6e87776ff/pkg/cosign/tlog.go#L122

Another alternative is to replace the rekorEntry used to upload in cosign with the hash of the artifact rather than the whole payload.
https://github.com/sigstore/cosign/blob/d44259202830948517db361efd85fca6e87776ff/pkg/cosign/tlog.go#L122

Cosign doesn't provide an option to upload artifact hash https://github.com/sigstore/cosign/blob/d44259202830948517db361efd85fca6e87776ff/cmd/cosign/cli/sign/sign_blob.go#L55

Cosign doesn't provide an option to upload artifact hash https://github.com/sigstore/cosign/blob/d44259202830948517db361efd85fca6e87776ff/cmd/cosign/cli/sign/sign_blob.go#L55

Oops, I think you're misunderstanding my comment. I'm not suggesting changing cosign to upload or sign an artifact, I'm suggesting changing the code in cosign linked in my comment so that it uploads to rekor with the hash of the entry, rather than the whole payload.
@bobcallaway is this possible? I'm testing that change but I think sending the rekor entry with just a hash causes problems with SHA mismatch https://github.com/sigstore/rekor/blob/775f38b42cc2fe0abb70f74fb302f75802ad9496/pkg/types/rekord/v0.0.1/entry.go#L199

Cosign doesn't provide an option to upload artifact hash https://github.com/sigstore/cosign/blob/d44259202830948517db361efd85fca6e87776ff/cmd/cosign/cli/sign/sign_blob.go#L55

Oops, I think you're misunderstanding my comment. I'm not suggesting changing cosign to sign an artifact hash, I'm suggesting changing the code in cosign linked in my comment so that it uploads to rekor with the hash of the entry, rather than the whole payload.
@bobcallaway is this possible? I'm testing that change but I think sending the rekor entry with just a hash causes problems with SHA mismatch because maybe that SHA is just for consistency
https://github.com/sigstore/rekor/blob/775f38b42cc2fe0abb70f74fb302f75802ad9496/pkg/types/rekord/v0.0.1/entry.go#L199

Cool, makes sense! Thanks

I don't think that avenue is possible :/
Technically you're signing the hash of the artifact so I assumed it was possible (and rekor only stores the hash). But I think to play nice with all the different verifier methods with different hash requirements for message signing, rekor still wants the whole payload. Unfortunate...

Ran some pprof heap  with the large file
Showing nodes accounting for 267.13MB, 97.25% of 274.69MB total
Dropped 77 nodes (cum <= 1.37MB)
Showing top 10 nodes out of 54
      flat  flat%   sum%        cum   cum%
  106.85MB 38.90% 38.90%   106.85MB 38.90%  encoding/json.unquote (inline)
   80.14MB 29.17% 68.07%    80.14MB 29.17%  encoding/base64.(*Encoding).DecodeString
   80.14MB 29.17% 97.25%    80.14MB 29.17%  reflect.unsafe_NewArray
         0     0% 97.25%   106.85MB 38.90%  encoding/json.(*Decoder).Decode
         0     0% 97.25%   106.85MB 38.90%  encoding/json.(*decodeState).literalInterface
         0     0% 97.25%   107.35MB 39.08%  encoding/json.(*decodeState).object
         0     0% 97.25%   106.85MB 38.90%  encoding/json.(*decodeState).objectInterface
         0     0% 97.25%   107.35MB 39.08%  encoding/json.(*decodeState).unmarshal
         0     0% 97.25%   107.35MB 39.08%  encoding/json.(*decodeState).value
         0     0% 97.25%   106.85MB 38.90%  encoding/json.(*decodeState).valueInterface

It is not surprising it is `encoding JSON which is causing most of the delay.

I did pprof CPU dump on createLogEntry for the start and stop of this function call.
The test was  uploading a large binary(cosign Linux binary) 81 MB file which is uploading cosign binary https://github.com/sigstore/rekor/blob/070f83e924cc837178a09b2b4d1089562c8f23da/pkg/api/entries.go#L145

Here is the pprof CPU I captured and the code with the simple option to store the profile to the disk https://github.com/sigstore/rekor/compare/main...naveensrinivasan:naveen/prof
and if you don't want to clone the branch changes I made to generate the cpu.pprof you can download it from here.
cpu.pprof.zip(Note of caution please don't download random zip files from the internet)

I was thinking if we could replace the json encoding with https://github.com/json-iterator/go as it is well maintained and keeps the standard API. I also saw this recommendation https://github.com/go-swagger/go-swagger/issues/1868#issuecomment-458611388
I tried the code change but it didn't make any difference
https://github.com/sigstore/rekor/compare/main...naveensrinivasan:naveen/feat/json-iterator

https://github.com/naveensrinivasan/grpc_upload_test

The 81 MB uploads take with the gRPC tests
2021/11/16 12:36:46  Unary Avg: 1.039287592s
2021/11/16 12:36:46 Stream Avg: 761.814253ms

@naveensrinivasan just FYI this is how you can upload this hashed type, e.g. on a signature of a file README.md
./rekor-cli upload --type hashedrekord:0.0.1 --artifact-hash $(sha256sum  README.md | awk '{print $1}') --signature README.md.sig --pki-format=x509 --public-key=ec_public.pem

@naveensrinivasan just FYI this is how you can upload this hashed type, e.g. on a signature of a file README.md
./rekor-cli upload --type hashedrekord:0.0.1 --artifact-hash $(sha256sum  README.md | awk '{print $1}') --signature README.md.sig --pki-format=x509 --public-key=ec_public.pem

Thank you @asraa! AFAIK it is still not supported in cosign. Or if I am wrong how can I use with cosign for keyless signing?

Thank you @asraa! AFAIK it is still not supported in cosign. Or if I am wrong how can I use with cosign for keyless signing?

Hah thank you for reminding me that this was for use through cosign CLI. I'll open a PR there to fix that!

Thank you @asraa! AFAIK it is still not supported in cosign. Or if I am wrong how can I use with cosign for keyless signing?

Hah thank you for reminding me that this was for use through cosign CLI. I'll open a PR there to fix that!

Thanks


Update README.md

dotnet-core taxonomy slug deprecated
Purpose

remove deprecated product taxonomy slug

@dzsquared Can you merge this?


Java Development Internship

I have resolved this issue. I have add details on paid java development internship.
I request you to kindly consider it.
Thank you.

already accepted your pr


[BUG] Volume is unable to mount because of multi-attach error in 1.4.3

Describe the bug (🐛 if you encounter this issue)
After upgrading to longhorn v1.4.3 from v1.3.3, pod remain in Init state since volume is attached to different node.
To Reproduce

Expected behavior

Support bundle for troubleshooting

Environment

Longhorn version: v1.4.3
Installation method (e.g. Rancher Catalog App/Helm/Kubectl): Helm
Kubernetes distro (e.g. RKE/K3s/EKS/OpenShift) and version: RKE

Number of management node in the cluster: 3
Number of worker node in the cluster: 1

Node config

OS type and version: RHEL 8.6
Kernel version:
CPU per node:
Memory per node:
Disk type(e.g. SSD/NVMe/HDD):
Network bandwidth between the nodes:

Underlying Infrastructure (e.g. on AWS/GCE, EKS/GKE, VMWare/KVM, Baremetal):
Number of Longhorn volumes in the cluster:
Impacted Longhorn resources:

Volume names:

Additional context

lh6804.zip
longhorn bundle.

Is it a bare pod? Has the pod been relocated? Could you run kubectl describe on the specific pod or pods that you are encountering issues with?

no. This is deployment. Yes, this pod has been relocated because of restart.
Events:
  Type     Reason       Age                  From     Message
  ----     ------       ----                 ----     -------
  Warning  FailedMount  54s (x76 over 170m)  kubelet  (combined from similar events): Unable to attach or mount volumes: unmounted volumes=[insights-looker-workdir], unattached volumes=[pem insights-looker-lookerdir istio-envoy insights-looker-workdir istiod-ca-cert istio-token dshm temp-location credential-socket istio-podinfo openssl cert-location java insights-looker-service-secrets workload-certs additional-ca-cert-config edk2 kube-api-access-t2cps workload-socket domain-cert-config tmp istio-data]: timed out waiting for the condition

@mynktl What is the name of the pod? Is it prometheus-rancher-monitoring-prometheus-1 ?

lh-bundle.zip
Hi @PhanLe1010
I have another repro of same issue.
Events:
  Type     Reason       Age                  From     Message
  ----     ------       ----                 ----     -------
  Warning  FailedMount  81s (x787 over 29h)  kubelet  (combined from similar events): Unable to attach or mount volumes: unmounted volumes=[insights-looker-workdir], unattached volumes=[additional-ca-cert-config workload-socket istiod-ca-cert insights-looker-workdir istio-token edk2 cert-location temp-location openssl insights-looker-lookerdir domain-cert-config dshm istio-podinfo insights-looker-service-secrets istio-data tmp java pem kube-api-access-t2cps credential-socket workload-certs istio-envoy]: timed out waiting for the condition
[root@server0 ~]# kubectl get pvc -n uipath
NAME                            STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS      AGE
insights-looker-datadir-pvc     Bound    pvc-feef0ae4-6277-4f39-ace2-b5fb94d3c4ad   10Gi       RWO            longhorn-backup   32h
insights-looker-lookerdir-pvc   Bound    pvc-cca05dc8-3108-49b9-97b5-4602a4c2eaff   500Mi      RWO            longhorn-backup   32h
[root@server0 ~]# kubectl get  pods -n uipath insights-insightslooker-0 -o wide
NAME                        READY   STATUS     RESTARTS   AGE   IP       NODE     NOMINATED NODE   READINESS GATES
insights-insightslooker-0   0/2     Init:0/2   0          30h   <none>   agent0   <none>           <none>
[root@server0 ~]# kubectl get volumeattachment |grep -E 'pvc-feef0ae4-6277-4f39-ace2-b5fb94d3c4ad|pvc-cca05dc8-3108-49b9-97b5-4602a4c2eaff'
csi-170f4a33b65b7cedce7d80745b6ea3911d8d1e7619c4f7432f9fa062cb9af15f   driver.longhorn.io   pvc-feef0ae4-6277-4f39-ace2-b5fb94d3c4ad   server0   true       31h
csi-38f662b1f618f410abdbac6b0265831ec199d0ea43abaea04cfcb8b5d0bf538f   driver.longhorn.io   pvc-cca05dc8-3108-49b9-97b5-4602a4c2eaff   agent0    true       30h

This looks weird!
The pod insights-insightslooker-0 has 2 volumes (pvc-feef0ae4-6277-4f39-ace2-b5fb94d3c4ad,  pvc-cca05dc8-3108-49b9-97b5-4602a4c2eaff). The pod is scheduled to node agent0 but somehow one of the volumeattachment.storage.k8s.io (csi-170f4a33b65b7cedce7d80745b6ea3911d8d1e7619c4f7432f9fa062cb9af15f) still requesting server0!
volumeattachment.storage.k8s.io is NOT controlled by Longhorn, this is controlled by kube controller manager. So this is very weird that the pod and one of the volumeattachment are not on the same node.
From Longhorn perspective, Longhorn is doing correctly to attach the volume to node agent0 and server0 as tolded by the volumeattachment (which is managed by Kube controller manager)
Is there any chance that any customized script might mess up with creating/deleting volumeattachment here? @mynktl

I found this error in kube-controller-manager logs:
2023-09-28T07:27:51.044177264Z I0928 07:27:51.044106       1 event.go:294] "Event occurred" object="uipath/insights-insightslooker-0" fieldPath="" kind="Pod" apiVersion="v1" type="Warning" reason="FailedAttachVolume" message="Multi-Attach error for volume \"pvc-feef0ae4-6277-4f39-ace2-b5fb94d3c4ad\" Volume is already used by pod(s) insights-insightslooker-6fc49ccf9d-c8f97"

Looks like there is a deployment and a statefulset that has the same name, insights-insightslooker, in this cluster.  They are competing to use the problematic volume pvc-feef0ae4-6277-4f39-ace2-b5fb94d3c4ad. The deployment pod insights-insightslooker-6fc49ccf9d-c8f97 is winning and holding the volume so the statefulset pod insights-insightslooker-0 cannot get it. Can you check if this is bug in your workload manifest @mynktl?

Hi @PhanLe1010
Thanks for looking into support bundle.
This pod insights-insightslooker-6fc49ccf9d-c8f97 is being referenced by old deployment which is being deleted as part of insight-insightlooker upgrade. But somehow due to race condition b/w deletion and creation of new pods, it is being referenced by both at same time.
Shouldn't this error go away once pod insights-insightslooker-6fc49ccf9d-c8f97 is deleted?

@mynktl
In theory, when the old deployment pod is deleted, the new sts pod should eventually be allowed to use the volume.
Can you double-check that the old pod is really gone or stuck in terminating?
Also, due to the Kubernetes controller manager backoff limit, it might take up to 5 minutes for Kubernetes to retry once hits an error multiple times (in this case, the error is the fight between old pod and new pod).

Hi @PhanLe1010

Can you double-check that the old pod is really gone or stuck in terminating?

Old pod is terminated.

Also, due to the Kubernetes controller manager backoff limit, it might take up to 5 minutes for Kubernetes to retry once hits > an error multiple times (in this case, the error is the fight between old pod and new pod).

Right now there is only one pod and its been >4d, but still issue is not getting auto-resolved.
Events:
  Type     Reason       Age                       From     Message
  ----     ------       ----                      ----     -------
  Warning  FailedMount  2m20s (x3122 over 4d21h)  kubelet  (combined from similar events): Unable to attach or mount volumes: unmounted volumes=[insights-looker-workdir], unattached volumes=[insights-looker-lookerdir domain-cert-config istio-token istio-podinfo insights-looker-service-secrets kube-api-access-t2cps tmp workload-certs workload-socket istiod-ca-cert dshm pem additional-ca-cert-config java istio-data edk2 insights-looker-workdir cert-location istio-envoy credential-socket temp-location openssl]: timed out waiting for the condition
[root@server0 ~]# kubectl get pods -n uipath insights-insightslooker-0
NAME                        READY   STATUS     RESTARTS   AGE
insights-insightslooker-0   0/2     Init:0/2   0          4d22h
[root@server0 ~]# kubectl get pvc -n uipath
NAME                            STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS      AGE
insights-looker-datadir-pvc     Bound    pvc-feef0ae4-6277-4f39-ace2-b5fb94d3c4ad   10Gi       RWO            longhorn-backup   5d
insights-looker-lookerdir-pvc   Bound    pvc-cca05dc8-3108-49b9-97b5-4602a4c2eaff   500Mi      RWO            longhorn-backup   5d
[root@server0 ~]# kubectl get volumeattachment |grep -E "pvc-feef0ae4-6277-4f39-ace2-b5fb94d3c4ad|pvc-cca05dc8-3108-49b9-97b5-4602a4c2eaff"
csi-170f4a33b65b7cedce7d80745b6ea3911d8d1e7619c4f7432f9fa062cb9af15f   driver.longhorn.io   pvc-feef0ae4-6277-4f39-ace2-b5fb94d3c4ad   server0   true       4d23h
csi-38f662b1f618f410abdbac6b0265831ec199d0ea43abaea04cfcb8b5d0bf538f   driver.longhorn.io   pvc-cca05dc8-3108-49b9-97b5-4602a4c2eaff   agent0    true       4d22h
[root@server0 ~]# kubectl get pods -n uipath |grep insights-insightslooker
insights-insightslooker-0                                         0/2     Init:0/2    0          4d22h

HI @PhanLe1010,
The kubelet is the culprit here. kubelet is still referring to the stale session, causing the multi-attach error. We have killed the kubelet after scaling down the app pods and ensuring volumes are in detached mode.

@sadhugit
Thanks for the update that kubelet is still referring to the stale session. So looks like the root cause is clear?
That being said, I would like to try to reproduce to see if I hit the same problem. Can you provide the steps that you did in detail? Is there any node restart/rebooting in the process?

@ khushboo-rancher could you see if we need to add any coverage here? Basically, any bugs should have a require/qa-review-coverage label, so @longhorn/qa can review them over time, especially some not planned but reported by community users.

Hi @PhanLe1010
There was no node restart/rebooting-any-process involved.

kubelet is still referring to the stale session
This is not yet clear.
logs.tgz

In old env where we were seeing  this issue, there was uncleaned mount which kubelet was not able to clear. Post deleting volume-attachment manually, kubelet(on old node) was throwing error. Restarting kubelet fixed this issue.
In recent env(logs are attached), kubelet has performed cleaned up for pod mounts from old node but volume-attachment is not getting deleted. And iscsi session still exists on old node. Deleting volume attachment manually is fixing the issue.

Hi @mynktl

Could you give me detailed reproducing steps that you performed?
Next time when the issue happen, can I have access to this dev cluster? my IP <IP_ADDRESS> and my email is<EMAIL_ADDRESS>

Some observation from the support bundle above:
First, old deployment pod insights-insightslooker-859b47877f is deleted. This pod was on node server0
# log from kube-controller-manager
2023-10-04T15:52:18.594244326Z I1004 15:52:18.593603       1 event.go:294] "Event occurred" object="uipath/insights-insightslooker-859b47877f" fieldPath="" kind="ReplicaSet" apiVersion="apps/v1" type="Normal" reason="SuccessfulDelete" message="Deleted pod: insights-insightslooker-859b47877f-692t2"

Then a new statefulset pod is created insights-insightslooker-0. This pod is trying to start on node agent0
# log from kube-controller-manager
2023-10-04T15:52:38.504308167Z I1004 15:52:38.503230       1 event.go:294] "Event occurred" object="uipath/insights-insightslooker" fieldPath="" kind="StatefulSet" apiVersion="apps/v1" type="Normal" reason="SuccessfulCreate" message="create Pod insights-insightslooker-0 in StatefulSet insights-insightslooker successful"

At this point, it makes sense that there is multi-attached error as 2 pods on 2 different nodes are referencing the same volume:
# log from kube-controller-manager
2023-10-04T15:52:38.642397484Z I1004 15:52:38.642317       1 event.go:294] "Event occurred" object="uipath/insights-insightslooker-0" fieldPath="" kind="Pod" apiVersion="v1" type="Warning" reason="FailedAttachVolume" message="Multi-Attach error for volume \"pvc-783d70d5-0226-47fa-a7a7-85e78158d919\" Volume is already used by pod(s) insights-insightslooker-859b47877f-692t2"

Then kubelet on server0 starts teardown/detach the volume pvc-ae7895a2-b778-4e13-8eb9-9e34f800a746
# log from kubelet on server0
I1004 15:52:49.964074  892171 reconciler_common.go:169] "operationExecutor.UnmountVolume started for volume \"insights-looker-workdir\" (UniqueName: \"kubernetes.io/csi/driver.longhorn.io^pvc-ae7895a2-b778-4e13-8eb9-9e34f800a746\") pod \"18bd61d1-64ca-49f3-8ff4-9650787d462d\" (UID: \"18bd61d1-64ca-49f3-8ff4-9650787d462d\") "

The tearing down is done:
# log from kubelet on server0
I1004 15:52:50.049293  892171 operation_generator.go:900] UnmountVolume.TearDown succeeded for volume "kubernetes.io/csi/driver.longhorn.io^pvc-ae7895a2-b778-4e13-8eb9-9e34f800a746" (OuterVolumeSpecName: "insights-looker-workdir") pod "18bd61d1-64ca-49f3-8ff4-9650787d462d" (UID: "18bd61d1-64ca-49f3-8ff4-9650787d462d"). InnerVolumeSpecName "pvc-ae7895a2-b778-4e13-8eb9-9e34f800a746". PluginName "kubernetes.io/csi", VolumeGidValue ""

In theory, kube-controller-manager should delete the volumeAttachment object csi-646eb02c5afaa9f652864e56da200daaa2c9acacc7f0599c3776fb96040c920a as kubelet already cleanuped the mount point. Code ref:

Attach/Detach controller inside kube-controller-manager call this https://github.com/kubernetes/kubernetes/blob/890a139214b4de1f01543d15003b5bda71aae9c7/pkg/volume/csi/csi_attacher.go#L447-L448
Then it delete the volumeattachment object https://github.com/kubernetes/kubernetes/blob/890a139214b4de1f01543d15003b5bda71aae9c7/pkg/controller/volume/attachdetach/reconciler/reconciler.go#L268-L269

However, as shown below, there is no deletiontimestamp for the volumeattachment.
- apiVersion: storage.k8s.io/v1
  kind: VolumeAttachment
  metadata:
    annotations:
      csi.alpha.kubernetes.io/node-id: server0
    creationTimestamp: "2023-10-04T14:47:58Z"
    finalizers:
    - external-attacher/driver-longhorn-io
    name: csi-646eb02c5afaa9f652864e56da200daaa2c9acacc7f0599c3776fb96040c920a
    resourceVersion: "119606"
    uid: d1f51235-05b0-4eda-9736-7bd04c26e018
  spec:
    attacher: driver.longhorn.io
    nodeName: server0
    source:
      persistentVolumeName: pvc-ae7895a2-b778-4e13-8eb9-9e34f800a746

It is unclear why after 1h19mins the volumeattachment csi-646eb02c5afaa9f652864e56da200daaa2c9acacc7f0599c3776fb96040c920a still exists in the support bundle that is created at bundlecreatedat: "2023-10-04T17:11:09Z"
Next action item:
https://github.com/longhorn/longhorn/issues/6804#issuecomment-1760599064

I am not able to fully wrap my head around it, but this seems like it may be related to https://github.com/kubernetes/kubernetes/issues/120571.
Some symptoms from that issue:

We do see "no relationship found between..." type logs for the volume we are investigating.

E1004 14:47:58.225882  892171 nestedpendingoperations.go:348] Operation for "{volumeName:kubernetes.io/csi/driver.longhorn.io^pvc-ae7895a2-b778-4e13-8eb9-9e34f800a746 podName: nodeName:}" failed. No retries permitted until 2023-10-04 14:50:00.22586934 +0000 UTC m=+299.369020588 (durationBeforeRetry 2m2s). Error: MountVolume.WaitForAttach failed for volume "pvc-ae7895a2-b778-4e13-8eb9-9e34f800a746" (UniqueName: "kubernetes.io/csi/driver.longhorn.io^pvc-ae7895a2-b778-4e13-8eb9-9e34f800a746") pod "insights-insightslooker-859b47877f-8bzwv" (UID: "4c3fefa1-3bb7-4106-a5e5-f5d6ff73f5f9") : volume pvc-ae7895a2-b778-4e13-8eb9-9e34f800a746 has GET error for volume attachment csi-646eb02c5afaa9f652864e56da200daaa2c9acacc7f0599c3776fb96040c920a: volumeattachments.storage.k8s.io "csi-646eb02c5afaa9f652864e56da200daaa2c9acacc7f0599c3776fb96040c920a" is forbidden: User "system:node:server0" cannot get resource "volumeattachments" in API group "storage.k8s.io" at the cluster scope: no relationship found between node 'server0' and this object

We do see a kube-controller-manager restart.

# First lines from active kube-controller-manager pod shows start time right after the above log.
2023-10-04T14:50:37.720670069Z W1004 14:50:37.720518       1 feature_gate.go:241] Setting GA feature gate JobTrackingWithFinalizers=true. It will be removed in a future release.
2023-10-04T14:50:37.720694795Z Flag --pod-eviction-timeout has been deprecated, This flag is deprecated and it will be removed in 1.27. Once taint manager is enabled, this flag has no effect.
2023-10-04T14:50:37.922498236Z I1004 14:50:37.922418       1 serving.go:348] Generated self-signed cert in-memory

It looks like @derekbit is investigating https://github.com/kubernetes/kubernetes/issues/120571 as the cause of a similar issue in https://github.com/longhorn/longhorn/issues/4188.

i meet the same problem

same here

I worked on analyzing the bundle from this comment with @PhanLe1010 today.
Given the state of the cluster when the support bundle was captured, the multi-attach error makes sense. @PhanLe1010 discussed the behavior of the pod insights-insightslooker-859b47877f-692t2 on server0, but we missed another pod, insights-insightslooker-859b47877f-8bzwv previously running on server0 that is still there.
The server0 node state shows pvc-ae7895a2-b778-4e13-8eb9-9e34f800a746 in its volumesAttached and volumesInUse.
      volumesAttached:
        - devicePath: "null"
          name: kubernetes.io/csi/driver.longhorn.io^pvc-783d70d5-0226-47fa-a7a7-85e78158d919
        - devicePath: "null"
          name: kubernetes.io/csi/driver.longhorn.io^pvc-ae7895a2-b778-4e13-8eb9-9e34f800a746
      volumesInUse:
        - kubernetes.io/csi/driver.longhorn.io^pvc-783d70d5-0226-47fa-a7a7-85e78158d919
        - kubernetes.io/csi/driver.longhorn.io^pvc-ae7895a2-b778-4e13-8eb9-9e34f800a746

According to crictl, this old pod still exists on the node.
# server0-2023-10-05_05_20_40/rke2/crictl/pods
3e56c2148d4ee       16 hours ago        NotReady            insights-insightslooker-859b47877f-8bzwv                uipath                     0                   (default)

# server0-2023-10-05_05_20_40/rke2/crictl/psa
78d0ed80c2c28       1975a1789b20b       16 hours ago        Exited              insightslooker                            0                   3e56c2148d4ee       insights-insightslooker-859b47877f-8bzwv
c4c0fda6c6058       8dcc4ed7a1e6d       16 hours ago        Exited              istio-proxy                               0                   3e56c2148d4ee       insights-insightslooker-859b47877f-8bzwv
3a52e4387ad65       8dcc4ed7a1e6d       16 hours ago        Exited              istio-init                                0                   3e56c2148d4ee       insights-insightslooker-859b47877f-8bzwv
c2d4d6011f438       7e8db0baba463       16 hours ago        Exited              cert-trustor                              0                   3e56c2148d4ee       insights-insightslooker-859b47877f-8bzwv

And kubelet logs show kubelet managing the pod and volume, but never tearing it down. (NOTE: Kubelet restarts twice during the time the support bundle is captured, and the first time it transitions from v1.24.8 -> v1.26.5, so we may see some weird side effects from that.
According to kubectl, no such pod exists and the corresponding Deployment is deleted. (Checked server0-2023-10-05_05_20_40/rke2/kubectl/pods and server0-2023-10-05_05_20_40/rke2/kubectl/deployments.)
So it seems Kubernetes has forgotten about this pod, but it still exists on the node and kubelet is keeping its volumes in its ActualStateOfWorld. Unless kubelet removes its volumes from its ActualStateOfWorld (and the node object), the attach/detach controller will not delete the VolumeAttachment, and the multi-attach error will remain.

Hi @ejweber @PhanLe1010
How should we handle detaching the volume in this case? Can we have some monitoring job which will remove the volume attachment manually, since there was two restart of kubelet but it didn't help?

@mynktl
I am thinking if your team can somehow scan and delete the pod associated with the old deployment (for example, the pod with the random suffix like insights-insightslooker-859b47877f-8bzwv). That pod seems to be holding the PVC on the node and prevent the PVC from moving to a new node. I remember that you team has updated the nsights-insightslooker from deployment to statefulset so it should be easy to identify the old pod (with random suffix) and the new pod (with deterministic suffix like insights-insightslooker-0, insights-insightslooker-1)


[Bug]: isLowRamDevice is null when hot restarting the app

Platform
Android 13
Plugin
device_info_plus
Version
10.1.0
Flutter SDK
3.19.4
Steps to reproduce
It happens only in my app.
I couldn't reproduce it in another example project.
The first time I run the app, everything works well, but when I hot restart the app, (reloading the entire app), the plugin complains there is no value for isLowRamDevice!
I run the via VSCode, and with AndroidStudio app crashes on launch so I can't debug the plugin.

Code Sample
No response
Logs
➜  fitness git:(complete-profile) ✗ flutter run --verbose
[   +5 ms] executing: sw_vers -productName
[  +26 ms] Exit code 0 from: sw_vers -productName
[        ] macOS
[        ] executing: sw_vers -productVersion
[  +10 ms] Exit code 0 from: sw_vers -productVersion
[        ] 14.1.1
[        ] executing: sw_vers -buildVersion
[   +9 ms] Exit code 0 from: sw_vers -buildVersion
[        ] 23B81
[        ] executing: uname -m
[   +2 ms] Exit code 0 from: uname -m
[        ] arm64
[   +3 ms] executing: sysctl hw.optional.arm64
[   +3 ms] Exit code 0 from: sysctl hw.optional.arm64
[        ] hw.optional.arm64: 1
[  +60 ms] executing: sysctl hw.optional.arm64
[   +4 ms] Exit code 0 from: sysctl hw.optional.arm64
[        ] hw.optional.arm64: 1
[        ] executing: /usr/bin/arch -arm64e xcrun xcodebuild -version
[ +100 ms] Exit code 0 from: /usr/bin/arch -arm64e xcrun xcodebuild -version
[        ] Xcode 15.3
           Build version 15E204a
[   +1 ms] executing: /usr/bin/arch -arm64e xcrun xcdevice list --timeout 5
[   +3 ms] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[        ] Artifact Instance of 'LegacyCanvasKitRemover' is not required, skipping update.
[   +1 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[  +21 ms] executing: /Users/hashem/Library/Android/sdk/platform-tools/adb devices -l
[        ] executing: /usr/bin/arch -arm64e xcrun xcdevice list --timeout 2
[        ] /usr/bin/arch -arm64e xcrun simctl list devices booted iOS --json
[        ] executing: /usr/bin/arch -arm64e xcrun simctl list devices booted iOS --json
[   +1 ms] executing: /usr/bin/arch -arm64e xcrun simctl list devices booted
[  +83 ms] Exit code 0 from: /usr/bin/arch -arm64e xcrun simctl list devices booted
[        ] == Devices ==
           -- iOS 17.4 --
               iPhone 15 Pro (6A850890-01A1-40A8-91F5-E2A5E73E0A96) (Booted)
           -- watchOS 10.4 --
[  +36 ms] List of devices attached
           R5CN80XF0WB            device usb:1048576X product:c2sxeea model:SM_N986B device:c2s transport_id:2
[  +62 ms] {
             "devices" : {
               "com.apple.CoreSimulator.SimRuntime.watchOS-10-4" : [

               ],
               "com.apple.CoreSimulator.SimRuntime.iOS-17-4" : [
                 {
                   "lastBootedAt" : "2024-04-15T13:34:06Z",
                   "dataPath" :
                   "\/Users\/hashem\/Library\/Developer\/CoreSimulator\/Devices\/6A850890-01A1-40A8-91F5-E2A5E73
                   E0A96\/data",
                   "dataPathSize" :<PHONE_NUMBER>,
                   "logPath" :
                   "\/Users\/hashem\/Library\/Logs\/CoreSimulator\/6A850890-01A1-40A8-91F5-E2A5E73E0A96",
                   "udid" : "6A850890-01A1-40A8-91F5-E2A5E73E0A96",
                   "isAvailable" : true,
                   "logPathSize" : 991232,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPhone-15-Pro",
                   "state" : "Booted",
                   "name" : "iPhone 15 Pro"
                 }
               ]
             }
           }

  --------------------   ------------------------------------------
                    ------------------------------------   ------------------   ------------------------------
                    Hashem’s Apple Watch   00008301-208E39480AD8202E.coredevice.local
                    4E78204E-8C70-4E0F-87E1-C6F897773464   unavailable          Apple Watch SE (Watch6,11)
                    Hashem’s iPhone        00008120-000470C0149B401E.coredevice.local
                    A8EFC798-9250-47FF-8E2E-00CCD15B08BD   available (paired)   iPhone 14 Pro Max (iPhone15,3)
[   +1 ms] {
             "info" : {
               "arguments" : [
                 "devicectl",
                 "list",
                 "devices",
                 "--timeout",
                 "5",
                 "--json-output",
                 "/var/folders/qf/vst62vy53379mr_g978x04ww0000gn/T/flutter_tools.K0O8zd/core_devices.QRfDYG/core
                 _device_list.json"
               ],
               "commandType" : "devicectl.list.devices",
               "environment" : {
                 "TERM" : "xterm-256color"
               },
               "jsonVersion" : 2,
               "outcome" : "success",
               "version" : "355.24"
             },
             "result" : {
               "devices" : [
                 {
                   "capabilities" : [
                     {
                       "featureIdentifier" : "com.apple.coredevice.feature.unpairdevice",
                       "name" : "Unpair Device"
                     }
                   ],
                   "connectionProperties" : {
                     "authenticationType" : "manualPairing",
                     "isMobileDeviceOnly" : false,
                     "lastConnectionDate" : "2024-04-17T17:05:39.717Z",
                     "pairingState" : "paired",
                     "potentialHostnames" : [
                       "00008301-208E39480AD8202E.coredevice.local",
                       "4E78204E-8C70-4E0F-87E1-C6F897773464.coredevice.local"
                     ],
                     "tunnelState" : "unavailable"
                   },
                   "deviceProperties" : {
                     "bootedFromSnapshot" : true,
                     "bootedSnapshotName" :
                     "com.apple.os.update-8C16AAC08857A52E4C808DC5FCA79DC5582B2DE58F865EFC6EE02A7E3A315442D3FC3D
                     02FB1BD3053A84978B059CC927",
                     "ddiServicesAvailable" : false,
                     "developerModeStatus" : "enabled",
                     "hasInternalOSBuild" : false,
                     "name" : "Hashem’s Apple Watch",
                     "osBuildUpdate" : "21T216",
                     "osVersionNumber" : "10.4",
                     "rootFileSystemIsWritable" : false
                   },
                   "hardwareProperties" : {
                     "cpuType" : {
                       "name" : "arm64_32",
                       "subType" : 1,
                       "type" : 33554444
                     },
                     "deviceType" : "appleWatch",
                     "ecid" :<PHONE_NUMBER>488971822,
                     "hardwareModel" : "N143bAP",
                     "internalStorageCapacity" :<PHONE_NUMBER>0,
                     "isProductionFused" : true,
                     "marketingName" : "Apple Watch SE",
                     "platform" : "watchOS",
                     "productType" : "Watch6,11",
                     "reality" : "physical",
                     "serialNumber" : "J0Y9W49VH7",
                     "supportedCPUTypes" : [
                       {
                         "name" : "arm64_32",
                         "subType" : 1,
                         "type" : 33554444
                       }
                     ],
                     "thinningProductType" : "Watch6,11",
                     "udid" : "00008301-208E39480AD8202E"
                   },
                   "identifier" : "4E78204E-8C70-4E0F-87E1-C6F897773464",
                   "visibilityClass" : "default"
                 },
                 {
                   "capabilities" : [
                     {
                       "featureIdentifier" : "com.apple.coredevice.feature.connectdevice",
                       "name" : "Connect to Device"
                     },
                     {
                       "featureIdentifier" : "com.apple.coredevice.feature.unpairdevice",
                       "name" : "Unpair Device"
                     },
                     {
                       "featureIdentifier" : "com.apple.coredevice.feature.acquireusageassertion",
                       "name" : "Acquire Usage Assertion"
                     }
                   ],
                   "connectionProperties" : {
                     "authenticationType" : "manualPairing",
                     "isMobileDeviceOnly" : false,
                     "lastConnectionDate" : "2024-04-23T14:30:54.033Z",
                     "pairingState" : "paired",
                     "potentialHostnames" : [
                       "00008120-000470C0149B401E.coredevice.local",
                       "A8EFC798-9250-47FF-8E2E-00CCD15B08BD.coredevice.local"
                     ],
                     "transportType" : "wired",
                     "tunnelState" : "disconnected",
                     "tunnelTransportProtocol" : "tcp"
                   },
                   "deviceProperties" : {
                     "bootedFromSnapshot" : true,
                     "bootedSnapshotName" :
                     "com.apple.os.update-AD0CF991ACFF92A64166A76A3D1262AE42A3F56F305AF5AE1935393A7A14A7D3",
                     "ddiServicesAvailable" : false,
                     "developerModeStatus" : "enabled",
                     "hasInternalOSBuild" : false,
                     "name" : "Hashem’s iPhone",
                     "osBuildUpdate" : "21E236",
                     "osVersionNumber" : "17.4.1",
                     "rootFileSystemIsWritable" : false
                   },
                   "hardwareProperties" : {
                     "cpuType" : {
                       "name" : "arm64e",
                       "subType" : 2,
                       "type" : 16777228
                     },
                     "deviceType" : "iPhone",
                     "ecid" :<PHONE_NUMBER>593182,
                     "hardwareModel" : "D74AP",
                     "internalStorageCapacity" :<PHONE_NUMBER>00,
                     "isProductionFused" : true,
                     "marketingName" : "iPhone 14 Pro Max",
                     "platform" : "iOS",
                     "productType" : "iPhone15,3",
                     "reality" : "physical",
                     "serialNumber" : "KJGVWD4NR4",
                     "supportedCPUTypes" : [
                       {
                         "name" : "arm64e",
                         "subType" : 2,
                         "type" : 16777228
                       },
                       {
                         "name" : "arm64",
                         "subType" : 0,
                         "type" : 16777228
                       },
                       {
                         "name" : "arm64",
                         "subType" : 1,
                         "type" : 16777228
                       },
                       {
                         "name" : "arm64_32",
                         "subType" : 1,
                         "type" : 33554444
                       }
                     ],
                     "supportedDeviceFamilies" : [
                       1
                     ],
                     "thinningProductType" : "iPhone15,3",
                     "udid" : "00008120-000470C0149B401E"
                   },
                   "identifier" : "A8EFC798-9250-47FF-8E2E-00CCD15B08BD",
                   "visibilityClass" : "default"
                 }
               ]
             }
           }

[   +4 ms] Error: Hashem’s iPhone is not connected. Xcode will continue when Hashem’s iPhone is connected and
unlocked. (code -13)
[   +2 ms] /Users/hashem/Library/Android/sdk/platform-tools/adb -s R5CN80XF0WB shell getprop
[ +127 ms] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[   +2 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[  +37 ms] Connected devices:
[        ] ro.hardware = exynos990
[        ] ro.build.characteristics = phone
[  +78 ms] SM N986B (mobile)        • R5CN80XF0WB                          • android-arm64  • Android 13 (API
33)
[        ] Hashem’s iPhone (mobile) • 00008120-000470C0149B401E            • ios            • iOS 17.4.1 21E236
[        ] iPhone 15 Pro (mobile)   • 6A850890-01A1-40A8-91F5-E2A5E73E0A96 • ios            •
           com.apple.CoreSimulator.SimRuntime.iOS-17-4 (simulator)
[        ] macOS (desktop)          • macos                                • darwin-arm64   • macOS 14.1.1 23B81
           darwin-arm64
[        ] Chrome (web)             • chrome                               • web-javascript • Google Chrome
124.0.6367.78

Flutter Doctor
[✓] Flutter (Channel stable, 3.19.4, on macOS 14.1.1 23B81 darwin-arm64, locale en-US)
    • Flutter version 3.19.4 on channel stable at /Users/Shared/flutter-sdk
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 68bfaea224 (5 weeks ago), 2024-03-20 15:36:31 -0700
    • Engine revision a5c24f538d
    • Dart version 3.3.2
    • DevTools version 2.31.1

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/hashem/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.9+0-17.0.9b1087.7-11185874)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15E204a
    • CocoaPods version 1.15.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2023.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.9+0-17.0.9b1087.7-11185874)

[✓] VS Code (version 1.88.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.86.0

[✓] Connected device (5 available)
    • SM N986B (mobile)        • R5CN80XF0WB                          • android-arm64  • Android 13 (API 33)
    • Hashem’s iPhone (mobile) • 00008120-000470C0149B401E            • ios            • iOS 17.4.1 21E236
    • iPhone 15 Pro (mobile)   • 6A850890-01A1-40A8-91F5-E2A5E73E0A96 • ios            •
      com.apple.CoreSimulator.SimRuntime.iOS-17-4 (simulator)
    • macOS (desktop)          • macos                                • darwin-arm64   • macOS 14.1.1 23B81
      darwin-arm64
    • Chrome (web)             • chrome                               • web-javascript • Google Chrome
      124.0.6367.78
    ! Error: Browsing on the local area network for Hashem’s Apple Watch. Ensure the device is unlocked and
      discoverable via Bluetooth. (code -27)

[✓] Network resources
    • All expected network resources are available.

• No issues found!

Checklist before submitting a bug

[X] I searched issues in this repository and couldn't find such bug/problem
[X] I Google'd a solution and I couldn't find it
[X] I searched on StackOverflow for a solution and I couldn't find it
[X] I read the README.md file of the plugin
[X] I'm using the latest version of the plugin
[X] All dependencies are up to date with flutter pub upgrade
[X] I did a flutter clean
[X] I tried running the example project

Could you provide some code sample on how do you setup and use the plugin to catch the problem since you mentioned that you can't reproduce it in the example app? There is definitely something with the way you setup the plugin if you can catch it only in your project.

Finally I found the issue, it was very very tricky.
In short: the Android project namespace should be in sync with folder structure.
last year I created the project using flutter default namespace: com.example.my_app and recently I migrated the project to use namespace in build.gradle. so the namespace was com.mycompany.my_app.  and because previous successful build was cached, it was able to find MainActivity in com/mycompany/my_app folder, but the new builds were not using the new namespace! so the first run everything was fine, but after hot reload, the plugin couldn't find proper activity matching new namespace, caused it to be null.
I restructured the android project folders to match the new namespace and now the issue resolved.

Thank you very much for providing details. Indeed an interesting edge case.


[Documentation] Application class no longer accepts options parameter

Search terms
Application, documentation
Expected Behavior
I expect the intellisense to not suggest a parameter when it is not accepted.
Actual Behavior
When utilizing the Application class the comments hint that it accepts an options argument in the constructor.
Steps to reproduce the bug
go to https://github.com/TypeStrong/typedoc/blob/v0.23.24/src/lib/application.ts#L115
and notice that the @param note is incorrect

Environment

Typedoc version: 23.24
TypeScript version: N/A
Node.js version: N/A
OS: N/A

I would tag it documentation if I could!

Resolved by #2167


Vulnerability roundup 107: libxsmm-1.16.1: 2 advisories [8.8]

search, files

[ ] CVE-2021-39536 CVSSv3=8.8 (nixos-21.05)
[ ] CVE-2021-39535 CVSSv3=6.5 (nixos-21.05)

CVE details
CVE-2021-39536
An issue was discovered in libxsmm through v1.16.1-93. The JIT code has a heap-based buffer overflow.
CVE-2021-39535
An issue was discovered in libxsmm through v1.16.1-93. A NULL pointer dereference exists in JIT code. It allows an attacker to cause Denial of Service.

Scanned versions: nixos-21.05: 3b1789322fc.
Cc @chessai

Fixed in https://github.com/NixOS/nixpkgs/pull/136899


/usr/local/lib/ruby/3.3.0/bundled_gems.rb:74:in `require': cannot load such file -- opal (LoadError)

Expected behavior and actual behavior
Expect you could install middleman, add files to the lib folder & middleman would still work
Steps to reproduce the problem (from a clean middleman installation)
install middleman and add any file to lib/ folder (ex. test.rb) and you'll the the error below
Additional information

Ruby version:  3.3.0
Middleman version:  4.5.1
OS version:  debian 12.5

Error
web-1  | Please report a bug if this causes problems.
web-1  | /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74:in `require': cannot load such file -- opal (LoadError)
web-1  |        from /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74:in `block (2 levels) in replace_require'
web-1  |        from /usr/local/bundle/gems/tilt-2.0.11/lib/tilt/mapping.rb:243:in `block in lazy_load'
web-1  |        from /usr/local/bundle/gems/tilt-2.0.11/lib/tilt/mapping.rb:241:in `each'
web-1  |        from /usr/local/bundle/gems/tilt-2.0.11/lib/tilt/mapping.rb:241:in `lazy_load'
web-1  |        from /usr/local/bundle/gems/tilt-2.0.11/lib/tilt/mapping.rb:216:in `lookup'
web-1  |        from /usr/local/bundle/gems/tilt-2.0.11/lib/tilt/mapping.rb:154:in `[]'
web-1  |        from /usr/local/bundle/gems/tilt-2.0.11/lib/tilt.rb:48:in `[]'
web-1  |        from /usr/local/bundle/gems/middleman-core-4.5.1/lib/middleman-core/sources/source_watcher.rb:338:in `strip_extensions'
web-1  |        from /usr/local/bundle/gems/contracts-0.16.1/lib/contracts/method_reference.rb:43:in `send_to'
web-1  |        from /usr/local/bundle/gems/contracts-0.16.1/lib/contracts/call_with.rb:87:in `call_with_inner'
web-1  |        from /usr/local/bundle/gems/contracts-0.16.1/lib/contracts/method_handler.rb:133:in `block (2 levels) in redefine_method'
web-1  |        from /usr/local/bundle/gems/contracts-0.16.1/lib/contracts/method_handler.rb:132:in `each'
web-1  |        from /usr/local/bundle/gems/contracts-0.16.1/lib/contracts/method_handler.rb:132:in `block in redefine_method'
web-1  |        from /usr/local/bundle/gems/middleman-core-4.5.1/lib/middleman-core/sources/source_watcher.rb:326:in `record_file_change'
web-1  |        from /usr/local/bundle/gems/contracts-0.16.1/lib/contracts/method_reference.rb:43:in `send_to'
web-1  |        from /usr/local/bundle/gems/contracts-0.16.1/lib/contracts/call_with.rb:87:in `call_with_inner'
web-1  |        from /usr/local/bundle/gems/contracts-0.16.1/lib/contracts/method_handler.rb:133:in `block (2 levels) in redefine_method'
web-1  |        from /usr/local/bundle/gems/contracts-0.16.1/lib/contracts/method_handler.rb:132:in `each'
web-1  |        from /usr/local/bundle/gems/contracts-0.16.1/lib/contracts/method_handler.rb:132:in `block in redefine_method'
web-1  |        from /usr/local/bundle/gems/middleman-core-4.5.1/lib/middleman-core/sources/source_watcher.rb:265:in `block in update'
web-1  |        from /usr/local/bundle/gems/middleman-core-4.5.1/lib/middleman-core/sources/source_watcher.rb:264:in `each'
web-1  |        from /usr/local/bundle/gems/middleman-core-4.5.1/lib/middleman-core/sources/source_watcher.rb:264:in `update'
web-1  |        from /usr/local/bundle/gems/contracts-0.16.1/lib/contracts/method_reference.rb:43:in `send_to'
web-1  |        from /usr/local/bundle/gems/contracts-0.16.1/lib/contracts/call_with.rb:87:in `call_with_inner'
web-1  |        from /usr/local/bundle/gems/contracts-0.16.1/lib/contracts/method_handler.rb:133:in `block (2 levels) in redefine_method'
web-1  |        from /usr/local/bundle/gems/contracts-0.16.1/lib/contracts/method_handler.rb:132:in `each'
web-1  |        from /usr/local/bundle/gems/contracts-0.16.1/lib/contracts/method_handler.rb:132:in `block in redefine_method'
web-1  |        from /usr/local/bundle/gems/middleman-core-4.5.1/lib/middleman-core/sources/source_watcher.rb:212:in `poll_once!'
web-1  |        from /usr/local/bundle/gems/contracts-0.16.1/lib/contracts/method_reference.rb:43:in `send_to'
web-1  |        from /usr/local/bundle/gems/contracts-0.16.1/lib/contracts/call_with.rb:87:in `call_with_inner'
web-1  |        from /usr/local/bundle/gems/contracts-0.16.1/lib/contracts/method_handler.rb:133:in `block (2 levels) in redefine_method'
web-1  |        from /usr/local/bundle/gems/contracts-0.16.1/lib/contracts/method_handler.rb:132:in `each'
web-1  |        from /usr/local/bundle/gems/contracts-0.16.1/lib/contracts/method_handler.rb:132:in `block in redefine_method'
web-1  |        from /usr/local/bundle/gems/middleman-core-4.5.1/lib/middleman-core/sources.rb:241:in `block in poll_once!'
web-1  |        from /usr/local/bundle/gems/middleman-core-4.5.1/lib/middleman-core/sources.rb:241:in `each'
web-1  |        from /usr/local/bundle/gems/middleman-core-4.5.1/lib/middleman-core/sources.rb:241:in `reduce'
web-1  |        from /usr/local/bundle/gems/middleman-core-4.5.1/lib/middleman-core/sources.rb:241:in `poll_once!'
web-1  |        from /usr/local/bundle/gems/contracts-0.16.1/lib/contracts/method_reference.rb:43:in `send_to'
web-1  |        from /usr/local/bundle/gems/contracts-0.16.1/lib/contracts/call_with.rb:87:in `call_with_inner'
web-1  |        from /usr/local/bundle/gems/contracts-0.16.1/lib/contracts/method_handler.rb:133:in `block (2 levels) in redefine_method'
web-1  |        from /usr/local/bundle/gems/contracts-0.16.1/lib/contracts/method_handler.rb:132:in `each'
web-1  |        from /usr/local/bundle/gems/contracts-0.16.1/lib/contracts/method_handler.rb:132:in `block in redefine_method'
web-1  |        from /usr/local/bundle/gems/middleman-core-4.5.1/lib/middleman-core/core_extensions/file_watcher.rb:47:in `before_configuration'
web-1  |        from /usr/local/bundle/gems/contracts-0.16.1/lib/contracts/method_reference.rb:43:in `send_to'
web-1  |        from /usr/local/bundle/gems/contracts-0.16.1/lib/contracts/call_with.rb:87:in `call_with_inner'
web-1  |        from /usr/local/bundle/gems/contracts-0.16.1/lib/contracts/method_handler.rb:133:in `block (2 levels) in redefine_method'
web-1  |        from /usr/local/bundle/gems/contracts-0.16.1/lib/contracts/method_handler.rb:132:in `each'
web-1  |        from /usr/local/bundle/gems/contracts-0.16.1/lib/contracts/method_handler.rb:132:in `block in redefine_method'
web-1  |        from /usr/local/bundle/gems/middleman-core-4.5.1/lib/middleman-core/callback_manager.rb:57:in `instance_exec'
web-1  |        from /usr/local/bundle/gems/middleman-core-4.5.1/lib/middleman-core/callback_manager.rb:57:in `block in execute'
web-1  |        from /usr/local/bundle/gems/hamster-3.0.0/lib/hamster/vector.rb:1316:in `each'
web-1  |        from /usr/local/bundle/gems/hamster-3.0.0/lib/hamster/vector.rb:1316:in `traverse_depth_first'
web-1  |        from /usr/local/bundle/gems/hamster-3.0.0/lib/hamster/vector.rb:431:in `each'
web-1  |        from /usr/local/bundle/gems/middleman-core-4.5.1/lib/middleman-core/callback_manager.rb:57:in `execute'
web-1  |        from /usr/local/bundle/gems/contracts-0.16.1/lib/contracts/method_reference.rb:43:in `send_to'
web-1  |        from /usr/local/bundle/gems/contracts-0.16.1/lib/contracts/call_with.rb:87:in `call_with_inner'
web-1  |        from /usr/local/bundle/gems/contracts-0.16.1/lib/contracts/method_handler.rb:133:in `block (2 levels) in redefine_method'
web-1  |        from /usr/local/bundle/gems/contracts-0.16.1/lib/contracts/method_handler.rb:132:in `each'
web-1  |        from /usr/local/bundle/gems/contracts-0.16.1/lib/contracts/method_handler.rb:132:in `block in redefine_method'
web-1  |        from /usr/local/bundle/gems/middleman-core-4.5.1/lib/middleman-core/callback_manager.rb:28:in `block in install_methods!'
web-1  |        from /usr/local/bundle/gems/middleman-core-4.5.1/lib/middleman-core/application.rb:283:in `initialize'
web-1  |        from /usr/local/bundle/gems/middleman-cli-4.5.1/bin/middleman:49:in `new'
web-1  |        from /usr/local/bundle/gems/middleman-cli-4.5.1/bin/middleman:49:in `<top (required)>'
web-1  |        from /usr/local/bundle/bin/middleman:25:in `load'
web-1  |        from /usr/local/bundle/bin/middleman:25:in `<main>'

This issue looked related... https://github.com/middleman/middleman/issues/2015
adding the gem
gem 'opal'

results in
(eval at /usr/local/bundle/gems/tilt-2.0.11/lib/tilt/mapping.rb:246):1:in `block in lazy_load': uninitialized constant Opal::Processor (NameError)

at which point I found this issue: https://github.com/middleman/middleman/issues/2139
gem 'opal', '~> 0.10.5'

which results in
/usr/local/lib/ruby/3.3.0/bundled_gems.rb:74:in `require': cannot load such file -- racc/parser.rb (LoadError)

and searching around I found suggestions that I should
gem 'racc'

which brings us back to
/usr/local/bundle/gems/opal-0.11.4/lib/opal/paths.rb:8:in `core_dir': undefined method `untaint' for an instance of String (NoMethodError)

And I'm in way over my head.  How does anyone use middleman these days?  Am I on the wrong ruby or something?


Tree Shaking Seems to be not Working

🐛 Bug Report
When using loadable components route-based code-splitting seems to be working fine, but Webpack's tree shaking functionality seems to be broken. A named export should not force a bundle to have all the exported code in it.
In this case we have an component (./lib/index.jsx) that has two sub components called module1 (./lib/module1/module1.jsx) and module2 (./lib/module1/module2.jsx). Module1 exports a constant called FOO_BAR that is then imported by Module2 as a named import.
When looking at the build output, you'll find Module2 containing Module1 completely and not only the string that is needed.
(window.__LOADABLE_LOADED_CHUNKS__=window.__LOADABLE_LOADED_CHUNKS__||[]).push([[2,1],[,,,function(n,t,u){"use strict";u.r(t),u.d(t,"default",(function(){return i})),u.d(t,"FOO_BAR",(function(){return _}));var e=u(0),r=u.n(e),_="foo",i=function(){return r.a.createElement("div",null,"module1")}},function(n,t,u){"use strict";u.r(t),u.d(t,"default",(function(){return i}));var e=u(0),r=u.n(e),_=u(3),i=function(){return r.a.createElement("div",null,_.FOO_BAR)}}]]);

To Reproduce
Steps to reproduce the behavior:
  yarn install
  yarn build
  open ./dist/analyze.html

Expected behavior
The Output of Module2 should not include the complete Module1-file, but instead the Variable named FOO_BAR.
Link to repl or repo (highly encouraged)
https://github.com/dazlious/treeshaking-dynamic-imports
## System:
 - OS: macOS 10.15.2
 - CPU: (4) x64 Intel(R) Core(TM) i5-7267U CPU @ 3.10GHz
 - Memory: 403.89 MB / 16.00 GB
 - Shell: 5.7.1 - /usr/local/bin/zsh
## Binaries:
 - Node: 10.16.0 - ~/.nvm/versions/node/v10.16.0/bin/node
 - Yarn: 1.21.1 - ~/.yarn/bin/yarn
 - npm: 6.9.0 - ~/.nvm/versions/node/v10.16.0/bin/npm
## npmPackages:
 - @loadable/babel-plugin: ^5.12.0 => 5.12.0
 - @loadable/component: ^5.12.0 => 5.12.0
 - @loadable/webpack-plugin: ^5.12.0 => 5.12.0

When looking at the build output, you'll find Module2 containing Module1 completely and not only the string that is needed.

Because the "module" is a singleton. If it is used in two places - it would be bundled in the "maximum" required form.
This is why tree-shaking is not a good thing - as you application grow, you will eventually consume all the features from one module, and it would be included just as is.
See https://github.com/webpack/webpack/issues/7782 for details.


DocsArchive-<IP_ADDRESS>Auto archive content

Please don't merge this PR until target archive repo PR https://github.com/OPS-E2E-PPE/docs-archive-test-target_3bba5f9a-1a38-4f7f-a066-0ba867d50965/pull/1 is merged into live branch.
Auto archive content to https://github.com/opstest2/docs-archive-test-target_3bba5f9a-1a38-4f7f-a066-0ba867d50965.git

Docs Build status updates of commit 352ea72:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error-GitBranchDeletedOrForcePushed] Cannot sync git repo to specified commit because branch Release_Archive_master_2021-05-26-22-44-30 has been deleted or has been force pushed

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


createTextEditorDecorationType doesn't display text in single quotes

Version 1.8.1
Commit ee428b0eead68bf0fb99ab5fdc4439be227b6281
Date 2016-12-19T14:41:20.664Z
Shell 1.4.6
Renderer 53.0.2785.143
Node 6.5.0

OS Version: Ubuntu 16.10

When I add a decoration like this:
                  const decoration = vscode.window.createTextEditorDecorationType({
                    isWholeLine: true,
                    backgroundColor: `rgba(255,0,0, 0.5)`,
                    color: 'white',
                    after: {
                      contentText: `'this is not visible'`,
                      color: 'rgba(1, 1, 1, 1.0)'
                    }
                  })
                  const range = new Range(line, 0, line, 1000)
                  window.activeTextEditor.setDecorations(decoration, [range])

the textContent 'this is not visible' is not visible.
Also when I put in just ' it displays some css.

fixed by #18361


Query on multiple indices

I don't think it's currently possible to filter on multiple indices at once. For example, I want to search the 'name' property in the 'products' AND 'categories' index.
I would like to have something like: Elasticsearch::query(['products', 'categories'])
What do you think about this feature? Can I add this in the query method and Builder?

It is not possible at the moment but I do like this feature. We just need to figure out how to map different indices onto their respective model or return the ElasticHit Object.


Need a new release with updated bindbc-sdl dependency

The bindbc-sdl dependency in master is 1.1.2, but the last bindbc-imgui release (0.7.0) depends on 0.21.4. This is causing a conflict in inochi-creator. See<EMAIL_ADDRESS>Please tag a new bindbc-imgui release so that the updated dependency is out there.

Oops I forgot to post my reply to this the other day.
Basically, from what I can see the user who posted that on the forums made an error. First of all, when building Inochi-Creator you’re meant to manually download the ~master branch of all of its dependencies from the appropriate Inochi2D/ repositories and use dub add-local on them. Inochi-Creator is also not a library, so the fact that they added it as a dependency means that they weren’t using the package correctly. Lastly, I cannot guarantee that the most recent commit is a stable version, or in any way API-compatible with 0.7.0.


LOB API - Redis Queue Implementation for WF instantiation

Title of ticket:
Description
As part of design we decided to create a loosely coupled mechanism to trigger WF. this is planned to implement with Redis PUB-SUB .
Dependencies
Are there any dependencies?
Redis
DOD

@acoard-aot @divyav-aot @sumathi-thirumani-aot This can be pushed to closed once code review is complete along with technical tasks in review. Once any users stories are ready to review feel free to put in Ready to QA


#292, fix mac osx build with llvm@35

addresses #292

Are we going to merge this?

I think that #299 has already covered this in a different way?

Oh, then I guess this PR can be closed.  But wait, why did my PR yesterday (https://github.com/Morgan-Stanley/hobbes/pull/306#issuecomment-559879579) fail when building llvm@4 then?

Oh, then I guess this PR can be closed. But wait, why did my PR yesterday (#306 (comment)) fail when building llvm@4 then?

looks like a different cause, where llvm@4 has been deleted from brew on travis-ci.  Would you update llvm to a newer version for osx build?

I know this is a stale PR, but I figured this was the appropriate place to comment.
I have been trying to build hobbes on macOS Mojave for a few days with little success.
I have tried LLVM 3.5, 3.9, 4.0, 6.0, 8.0, 9.0 but they all have different issues that come up.
I tried finding the supported version of LLVM, but it was unclear.
I would very much appreciate advice on how to build on my mac.
ps. I also tried building on Linux llvm6 with no success. I think at this point, in my inexperience, I'm missing something pretty critical.

I know this is a stale PR, but I figured this was the appropriate place to comment.

Hi andrew, any place is a good place to comment!  Actually this PR seems to be relevant, though also seems to be stale as you say.  Also feel free to open an issue if you'd like, we aren't mean about it.  :)

I have been trying to build hobbes on macOS Mojave for a few days with little success.
I have tried LLVM 3.5, 3.9, 4.0, 6.0, 8.0, 9.0 but they all have different issues that come up.

How are you trying LLVM versions and what cmake version are you using?  I hit a few issues going to macOS Mojave a while back myself, the upgrade broke a few other things (e.g. macports, if you use that package manager).
It's a little bit to wade through, but the travis-ci config script in the hobbes repo has recipes for installing and building hobbes on macOS and Linux targets (https://github.com/Morgan-Stanley/hobbes/blob/master/.travis.yml), and this is what is used to build and test/verify hobbes with each pull request.
For macOS targets, it looks like this (using the homebrew package manager for macOS -- https://brew.sh):
DEPS="${DEPS} readline llvm@6"
brew update && brew install -v ${DEPS}

LLVM_DIR=/usr/local/opt/llvm@6/lib/cmake/llvm/
mkdir build && cd build/ && cmake .. && make && make test

That should get LLVM 6 (chosen arbitrarily, I've actually found that the earlier LLVM JIT is better, though that's a long story), then invokes cmake to generate a local makefile, and then make to build it.
I don't think that the JIT engine has been a priority for the LLVM maintainers, and I've frequently considered moving hobbes to a custom backend just to drop the dependency (there is actually a small custom backend implemented in hobbes: https://github.com/Morgan-Stanley/hobbes/tree/master/include/hobbes/mc).  It would definitely simplify building and make the project very lightweight and easy to include elsewhere.  Probably if I get a few folks interested in that option, I'll put in the elbow grease to do it.  :D

BTW, thomaz also got us building through nix, if you're familiar with that system it should be very easy (I have less experience with nix than he does but I need to learn more, I know some other folks using hobbes and nix).
Also if you hit errors and you're not sure to go with them, maybe start an issue here and copy/paste the specific details.  It might be something that we can work through together (like e.g. something specific to Mojave).
If you'd rather not go through that in public for whatever reason, please feel free to send me a private email.  I collaborate with a lot of people via email already, it's no problem.  :)

That did the trick! I'm not sure what was missing from the llvm6 I downloaded and built, but the brew version worked like a charm.
It took a while to build, but it seems like it's working (the hi interpreter launches fine).
Thank you for walking me through the proper dependencies. Cheers!

Excellent!


fix(ci): Rollback kind image

Rollback kind image change done in #4946 that might be the root cause for custom operator e2e test failure on metrics.

Release Note
NONE

@squakez LGTM. The metrics failure is no longer present.


Fix indentation.

Codecov Report

Merging #79 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff          @@
##           master    #79   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           3      3
  Lines         175    175
  Branches       27     27
=====================================
  Hits          175    175

Continue to review full report at Codecov.

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

thx

:tada: This PR is included in version 1.5.17 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Add typescript support

Hello again, @abhinaba-ghosh
I was wondering if TypeScript support can also be added in to the project or directions could be provided on how to run with TypeScript.
Right now, if changing test file from JS to TS and leaving everything else the same, there is an error for currentUrl:
Argument of type '{ url: any; cdpPort: number; htmlReport: true; reportDir: string; reportName: string; }' is not assignable to parameter of type 'testCafeLighthouseConfig'.   Object literal may only specify known properties, and 'url' does not exist in type 'testCafeLighthouseConfig'.ts(2345) const currentURL: any
Here is the full test file:
`import { testcafeLighthouseAudit } from 'testcafe-lighthouse';
fixture(Audit Test).page("http://www.google.com");
//to set thresholds, consult https://github.com/abhinaba-ghosh/testcafe-lighthouse
test("user performs lighthouse audit", async t => {
const currentURL = await t.eval(() => document.documentURI);
await testcafeLighthouseAudit({
url: currentURL,
cdpPort: 9222,
htmlReport: true, //defaults to false
reportDir: results, //defaults to ${process.cwd()}/lighthouse
reportName: lighthouse-${new Date().getTime()}.html //defaults to lighthouse-${new Date().getTime()}.html
});
});`
Thanks

Hi @alexyem0222 , thanks for pointing out. Type definitions were always present, but I missed the url part in the types. Please upgrade to version 1.2.1
You may also want to add types in the tsconfig.json file like:
{
  "compilerOptions": {
    "types": [...other types, "testcafe-lighthouse"]
  }
}

Let me know if this works!

htmlReport: true, //defaults to false
reportDir: results, //defaults to ${process.cwd()}/lighthouse
reportName: lighthouse-${new Date().getTime()}.html //defaults to lighthouse-${new Date().getTime()}.html
});
});`

Do not use the comments in the config. It will throw error :)

This works, thanks for the quick fix @abhinaba-ghosh!


Add a graph minimap

Not sure how feasible this one is, but adding a mini-map on the side of the graph edit would help navigating large graphs.

See also https://github.com/godotengine/godot-proposals/issues/672.

Added in 20c9605695c2f3383a4571fe9661f8883bed548c


PowertoysRun "Admin: Can't start UWP"

Microsoft PowerToys version
0.61.1
Running as admin

[X] Yes

Area(s) with issue?
PowerToys Run
Steps to reproduce

✔ Expected Behavior
To launch my Microsoft Edge 'Apps' or PWA's via PowertoysRun as I always have.
❌ Actual Behavior
Error message

Other Software
Windows 11 21H2 (OS Build 22000.918)
This issue didn't start due to updating versions of the OS, it started randomly.

@Cal369
What do you mean with 'Admin' (user type, running elecated, built-in admin)?

@Cal369
What do you mean with 'Admin' (user type, running elecated, built-in admin)?

That was a Github generated question. I run Powertoys as Administrator (Windows)

It looks like a Edge Browser issue as Powertoys Run launches in everything else perfectly. PWAs still launch from 'Manage Apps' within Edge.

Hi @Cal369
Are you still experiencing this issue on latest version of PowerToys?
/needinfo


ensure that laravel tagged cache indices are refreshed on access

This is a non-issue.  We are setting the TTL for the indices to MaxInt, and we do that on every write operation, so they will never expire before the item expires.


Attempting to mount a writable directory under a read-only directory doesn't work

Description
Lima version 0.11.0 Mac OS Monterey
With the default configuration and adding an additional mount:
mounts:
- location: "~"
- location: "/tmp/lima"
  writable: true
- location: "~/dev"
  writable: true

I would always receive the following message when starting the container:
INFO[0032] [hostagent] Mounting "/Users/gteu/dev"
INFO[0032] [hostagent] fusermount3: user has no write access to mountpoint /Users/gteu/dev
WARN[0064] [hostagent] failed to confirm whether /Users/gteu/dev [remote] is successfully mounted

However, I was able to get the mount to work by making the following modification to lima.yaml (eliminating the home directory read-only mount):
mounts:
- location: "~/dev"
  writable: true
- location: "/tmp/lima"
  writable: true

This suggests that the home directory read-only directive prevented the sub directory writable directive. This feels like a bug? I believe I read somewhere that sub-directory mounts should override any parent directory settings. If that behavior is intended, some further documentation to indicate that fact would be helpful.

I know that overlapping mounts do not work properly with sshfs (see #302). Have you tried using the 9p mount type to see if it works there?

I got the same problem. Is there any way to do it without changing to other mount type? I need to mount a writable directory to lima for use of Harbor.

Use a disk image that gets mounted in /Volumes/VOLUME_NAME?

I have the same issues.
I switched to virtiofs and now it works fine.
https://github.com/lima-vm/lima/blob/master/docs/vmtype.md#vz

Seems like a documentation issue with maybe some upstream issues. Support doesn't seem to be missing where it's available on the underlying setup.

Is there any way to do it without changing to other mount type?

I have not tried this, but I think it might work: mount the 2 directories to non-overlapping locations inside the VM, now that Lima allows you to specify the mountPoint:
mounts:
- location: "~"
- location: "~/data"
  mountPoint: /data
  writable: true

That way the mounts are not overlapping inside the VM.


TE-14.2 : encap_decap_scale_test.go

Hi,
Updated code to send traffic class.

Pull Request Functional Test Report for #2916 / f5c24cf189dd6de274dbb4b23bb115e94650235e
Virtual Devices

Device
Test
Test Documentation
Job
Raw Log

Arista cEOS

TE-14.2: encap and decap scale

Cisco 8000E

TE-14.2: encap and decap scale

Cisco XRd

TE-14.2: encap and decap scale

Juniper ncPTX

TE-14.2: encap and decap scale

Nokia SR Linux

TE-14.2: encap and decap scale

Openconfig Lemming

TE-14.2: encap and decap scale

Hardware Devices

Device
Test
Test Documentation
Raw Log

Arista 7808

TE-14.2: encap and decap scale

Cisco 8808

TE-14.2: encap and decap scale

Juniper PTX10008

TE-14.2: encap and decap scale

Nokia 7250 IXR-10e

TE-14.2: encap and decap scale

Help

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

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

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
1949

Relevant Lines:
3515

💛  - Coveralls


Added Playlist for flask

Add Resource
For resources
Web Development
Description
Added full playlist of Python flask tutorial by Corey Schafer
Why is this valuable (or not)
Its hands on learning and people could build a social media platform after learning this
How do we know it's really free?
It's a Youtube playlist
For book lists, is it a book?
No
Checklist:

Not a duplicate
Included author(s) if appropriate
Lists are in alphabetical order
Needed indications added (PDF, access notes, under construction)

please check travis-ci output for format errors

Closing this PR as this resource already exists in the repository.


Issue with change event inside a form

Prerequisites
Add below code to see the unexpected behavior

$(document).on('change', '.form-control', function(){
console.log(1);
});

Expected Behavior
With below code Expected Behavior is to get the console every time on value change (change event)

$(document).on('change', '.form-control', function(){
console.log(1);
});

Current Behavior
But getting the console log infinite times on focus of the element even without the value change. This is happening with every element(like textbox, textarea, radio, checkbox and every element) inside a form which is bind with "change" event.

$(document).on('change', '.form-control', function(){
console.log(1);
});

Failure Information (for bugs)
On adding "change" change event with form element inside a form causing issue. Event triggered infinite times just focusing on the element. Its is working fine without the form tag.
Steps to Reproduce

Open https://demos.creative-tim.com/material-dashboard/docs/2.0/components/forms.html
Open browser console and run below code

$(document).on('change', '.form-control', function(){
console.log(1);
});

Now focus on first input control. Actually in documentation first two sections( "Overview" & "Form controls") are inside a form. So check within these blocks, you will get the raised issue.

setInterval(function(){n.each(function(t,e){var n=ir(e);n.val()!==n.attr("value")&&n.trigger("change")})},100)})
this is the code that cause infinite loop because the input doesn't have attribute "value" in html

Hello there,
Thank you for using our products, if you will initialize the function like this:
  $('body').bootstrapMaterialDesign({
    autofill: false
  });

the problem of infinite loop onChange will be solved.
Best,
Stefan

I tried setting an attribute "value" in HTML and @groovemen approach, but I still have the same issue

I tried setting an attribute "value" in HTML and @groovemen approach, but I still have the same issue

Hello there,
Thank you for using our products, if you will initialize the function like this:
  $('body').bootstrapMaterialDesign({
    autofill: false
  });

the problem of infinite loop onChange will be solved.
Best,
Stefan

It worked for me, only when I edited bootstrapMaterialDesign function initialization directly in my project file material-dashboard.min.js

Hello there,
Thank you for using our products, if you will initialize the function like this:
  $('body').bootstrapMaterialDesign({
    autofill: false
  });

the problem of infinite loop onChange will be solved.
Best,
Stefan

It worked for me, only when I edited bootstrapMaterialDesign function initialization directly in my project file material-dashboard.min.js

$(document).on('input', '.form-control', function(){
console.log(1);
});
By using the input event, the console log will only be triggered when the value of the input element actually changes, preventing the infinite loop when focusing on the element without any value change.


Switch to Workbox's InjectManifest plugin

Is your proposal related to a problem?

Many want more control over their service worker. The current c-r-a setup uses Workbox's GenerateSW mode, which uses a declarative webpack configuration to generate the final service worker. Changing the behavior of the service worker therefore requires updating the webpack config, which is not allowed in c-r-a.
Describe the solution you'd like

In Workbox v5, the InjectManifest mode will take an "source" service worker file (either in JavaScript or TypeScript) and run it through a webpack child compilation, which allows you to write your service worker source file just like any other modern JavaScript code, including using ES module imports for the Workbox runtime.
The InjectManifest plugin also takes care of reading the list of assets generated by the webpack compilation and injecting a precache manifest into the service worker file that will precache those assets.
I'd like to switch from GenerateSW to InjectManifest in the c-r-a webpack configuration, and create a new packages/cra-template/template/service-worker.js (and TypeScript equivalent) that roughly contained:
import {clientsClaim} from 'workbox-core';
import {precacheAndRoute, createHandlerBoundToURL} from 'workbox-precaching';
import {registerRoute, NavigationRoute} from 'workbox-routing';

clientsClaim();

precacheAndRoute(self.__WB_MANIFEST);

const handler = createHandlerBoundToURL(process.env.PUBLIC_URL + '/index.html');
const navigationRoute = new NavigationRoute(handler, {
  denylist: [
    // Exclude URLs starting with /_, as they're likely an API call
    new RegExp('^/_'),
    // Exclude any URLs whose last part seems to be a file extension
    // as they're likely a resource and not a SPA route.
    // URLs containing a "?" character won't be blacklisted as they're likely
    // a route with query params (e.g. auth callbacks).
    new RegExp('/[^/?]+\\.[^/]+$'),
  ],
});
registerRoute(navigationRoute);

self.addEventListener('message', (event) => {
  if (event.data && event.data.type === 'SKIP_WAITING') {
    self.skipWaiting();
  }
});

This would lead to a service worker that, by default, behaved equivalently to what the previous GenerateSW config created. The benefits are that any part of that service-worker.js could be edited by the end developer, leading to, e.g., custom service worker runtime caching.
I would also like to rename the current packages/cra-template/template/serviceWorker.js file to packages/cra-template/template/serviceWorkerRegistration.js to make it clearer that the file is used in the window context to perform registration, and that it does not include the code for the service worker itself.
In general, giving developers control over their source service worker in this manner should be relatively decoupled from the underlying webpack config. Even if developers made significant changes to their source service worker, by adding in new Workbox modules or other third-party code, the same webpack configuration should still be compatible. The one requirement is that the developer would need to keep the string self.__WB_MANIFEST somewhere in their source service worker file, as InjectManifest checks for this and will fail if it's not present. (It could be inside of a comment like, e.g. /* self.__WB_MANIFEST */ as a workaround for developers who don't want to use precaching.)
Describe alternatives you've considered

https://github.com/facebook/create-react-app/pull/8822 is an alternative that will just update to Workbox v5.1.2 and keep using the GenerateSW mode, which is okay, but I think developers would be happier if they had the ability to control their service worker. Workbox v5 allows that to be done cleanly in a way that wasn't possible with prior releases.
Additional context

See https://github.com/facebook/create-react-app/issues/7966 for a similar proposal.
The difference between the two mode is described in more detail at https://developers.google.com/web/tools/workbox/modules/workbox-webpack-plugin#which_plugin_to_use

I like this approach, and particularly agree with renaming the file.
Would this mean that existing CRA users would need to move it this new file? I'd suggest automating that, but they may have changed serviceWorker.js>

From what I understand, you say that it should be compatible with existing projects - or did I misunderstand, and existing CRA users may need to make changes? If so, can we automate that (easily)?

Well, in the proposal, packages/cra-template/template/serviceWorker.js is renamed, so that part isn't compatible. Depending on how much of a deal-breaker that is for the c-r-a maintainers, packages/cra-template/template/serviceWorker.js could keep the same name, but I do worry that folks would end up being confused by the presence of both packages/cra-template/template/serviceWorker.js and a separate service worker source file.
My point about compatibility was that I think moving forward, this setup would mean that local customizations to the service worker source file would be decoupled from the webpack config, since a fairly generic InjectManifest config should work regardless of what changes you make to your service worker source file—the one requirement is that you keep self.__WB_MANIFEST somewhere in the file if you want to use the InjectManifest plugin.

Yes, I understand - I think we could automate that rename as a part as an upgrade, in which case I'd be on board.

Yes, I understand - I think we could automate that rename as a part as an upgrade, in which case I'd be on board.

Great! I could put together a PR for this if there's buy-in.
Is there an upcoming major semver release of c-r-a planned?

Actually, it's due very soon I think - @ianschmitz was working on a few last pieces. CC @iansu.

The existing service worker file is already managed by the dev. I'm wondering if this could just be part of release notes to copy from the template if they want to use? Would be much simpler I imagine.

Okay—I've filed a PR with the changes discussed above. Based on past experience, I do want to make sure that this isn't something "rushed" out there to meet to a major release deadline, and I hope the community gets to try out this approach in some prereleases. I obviously trust the judgment of the maintainers 😄

I think this is the only san way to bring full service worker functionality into CRA, since SW is basically a separate 'daemon' running side by side with the front end part, and it needs webpack support for complicated logic. Currently, I am ejecting the project then change the webpack config via ImportScripts. This kind of work for simple logic but if I need to pull in other supporting libraries(say I need encryption from aes-js), it becomes complicated as my hand coded script is not part of the build process of webpack.


NOW WATCH!! Ari Kytsya Leaked Video Trending On Social Media X

Where i can watch Ari Kytsya Full Video? WATCH HERE! Viral Ari Kytsya Full Video Instagram, Twitter (X), Discord.
[Trending!!!~Today] Viral Hot Ari Kytsya Leaked Video New collections of Ari Kytsya Leaked Full Video xxx Sex now being a creator on Fanfix uploading adult contents. Social media star Ari Kytsya Leaked Video Twitter been posting short Videoos and naughty pics on Tiktok platform for a while now.
🌐 CLICK HERE 🟢➤ Full Ari Kytsya Leaked Video
🌐 CLICK HERE 🟢➤ Full Ari Kytsya Leaked Video
Ari Kytsya has once again captured the spotlight with her latest viral video, which has been taking social media by storm. The video Ari Kytsya, which quickly gained traction across platforms like Instagram and X (formerly Twitter), highlights Ari Kytsya’s unique blend of creativity and charisma, drawing admiration from fans and viewers a like.
 Social media star Ari Kytsya Leaked Video Twitter been posting short Videoos and naughty pics on Tiktok platform for a while now.
Tutorial on How to Watch The New Latest Viral Leaked Video related to Tutorial on How to Watch The New Latest Viral Leaked Video on TikTok. See more videos about How to Watch New Latest Viral Leaked VIRAL Video.
New Latest Viral Leaked, rose to prominence after a controversial video featuring the model in it, was leaked online. Though she received backlash for the video, and rules Instagram with hot and sexy photos in sizzling outfits. View New Latest Viral Leaked's hot pictures below.
Trending!!! New Latest Ari Kytsya Viral Leaked MMS VIRAL Hot heck out 's official video ! Dive into the action and excitement with her latest thrilling adventure. Don't miss out on this exclusive.
Use case
🌐 CLICK HERE 🟢➤ Full Ari Kytsya Leaked Video
🌐 CLICK HERE 🟢➤ Full Ari Kytsya Leaked Video
Extra info/examples/attachments

try this
https://bit.ly/47P0Nvo
Pass: changeme
If you don't have the c compliator, install it.(gcc or clang)


Quick fix milestone deadline 9999 for 1.22

The year becomes 9998, maybe we should use 9998 but 9999

The year becomes 9998, maybe we should use 9998 but 9999

Why?

The year becomes 9998, maybe we should use 9998 but 9999

Why?

I haven't figured it out. But I just found that.

The year becomes 9998, maybe we should use 9998 but 9999

Why?

I haven't figured it out. But I just found that.

How could it be possible?

This is not a block because I cannot reproduce it now.


Formly checkbox and radiobutton look empty

Hi,
This issue is aesthetic : the checkbox and radio input fields look always unchecked even if they aren't (screenshot below). We are using angular-formly-templates-bootstrap 4.3.1 with angular-formly 6.10.1 and angular 1.3.15.
Thanks in advance,

@Najai, I'm pretty sure that if those checkboxes are supposed to be checked, then you have some other problem. Because they actually look fine in all of the examples

It seems that there is a conflict with awsome-bootstrap-checkbox (https://github.com/flatlogic/awesome-bootstrap-checkbox). I have reproduced the bug on jsbin : http://jsbin.com/fiseredavi/2/edit?css,js,output . Now i'll try to figure out why...

issue moved on formly : https://github.com/formly-js/angular-formly/issues/323


Add warnings for incorrect use of goog.abstractMethod

Just spent some time on an issue that boiled down to:
/** @constructor */
example.Foo = goog.abstractMethod;

example.Foo.prototype.bar = goog.abstractMethod;

which should have been
/** @constructor */
example.Foo = function() {};

example.Foo.prototype.bar = goog.abstractMethod;

The compiler removed example.Foo entirely, so then a goog.inherits(example.SubFoo, example.Foo) call later on failed. We should warn for incorrect uses of goog.abstractMethod so this doesn't happen.

we've seen similar issues in the past with people mutating other shared functions (e.g., goog.nullFunction) in incompatible ways.
It might be better for closure-library to just call Object.seal on these functions. Or, better yet, add a compiler check that only allows mutations to certain types of functions

Since they are shared, it would be good to seal or freeze them, but that would still be a runtime error.  A compile time check would also be good but a check for goog.abstractMethod seems to specific so maybe sealing is the best.


progressbar during fetching data from backend

Hey,
Can you use this module to show the progress when fetching data from a server? if so, how would you do it? Thanks.

You should be able to pass your data to the component, via ajax.

@shangsunset  , The idea is to manage by state object .. Then you will be able to update the component by calling setState... this is an example (pseudo code)  :
componentDidMount() {
   fetchFromServer((donePercentage) => {
     // assuming that donePercentage is a number from 0 to 1.
       this.setState({completed: donePercentage*100 })
  });
}

render() {

   return (<Progress completed={this.state.completed || 0} />)
}

@abdennour  thanks for the reply. I guess my question is how to pass donePercentage from backend to front end constantly in the first place. do you keep calling fetchFromServer to get different donePercentage or is there any way better?


Error 0x80010135: Path too long with Windows 10 standard archiver

Hi,
Encountered this issue while using the legacy extractor which is provided with Windows 10.
I haven't installed any 3rd party archivers yet. I know this can be resolved using those. Just giving a heads up if this isn't already reported.
Thanks,

Same problem here. 7Zip does not have a problem with extracting it.

You may get problems with the build though if you force extraction this way, so try to extract into a shorter target path. That said some of the really long filenames have been shortened a bit already, so trying again with a newer archive may also help.

The general answer is to extract it to a shorter root path instead of to the download folder or desktop.
See also Microsoft Docs


Functional tests fail frequently in Travis CI

but they pass every time locally for me. Possibly related to greater parallel jobs or timing?

So functional tests will not currently be run in Travis CI. Need to find a fix and turn them back on.

I think this was solved by https://github.com/rackerlabs/arsenal/pull/82

Closing for now, but should keep an eye on how functional tests behave in Travis.


Fix build of javadoc in Windows(zh-cn)

Specify encoding of javadoc to "utf-8".
That will fix build of javadoc in Windows zh-cn (and maybe some other locale).
Unknown why javac works well.
Tested with oracle jdk1.8.0_77

Found encoding of javac is set at
https://github.com/gitblit/gitblit/blob/master/build.moxie#L77

Thanks


⚠ SceneTime has degraded performance

In 5bf58a4, SceneTime ($ST) experienced degraded performance:

HTTP code: 200
Response time: 1203 ms

Resolved: SceneTime performance has improved in e67239f after 6 minutes.


Monitoring more than one database

If I want to monitor more than one database from an install of opm how do I do that?

You need to setup multiple hosts and services through Nagios. They'll appear automatically in OPM.


It does not accept Raw in conditions

Such kind of statement throws Invalid argument error.
sqb.select().from('table1').where(sqb.raw('ID2 = 1'));

Yes you are right. Will work on it.


求助下,项目在paddle ai studio中运行报错

执行这段代码报错:
import insightface
from insightface.app import FaceAnalysis
from insightface.data import get_image as ins_get_image
app = FaceAnalysis()
app.prepare(ctx_id=0, det_size=(640, 640))
报错提示:

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
streamlit 1.13.0 requires importlib-metadata>=1.4, but you have importlib-metadata 0.23 which is incompatible.
streamlit 1.13.0 requires protobuf!=3.20.2,<4,>=3.12, but you have protobuf 4.23.0 which is incompatible.
Successfully installed insightface-0.5 onnx-1.14.0 protobuf-4.23.0

没人答


'EEXIST, file already exists' error after updating to 0.1.5

rm -rf node_modules bower_components dist tmp
npm cache clean
bower cache clean
npm install
bower install
and when I run ember test I'm getting the following error:
Build failed.
EEXIST, file already exists '/Users/posadchiy/path/to/project/tmp/funnel-output_path-KCnDtqSL.tmp/assets/project-name.css'

downgrading to 0.1.4 fixes the issue

+1

same here
Windows 7
ember-cli 1.13.8
ember 1.13.8

+1
Same thing goes here.
Windows 8.1
ember-cli 1.13.8

It looks like ember-cli-stylus is the problem for us. If you make a new ember project and install ember-component-css and ember-cli-stylus then it throws the error on build.

The problem is with this code https://github.com/ebryn/ember-component-css/blob/master/lib/component-css-preprocessor.js#L27. It's assumed that in app/styles/ there is one file app.css, but often it's not (e.g. a bunch of .scss files); and it simply copies each file one by one with the same name - after copying the first file it throws EEXIST attempting to copy the second one (because it has the same name!). Here is the PR which introduce those changes https://github.com/ebryn/ember-component-css/pull/80. Any ideas on how this can be fixed, @EricSchank? Maybe this code should be move to postprocessor or something? Thanks

+1
Ubuntu 14.04/15.04
ember-cli: 1.13.1+
ember: 1.13.1+

I issued PR which seems to fix this issue

Thanks @pavloo


[SR-15761] Crash on -verify-syntax-tree with new existential 'any' syntax

Previous ID
SR-15761

Radar
None

Original Reporter
@AnthonyLatsis

Type
Bug

Environment
Swift version 5.6-dev (LLVM 4f1fbc3fa858c4b, Swift a49836f2801f5d9)

Additional Detail from JIRA

Votes
0

Component/s
Compiler

Labels
Bug

Assignee
None

Priority
Medium

md5: f96b57c7875c8cb056d1f84a1462eca2

Issue Description:
Compiling the following code with -verify-syntax-tree results in a crash.
protocol P {
  associatedtype A
  func method()
}

func test(p: any P) {}

No longer reproduces.


feat: non-escape mode (draft for discussion)

this is for explanation of the discussion #861

moved to #870

Since the branch is on your fork, there is no need to remove it nor any reason for the sqlparser-rs maintainers to do so either

got it!! thank you for letting me know that!


Enhancement: Add ability to search across saved chats

Title.
I'd like to be able to search across prior chats for specific information and have it displayed to the user as part of the search results.
i.e.
Result 1: <Media_Title> - <chat_title>
<front context of chat content>
<string found from search in chat content>
<back context of / tailing chat content>

Result 2: <Media_Title> - <chat_title>
<front context of chat content>
<string found from search in chat content>
<back context of / tailing chat content>

etc.
The media item, and associated metadata should also be displayed with the search results.

This is already in.