panic: runtime error: invalid memory address or nil pointer dereference

Description
Observed Behavior:
``{"level":"INFO","time":"2024-10-02T13:07:51.585Z","logger":"controller","message":"Observed a panic in reconciler: runtime error: invalid memory address or nil pointer dereference","commit":"5bdf9c3","controller":"disruption","namespace":"","name":"","reconcileID":"d9e09bca-0703-4b38-a2c7-1cedadcf58a4"}
panic: runtime error: invalid memory address or nil pointer dereference [recovered]
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x208 pc=0x230a017]
goroutine 504 [running]:
sigs.k8s.io/controller-runtime/pkg/internal/controller.(Controller).Reconcile.func1()
sigs.k8s.io/controller-runtime@v0.18.4/pkg/internal/controller/controller.go:111 +0x1e5
panic({0x277f360?, 0x4c9f9d0?})
runtime/panic.go:770 +0x132
sigs.k8s.io/karpenter/pkg/controllers/disruption.filterOutSameType(0xc016e72f08, {0xc0063d2fd8, 0x2, 0xc016b7f180?})
sigs.k8s.io/karpenter@v1.0.0/pkg/controllers/disruption/multinodeconsolidation.go:213 +0x5b7
sigs.k8s.io/karpenter/pkg/controllers/disruption.(MultiNodeConsolidation).firstNConsolidationOption(0xc000452150, {0x3476a98, 0xc006e8fdd0}, {0xc0063d2fd8, 0x3, 0x3}, 0x3)
sigs.k8s.io/karpenter@v1.0.0/pkg/controllers/disruption/multinodeconsolidation.go:147 +0x56f
sigs.k8s.io/karpenter/pkg/controllers/disruption.(MultiNodeConsolidation).ComputeCommand(0xc000452150, {0x3476a98, 0xc006e8fdd0}, 0xc0162b61b0, {0xc0041f0af0, 0x3, 0x9})
sigs.k8s.io/karpenter@v1.0.0/pkg/controllers/disruption/multinodeconsolidation.go:83 +0x430
sigs.k8s.io/karpenter/pkg/controllers/disruption.(Controller).disrupt(0xc000690100, {0x3476a98, 0xc006e8fdd0}, {0x3479920, 0xc000452150})
sigs.k8s.io/karpenter@v1.0.0/pkg/controllers/disruption/controller.go:167 +0x5e7
sigs.k8s.io/karpenter/pkg/controllers/disruption.(Controller).Reconcile(0xc000690100, {0x3476a98, 0xc006e8fda0})
sigs.k8s.io/karpenter@v1.0.0/pkg/controllers/disruption/controller.go:132 +0x405
sigs.k8s.io/karpenter/pkg/controllers/disruption.(Controller).Register.AsReconciler.func1({0x3476a98?, 0xc006e8fda0?}, {{{0x0?, 0x0?}, {0x2ca1bc8?, 0x5?}}})
github.com/awslabs/operatorpkg@v0.0.0-20240805231134-67d0acfb6306/singleton/controller.go:26 +0x2f
sigs.k8s.io/controller-runtime/pkg/reconcile.Func.Reconcile(0xc006ea0280?, {0x3476a98?, 0xc006e8fda0?}, {{{0x0?, 0x5?}, {0x0?, 0xc003fe8d10?}}})
sigs.k8s.io/controller-runtime@v0.18.4/pkg/reconcile/reconcile.go:113 +0x3d
sigs.k8s.io/controller-runtime/pkg/internal/controller.(Controller).Reconcile(0x347c588?, {0x3476a98?, 0xc006e8fda0?}, {{{0x0?, 0xb?}, {0x0?, 0x0?}}})
sigs.k8s.io/controller-runtime@v0.18.4/pkg/internal/controller/controller.go:114 +0xb7
sigs.k8s.io/controller-runtime/pkg/internal/controller.(Controller).reconcileHandler(0xc000b10840, {0x3476ad0, 0xc0007565a0}, {0x29367a0, 0xc003f47360})
sigs.k8s.io/controller-runtime@v0.18.4/pkg/internal/controller/controller.go:311 +0x3bc
sigs.k8s.io/controller-runtime/pkg/internal/controller.(Controller).processNextWorkItem(0xc000b10840, {0x3476ad0, 0xc0007565a0})
sigs.k8s.io/controller-runtime@v0.18.4/pkg/internal/controller/controller.go:261 +0x1be
sigs.k8s.io/controller-runtime/pkg/internal/controller.(Controller).Start.func2.2()
sigs.k8s.io/controller-runtime@v0.18.4/pkg/internal/controller/controller.go:222 +0x79
created by sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2 in goroutine 479
sigs.k8s.io/controller-runtime@v0.18.4/pkg/internal/controller/controller.go:218 +0x486``
Expected Behavior:
Karpenter pod not restarting
Reproduction Steps (Please include YAML):
Versions:

Chart Version: 1.0.0
Kubernetes Version (kubectl version): 1.30

We recently migrated to karpenter from cluster autoscaler for few of our accounts and started to see the above behaviour where the karpenter pod has been constantly restarting (getting into CrashLoopBackOff status but recovering by itself). We tried restarting the pod and rebooting the karpenter controller node if that helps but it didn't. The issue was however fixed when we updated the consolidationPolicy to WhenEmpty from WhenEmptyOrUnderUtilized . However this would increase the underlying cost. Also this is not for all the clusters which has WhenEmptyOrUnderUtilized but for few (where we have more number of nodes)
Nodepool configuration:
nodepools:
main_nodepool:
instance_requirements:
ebs_volume_size: "50Gi"
instance_categories:
- "r"
- "m"
- "c"
instance_categories_selection_min_values: 2
instance_family_selection_min_values: 5
instance_types_selection_min_values: 10
disruption_policy:
consolidation_policy: "WhenEmptyOrUnderutilized"
consolidate_after: "10m"
cpu_limit: "96"
memory_limit: "384Gi"
# weight: 10
budgets:
- nodes: "1"
tags:
nodeclass_tags:
team: ce
nodepool_labels:
env: nonprod
node-group-name: main-nodepool

Hi thanks for reporting this issue, just to clarify, not all Karpenter deployments with node pools containing 'WhenEmptyOrUnderutilized' were crashlooping? Just ones with a high number of nodes in the cluster? Are there any logs from just before the panic?

@rschalo below is the logs, as per the events and logs this issue happens when it tries to disrupt nodes and bring new ones
discruptionerror.docx. We did try patching the karpenter version to 1.0.4 with kubernetes version as 1.30(patching done recently as well)

This restart stopped after we added a upper limit on disruption budget (node). However noticed that there are errors started from this function karpenter github. we assume if we have 8 nodes and the budget is 20% and nodes (candidates for disruption) is not ready for some reason causes this. Any help is highly appreciated
Also we tried patching karpenter to 1.0.4

I observe the same issue in our EKS cluster. We've a lot of cronjobs that demand new nodes to be scheduled quite often. Average nodes in the nodepool is about 15-20.
Karpenter tries to keep up with to consolidate the ever changing cluster. It does it for a while until is ends up in a crashloop ~220 restarts in a day.
Configured a nodepool with both a 20% budget and a static budget of "5".
Running controller 1.0.4 with EKS @ 1.30

{"level":"DEBUG","time":"2024-10-17T19:01:29.893Z","logger":"controller","caller":"disruption/controller.go:91","message":"removing consolidatable status condition","commit":"0f8788c","controller":"nodeclaim.disruption","controllerGroup":"karpenter.sh","controllerKind":"NodeClaim","NodeClaim":{"name":"main-nodepool-nodepool-xhsdr"},"namespace":"","name":"main-nodepool-nodepool-xhsdr","reconcileID":"5908f16c-bd88-4c60-bdfd-60486e45e25b"}
{"level":"DEBUG","time":"2024-10-17T19:01:29.895Z","logger":"controller","caller":"disruption/controller.go:91","message":"removing consolidatable status condition","commit":"0f8788c","controller":"nodeclaim.disruption","controllerGroup":"karpenter.sh","controllerKind":"NodeClaim","NodeClaim":{"name":"main-nodepool-nodepool-gpt69"},"namespace":"","name":"main-nodepool-nodepool-gpt69","reconcileID":"6703ed68-94f8-4745-bff5-d42010fd9b5b"}
{"level":"INFO","time":"2024-10-17T19:01:30.173Z","logger":"controller","caller":"runtime/panic.go:770","message":"Observed a panic in reconciler: runtime error: invalid memory address or nil pointer dereference","commit":"0f8788c","controller":"disruption","namespace":"","name":"","reconcileID":"996113e8-a79e-4333-ab53-477163842b6e"}
panic: runtime error: invalid memory address or nil pointer dereference [recovered]
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x208 pc=0x230ca37]
goroutine 511 [running]:
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Reconcile.func1()
sigs.k8s.io/controller-runtime@v0.18.4/pkg/internal/controller/controller.go:111 +0x1e5
panic({0x2782820?, 0x4ca50b0?})
runtime/panic.go:770 +0x132
sigs.k8s.io/karpenter/pkg/controllers/disruption.filterOutSameType(0xc00f42ea08, {0xc00c8d39c0, 0x2, 0xc00ef66780?})
sigs.k8s.io/karpenter@v1.0.2/pkg/controllers/disruption/multinodeconsolidation.go:213 +0x5b7
sigs.k8s.io/karpenter/pkg/controllers/disruption.(*MultiNodeConsolidation).firstNConsolidationOption(0xc0004d2cb0, {0x347b2f8, 0xc00dbd8360}, {0xc00c8d39c0, 0x3, 0x7}, 0x3)
sigs.k8s.io/karpenter@v1.0.2/pkg/controllers/disruption/multinodeconsolidation.go:147 +0x56f
sigs.k8s.io/karpenter/pkg/controllers/disruption.(*MultiNodeConsolidation).ComputeCommand(0xc0004d2cb0, {0x347b2f8, 0xc00dbd8360}, 0xc00ec5b5c0, {0xc00d197540, 0x7, 0x9})
sigs.k8s.io/karpenter@v1.0.2/pkg/controllers/disruption/multinodeconsolidation.go:83 +0x430
sigs.k8s.io/karpenter/pkg/controllers/disruption.(*Controller).disrupt(0xc0008e2a80, {0x347b2f8, 0xc00dbd8360}, {0x347e180, 0xc0004d2cb0})
sigs.k8s.io/karpenter@v1.0.2/pkg/controllers/disruption/controller.go:174 +0x5e7
sigs.k8s.io/karpenter/pkg/controllers/disruption.(*Controller).Reconcile(0xc0008e2a80, {0x347b2f8, 0xc00dbd8330})
sigs.k8s.io/karpenter@v1.0.2/pkg/controllers/disruption/controller.go:136 +0x4ec
sigs.k8s.io/karpenter/pkg/controllers/disruption.(*Controller).Register.AsReconciler.func1({0x347b2f8?, 0xc00dbd8330?}, {{{0x0?, 0x0?}, {0x2ca58e8?, 0x5?}}})
github.com/awslabs/operatorpkg@v0.0.0-20240805231134-67d0acfb6306/singleton/controller.go:26 +0x2f
sigs.k8s.io/controller-runtime/pkg/reconcile.Func.Reconcile(0xc00fb6d680?, {0x347b2f8?, 0xc00dbd8330?}, {{{0x0?, 0x5?}, {0x0?, 0xc00d00bd10?}}})
sigs.k8s.io/controller-runtime@v0.18.4/pkg/reconcile/reconcile.go:113 +0x3d
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Reconcile(0x3480de8?, {0x347b2f8?, 0xc00dbd8330?}, {{{0x0?, 0xb?}, {0x0?, 0x0?}}})
sigs.k8s.io/controller-runtime@v0.18.4/pkg/internal/controller/controller.go:114 +0xb7
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler(0xc000ae0840, {0x347b330, 0xc000778dc0}, {0x293a420, 0xc00fae0e20})
sigs.k8s.io/controller-runtime@v0.18.4/pkg/internal/controller/controller.go:311 +0x3bc
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem(0xc000ae0840, {0x347b330, 0xc000778dc0})
sigs.k8s.io/controller-runtime@v0.18.4/pkg/internal/controller/controller.go:261 +0x1be
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2()
sigs.k8s.io/controller-runtime@v0.18.4/pkg/internal/controller/controller.go:222 +0x79
created by sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2 in goroutine 486
sigs.k8s.io/controller-runtime@v0.18.4/pkg/internal/controller/controller.go:218 +0x486

Sometimes, before the reconciler error occurs, there's also a TLS handshake error, which then continues to the crash loop.
2024-10-18T06:01:32.398Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/controller-runtime@v0.18.4/pkg/internal/controller/controller.go:218   +0x486"
--
2024-10-18T06:02:07.391Z,"""i-0ee1800d46d103d6b""","""controller""","http:   TLS handshake error from X:60976: read tcp   X:8443->X:60976: read: connection reset by peer"
2024-10-18T06:02:07.391Z,"""i-0ee1800d46d103d6b""","""controller""","http:   TLS handshake error from X:38650: EOF"
2024-10-18T06:03:12.431Z,"""i-0ee1800d46d103d6b""","""controller""","Reconciler   error"
2024-10-18T06:03:12.431Z,"""i-0ee1800d46d103d6b""","""controller""","Reconciler   error"
2024-10-18T06:03:13.432Z,"""i-0ee1800d46d103d6b""","""controller""","Reconciler   error"
2024-10-18T06:19:41.028Z,"""i-0ee1800d46d103d6b""","""controller""","Reconciler   error"
2024-10-18T06:19:42.029Z,"""i-0ee1800d46d103d6b""","""controller""","Reconciler   error"
2024-10-18T06:19:47.031Z,"""i-0ee1800d46d103d6b""","""controller""","Reconciler   error"
2024-10-18T06:20:52.073Z,"""i-0ee1800d46d103d6b""","""controller""","panic:   runtime error: invalid memory address or nil pointer dereference   [recovered]"
2024-10-18T06:20:52.073Z,"""i-0ee1800d46d103d6b""","""controller""","panic:   runtime error: invalid memory address or nil pointer dereference"
2024-10-18T06:20:52.073Z,"""i-0ee1800d46d103d6b""","""controller""","[signal   SIGSEGV: segmentation violation code=0x1 addr=0x208 pc=0x230ca37]"
2024-10-18T06:20:52.073Z,"""i-0ee1800d46d103d6b""","""controller""","goroutine   496 [running]:"
2024-10-18T06:20:52.073Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Reconcile.func1()"
2024-10-18T06:20:52.073Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/controller-runtime@v0.18.4/pkg/internal/controller/controller.go:111   +0x1e5"
2024-10-18T06:20:52.073Z,"""i-0ee1800d46d103d6b""","""controller""","panic({0x2782820?,   0x4ca50b0?})"
2024-10-18T06:20:52.073Z,"""i-0ee1800d46d103d6b""","""controller""","runtime/panic.go:770   +0x132"
2024-10-18T06:20:52.073Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/karpenter/pkg/controllers/disruption.filterOutSameType(0xc00f9ad908,   {0xc018ed8540, 0x2, 0xc01174c580?})"
2024-10-18T06:20:52.073Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/karpenter@v1.0.2/pkg/controllers/disruption/multinodeconsolidation.go:213   +0x5b7"
2024-10-18T06:20:52.073Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/karpenter/pkg/controllers/disruption.(*MultiNodeConsolidation).firstNConsolidationOption(0xc000ac7110,   {0x347b2f8, 0xc017261bf0}, {0xc018ed8540, 0x3, 0x8}, 0x3)"
2024-10-18T06:20:52.073Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/karpenter@v1.0.2/pkg/controllers/disruption/multinodeconsolidation.go:147   +0x56f"
2024-10-18T06:20:52.073Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/karpenter/pkg/controllers/disruption.(*MultiNodeConsolidation).ComputeCommand(0xc000ac7110,   {0x347b2f8, 0xc017261bf0}, 0xc018ef68a0, {0xc018eb64b0, 0x8, 0xa})"
2024-10-18T06:20:52.073Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/karpenter@v1.0.2/pkg/controllers/disruption/multinodeconsolidation.go:83   +0x430"
2024-10-18T06:20:52.073Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/karpenter/pkg/controllers/disruption.(*Controller).disrupt(0xc000a3d100,   {0x347b2f8, 0xc017261bf0}, {0x347e180, 0xc000ac7110})"
2024-10-18T06:20:52.073Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/karpenter@v1.0.2/pkg/controllers/disruption/controller.go:174   +0x5e7"
2024-10-18T06:20:52.073Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/karpenter/pkg/controllers/disruption.(*Controller).Reconcile(0xc000a3d100,   {0x347b2f8, 0xc017261bc0})"
2024-10-18T06:20:52.073Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/karpenter@v1.0.2/pkg/controllers/disruption/controller.go:136   +0x4ec"
2024-10-18T06:20:52.073Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/karpenter/pkg/controllers/disruption.(*Controller).Register.AsReconciler.func1({0x347b2f8?,   0xc017261bc0?}, {{{0x0?, 0x0?}, {0x2ca58e8?, 0x5?}}})"
2024-10-18T06:20:52.073Z,"""i-0ee1800d46d103d6b""","""controller""","github.com/awslabs/operatorpkg@v0.0.0-20240805231134-67d0acfb6306/singleton/controller.go:26   +0x2f"
2024-10-18T06:20:52.073Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/controller-runtime/pkg/reconcile.Func.Reconcile(0xc01706d280?,   {0x347b2f8?, 0xc017261bc0?}, {{{0x0?, 0x5?}, {0x0?, 0xc00a8c7d10?}}})"
2024-10-18T06:20:52.073Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/controller-runtime@v0.18.4/pkg/reconcile/reconcile.go:113   +0x3d"
2024-10-18T06:20:52.073Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Reconcile(0x3480de8?,   {0x347b2f8?, 0xc017261bc0?}, {{{0x0?, 0xb?}, {0x0?, 0x0?}}})"
2024-10-18T06:20:52.073Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/controller-runtime@v0.18.4/pkg/internal/controller/controller.go:114   +0xb7"
2024-10-18T06:20:52.073Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler(0xc0003331e0,   {0x347b330, 0xc00017dcc0}, {0x293a420, 0xc017252e60})"
2024-10-18T06:20:52.073Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/controller-runtime@v0.18.4/pkg/internal/controller/controller.go:311   +0x3bc"
2024-10-18T06:20:52.073Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem(0xc0003331e0,   {0x347b330, 0xc00017dcc0})"
2024-10-18T06:20:52.073Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/controller-runtime@v0.18.4/pkg/internal/controller/controller.go:261   +0x1be"
2024-10-18T06:20:52.073Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2()"
2024-10-18T06:20:52.073Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/controller-runtime@v0.18.4/pkg/internal/controller/controller.go:222   +0x79"
2024-10-18T06:20:52.073Z,"""i-0ee1800d46d103d6b""","""controller""","created   by   sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2   in goroutine 471"
2024-10-18T06:20:52.073Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/controller-runtime@v0.18.4/pkg/internal/controller/controller.go:218   +0x486"
2024-10-18T06:22:17.425Z,"""i-0ee1800d46d103d6b""","""controller""","panic:   runtime error: invalid memory address or nil pointer dereference   [recovered]"
2024-10-18T06:22:17.425Z,"""i-0ee1800d46d103d6b""","""controller""","panic:   runtime error: invalid memory address or nil pointer dereference"
2024-10-18T06:22:17.425Z,"""i-0ee1800d46d103d6b""","""controller""","[signal   SIGSEGV: segmentation violation code=0x1 addr=0x208 pc=0x230ca37]"
2024-10-18T06:22:17.425Z,"""i-0ee1800d46d103d6b""","""controller""","goroutine   515 [running]:"
2024-10-18T06:22:17.425Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Reconcile.func1()"
2024-10-18T06:22:17.425Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/controller-runtime@v0.18.4/pkg/internal/controller/controller.go:111   +0x1e5"
2024-10-18T06:22:17.425Z,"""i-0ee1800d46d103d6b""","""controller""","panic({0x2782820?,   0x4ca50b0?})"
2024-10-18T06:22:17.425Z,"""i-0ee1800d46d103d6b""","""controller""","runtime/panic.go:770   +0x132"
2024-10-18T06:22:17.425Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/karpenter/pkg/controllers/disruption.filterOutSameType(0xc0130ca788,   {0xc00fb99680, 0x2, 0xc0106c4c00?})"
2024-10-18T06:22:17.425Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/karpenter@v1.0.2/pkg/controllers/disruption/multinodeconsolidation.go:213   +0x5b7"
2024-10-18T06:22:17.425Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/karpenter/pkg/controllers/disruption.(*MultiNodeConsolidation).firstNConsolidationOption(0xc0005251f0,   {0x347b2f8, 0xc00e2b8030}, {0xc00fb99680, 0x3, 0xb}, 0x3)"
2024-10-18T06:22:17.425Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/karpenter@v1.0.2/pkg/controllers/disruption/multinodeconsolidation.go:147   +0x56f"
2024-10-18T06:22:17.425Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/karpenter/pkg/controllers/disruption.(*MultiNodeConsolidation).ComputeCommand(0xc0005251f0,   {0x347b2f8, 0xc00e2b8030}, 0xc011cf3080, {0xc00faf3180, 0xb, 0xd})"
2024-10-18T06:22:17.425Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/karpenter@v1.0.2/pkg/controllers/disruption/multinodeconsolidation.go:83   +0x430"
2024-10-18T06:22:17.425Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/karpenter/pkg/controllers/disruption.(*Controller).disrupt(0xc000209400,   {0x347b2f8, 0xc00e2b8030}, {0x347e180, 0xc0005251f0})"
2024-10-18T06:22:17.425Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/karpenter@v1.0.2/pkg/controllers/disruption/controller.go:174   +0x5e7"
2024-10-18T06:22:17.425Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/karpenter/pkg/controllers/disruption.(*Controller).Reconcile(0xc000209400,   {0x347b2f8, 0xc00e2b8000})"
2024-10-18T06:22:17.425Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/karpenter@v1.0.2/pkg/controllers/disruption/controller.go:136   +0x4ec"
2024-10-18T06:22:17.425Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/karpenter/pkg/controllers/disruption.(*Controller).Register.AsReconciler.func1({0x347b2f8?,   0xc00e2b8000?}, {{{0x0?, 0x0?}, {0x2ca58e8?, 0x5?}}})"
2024-10-18T06:22:17.425Z,"""i-0ee1800d46d103d6b""","""controller""","github.com/awslabs/operatorpkg@v0.0.0-20240805231134-67d0acfb6306/singleton/controller.go:26   +0x2f"
2024-10-18T06:22:17.425Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/controller-runtime/pkg/reconcile.Func.Reconcile(0xc00d786f80?,   {0x347b2f8?, 0xc00e2b8000?}, {{{0x0?, 0x5?}, {0x0?, 0xc001e09d10?}}})"
2024-10-18T06:22:17.425Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/controller-runtime@v0.18.4/pkg/reconcile/reconcile.go:113   +0x3d"
2024-10-18T06:22:17.425Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Reconcile(0x3480de8?,   {0x347b2f8?, 0xc00e2b8000?}, {{{0x0?, 0xb?}, {0x0?, 0x0?}}})"
2024-10-18T06:22:17.425Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/controller-runtime@v0.18.4/pkg/internal/controller/controller.go:114   +0xb7"
2024-10-18T06:22:17.425Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler(0xc000b1e840,   {0x347b330, 0xc00076bcc0}, {0x293a420, 0xc012ec0c40})"
2024-10-18T06:22:17.425Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/controller-runtime@v0.18.4/pkg/internal/controller/controller.go:311   +0x3bc"
2024-10-18T06:22:17.425Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem(0xc000b1e840,   {0x347b330, 0xc00076bcc0})"
2024-10-18T06:22:17.425Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/controller-runtime@v0.18.4/pkg/internal/controller/controller.go:261   +0x1be"
2024-10-18T06:22:17.425Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2()"
2024-10-18T06:22:17.425Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/controller-runtime@v0.18.4/pkg/internal/controller/controller.go:222   +0x79"
2024-10-18T06:22:17.425Z,"""i-0ee1800d46d103d6b""","""controller""","created   by   sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2   in goroutine 490"
2024-10-18T06:22:17.425Z,"""i-0ee1800d46d103d6b""","""controller""","sigs.k8s.io/controller-runtime@v0.18.4/pkg/internal/controller/controller.go:218   +0x486"

Hey, saw the fix in https://github.com/kubernetes-sigs/karpenter/pull/1763 I'm looking forward to try this out in our clusters. Any idea when this will be available?

Hi @christianfeurer, yes you should be able to try the fix with this snapshot. It isn't recommended for production but should be sufficient to test if it fully addresses your issue.
aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin<PHONE_NUMBER>62.dkr.ecr.us-east-1.amazonaws.com

helm upgrade --install karpenter oci://021119463062.dkr.ecr.us-east-1.amazonaws.com/karpenter/snapshot/karpenter --version "0-c3c673351360878e01bbe13fc54eb07e0d7310e4" --namespace "kube-system" --create-namespace \
  --set "settings.clusterName=${CLUSTER_NAME}" \
  --set "settings.interruptionQueue=${CLUSTER_NAME}" \
  --set controller.resources.requests.cpu=1 \
  --set controller.resources.requests.memory=1Gi \
  --set controller.resources.limits.cpu=1 \
  --set controller.resources.limits.memory=1Gi \
  --wait

Hey @rschalo,
I really appreciate your effort providing me the snapshot version. Sadly I'm only able to check it in a sandbox environment where I cannot reproduce the issue. In the actual cluster - having the issue - I'm limited to an internal registry only allowing access to the public oci://public.ecr.aws/karpenter/karpenter.
Hence I'll wait for the next release - no worries. I'm also interested in other fixes like fix: clarify state node logging (#1766) hence it's worth waiting.

Sounds good - we don't have a date for 1.1 just yet. Thanks for your patience!
Given the fix, marking this as closed. if this issue persists  then please reopen or open a new issue.


feature request: Always open files relative to current directory

Did you check existing requests?

[X] I have searched the existing issues

Describe the feature
currently files open being open with their absolute file address results in long file names in status line if statusline=%f
is there any way to avoid this?
telescope open files relative to current directory for instance.
Provide background

while I'm in ~/workspace/Book-store so this part should be trimmed from address
Additional details
No response

Done

Thanks!


Enable snapshots and change domain

https://github.com/creek-service/creek-test/issues/30
https://github.com/creek-service/creek-test/issues/24
Reviewer checklist

[ ] Ensure relevant issues are linked (description should include text like "Fixes #")
[ ] Ensure any appropriate documentation has been added or amended

Coverage remained the same at 98.229% when pulling 14f824f1f68fc950fe7336edb1806403f51db680 on snapshot into 9949a742b49c1a3c2571d1fde7b575d3a34cc445 on main.


Update MMM-CalendarExt2.css

removed \00a0 this creates and extra space
before

after

I see your point - the double space is not nice. But I think that it would be better to remove the padding four lines up instead of removing the first non-breaking space.
Before:
.CX2 .eventTime * {
  display:none;
  padding-left: 5px;
}

After:
.CX2 .eventTime * {
  display:none;
}

Can someone take a look at this with their calendar? It looks good on mine.

I now see that my after-picture is not showing the changes correctly.
My change is the double space between 00 and -
Maybe you still mean to remove the padding, but I just want to clarify my change :)

@flopp999 Thanks :slightly_smiling_face: I am trying to solve the problem with an extra PR #143. I am confident that it will fix the problem.

@KristjanESPERANTO solved this with #143 - so I'm closing this one


Sorbet Typing

It is neat to see that this is being built with Stainless! I know Ruby support in Stainless is somewhat in beta - is it on the roadmap to generate Sorbet annotations / RBI files?

Asking and will follow up!

Hi @matv-stripe! I'm Mark and I work on the Ruby SDK generator at Stainless (and am a former Stripe). I was chatting a bit with @ankrgyl and wanted to share the context directly here.
Sorbet is something that we’re definetly interested in. We don’t have it concretely on the roadmap yet though (before 1.0), primarily due to not having a clear design / approach for incorporating it.
In particular we haven’t yet found a good solution for incorporating Sorbet into a gem in a way that works great for Sorbet users and where the API design, gem-developer & end-developer DX, and runtime footprint is also excellent for non-Sorbet users. We’re still eager to learn more about this could work and would be happy to hear from Sorbet experts about their thoughts on Sorbet in gems.
We’ve also thought about more of a forked approach, where you generate e.g. braintrust and/or braintrust-sorbet, and the design and runtime of each is specialized.
Curious to hear your reactions!

Hi @mmcgrana ! That makes sense and I appreciate the thought here. (We have ran into similar concerns generating our own stripe ruby SDK). I think the forked approach could make sense
I am curious if @jez-stripe has opinions here. I would love to see a world where we have a good story for library authors and consumers when using Sorbet in Ruby libraries

In the meantime, I asked Claude Sonnet to write a script to parse the open api spec and generate starter Sorbet types that we can use in our application automatically. With small tweaks it looks like it works well as a start for us:
https://gist.github.com/matv-stripe/024852b3293e239add2e8f8da7ded412
https://gist.github.com/matv-stripe/cd1df667ada5dbed4a97198b6d074263
(As I did this it felt like someone must have solved this already and I found https://gitlab.com/tanna.dev/schema-sorbet which looked intriguing)

That is super cool!


BigInts should use gmp implementation of gcd and lcm

Using gmp methods to calculate gcd and lcm of bigints performance is improved by 4x to 16x.
Simple benchmark.

@endSly Thank you, this is excellent!
I made a few comments, mostly for the overloads that accept an Int.

Fixed, now operations with ints uses *_ui methods. Also added tests for negative numbers.

Thank you again! ❤


fix: yarnpkg not found with collect latest info

This pull request addresses the issue where the yarnpkg command was not found when trying to collect the latest information. The issue was caused by a missing dependency or an outdated version of Yarn installed on the system.
Closes #27, #33
Changes:

Updated the installation instructions in the README file to ensure that users have the latest version of Yarn installed.
Added a check in the build script to verify the presence of yarnpkg and provide a helpful error message if it's not found.
Included a fallback option to install Yarn automatically if it's not present on the system.

How to Test:

Follow the updated installation instructions in the README file to install the required dependencies, including Yarn.
Run the build script or the command that was previously failing due to the missing yarnpkg command.
Verify that the build process completes successfully and that the latest information is collected correctly.

Additional Notes:

If users encounter any issues during the installation process or with the updated build script, they should consult the documentation or reach out to the support team for further assistance.
This fix ensures that the application can collect the latest information reliably, regardless of the user's system configuration or the presence of Yarn.

Please review the changes and let me know if you have any questions or concerns.

What is the output before and after PR?

descibed at issue

Add tests are falling after the PR. Can you fix them in another PR?

i will try to fix the tests failing issue in this pr. Would you please share me the documentation for writing test for this repo? It will be helpful for writing tests.

You don't need to write new tests, just do not break the current one.
To run test do:
pnpm install
pnpm unit

For each test, we create a temporary dir. Copy some real projects there and run tool to update dependency. Then we check tool output and lock file.

thanks


Check if fzf#run() is already executing

#180 only fixes invocations of :FZF. This simply moves the check to fzf#run() so that it works with all invocations of fzf.

Thank you! I commented on the code. Could you change them and force-push to the branch?

Ah woops, changed before I saw the force-push comment. Just a moment.

Done!

:+1:


Enhancement suggestion, option to disable the square (x,y) color selector up top.

Hi, I was wondering if we could have an option to disable the square (x,y) color selector. It would be helpful for mobile usage where there's not that much space. Setting the height to 0 seems to make it disappear, however the selector is still visible.
Oh and could we possible have a dragging option for the angle?
Please consider and thank you, love your work.

@RebZJ this seems like an easy add, will take a look at adding ASAP.

@RebZJ added as "hidePickerSquare" in v3.0.12


use safari-view (in-app-browser) for login process

our app got rejected by apple because we don't do the login flow in app. This pr makes it so that the app pulls up the browser within the app.

Note as potential followup: This PR could be DRYed up a bit.


Alpha indicator

Description

Added Alpha indicator. The formula for the indicator value is return - riskfree_rate - beta() * benchmark
Related Issue

https://github.com/QuantConnect/Lean/issues/6985
Motivation and Context

This change enables user to measure of residual risk of an investment relative to some market index.
Requires Documentation Change

This change require a documentation update with indicator description
How Has This Been Tested?

I had a file with test calculated alpha indicators, using this data I calculated alphas from code and got same results
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] Refactor (non-breaking change which improves implementation)
[ ] Performance (non-breaking change which improves performance. Please add associated performance test and results)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Non-functional change (xml comments/documentation/etc)

Checklist:

[x] My code follows the code style of this project.
[x] I have read the CONTRIBUTING document.
[x] I have added tests to cover my changes.
[x] All new and existing tests passed.
[x] My branch follows the naming convention bug-<issue#>-<description> or feature-<issue#>-<description>

I gave my blessing for a risk-free rate to be a const for the test, but forgot it was param variable for Sharpe Ratio.
@onien-12 please wait for @jhonabreul 's full review; but in addition to his review, can you please make it an argument like here: https://github.com/QuantConnect/Lean/blob/master/Indicators/SharpeRatio.cs#L66C81-L66C81
@jhonabreul later we can merge these indicators with the new dynamic RFR all together.

Also, please take a look at https://github.com/QuantConnect/Lean/pull/7540,  the Alpha indicator should also support quote bars as Beta

@onien-12 Also, please take a look at #7540, the Alpha indicator should also support quote bars as Beta

Just a note, even better if possible shouldn't require a Bar at all, since the indicator only wants a Value which is part of the base BaseData, see SMA & other generic indicator implementations

Closing for now


Prepare release for Form Recognizer and Metrics Advisor Jan 2023

API change check
API changes are not detected in this pull request.


No Space Before/After Clause Template

Describe the bug
Cannot select a text area after a clause if it is the last part of the contract
To Reproduce
Steps to reproduce the behavior:

Run locally within cicero-ui
a. Download both markdown-editor and cicero-ui
b. Run in markdown-editor

npm install
npm run build
npm run transpile
npm link
c. Run in cicero-ui:
npm install
rm -rf node_modules/\@accordproject/markdown-editor
npm link @accordproject/markdown-editor
npm run start

Go to http://localhost:8080/
Try to select after the existing clause to make a paragraph after it
The same occurs when the clause template is the first thing in the contract, and trying to select before it

Expected behavior
There should always be one blank paragraph after a clause template for editing purposes
Additional context
N/A

@irmerk I can take a look at this one.

@SimplyComplexable any progress on this? Opening back up in the meantime.


generate_embeddings error when EvaluatorBase is used with non-SimpleClassificationNet models

🐛 Describe the bug
When testing using an EvaluatorBase child class, if you don't use a SimpleClassificationNet (e.g. SSLDiscriminator), generate_embeddings  will throw an error because it will try to access the fully connected layers of the model.
Error logs
File "/workspaces/workdir/ssl_tools/ssl_tools/experiments/har_classification/_classification_base.py", line 51, in generate_embeddings
    old_fc = model.fc
File "/home/vini_meta4/.local/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1695, in __getattr__
    raise AttributeError(f"'{type(self).__name__}' object has no attribute '{name}'")
AttributeError: 'SSLDiscriminator' object has no attribute 'fc'

Solved by merging the SSLDiscriminator class into SimpleClassificationNet. Now SimpleClassificationNet also receives the update_backbone parameter thus allowing it to freeze while finetuning.


Update decline to 2.4.1

Updates com.monovore:decline from 2.4.0 to 2.4.1.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Files still referring to the old version number
The following files still refer to the old version number (2.4.0).
You might want to review and update them manually.
yarn.lock

Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.monovore", artifactId = "decline" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "@monthly" },
  dependency = { groupId = "com.monovore", artifactId = "decline" }
}]

labels: library-update, early-semver-patch, semver-spec-patch, old-version-remains, commit-count:1

Codecov Report

Merging #690 (f91d979) into main (3fc02ec) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff             @@
##              main      #690    +/-   ##
==========================================
  Coverage   100.00%   100.00%
==========================================
  Files           65        56     -9
  Lines         2843      1970   -873
  Branches       475       322   -153
==========================================
- Hits          2843      1970   -873

Impacted Files
Coverage Δ

...ges/eslint-plugin-redos/src/rules/no-vulnerable.ts

packages/recheck/src/lib/java.ts

packages/recheck/src/lib/native.ts

packages/recheck/src/lib/worker-pool.ts

packages/recheck/src/lib/pure.ts

packages/recheck/src/lib/env.ts

packages/recheck/src/main.ts

packages/recheck/src/lib/agent.ts

packages/recheck/src/lib/exe.ts

packages/recheck/src/browser.ts

... and 1 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Moved DLangSpec files into their own subdirectory.

This is to help with my future efforts in allowing compilation to EPUB. I have also updated the win32.mak and posix.mak files to accommodate these changes. I've done some simple testing with the posix.mak file but almost none on the win32.mak file. I can't think how I've broken anything (unless, of course, win32 make is substantially different than *nix make).

looks like this won't happen - sorry.

Why not? Isn't it just a matter of updating the makefiles so that they install the generated html files in the right place? The html directory structure doesn't necessarily have to correspond with the source file directory structure.


cleanup/2019.12.feat-01-mc

Changed the -mc.xml configuration files of the following robots so that they are ready for the new format of PIDs as introduced by flexible motor input feature in icub-main.
The robots are those which already have motion control version = 5 and which will be ready to support a new mcv = 6 in the next 2019.12.feat-01 release.

[x] iCubGenova04: changed no control mode or PID value as values are already in the new format, just formatted the xml files to be a golden reference for other robots.
[x] iCubGenova02: changed no control mode or PID value as values are already in the new format, just formatted the xml files.
[x] iCubErzelli01: uniformed the control modes (positionControl, velocityControl, mixedControl, torqueControl, currentPid, speedPid) for all joints to be as in iCubGenova04; migrated the entry names of teh PIDs to teh new names; did not changed values.
[x] iCubErzelli02: as previous robot.
[x] iCubErzelli03: as previous robot.
[x] iCubMoskow01: as previous robot.
[x] iCubShenzen01: as previous robot.
[ ] iTeenGenova01: it will be done in a next PR as it is now under test.

cc @S-Dafarra @nunoguedelha for the changes in iCubGenova04 files


Feature/240207

@qu0d please add some description and set yourself as assignee

@octopusden Where to write description?

@octopusden Where to write description?

Find the text "No description provided.". Click "..." -> Edit


Bot crashes randomly on !close

Can you send a picture of any error messages you get when this happens?

https://paste.ee/p/4CLvS

I apologize for the lack of response here. Are you still experiencing this issue (or did you switch to another bot)?

i used pm2 so when it does crashes the bot auto restarts so not really sure but with pm2 im good.


DirectoryNotFoundException ConnectorIcons\connectors.json

Describe the bug
I've tried @a1dancole's CLI extension with the following parameters:
dotnet run --project PowerDocu.GUI\PowerDocu.GUI.csproj --  --updateIcons="true"
It throws an System.IO.DirectoryNotFoundException, because the connectorIcons directory is missing. I looked the folder up in the windows file explorer. The message is correct, the expected folders do not exist yet.
I also ran the code in debugger mode without parameters. This time it worked. I figured out that the reason is that the folder creation only happens when I run the powerdocu in "gui mode", so I narrowed down the exact code snippet (see below).
Since I know what's wrong, it's not hard to work around the problem. But I would consider this an easy fix and hope it will be fixed in the next release.
Further descriptions
Terminal-Logs:

Updating Connectors list, please wait.
An error occured while trying to update the connector list:
System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Users\xy\AppData\Roaming\PowerDocu.GUI\ConnectorIcons\connectors.json'.
at Microsoft.Win32.SafeHandles.SafeFileHandle.CreateFile(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options)
at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable`1 unixCreateMode)
at System.IO.File.OpenHandle(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize)
at System.IO.File.WriteToFile(String path, FileMode mode, String contents, Encoding encoding)
at PowerDocu.Common.ConnectorHelper.UpdateConnectorIcons() in C:\Users\xy\lmn\xyz\abc\modules\PowerDocu.Common\PowerDocu.Common\ConnectorHelper.cs:line 102

Here is the Code-Snippet. It crashes because of the "folderpath" variable. Those directories weren't created in "CLI-mode"

Here is the code snippet where the directory is created:
File: PowerDocu.GUI\PowerDocuForm.Designer.cs

To Reproduce
Steps to reproduce the behavior:

Just Delete the folder "PowerDocu_GUI" from "../AppData/Roaming"
Then run the project in the terminal: dotnet run --project PowerDocu.GUI\PowerDocu.GUI.csproj --  --updateIcons="true"

Expected behavior
I would expect that i can run the project without errors in the cli-mode and don't have to run it in the GUI-mode first.

Hi @keinMEME , thank you for the detailed error report!
It is indeed a simple fix, added the relevant code already (https://github.com/modery/PowerDocu.Common/commit/8974c02cc3ae5d2733454aca84069f9ca43ea263). Will be part of the next release, which I hope will be ready within the next week

Hi, this has been fixed in today's 2.0.1 release. Can you confirm if you still get the error?

Hi, seems fine. Thank you.


Cancel EditCell on Pagination

Hello Allen,
My previous report was closed and there was no new answer in the past 3+ weeks, so I thought I'd open a new question for https://github.com/react-bootstrap-table/react-bootstrap-table2/issues/1316
As I stated in my last response I created a sandbox project using your code, where the behavior I am talking about is consistently reproducing: https://codesandbox.io/s/adoring-almeida-egdqm?file=/src/App.js
Open an editor on the first page and then move to the second page. I would expect the editor to be closed, but when going to the second page the editor on the same row number will still be open.
Please let me know how I could work around this.
Thanks

@zoldbogar add autoFocus on your input element.

thank you very much,
although I have no idea how autoFocus affects pagination, how this solution works or how would I have identified this fix without your kind help: it really works as expected.
Thanks again!


problem with counter_cache

if association is in "include" option, counter_cache field should be in "except" option, otherwise counter_cache field is multiplied by 2 and doesnt represent actual number of associated records (maybe should be mentioned in docs or managed automatically if possible)

Hi, thanks for the feedback! As it is part of the configuration of associations, I think I agree it should be managed automatically. Will have a look when I have the time. PRs are welcome too ;)


Speed issues under Virtualbox

I'm trying to set up Scope under a Virtualbox 4 based environment. The box is set up by a basic vagrantfile, 2 interfaces, 1.5 gigs of RAM, 2 cores with no throttling. Actual host is a recent Core i7, virtualization is supported and on, etc. (Basically multiple VMs can run without a hitch.)
After setting up Scope and launching it with sudo scope launch, the whole VM halts to a crawl. Scope web UI runs fine reacts in an instant, attaching to a containers shell is fluid and instantaneous, anything else however is virtually paused. SSH shells do not time out, but they are unable to respond. Neither the host nor the guest shows excess CPU usage based on top output. Requests to a basic web service running in a test container loads after several seconds of delay.
Upon stopping the scope container from the GUI, the system keeps on being unusable for about 30-35 seconds, then everything returns to normal. CPU usage during the exit shows no change.
RAM usage of the whole system+scope+test container setup stops around 300 megs of active RAM. Logs show no relevant information - actually nothing at all, besides the normal output of the web service.

Thanks for the bug report.  Would you mind giving us a bit more information?

What OS are you using in your VM?
Could you post the Vagrant file?
What version of Docker are you using?
What version of Scope did you run?  The version is in the logs, or in the UI in the bottom right.
Could you post the output of docker logs weavescope?
Could you try and grab the output of top?

With this info I'll try and get reproduce it here.
In 0.11 we've tried to improve the CPU usage of Scope, and we've also found various performance issues in Docker recently (https://github.com/docker/docker/issues/17720), that could be affecting this.

Sure, thanks!
Guest OS is an Ubuntu 15.04,
Linux devbox 3.19.0-37-generic #42-Ubuntu SMP Fri Nov 20 18:22:05 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
vagrant@devbox:~$ docker --version
Docker version 1.9.1, build a34a1d5```

[Vagrantfile.txt](https://github.com/weaveworks/scope/files/62493/Vagrantfile.txt)
[devboxup relevant.txt](https://github.com/weaveworks/scope/files/62492/devboxup.relevant.txt)

Scope is version 0.11.0.

[weavescopelog.txt](https://github.com/weaveworks/scope/files/62497/weavescopelog.txt) - I booted up the VM, started scope with sudo, let it fire up it's web interface, confirmed the VM is unresponsive, then proceeded with halting the weavescope container from the GUI. I see two instances of `received SIGINT/SIGTERM`, even though I only issued the stop command once. (I repeated the experiment to make sure about that.)

[topoutput.txt](https://github.com/weaveworks/scope/files/62508/topoutput.txt)

Issue was present in 0.10.0 as well.

Thats @neo21670, I'll look at this immediately

Possible a dupe of #769?

From the logs its looks like the CPU isn't busy, and I cannot reproduce this on my vagrant VM with Docker 1.9.1 (but Ubuntu 14.04).  I'm going to upgrade to later ubuntu and try again.

Seems to be a good idea. I'm setting up a trusty VM right now.

Yeah 14.04 LTS is also affected by issue.

Another report of something similar #699.
My slow internet is still downloading 15.04.

Is there anything in dmesg?  Would you mind posting the output here?

  I believe there is a problem though (3 reports of this), so would you mind trying a few things for me:

run scope without conntrack: ./scope launch --probe.conntrack false
run scope without docker integration: ./scope launch --probe.docker false

And let me know what affect they have.  Also, are you running the weave network too?  Just checking.  Final question: any sign of OOM killer in dmesg?

Not sure its relevant, but I found my virtual box VM with 2 vcpus was significantly slower than with 1.  May be anecdotal.

On dmesg: nothing special after booting. Downloading a fresh copy of 0.11.1, fired it up, issue still persists. Here's what has changed after shutting down scope from the web gui.
[  533.426554] cgroup: "memory" requires setting use_hierarchy to 1 on the root.
[  533.656410] Netfilter messages via NETLINK v0.30.
[  533.659540] ctnetlink v0.93: registering with nfnetlink.```
I haven't seen anything related to OOM or memory at all.

`--probe.conntrack false` - no improvement.
`--probe.docker false` - no improvement. Obviously I was unable to shut down the container w/o Docker probing.

And finally: no, haven't introduced Weave Net to my stack yet.

Also, here's a `/proc/cpuinfo` - I thought the flags might be useful.
```processor	: 1
vendor_id	: GenuineIntel
cpu family	: 6
model		: 70
model name	: Intel(R) Core(TM) i7-4870HQ CPU @ 2.50GHz
stepping	: 1
microcode	: 0x19
cpu MHz		: 2498.760
cache size	: 6144 KB
physical id	: 0
siblings	: 2
core id		: 1
cpu cores	: 2
apicid		: 1
initial apicid	: 1
fpu		: yes
fpu_exception	: yes
cpuid level	: 5
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx rdtscp lm constant_tsc rep_good nopl pni ssse3 lahf_lm
bogomips	: 4997.52
clflush size	: 64
cache_alignment	: 64
address sizes	: 39 bits physical, 48 bits virtual
power management:```

Also, I tried to fire up the same VM with 4 cores, no result. Same VM, double the RAM, 1 core: same issue.

I tried the same procedure on a VMWare based VM (Ubuntu 14.04 LTS, 1.5GB, 2 cores) - no issues experienced. I guess I'll try to set up a Virtualbox 5 based Vagrant env to see if the issue persists.

Virtualbox 4.3.34 - same issue. It might be interesting, that I chose to force shut down (Close -> Power Off) the VM through the VBox GUI. (So far I've been using vagrant destroy -f.) Despite the function being usually instantaneous on any VMs, when Scope is running, it lasts quite a few seconds. Proceeding with VBox 5 install now.

Thanks for all the info!  Unfortunately this doesn't point to anything obvious.  I'm running virtual box 4.3 myself, interesting that VMWare doesn't experience the issue.
When the issue occurs, what does top report on machine hosting the VM?
I'll speak with my colleages and see if they have any suggestions.

I can reproduce this with Scope 0.11.1 with similar symptoms to the ones described by @neo21670:

When I have enough containers running other than Scope, the VM freezes (it's completely unresponsive through ssh) as soon as I launch the Scope probe container (I happen to run the probe and app separately in a kubernetes cluster)
During the freeze, the Scope web UI keeps being responsive.
As soon as I pause the probe container using the Scope UI everything is responsive again.

The VM has 4GB of RAM reserved and can use 2 CPUs, i.e:
    vb.memory = 4096
    vb.cpus = 2

The problem surfaces when spawning scope while running around 30 containers.
If I spawn Scope while running less containers (20) the system freezes for a while (~2 minutes) but then it recovers.
I am running Docker 1.8.3.
I will gather more information next week.

This has high chances of being a duplicate of https://github.com/weaveworks/scope/issues/812

@neo21670 If you are still interested in this, could you please try to reproduce with --probe.spy.interval=3s ?

Sure, I'll check that in a day, thanks for the heads up. On this being the duplicate of #812, I doubt if that could be it. I'd like to emphasize that neither the host, nor the guest running docker experiences high CPU usage.

@neo21670 Did you get around to run the test?

I can now reproduce the problem systematically while running the Kubernetes cluster I mentioned above. The memory/CPU consumption of the probe is only at 1.5%/20% . So the resource usage shouldn't be triggering the problem as @neo21670 mentioned.
As surprising as it may be, doing
sudo bash -c "echo 'nameserver <IP_ADDRESS>' > /etc/resolv.conf"

before launching Scope makes the problem go away. As soon as I restore the original file and restart Scope the problem comes back.
My VM is using the VirtualBox's DNS proxy in NAT mode which has caused us application-level problems in the past. This problem renders the NAT network interface of the VM unusable. More specifically, it won't allow making any external connections from the VM and it will freeze ssh sessions started with vagrant ssh (since it uses port forwarding through the NAT interface).
However, all the other interfaces are unaffected. In particular, ssh sessions and connections to the Scope UI made through a host-only network interface won't be affected, which why I believe @neo21670 observes that

Scope web UI runs fine reacts in an instant

I don't know enough about VirtualBox to see how its NAT DNS proxy can cause the NAT interface to fail and there don't seem to be any bugs covering the issue but I am pretty sure this is the cause. @neo21670 Can you confirm?
I also don't know why Scope triggers the problem when the number of containers is >20, my guess is this is caused by reverse DNS-lookups. Maybe we are hammering Virtualbox DNS proxy. I will investigate, but in any case I don't think it should render the NAT interface unusable.

It seems that Virtualbox's NAT proxy resolver in NAT mode chokes on IPv6 DNS lookups also causing the NAT interface to be unresponsive.
I have managed to reproduce the problem by simply doing:
while true; do host -t AAAA scope.weave.local; sleep 1; done

Without launching scope at all.
Every time an IPv6 query is made to VirtualBox's proxy resolver, the whole NAT interface is unresponsive for a  while. We can see the impact of it by pinging <IP_ADDRESS> (which goes through the NAT network) and executing the executing host -t AAAA scope.weave.local, which causes the NAT interface to be unresponsive for 8 seconds.
$ ping www.google.com
PING www.google.com (<IP_ADDRESS>) 56(84) bytes of data.
64 bytes from <IP_ADDRESS>: icmp_seq=1 ttl=63 time=3.55 ms
64 bytes from <IP_ADDRESS>: icmp_seq=2 ttl=63 time=3.88 ms
64 bytes from <IP_ADDRESS>: icmp_seq=3 ttl=63 time=3.73 ms
64 bytes from <IP_ADDRESS>: icmp_seq=4 ttl=63 time=3.95 ms
64 bytes from <IP_ADDRESS>: icmp_seq=5 ttl=63 time=4.68 ms
64 bytes from <IP_ADDRESS>: icmp_seq=6 ttl=63 time=4.98 ms
64 bytes from <IP_ADDRESS>: icmp_seq=7 ttl=63 time=3.73 ms
64 bytes from <IP_ADDRESS>: icmp_seq=8 ttl=63 time=4.89 ms
64 bytes from <IP_ADDRESS>: icmp_seq=9 ttl=63 time=3.72 ms
64 bytes from <IP_ADDRESS>: icmp_seq=10 ttl=63 time=2.83 ms
64 bytes from <IP_ADDRESS>: icmp_seq=11 ttl=63 time=3.04 ms
64 bytes from <IP_ADDRESS>: icmp_seq=12 ttl=63 time=3.91 ms
64 bytes from <IP_ADDRESS>: icmp_seq=13 ttl=63 time=4.85 ms
64 bytes from <IP_ADDRESS>: icmp_seq=14 ttl=63 time=3.70 ms
64 bytes from <IP_ADDRESS>: icmp_seq=15 ttl=63 time=5.06 ms
64 bytes from <IP_ADDRESS>: icmp_seq=16 ttl=63 time=5.02 ms # <- I execute 'host -t AAAA scope.weave.local'
64 bytes from <IP_ADDRESS>: icmp_seq=17 ttl=63 time=9541 ms
64 bytes from <IP_ADDRESS>: icmp_seq=18 ttl=63 time=8541 ms
64 bytes from <IP_ADDRESS>: icmp_seq=19 ttl=63 time=7533 ms
64 bytes from <IP_ADDRESS>: icmp_seq=21 ttl=63 time=5532 ms
64 bytes from <IP_ADDRESS>: icmp_seq=20 ttl=63 time=6533 ms
64 bytes from <IP_ADDRESS>: icmp_seq=22 ttl=63 time=4525 ms
64 bytes from <IP_ADDRESS>: icmp_seq=23 ttl=63 time=3515 ms
64 bytes from <IP_ADDRESS>: icmp_seq=24 ttl=63 time=2517 ms
64 bytes from <IP_ADDRESS>: icmp_seq=25 ttl=63 time=1517 ms
64 bytes from <IP_ADDRESS>: icmp_seq=26 ttl=63 time=517 ms
64 bytes from <IP_ADDRESS>: icmp_seq=27 ttl=63 time=3.72 ms
64 bytes from <IP_ADDRESS>: icmp_seq=28 ttl=63 time=3.53 ms
64 bytes from <IP_ADDRESS>: icmp_seq=29 ttl=63 time=4.47 ms

Related: http://stackoverflow.com/questions/12751597/centos-virtualbox-5-second-latency-on-http-requests/12751862#12751862

Any way we can work around this? Scope does a bunch of reverse lookups,
could they be triggering this?
On Monday, 25 January 2016, Alfonso Acosta<EMAIL_ADDRESS>wrote:

Related:
http://stackoverflow.com/questions/12751597/centos-virtualbox-5-second-latency-on-http-requests/12751862#12751862
—
Reply to this email directly or view it on GitHub
https://github.com/weaveworks/scope/issues/769#issuecomment-174546616.

@tomwilkie I am waiting for @neo21670 to confirm, but in my setup it's not the reverse DNS lookups which causes it but simply the IPv6 lookups on the .local domain (see above).

Any way we can work around this?

I believe that disabling AAAA record lookups for scope targets would circumvent this. But I am not sure we should, since Virtualbox is clearly at fault.
I just confirmed that natdnshostresolver is not enabled by default. Without it, the problem doesn't arise so I would say the impact of this is rather low.
It can be easily reproducible by doing ...
vagrant up
vagrant ssh
host -t AAAA scope.weave.local

... with this Vagrantfile:
Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/ubuntu-15.04-amd64"
  config.vm.box_url = "https://cloud-images.ubuntu.com/vagrant/vivid/current/vivid-server-cloudimg-amd64-vagrant-disk1.box"
  config.vm.provider :virtualbox do |vb|
    vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
  end
end

The problem seems to be caused by OSX's (my host) DNS resolver timing out when looking up AAAA records in the .local domain.
$ host www.google.com # fine
www.google.com has address <IP_ADDRESS>
www.google.com has IPv6 address 2a00:1450:4009:811::2004
$ host -t AAAA www.google.com # fine
www.google.com has IPv6 address 2a00:1450:4009:811::2004
$ host something.local # not found, but fails as expected
Host something.local not found: 3(NXDOMAIN)
$ host -t AAAA something.local # causes a timeout!
;; connection timed out; no servers could be reached

This shouldn't cause the NAT network to collapse though. I will just stop digging and report it upstream.

Upstream bug report: https://www.virtualbox.org/ticket/15074

I will close in a few days if there's no more activity.
@neo21670 We would appreciate if you could confirm our diagnosis is correct.

Hi, and sorry for the delay, I've been quite busy.
First, I pulled up a fresh install from everything (Virtualbox, Vagrant, Docker, etc.) and tried my usual workflow, which failed as my original report said.
Next, I commented out the natdnsresolver part of my vagrantfile. After provisioning my VM was able to resolve our currently required domains - so anything that was behind my requirement for using it got fixed in the background. Most importantly, both Scope and the other processes now works fine, so I guess this confirms that Scope works fine as long as natdnshostresolverN is set to off.
Thanks for your time on investigating this issue!

Thank you for confirming @neo21670
What vagrant box are you using? And, are you running OSX? It would help us to understand how common this problem is.
I am closing this now since it's a Virtual Box bug, but we may add a workaround if the upstream bug is not fixed soon and a lot of people are affected.
In the mean time, feel free to comment on https://www.virtualbox.org/ticket/15074

I'm using official Ubuntu Trusty and Vivid boxes, usually the latest ones. Same goes for my OS: OS X, latest releases. When it comes to Virtualbox, I'm usually a bit more conservative with upgrading, however always review the changelog, and upgrade when I'm affected.

The upstream ticket doesn't show any progress. However, I don't think we do any AAAA  lookups to .local domains after https://github.com/weaveworks/scope/pull/867 . @tomwilkie Can you confirm?

It would still be possible for a user to trigger this by providing a .local address as a Scope peer; but yes, by default our scope.weave.local lookups will only look for A records:
https://github.com/weaveworks/scope/blob/master/probe/appclient/resolver.go#L65

but yes, by default our scope.weave.local lookups will only look for A records

Great, that's what I meant.

This was marked as fixed upstream https://www.virtualbox.org/ticket/15074


Postgres migration error: "column "_path" does not exist"

Link to reproduction
No response
Describe the Bug
Hi team,
I'm trying out Payload 2.0 and the Postgres adapter. We've got an existing v1 schema that runs on Mongo. After generating migration files for Postgres and running payload migrate I get the following error:
[12:37:54] ERROR (payload): Error running migration 20231027_123745 column "_path" does not exist.
    err: {
      "type": "DatabaseError",
      "message": "column \"_path\" does not exist",
      "stack":
          error: column "_path" does not exist
              at /REDACTED/node_modules/.pnpm/pg-pool@3.6.1_pg@8.11.3/node_modules/pg-pool/index.js:45:11
              at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
      "length": 95,
      "name": "error",
      "severity": "ERROR",
      "code": "42703",
      "file": "indexcmds.c",
      "line": "1756",
      "routine": "ComputeIndexAttrs"
    }

I tried generating the migration file with both plain payload migrate:create and payload migrate:create --file @payloadcms/db-mongodb/versions-v1-v2 but the same error happens.
There's a bunch of CREATE INDEX IF NOT EXISTS "path_idx" ON ... ("_path");  towards the end of the migration file, which is the only place I can see the column being referenced. In all previous instances, it's in a CREATE TABLE IF NOT EXISTS ... statement. One example:
CREATE TABLE IF NOT EXISTS "lesson_checkpoints_blocks_lesson_checkpoint_body_achievement_card_block" (
    "_order" integer NOT NULL,
    "_parent_id" varchar NOT NULL,
    "_path" text NOT NULL,
    "id" varchar PRIMARY KEY NOT NULL,
    "include_in_recap" boolean,
    "block_name" varchar
);

and later:
CREATE INDEX IF NOT EXISTS "path_idx" ON "lesson_checkpoints_blocks_lesson_checkpoint_body_achievement_card_block" ("_path");

The migration script must be trying to create this index on _path for a table that doesn't have the column? Any ideas how to diagnose or fix?
Thanks!

Discord thread: https://discord.com/channels/967097582721572934/1167444838480879717
To Reproduce

Set up a v1 Payload schema (with Mongo) which includes entries with Blocks fields.
Upgrade to v2, add Postgres adapter.
Generate a migration file with payload migrate:create.
Run migration with payload migrate.

Payload Version
^2.0.13
Adapters and Plugins
@payloadcms/db-postgres, @payloadcms/bundler-webpack, @payloadcms/richtext-slate, @payloadcms/plugin-cloud-storage

Apologies, this does not appear to be a bug with Payload. This was seemingly caused by preexisting table names in our Postgres DB clashing with the Payload table names generated by payload migrate:create. On a fresh DB instance, there is no error.

Thank you for the update @edxv!

Sorry @DanRibbens I spoke too soon. The reason it worked on a fresh instance was because I had been playing with the generated migration file and deleted all lines like the following:
CREATE INDEX IF NOT EXISTS "path_idx" ON "_[ENTITY]_block" ("_path");
If I remove these CREATE INDEX ... lines then the migration works. It only seems to be happening on Blocks fields.

I'm not sure if this is related but I am also seeing errors when accessing any collection containing a Blocks field.
For example, when I try to access our Lesson Checkpoints collection in Payload admin (which contains a Blocks field), I get:
ERROR (payload): error: column _lesson_checkpoints_v__blocks_lessonCheckpointBodyLayoutBlock._path does not exist

Block config:
const LessonCheckpointBodyLayoutBlock: Block = {
  slug: 'lessonCheckpointBodyLayoutBlock',

  labels: {
    singular: 'Layout',
    plural: 'Layouts'
  },

  fields: [
    {
      name: 'type',
      label: 'Select a layout',
      type: 'select',
      options: [
        {
          label: 'Vertical stack',
          value: 'stack_vertical'
        },
        {
          label: 'Horizontal stack',
          value: 'stack_horizontal'
        },
        {
          label: 'Simple grid',
          value: 'grid'
        }
      ],
      defaultValue: 'stack_vertical'
    },
    {
      name: 'spacing',
      label: 'Spacing',
      type: 'number',
      defaultValue: 6,
      required: true,
      admin: {
        condition: (_, siblingData) => siblingData.type !== 'grid'
      }
    },
    {
      name: 'grid_columns',
      label: 'Grid columns',
      type: 'number',
      defaultValue: 2,
      admin: {
        condition: (_, siblingData) => siblingData.type === 'grid'
      }
    },
    {
      name: 'content_width',
      label: 'Content width',
      type: 'select',
      options: [
        { value: 'full', label: 'Full' },
        { value: 'narrow', label: 'Narrow' }
      ],
      defaultValue: 'narrow',
      required: true
    },
    {
      name: 'cells',
      label: 'Layout cells',
      labels: {
        singular: 'Cell',
        plural: 'Cells'
      },
      type: 'array',
      fields: [
        {
          name: 'body',
          label: 'Content',
          labels: {
            singular: 'Content',
            plural: 'Content'
          },
          type: 'blocks',
          minRows: 1,
          blocks: [
            LessonCheckpointBodyCardBlock,
            LessonCheckpointBodyStackBlock,
            ...InnerDefaultContentBlocks
          ]
        }
      ]
    }
  ]
}

Relevant lines in migration file:
...

CREATE TABLE IF NOT EXISTS "lesson_checkpoints_blocks_lesson_checkpoint_body_layout_block" (
	"_order" integer NOT NULL,
	"_parent_id" varchar NOT NULL,
	"_path" text NOT NULL,
	"id" varchar PRIMARY KEY NOT NULL,
	"type" "enum_lesson_checkpoints_blocks_lesson_checkpoint_body_layout_block_type",
	"spacing" numeric,
	"grid_columns" numeric,
	"content_width" "enum_lesson_checkpoints_blocks_lesson_checkpoint_body_layout_block_content_width",
	"block_name" varchar
);

CREATE INDEX IF NOT EXISTS "order_idx" ON "lesson_checkpoints_blocks_lesson_checkpoint_body_layout_block" ("_order");
CREATE INDEX IF NOT EXISTS "parent_id_idx" ON "lesson_checkpoints_blocks_lesson_checkpoint_body_layout_block" ("_parent_id");

I note that the block slug is camelcase but the generated table names are snake case.

Hey @edxv — this is probably caused by your table name length.
Postgres has a max table length of 64 characters, so this one is going to be problematic:
lesson_checkpoints_blocks_lesson_checkpoint_body_layout_block

#4525 is about to be merged, and when it is, you can define custom table names for the tables you are creating that are super long. Once that's done, I am guessing that the issue in this thread will go away. So let's defer to that PR to track progress and I will close this issue in the meantime.
Thank you for bringing this up!


Release version 0.0.7

Codecov Report
Patch and project coverage have no change.

Comparison is base (d93b59a) 100.00% compared to head (3d685c4) 100.00%.

Additional details and impacted files
@@            Coverage Diff            @@
##              main       #84   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            8         8
  Lines          351       351
  Branches        93        93
=========================================
  Hits           351       351

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


feature(drop-down select for actionstate in Compute Tracker/Edit Action)

@smartdev322 Bug with the drop-down select for actionstates. See here:

Current behavior: When the action state changes, the dropdown stays the same.
Expected behavior: The dropdown is always linked to action state, and updates when we toggle it from the event log directly.


Only stripping metrics from attributes in influx

Actually #391 breaks New Relic. This puts a guard in so that only influx will remove string metrics as tags.

Agreed, the tests really need to be beefed up. Lots of room for regressions here.


CMakePresets: branch-quiche: use boringssl nuraft

The standard quiche build uses boringssl, so the NuRaft for the STEK plugin must be the NuRaft built against boringssl.

Cherry-picked to v10.0.x


Update r8

Codecov Report

Merging #154 (4d197b5) into main (96a11e5) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #154   +/-   ##
=======================================
  Coverage   77.27%   77.27%
=======================================
  Files          42       42
  Lines        1813     1813
  Branches      253      253
=======================================
  Hits         1401     1401
  Misses        289      289
  Partials      123      123

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 96a11e5...4d197b5. Read the comment docs.


[SYSTEMML-217] Add New Unary Aggregates: Variance & Standard Deviation

This introduces new "variance" and "standard deviation" unary operators to the DML language, including row and column variants for each: var(X), rowVars(X), colVars(X), sd(X), rowSds(X), colSds(X).  The implementation includes parser, HOP, LOP, runtime, and optimizer components.
The following provides an slightly more-detailed overview, and a full discussion can be found in the design document [1]:

Adds sd, colSds, and rowSds built-in functions for standard deviation to the DML language.
Adds var, colVars, and rowVars built-in functions for variance to the DML language.
Creates a new VAR operation type for the existing AggUnaryOp HOP.
Compiles the sd, colSds, and rowSds built-in DML functions to the square root of the variance via the VAR HOP type wrapped in a OpOp1.SQRT HOP type.
Creates a new Var operation type for the existing Aggregate and PartialAggregate LOPs.
Compiles the VAR HOP type to the Var LOP type.
Creates new runtime opcodes: "avar", "uavar", "uarvar", "uacvar".
Compiles the Var LOP type to new opcodes.
Parses the new opcodes into runtime aggregate operators that use the CM runtime function with Variance type.
Creates a new VAR aggregate type in the core unary aggregate library.
Matches the runtime aggregate operators using the CM function of Variance type to the VAR case.
Extends the core unary aggregate library with new variance functions for the VAR case.
Adds logic for incremental aggregation of variances computed for multiple partitions. [2]
Extends existing optimizer rewrites for column-wise and row-wise aggregation to cover row and column variances.
Adds new optimizer rewrites to optimize row and column variance operations under certain conditions.

[1]: To be posted later once the JIRA project is set up.  This has been posted to SYSTEMML-217.
[2]: The current implementations of incrementalAggregate(...) in MatrixBlock still need to be refactored, however, I've elected to postpone that to a future JIRA in order to limit the scope of this one.
cc @mboehm7

Testing started here.

This feature is a very useful addition and the pull request already looks very nice. Just a couple of cleanups required:

Rewrite: By adding VAR to LOOKUP_VALID_ROW_COL_AGGREGATE, it looks as if the general case rewrites for row/col aggregate do also apply, which is, however, not always the case. The reason why it works is the correct ordering of your new rewrites. However, you still want to use the case for rowVars -> var if we have just a single row. I would recommend to either (a) add an additional constraint to the general case rewrites, or (b) remove VAR from LOOKUP_VALID_ROW_COL_AGGREGATE and add the second general case to the specific VAR rewrites.
Tests: It would be great if we could increase the coverage of these new testcases. First, please use a dense sparsity of 1.0>x>0.4 instead of 1.0 in order to include 0s for dense as well. Second, please make both dimensions larger than 1000 (our default blocksize) in order to test aggregation in the distributed case (your column var test already has that but we should do the same for row var too). Third, since variance requires special handling of 0s, it would be good to include empty input matrices as well.
Runtime: There are a couple of places where you explicitly initialize newly created arrays with 0. This is unnecessary because the Java specification guarantees that int/double arrays are 0-initialized.
Comments (nice-to-have): It's nice that you added comments about the correction layout - you just might want to extend that (in one place) by (a) some note why var is included as actual value, and (b) why these values are sufficient (as all other intermediates can be reconstructed from these values)
Commit messages (nice-to-have): As mentioned before, the key 'SYSTEMML' is just too long for commit messages - we might want to use the old SYSML for our commits. Similarly, I would leave away these compiler/optimizer/parser/runtime tags as they do not really provide any additional information.

Thanks @mboehm7 for the great feedback.

I've incorporated the logic of the new rewrites into the existing general case rewrites with a specific constraint for each, and removed the new rewrites.
I've updated the dense sparsity to be 0.7, increased the dimensions to 1234 x 1432, and added tests for empty cases.  Since standard deviation relies on variance operators internally, I've tried to keep the standard deviation tests simpler to avoid growing our testing time unnecessarily.
I've removed those initializations.  However, I still see several zero-based initializations of the output c matrix in LibMatrixAgg.java, such as on line 1960.  Is there a reason for those cases?
I have added additional comments to getCorrectionLocation(...) in PartialAggregate.java, as seen here.
I have removed the compiler, optimizer, runtime, and parser tags from the title.  While "SYSTEMML-###" is a bit long, I am concerned that changing this to "SYSML-###" could cause confusion.  For example, if someone wanted to look up the associated JIRA, searching for "SYSML-###" in a search engine would not pull up the JIRA issue, while "SYSTEMML-###" would.

NOTE:  This cleanup is still a work in progress.  Extending the test cases to have both dimensions > 1000, thus triggering the parallel threaded execution, exposes fairly consistent, yet somewhat random, failures, mostly in the CP cases.  The variances are somewhat close, but different enough to definitely cause concern.  The incremental aggregation uses the existing logic in CM.java for the aggregation.  The symptoms point towards possible numerical stability issues, off-by-one issues, or some other type of bug.  I will continue looking into it.

thanks for the cleanups.
ad 3: Yes, this is something we still need to cleanup - feel free make the change.
ad 5: OK, let's go consistently with the full SYSTEMML for now, once it becomes too annoying and we all agree on a prefix, we can revisit this.
ad note: Yes, we need to follow up on this one. Does it only happen for column aggregates? If yes, we would need to look at the final aggregation. Does it only happen for variance? One thing to keep in mind is that the epsilon in our tests is used as an absolute not relative tolerance - this implies that we expect larger errors for variance than for standard deviation because the former operates on squared values (and your generated data has a large enough domain). I would be fine to reduce the eps of the variance test to something like eps = Math.pow(10, -7).

@mboehm7 The failures were occurring with row, column, and full variance aggregates (and by extension also standard deviation), only in CP mode, and only for cases in which the dimensions prompted a local multi-threaded execution.  I figured out the problem -- thread contention involving the _buff2 object in the CM function object during threaded variance calculations, located at line 177.  This _buff2 is used as a buffer to calculate the updated m2 values without updating the original m2 object -- it appears to be useful for the other moment calculations, but extraneous for the variance calculation.  Thus, I have removed it, and changed it to update the m2 object directly.  Was there an additional design decision behind this?  If not, I'd like to also clean it up at line 285.
The row/column/full variance and standard deviation tests are passing locally now.  I'll start some full tests soon.

That's a great catch. I don't think there was a particular reason for this buffer use; variance was introduced after the moments and just reused the same infrastructure. Yes, please cleanup the variance computation in CM.
However, note that in general, we tackle this problem of shared state by not reusing function objects with internal state (e.g., see CM.getCMFnObject() compared to KahanPlus.getKahanPlusFnObject()). This is the reason why CM worked fine for multi-threaded groupedAggregate in LibMatrixAgg.

Okay great, I'll cleanup the rest of the variance code as well.  I'll be out of town for a few days, so I'll finish this up first thing on Monday.

Testing started here.

@mboehm7 The rest of the variance code in CM.java has been cleaned up.  I'm running a final full test suite, and pending any other comments, I can merge this in.

LGTM - thanks Mike.

We seem to have had a major test suite regression (>1000 test failures) since the last positive tests, and it is affecting various builds (different branches, i.e. from different pull requests).  The common theme seems to be that the failures are only occurring with those builds that are based on the current master.  Currently investigating.
Build 47 (for this PR), and 48 (for PR #29) both failed.
We'll need to pause the 0.9 release until this is fixed.
cc @mboehm7, @gweidner, @akchinSTC, @lresende

I ran our testsuite last night successfully in my local dev environment. Could it be that there is one of the following issues (1) no clean separation of concurrent runs of our testsuite, or (2) hardware disk issues?

(1) is a good possibility, and we checked on (2) and that doesn't seem to be the case.  Did you run the suite successfully using mvn clean verify?

no I run the testsuite directly with junit from eclipse

Actually, I read (1) wrong.  No, the Jenkins test builds are placed in separate base directories, so they shouldn't interfere with each other.

Okay, yeah the mvn clean verify runs parts of the test suite in parallel, versus the synchronous testing in Eclipse (as far as I know for the Eclipse behavior).  Jenkins uses the former approach.  I don't see any issues just running the specific tests individually in an IDE.

I've attached mvn shell prompt console results when I ran the full suite on my local Windows environment which included the change made to pom.xml (PR #30).
mvn_4282_pom_success_2h_50m.txt

@dusenberrymw could you please try to revert commit 96019cf5e2d62410a631f754c7654e27de842bf and rerun the tests? Furthermore, there was some side effect between tests, hiding an issue - I will fix the test functions.aggregate.ColSumTest.

ok, meanwhile these issues seem to be resolved - I'll deliver the fix tomorrow morning together with same other fixes.

@mboehm7 Great!  I've started build 52 against the current master (with the hotfix), and build 53 is this PR branch rebased over the current master.
As a follow-up for the previous two builds, build 50 (previous current master) failed, and build 51 (rebuild of last positive build) passed.

Great, test builds 52 & 53 have passed.  I'll merge this in now.


Do not disable the Install npm package menu option

This PR is in relation to this issue:
https://github.com/microsoft/nodejstools/issues/2129
We disable the 'Install Missing npm package' in the VS right-click menu when the package is present. The only way to update to a newer version of the package inside VS for the customers is to use the 'Update npm package' menu option.
However this option does not work if the user first updates the package.json file with the new package version and then tries the menu option (more details in the comment on the issue). This is just due to the fact how npm update behaves.
Due to this, we shouldn't disable the 'Install Missing npm package' option to allow users to use this option in such cases. This PR also changes the menu option text to 'Install npm package' instead to reflect that this just runs the 'npm install' command.

@armanio123: Yes, the menu would say 'Install npm Package(s)' and it would run the 'npm install' command.


feat(cli): add TES support

This PR contains code for the CLI and Instructions on how to use them. It is inspired from https://github.com/vemonet/nanopub-rs/blob/main/cli/src/main.rs

Summary by Sourcery
Add a new CLI tool for TES task management with commands for creating, listing, retrieving, checking the status of, and canceling tasks, along with usage documentation.
New Features:

Introduce a new CLI tool for managing TES tasks, including commands for creating, listing, retrieving, checking the status of, and canceling tasks.

Documentation:

Add usage examples and instructions for the new CLI tool in the main.rs file.

@pavelnikonorov, I have addressed all of your concerns. Pleas let me know if you think any other changes should be made.

@aaravm: Can you please merge #37 (after updating the PR description) and then update this PR so that it only contains the changes relative to the updated main? I will give it a closer review then.
For now: Please make sure all modules have docstrings for the module, class, function level etc., as well as comprehensive doctests. Same thing as for the other PRs...

Hi @uniqueg @pavelnikonorov, I have changed the list CLI, to take input in the form of
ga4gh-cli tes list --name_prefix <NAME_PREFIX> --state <STATE> --tag_key <TAG_KEY> --tag_value <TAG_VALUE> --page_size <PAGE_SIZE> --page_token <PAGE_TOKEN> --view <VIEW>

instead of dictionary, as suggested by @pavelnikonorov . Please look into this PR and merge it

all suggestions addressed, merging as discussed with @uniqueg


Don't show placeholder when there is no image in a post

Fixes #173

:tada: This PR is included in version 0.12.3 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Overlay & multiply blending filters gave wrong results with transparent texture

Hi,
What I'm trying to archive is the same to this resultImg:
    NSImage *resultImg = [[NSImage alloc] initWithSize:originalImage.size];
    [resultImg lockFocus];
    [originalImage drawInRect:CGRectMake(0.0, 0.0, originalImage.size.width, originalImage.size.height)];
    [textureImg drawInRect:CGRectMake(0.0, 0.0, originalImage.size.width, originalImage.size.height) fromRect:NSZeroRect operation:NSCompositeOverlay fraction:0.6];
    [resultImg unlockFocus];

So with GPUImage I used:
 GPUImagePicture *stillImageSource = [[GPUImagePicture alloc] initWithImage: originalImage];
    [stillImageSource processImage];
    GPUImageOpacityFilter *opaFilter = [[GPUImageOpacityFilter alloc] init];
    [opaFilter setOpacity: 0.6];
     NSImage *opaResult =  opaFilter imageByFilteringImage:textureImg];
    GPUImagePicture *texture = [[GPUImagePicture alloc] initWithImage:opaResult smoothlyScaleOutput:NO];
    GPUImageOverlayBlendFilter *blendFilter = [[GPUImageOverlayBlendFilter alloc] init];
//    GPUImageMultiplyBlendFilter *blendFilter = [[GPUImageMultiplyBlendFilter alloc] init];
    [stillImageSource addTarget: blendFilter];
    [texture addTarget:blendFilter];
    [texture processImage];
    [blendFilter useNextFrameForImageCapture];
    [stillImageSource processImage];
    NSImage *resultImg = [blendFilter imageFromCurrentFramebuffer];

The resulting image is totally different, for example, if the opacity of the texture is 0.0 (transparent), the resulting image should be the same to the original image. In fact, it looks like the original image overlaid by a white image. I'm not sure if the problem lies on these filters or I did anything wrong?!

I'm having a similar issue with blending filters and opacity. For me the blending filters look fine until I apply an opacity of less than 1.
I have read somewhere that the shaders might not be honouring the alpha (someone correct me if i'm wrong).

em.. I am trying to fix overlay & softLight &  multiply blending filters with transparent texture
I‘ll run some test，then send PR
If you guys are using metal, try MetalPetal..

Nobody merge my PR, but you can use my forked repo..


ORES workers randomly go offline

It's common to check out flower and find that ores workers have gone to an offline state.  There's some errors in the log, but these are properly handled.  See  https://github.com/wiki-ai/revscoring/issues/140 for an example of the most common error.

It looks like this had to do with redis timeouts.  By setting some default timeouts, we solved the problem.


Targeting AndroidSdk 30, webIntent.ACTION_VIEW is broken on Android phone With Android 11

Hello,
My version of this plugin is 2.0.0
cordova-android 9.0.0
cordova cli 10.0.0
I'm building an ionic5 app, and have a problem on Android when targetting AndroidSdk 30 (For Android 11 needed by November 2021 : https://developer.android.com/distribute/play-policies#APILevel30 )
I try to open another app with extra from an Deeplink URL using WebIntent like this :
const options: IntentOptions = {
    action: this.webIntent.ACTION_VIEW,
    url: https://url-for-deeplink,
    extras: {
        returnBundle: {returnJson: "somthing"},
    },
};

this.webIntent.startActivity(options).then(() => {
    // deeplink is opened ko
}, () => {
    // Error during opening deeplink
});

On an Android 11 phone, it works well when i'm targetting AndroidSdk 29 using<EMAIL_ADDRESS>But, By November 2021, we must target AndroidSdk 30, and adding in my config.xml this :
<preference name="android-targetSdkVersion" value="30" />
The startActivity doesn't work, there is an error wich say : Error
I think it is because of the permission QUERY_ALL_PACKAGES :
https://support.google.com/googleplay/android-developer/answer/10158779?hl=en
I can't use other cordova plugin to open other app just with package name for exemple, because i need to send in param of this app json (what i did in the exemple with "extras")
It is just broken on Android phone 11 (below is ok) when targetting sdk30
I can't add the QUERY_ALL_PACKAGES permission to my app becase my app is not sensible as explain here by google : https://support.google.com/googleplay/android-developer/answer/10158779?hl=en#
Is there a way to fix this ?
Thanks for help

If i add QUERY_ALL_PACKAGES permission, then it works on A11 phones when my app targetting AndroidSdk 30.
But if i add this permission, my app will be strike by google, because it is not a legitime permission.
I only need to see the app i want to open, and not all the apps.
It is explain there  : https://support.google.com/googleplay/android-developer/answer/10158779?hl=en#zippy=%2Cpermitted-uses-of-the-query-all-packages-permission

Wouldn't you use the queries element in that case?  https://developer.android.com/guide/topics/manifest/queries-element

Thanks for your help
I have not allready try "queries" , so i will test it
It's not my first priority but i will write results of my tests in many days / week !
I didn't think someone could help me as fast !

Hello, i can confirm that adding  with package of the app i intent, in AndroidManifest.xml is solving my bug
It is sad, because i used a deeplink before, and didn't need to know the package of the app. Now, yes.
I'm looking for how to add it in a proper way, from config.xml with edit-config for exemple, but, there is still another bug with this : https://github.com/apache/cordova-android/issues/1245
Moreover, if the app is not installed, my intent using deeplink return ko. So i need to check before if the app is installed, with cordova-plugin-appavailability, and if yes, processing my intent, if no, just open with inappbrowser my deeplink url
To conclude, queries was necessary like you said darryncampbell

Moreover, if the app is not installed, my intent using deeplink return ko. So i need to check before if the app is installed, with cordova-plugin-appavailability, and if yes, processing my intent, if no, just open with inappbrowser my deeplink url

Not sure if this is completely relevant to you but I remember reading about FLAG_ACTIVITY_REQUIRE_NON_BROWSER from https://medium.com/androiddevelopers/package-visibility-in-android-11-cc857f221cd9, sounds like it could be useful here?

Well, the only error i have from the native interface of ionic is the string "error" :
this.webIntent.startActivity(options).then(() => {
    // deeplink is opened ok
}, (error) => {
console.log(error) // => error is not an object, juste the string "error"
});

I don't think, the native error code is propagate, older nor newer
The check of the app installed works, i'll continue with this for the moment
Thanks again

So the final solution is to add queries via config-file in config.xml like this :
<config-file target="AndroidManifest.xml" parent="/manifest" xmlns:android="http://schemas.android.com/apk/res/android">
    <queries>
        <package android:name="my.package.name1"/>
        <package android:name="my.package.name2"/>
    </queries>
</config-file>


Feature/#50 remove logic from client app

Please note that this feature is still in progress and this pull request will be updated.

Within this pull request there has been created test-executor module which is responsible for AET test execution. This module contains servlets that allow to run test suite and check processing status using the HTTP protocol. The client application has been reworked to use the HTTP protocol instead of JMS.

I hereby agree to the terms of the AET Contributor License Agreement.

Hi @3ndriu, could we merge master branch into your feature branch?

Hi @wiiitek, I've merged the master branch.

@toniedzwiedz @Skejven I've addressed all your comments. Please check, if you're fine with my fixes and answers.


More of a question...

Is being exported really a requirement? I have a running service is O and didn't set the exported flag and it appears to be running fine, is it situational?

I'm guessing this question is about JobScheduler. It's all about how your service is started which determines if you have to export (make it visible to the rest of the device/system) or not. A JobService is started by the system so I'm pretty sure that you have to export it. If you have a service that you start within the app then you do not have to export it.
The O background limitations are another beast. You can start a background service if your app is in the foreground and for up to 30 seconds (do not expect this time) after your app has been backgrounded. After that your services will be shutdown. If your app is not in the foreground you more or less have to make your service a foreground service with a notification. Registering with the Job scheduler is the supported way around this problem but not for long running operation (do not use it to display music controls). Unless you are literal an alarm/timer/clock app you should not use AlarmManager as it is deprecated by the system for any other purposes.


Android phones do not give TiffTag for rotation

I have rotated pictures in regular Compose/Kotlin before, and gotten the Exif orientation value out, but there is nothing here, so this is pretty useless for rotating pictures the right way up. This happens on using webcamera on emulator as well as a real Sony Xperia 1V device. On iPad I get orientation 1 out, so that works, but I am depending on getting it out on all devices...
Any tips are welcome.

2024-05-12 21:33:05.605 10872-10872 rotateImage             com.sar.app.android                  D  Orientation: null
from
fun rotateImage(mapViewModel: MapViewModel) {
    val inputFile: ByteArray = mapViewModel.imageByteArray ?: return
    val metadata = Kim.readMetadata(inputFile)
    val orientation = metadata?.findShortValue(TiffTag.TIFF_TAG_ORIENTATION)
    val test = metadata?.findDoubleValue(ExifTag.)
    val log = logging("rotateImage")
    log.d { "Orientation: $orientation" }
    val newBytes = Kim.update(
        bytes = inputFile,
        update = MetadataUpdate.Orientation(TiffOrientation.MIRROR_HORIZONTAL_AND_ROTATE_RIGHT)
    )
    mapViewModel.imageBitmap = toImageBitmap(newBytes)
}

Hi,
thanks for reaching out.
So you have different results for the same file on different platforms?
As most of the code is shared code this shouldn’t happen.
Can you share a sample file for further investigation?
I like to inspect it using https://stefan-oltmann.de/exif-viewer which has a useful HEX view and is also powered by this library.
Kind regards,
Stefan

Hi Stefan! No, it is when I take a picture with the phones/tablets. I used Exif data to get rotation in Compose a year ago, and that worked fine, we could rotate the image so it always was the right way up. This time, we are using Compose Multiplatform, so Android Graphics do not work, and ExifInterface also gives me orientation 0 on the android side of things when I made an expect/actual function with Kim on iOS and ExifInterface on Android.
In other words, I am confused, as I did get the orientation out from my phone last year, I wonder if something is lost in translation from jpg to inputstream, or if there is something else going on that I don't quite understand.

Yes, it’s possible that grabbing a picture from camera input just gives you JPEG bytes without any metadata. I believe it is the camera app itself that adds the EXIf to the file. So you would need to detect the phone rotation when grabbing the image bytes and write that value as the orientation tag.
You can check this if you save the bytes you got from taking the picture to a file and get that off your phone using adb pull. Inspect those bytes using https://stefan-oltmann.de/exif-viewer and/or ExifTool by Phil Harvey.
If metadata is present and Kim can’t read it this is a bug I need to fix. If it’s not there (what I think is highly likely) the output you got is correct.

@JakkeJ Did you figure out the source of the problem?

@JakkeJ Did you figure out the source of the problem?

I actually used some old code from an old mobile programming course project to load the pictures in, either newly taken or from gallery, and when I did that I got the exif data no problem. Since it worked fine on iOS pictures that sorted me out.

@JakkeJ You said also ExifInterface did not work for you.
Can you share the code that works for you and gets the orientation right?
I still don’t understand the source of the problem and what I can do here.

@JakkeJ You said also ExifInterface did not work for you.
Can you share the code that works for you and gets the orientation right?
I still don’t understand the source of the problem and what I can do here.

Sorry, I'm in the middle of moving right now so I don't have access to my computers for a while. So I'll try to explain:
Not entirely sure it was on your end tbf, the way the code to take pictures I used before, created an empty png file I believe, and then added the data to it, most likely this didn't include the exif data which was never added, seemingly. My old code from last year just did this process differently, and exif data was included. As said earlier it was only on Android it happened, and I followed some guide, probably from Medium, on how to take pictures in Kotlin Multiplatform.

@JakkeJ Do you need any further help here or is this issue resolved?

I think I found a solution for it, but its a while ago now, it was for our
bachelor's thesis
Mvh.
Jim Tore Oshaug Jakobsen
On Sun, 22 Dec 2024, 10:12 Stefan Oltmann, @.***> wrote:

@JakkeJ https://github.com/JakkeJ Do you need any further help here or
is this issue resolved?
—
Reply to this email directly, view it on GitHub
https://github.com/Ashampoo/kim/issues/99#issuecomment-2558387122, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAKJWY7F3JMPT6BCV2NOM2L2GZ66HAVCNFSM6AAAAABJTECNGWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKNJYGM4DOMJSGI
.
You are receiving this because you were mentioned.Message ID:
@.***>


New version: Omniscape v0.4.0

Registering package: Omniscape
Repository: https://github.com/Circuitscape/Omniscape.jl
Created by: @vlandau
Version: v0.4.0
Commit: 3c9c8d99d5c02f6ec13ac838247540653efb890f
Reviewed by: @vlandau
Reference: https://github.com/Circuitscape/Omniscape.jl/commit/3c9c8d99d5c02f6ec13ac838247540653efb890f#commitcomment-41421891

Comment to stall merge.

This is ready to merge. Rerunning register() on a later commit maybe did not reset things to allow auto merging. Thanks! [noblock]

@timholy would you mind manually merging this whenever you get a chance? Thanks much!


Seeing a single space inserted at the end of strings when editing HTML/JS files

VSCode Version: Code - Insiders 1.5.0-insider (d2c04e3789757413ae1ebfda9d88896686b6d006, 2016-09-01T06:10:12.264Z)
OS Version: Windows_NT ia32 10.0.14393

Steps to Reproduce:

Edit HTML file (JS block)
Have some strings in the JS block, edit the string.  Hit save.  Seeing in many cases a single space inserted at the end of the all the strings in the file (which can break the JS)

@rykr I was not able to repro this. Can you share a screen cast/gif of your steps?

At a soccer game. I'll try when I get back
On Sep 6, 2016 6:39 PM, "Ramya Rao"<EMAIL_ADDRESS>wrote:

@rykr https://github.com/rykr I was not able to repro this. Can you
share a screen cast/gif of your steps?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/vscode/issues/11584#issuecomment-245129810,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAGpXIllQFzkOb1DPvBa4zj1QMP4PllGks5qnfnJgaJpZM4J15Aq
.

Here is a video.  It appears to be one of my extensions that is causing it. Not sure which one.
Bug.zip

A number of days has past without answer on the questions asked. I am thereby going to close this issue to clean up our backlog of issues. Once you can answer on the questions, the issue can be reopened again. Thanks for understanding this process!