High RAM Usage and Frequent Crashes with Argo Workflows Controller on Large Scale Workflows

Pre-requisites

[X] I have double-checked my configuration
[X] I can confirm the issues exists when I tested with :latest
[ ] I'd like to contribute the fix myself (see contributing guide)

What happened/what you expected to happen?
Description:
We are observing significant issues with the Argo Workflows Controller while handling a large number of workflows in parallel.
Environment:
Argo Workflows version: 3.4.11
Nodes count: 300+
Parallel workflows: 5000+
What happened:
The Argo Workflows Controller's memory consumption increases exponentially, sometimes surpassing 100GB. Despite this excessive memory usage, the controller crashes frequently. Notably, despite workflows being archived, they aren't deleted post-archiving, possibly contributing to the memory usage. It does not log any specific error messages prior to these crashes, making it challenging to pinpoint the cause or underlying issue.
What you expected to happen:
We expected the Argo Workflows Controller to handle the parallel execution of 5000+ workflows across 300+ nodes without such a drastic increase in RAM consumption. We also expected a more resilient behavior, not prone to unexpected crashes, and better error logging for troubleshooting.
How to reproduce it (as minimally and precisely as possible):
Set up an environment with 300+ nodes.
Launch 5000+ workflows in parallel.
Monitor the RAM usage of the Argo Workflows Controller and note any unexpected crashes.
Additional context:
Given the scale at which we are operating, it's critical for our operations that Argo can handle such workloads efficiently. Any assistance in resolving this issue or guidance on potential optimizations would be greatly appreciated.

Version
v3.4.11
Paste a small workflow that reproduces the issue. We must be able to run the workflow; don't enter a workflows that uses private images.
-

Logs from the workflow controller
-

Logs from in your workflow's wait container
-

What kind of workflow do you use ? do you load test it maybe with simple 5000 cowsay workflow concurrent ?
I think this may help you with that https://pipekit.io/blog/upgrade-to-kubernetes-127-take-advantage-of-performance-improvements

Thank you for your prompt response!
We run a variety of workflows, encompassing various tasks and complexities. We will proceed with updating to Kubernetes 1.27 and see if it resolves the high RAM consumption and controller crash issues. However, I'm skeptical if this update would address the problem with the archived workflows not being deleted. Can you provide more insights or potential solutions regarding that?
Thank you in advance for your support!

I think the root cause can caused by GC not clearing some data (i think). Maybe this will help you https://argoproj.github.io/argo-workflows/running-at-massive-scale/
But in my use-case we trying to migrate from Azkaban to Argo-Workflow. Before that we run concurrent workflow just like what the pipe article do and i think it manage the resource pretty well (using GKE 1.24).
But yeah you can try to run test scenario to load test it first and track where is the issue come from

Yea GC sounds like what you'd want to tune there. There are more detailed docs in the Operator Guide, such as for GC: https://argoproj.github.io/argo-workflows/cost-optimisation/#limit-the-total-number-of-workflows-and-pods
and other scalability tuneables: https://argoproj.github.io/argo-workflows/scaling/.
I'm also working on horizontally scaling the Controller in #9990

There must be errors when deleting the live workflows in the cluster after archiving. Could you paste relevant logs from controller and server?

There must be errors when deleting the live workflows in the cluster after archiving. Could you paste relevant logs from controller and server?

Thanks for your support. These are the only error messages we receive in the controller logs:
W1006 07:30:58.789341       1 reflector.go:324] pkg/mod/k8s.io/client-go@v0.24.3/tools/cache/reflector.go:167: failed to list *v1alpha1.WorkflowTaskResult: stream error when reading response body, may be caused by closed connection. Please retry. Original error: stream error: stream ID 43; INTERNAL_ERROR; received from peer
I1006 07:30:58.789408       1 trace.go:205] Trace[1803986942]: "Reflector ListAndWatch" name:pkg/mod/k8s.io/client-go@v0.24.3/tools/cache/reflector.go:167 (06-Oct-2023 07:29:58.783) (total time: 60005ms):
Trace[1803986942]: ---"Objects listed" error:stream error when reading response body, may be caused by closed connection. Please retry. Original error: stream error: stream ID 43; INTERNAL_ERROR; received from peer 60005ms (07:30:58.789)
Trace[1803986942]: [1m0.005483658s] [1m0.005483658s] END
E1006 07:30:58.789422       1 reflector.go:138] pkg/mod/k8s.io/client-go@v0.24.3/tools/cache/reflector.go:167: Failed to watch *v1alpha1.WorkflowTaskResult: failed to list *v1alpha1.WorkflowTaskResult: stream error when reading response body, may be caused by closed connection. Please retry. Original error: stream error: stream ID 43; INTERNAL_ERROR; received from peer

Yea GC/TTL sounds like what you'd want to tune for deleting archived workflows from your cluster. There are more detailed docs in the Operator Guide, such as for GC: https://argoproj.github.io/argo-workflows/cost-optimisation/#limit-the-total-number-of-workflows-and-pods and other scalability tuneables: https://argoproj.github.io/argo-workflows/scaling/.
I'm also working on horizontally scaling the Controller in #9990

Adding the following settings to the controller config fixed the cleanup of the already archived workflows and the RAM consuption:
      extraArgs:
        - '--workflow-ttl-workers'
        - '32'
        - '--pod-cleanup-workers'
        - '32'
      extraEnv: # https://github.com/argoproj/argo-workflows/blob/master/docs/environment-variables.md
        - name: DEFAULT_REQUEUE_TIME
          value: "1m"

Anyways the controller is still repeatingly restarting. I will update k8s to 1.27.3 and give you feedback if that fixed this issue as well.

Adding the following settings to the controller config fixed the cleanup of the already archived workflows and the RAM consuption

Awesome! Curious, for reference, what did your memory consumption drop to?

Sadly, the controller still crashes from time to time. I found this error message:
time="2023-10-06T13:32:28.353Z" level=fatal msg="Failed to register watch for controller config map: Get \"https://<IP_ADDRESS>:443/api/v1/namespaces/argo/configmaps/argo-workflows-workflow-controller-configmap\": dial tcp <IP_ADDRESS>:443: connect: connection refused"

Hmm this doesn't seem like the same error message, but #11657 is perhaps related. The ConfigMap watcher should be more resilient after #11855. This is functionality that lets you change the ConfigMap without needing to restart the Controller.
Does it crash after this error? Or was that just another error you found in the logs?

Does it crash after this error? Or was that just another error you found in the logs?

Yes, it seems to be crashing now after this log message.

Can you check kubectl logs -p?

It seems that, over the weekend, the worklfows contoller, again, stopped cleaning up the archived workflows... After it crashed and restarted it was cleaing up the workflows. Found nothing uncommon at log levels error & fatal in the logs.

Is it running out of CPU potentially?
You've shown that there is correlation between memory usage and lack of GC, but now it would be important to figure out what the precursor / root cause of the lack of GC is. Would need more information to try to ascertain that

Running out of CPU don't seems to be the problem. It using (at max) 20% of the CPU resources. We adjusted the workflow workers to fit the cleanup workers (both are now at 32). Didn't changed the behaviour. Some new fatal logs appeared this night:
time="2023-10-11T03:47:02.429Z" level=fatal msg="Timed out waiting for caches to sync"
time="2023-10-11T02:58:13.413Z" level=fatal msg="Timed out waiting for caches to sync"
time="2023-10-11T02:46:01.699Z" level=fatal msg="the server was unable to return a response in the time allotted, but may still be processing the request (get workflows.argoproj.io)"

Do you have any idea how to debug this further? I'm running out of ideas...

We analyzed the issue further and found out that the workflow controller is restarted due to failing health checks, which are caused by the same issue described here: Liveness probe fails with 500 and "workflow never reconciled"

@jkldrr @sgutwein  it looks like your k8s API server and etcd are heavily loaded with a number of workflow objects and pods objects. All API requests are timing out or rate limiting(if you are using any vendor k8s solution).
time="2023-10-06T13:32:28.353Z" level=fatal msg="Failed to register watch for controller config map: Get \"https://<IP_ADDRESS>:443/api/v1/namespaces/argo/configmaps/argo-workflows-workflow-controller-configmap\": dial tcp <IP_ADDRESS>:443: connect: connection refused"

Now we see frequent restarts of the controller and found out that it is restarted due to failing health checks, which are caused by the same issue described here: https://github.com/argoproj/argo-workflows/issues/11051

Here few suggestions when you are running high scale of workflows

Increase k8s control plane resources to support the number of objects on your cluster
Increate Workflow controller resources CPU/Memory to hold a number of objects
As suggested above Workflow TTL and podGC --> Will help to reduce the completed objects in etcd.

since we are running on AKS, we unfortunately don't have access to the master node
after your recommendation we reduced TTL and set the podGC. But the number of workflows in state 'archiving pending' seems to still grow. How can we speed up the archiving process? (Our Postgres instance is not the bottleneck)

Overall it seems that we need to tweak our settings in order to find a stable configuration.
Are rateLimit (limit/burst), the different worker numbers (--workflow-workers, --workflow-ttl-workers...) and TTL/GC the correct places to look? Or are there other settings to consider?

Is there a way to improve on how fast workflows are archived?
(workflows.argoproj.io/workflow-archiving-status=Pending)

@jkldrr
I observed a similar issue in our site:

high memory usage, OOMKilled by k8s
succeeded workflow number increases over time
most succeeded workflows cannot be found via kubectl get workflow, these succeeded workflows are re-deleted every 20 minutes but got this message "Workflow already deleted". 20 minutes is the wfInformer's resyncPeriod
some pending archiving workflows block succeeded workflows to be deleted and workflow controller failed to catch up. In this case, kubectl find these workflows
I found some workflows are archiving multiple times
lots of throttling logs

Waited for ... due to client-side throttling, not priority and fairness, request: GET:https://.../apis/argoproj.io/v1alpha1/namespaces/argo/...

all workflow workers(32) are busy at peak time

Based on above observations, I have a hypothesis:

the workflow workers fail to digest the incoming tasks due to qps throttling
since the incoming tasks are queued, the workflow state be handling are delayed
the delayed and incorrect workflow state will be written back to wfInformer and make the succeeded workflow leakage and redundant archiving
succeeded workflow leakage and redundant archiving will make things worse quickly due to more loads to workflow controller

I made some changes and it looks normal now:

increase qps to 100, burst to 150 to avoid throttling and workflow workers can digest load. This reduced the memory pressure a lot. Reference: https://argoproj.github.io/argo-workflows/scaling/#k8s-api-client-side-rate-limiting
however the memory still increased slowly due to succeeded workflows still increased slowly in peak time. I added the environment variable INFORMER_WRITE_BACK=false to avoid workflow controller write back to wfInformer. Reference: https://github.com/argoproj/argo-workflows/blob/5896f7561b0ea3c9e4e556df68d9a702ed247881/docs/environment-variables.md?plain=1#L35

Hope these changes help in your case. Good luck.

@krumlovchiu I guess your hypothesis is about right, we observe the following log messages:
time="2023-10-24T07:08:45.371Z" level=info msg="Queueing Succeeded workflow abc for delete in -5h49m56s due to TTL"
time="2023-10-24T07:08:45.371Z" level=info msg="Deleting garbage collected workflow ‘abc’”
It take a very long time until a workflow gets garbage collected after the TTL ran out.
We tried to compensate by setting --workflow-ttl-workers 96 but so far no success.

This issue becomes worse, when the number of workflow resources keeps increasing while the archiving can´t keep up. At a certain point, the k8s API is overwhelmed and calling get workflows.argoproj.io is very slow. When the workflows controller restarts, it fetches all workflow resources. If the k8s API is overwhelmed like this, the controller fails:
"2023-10-30T07:38:43.298Z" level=fatal msg="the server was unable to return a response in the time allotted, but may still be processing the request (get workflows.argoproj.io)"

Because the request to the k8s API timeouts, the workflow controller crashes and tries to restart again. The same problem occurs again and the workflows controller is in a restart loop. The only way to recover from this, is to manually delete workflow resources until the k8s api response times for get workflows.argoproj.io decrease.

@terrytangyuan
I discovered a discrepancy in the watch requests generated by wfInformer in workflow/controller/controller compared to workflow/cron/controller when communicating with the k8s API server. Specifically, the resourceVersion parameter is missing in the requests from workflow/controller/controller. This omission seems to prompt the k8s API server to return WatchEvents from the latest version, potentially leading to missed WatchEvents by wfInformer, such as delete events. As a result, succeeded workflows may remain in wfInformer indefinitely.
workflow/controller/controller missing resourceVersion:
__source__=log_service __time__=1698635337 __topic__=k8s_api_server _container_name_=kube-apiserver _source_=stderr _time_=2023-10-30T03:08:56.831235179Z content=I1030 11:08:56.831175       1 httplog.go:132] "HTTP" verb="WATCH" URI="/apis/argoproj.io/v1alpha1/namespaces/canal-flow/workflows?allowWatchBookmarks=true&labelSelector=%21workflows.argoproj.io%2Fcontroller-instanceid&timeoutSeconds=557&watch=true" latency="9m17.000861432s" userAgent="workflow-controller/v0.0.0 (linux/amd64) kubernetes/$Format/argo-workflows/v3.4.11 argo-controller" audit-ID="57565d21-1654-4807-8c2c-c34e5bc1af04" srcIP="<IP_ADDRESS>:35015" resp=200 contentType="application/json" apf_pl="workload-low" apf_fs="service-accounts" apf_iseats=1 apf_fseats=0 apf_additionalLatency="0s" apf_init_latency="539.269772ms" apf_execution_time="539.27239ms" resp=200
__source__=log_service __time__=1698634780 __topic__=k8s_api_server _container_name_=kube-apiserver _source_=stderr _time_=2023-10-30T02:59:39.829672376Z content=I1030 10:59:39.829600       1 httplog.go:132] "HTTP" verb="WATCH" URI="/apis/argoproj.io/v1alpha1/namespaces/canal-flow/workflows?allowWatchBookmarks=true&labelSelector=%21workflows.argoproj.io%2Fcontroller-instanceid&timeoutSeconds=486&watch=true" latency="8m6.00118578s" userAgent="workflow-controller/v0.0.0 (linux/amd64) kubernetes/$Format/argo-workflows/v3.4.11 argo-controller" audit-ID="1a771981-2665-42de-9b63-8bf1366d8730" srcIP="<IP_ADDRESS>:56251" resp=200 contentType="application/json" apf_pl="workload-low" apf_fs="service-accounts" apf_iseats=1 apf_fseats=0 apf_additionalLatency="0s" apf_init_latency="661.519019ms" apf_execution_time="661.521015ms" resp=200

workflow/cron/controller:
__source__=log_service __time__=1698635529 __topic__=k8s_api_server _container_name_=kube-apiserver _source_=stderr _time_=2023-10-30T03:12:08.448808764Z content=I1030 11:12:08.448734       1 httplog.go:132] "HTTP" verb="WATCH" URI="/apis/argoproj.io/v1alpha1/namespaces/canal-flow/workflows?allowWatchBookmarks=true&labelSelector=%21workflows.argoproj.io%2Fcontroller-instanceid%2Cworkflows.argoproj.io%2Fcron-workflow&resourceVersion=6422307129&timeoutSeconds=498&watch=true" latency="8m18.001101775s" userAgent="workflow-controller/v0.0.0 (linux/amd64) kubernetes/$Format/argo-workflows/v3.4.11 argo-controller" audit-ID="a93bff01-e817-461f-a13b-eba47e2b72ef" srcIP="<IP_ADDRESS>:50343" resp=200 contentType="application/json" apf_pl="workload-low" apf_fs="service-accounts" apf_iseats=1 apf_fseats=0 apf_additionalLatency="0s" apf_init_latency="356.215µs" apf_execution_time="357.388µs" resp=200
__source__=log_service __time__=1698635031 __topic__=k8s_api_server _container_name_=kube-apiserver _source_=stderr _time_=2023-10-30T03:03:50.446786285Z content=I1030 11:03:50.446711       1 httplog.go:132] "HTTP" verb="WATCH" URI="/apis/argoproj.io/v1alpha1/namespaces/canal-flow/workflows?allowWatchBookmarks=true&labelSelector=%21workflows.argoproj.io%2Fcontroller-instanceid%2Cworkflows.argoproj.io%2Fcron-workflow&resourceVersion=6422260990&timeoutSeconds=543&watch=true" latency="9m3.000783408s" userAgent="workflow-controller/v0.0.0 (linux/amd64) kubernetes/$Format/argo-workflows/v3.4.11 argo-controller" audit-ID="a726b820-8da9-4e4b-be97-79d1ad6f395d" srcIP="<IP_ADDRESS>:54040" resp=200 contentType="application/json" apf_pl="workload-low" apf_fs="service-accounts" apf_iseats=1 apf_fseats=0 apf_additionalLatency="0s" apf_init_latency="350.437µs" apf_execution_time="351.577µs" resp=200

This behavior appears to have been introduced in PR #11343 (v3.4.9) where tweakListOptions is utilized for both list and watch requests. To validate this, we reverted to v3.4.8 and observed that the watch requests now include the resourceVersion parameter:
__source__=log_service __time__=1699011092 __topic__=k8s_api_server _container_name_=kube-apiserver _source_=stderr _time_=2023-11-03T11:31:31.353724739Z content=I1103 19:31:31.353665       1 httplog.go:132] "HTTP" verb="WATCH" URI="/apis/argoproj.io/v1alpha1/namespaces/canal-flow/workflows?allowWatchBookmarks=true&labelSelector=%21workflows.argoproj.io%2Fcontroller-instanceid&resourceVersion=6457248239&timeoutSeconds=533&watch=true" latency="8m53.000581908s" userAgent="workflow-controller/v0.0.0 (linux/amd64) kubernetes/$Format/argo-workflows/v3.4.8 argo-controller" audit-ID="e6506332-99e2-4401-b28b-f16b48ddccfa" srcIP="<IP_ADDRESS>:31549" resp=200 contentType="application/json" apf_pl="workload-low" apf_fs="service-accounts" apf_iseats=1 apf_fseats=0 apf_additionalLatency="0s" apf_init_latency="303.127µs" apf_execution_time="304.331µs" resp=200

We are currently monitoring to see if the count of succeeded workflows continues to rise over time.

Thank you! @krumlovchiu I was just looking at this yesterday and realized the same thing.

It looks tweakListOptions will be passed to NewFilteredUnstructuredInformer, including even WatchFunc .
Are you also seeing errors like the object has been modified; please apply your changes to the latest version and try again Conflict?

We are currently monitoring to see if the count of succeeded workflows continues to rise over time.

Please keep us posted here.

I submitted a potential fix for this https://github.com/argoproj/argo-workflows/pull/12133. A new tag dev-fix-informer will be available once the CI builds succeed. Would anyone like to help test it out when available?

We are currently monitoring to see if the count of succeeded workflows continues to rise over time.

Please keep us posted here.

Hi @terrytangyuan , since @krumlovchiu is on vocation this week, I'm taking over to follow-up this issue. Our system has higher loading during the weekends, and from our current observations, it seems that after downgrading Argo to v3.4.8 on November 3rd, there haven't been any occurrences of an increased count of succeeded workflows this weekend, as we observed during the previous weekend. This is the line chart of the count of succeeded workflows.

However, we currently don't have plans to upgrade to v3.5 yet. If your changes can be based on v3.4, we'd be willing to give it a try.

@carolkao Can you try dev-fix-informer-3.4.8-linux-arm64 or dev-fix-informer-3.4.8-linux-amd64?

Hi @terrytangyuan , I'd like to confirm the change in dev-fix-informer-3.4.8 branch first.
From my understanding, you separate tweakListOptions to two functions: tweakListRequestListOptions and tweakWatchRequestListOptions, but the two do exactly the same thing. I saw the changes in #12133 keep the "options.ResourceVersion = " logic in tweakListRequestListOptions. Are the current changes as you expected?

@carolkao Good catch. It looks like not all changes are included when cherry-picking. I am building dev-fix-informer-3.4.13. Once all builds finish, a new image tag dev-fix-informer-3.4.13 should be available.

@terrytangyuan sounds good!
After the build is ready, I can arrange the version upgrade maybe Tomorrow (11/7). With this new version, I will check if the k8s API calls and the function works as expected or not and get back to you.
However, our high loading appears start from Thursday night (Taipei time), so we might need to wait until 11/10 to confirm if the succeeded workflow increased issue is gone.

Hi @terrytangyuan ,
Looks like build dev-fix-informer-3.4.13 including changes in v3.5 which is different from our expectation.

Can you just cherry-pick the fix for this informer issue into v3.4 and have a new build? Thank you.

@carolkao I think you just forgot to update the image for argo-server. Here's the only difference from v3.4.13 https://github.com/argoproj/argo-workflows/compare/v3.4.13...dev-fix-informer-3.4.13

Let me check it

Hi @terrytangyuan, here are some updates:
I've confirmed both argo-server and workflow-controller are using the same image version - dev-fix-informer-3.4.13. I'm curious if this note also appears in v3.4.13, so I tried and found in v3.4.13, argo-ui does display the release note of v3.5.

In addition to this weird behavior, we noticed there exists another UI bug in this new version. Some nodes of the workflows are missing in Argo UI graph view, but actually the workflows looks running correctly and we can see the pods in timeline view.

Sorry that with above concern which will impact our service users, I'm afraid that I cannot arrange the version upgrade to our production environment at this moment to monitor if it fix the workflow succeeded incremental issue or not. But with build dev-fix-informer-3.4.13 in our dev env, I did see the k8s api query for workflow watch has resourceVersion added.
// watch workflows with resourceVersion=5849977253, with userAgent:"... argo-workflows/untagged ..." which indicates the request was come from your untagged dev build
__source__=log_service __time__=1699331612 __topic__=k8s_api_server _container_name_=kube-apiserver _source_=stderr _time_=2023-11-07T04:33:31.930048025Z content=I1107 12:33:31.929973       1 httplog.go:132] "HTTP" verb="WATCH" URI="/apis/argoproj.io/v1alpha1/namespaces/canal-flow/workflows?allowWatchBookmarks=true&labelSelector=%21workflows.argoproj.io%2Fcontroller-instanceid&resourceVersion=5849977253&timeoutSeconds=471&watch=true" latency="7m51.000562646s" userAgent="workflow-controller/v0.0.0 (linux/amd64) kubernetes/$Format/argo-workflows/untagged argo-controller" audit-ID="8dda91a9-8d89-46b6-929f-65974b1131e3" srcIP="<IP_ADDRESS>:38487" resp=200 contentType="application/json" apf_pl="workload-low" apf_fs="service-accounts" apf_iseats=1 apf_fseats=0 apf_additionalLatency="0s" apf_init_latency="324.407µs" apf_execution_time="325.738µs" resp=200
// watch workflows with resourceVersion=5849988603
__source__=log_service __time__=1699332150 __topic__=k8s_api_server _container_name_=kube-apiserver _source_=stderr _time_=2023-11-07T04:42:29.931940422Z content=I1107 12:42:29.931865       1 httplog.go:132] "HTTP" verb="WATCH" URI="/apis/argoproj.io/v1alpha1/namespaces/canal-flow/workflows?allowWatchBookmarks=true&labelSelector=%21workflows.argoproj.io%2Fcontroller-instanceid&resourceVersion=5849988603&timeoutSeconds=538&watch=true" latency="8m58.000866255s" userAgent="workflow-controller/v0.0.0 (linux/amd64) kubernetes/$Format/argo-workflows/untagged argo-controller" audit-ID="6151f625-c8f7-449c-8d2e-4dd6539236ba" srcIP="<IP_ADDRESS>:21991" resp=200 contentType="application/json" apf_pl="workload-low" apf_fs="service-accounts" apf_iseats=1 apf_fseats=0 apf_additionalLatency="0s" apf_init_latency="417.471µs" apf_execution_time="419.107µs" resp=200

Thank you! We can track the node missing issue separately as I don't think that's related to this issue. https://github.com/argoproj/argo-workflows/issues/12165

I'm curious if this note also appears in v3.4.13, so I tried and found in v3.4.13, argo-ui does display the release note of v3.5.

Thanks for pointing this out!
It looks like the v3.5 upgrade note got accidentally cherry-picked into 3.4.12+: https://github.com/argoproj/argo-workflows/commit/46297cad798cb48627baf23d548a2c7e595ed316
@terrytangyuan not sure how you want to handle that since the history and 2 versions are now affected.

We can revert that in future 3.4 patches. It doesn't affect usage. Tracking in https://github.com/argoproj/argo-workflows/issues/11851.

does the fix reduce apiserver_storage_objects{resource="events"} ?

does the fix reduce apiserver_storage_objects{resource="events"} ?

The fix only affects workflow objects, so I don't think so.

does the fix solved succeeded workflow increase continuously?

@sgutwein @carolkao were u able to retest with the new version?

Hi @tooptoop4  ,
Sorry, but our team currently has no resources to allocate for a version upgrade, so we will remain on version 3.4.8 for now. However, after July might be a more suitable time for the upgrade.

after cherry-pick the pr to v3.4.9, the problem is still exists.

/open

v3.4.9

@zhucan As I've told you repeatedly elsewhere, older patches are not supported by definition. Reporting something on an older patch is not helpful, counter-productive, and against our issue templates.

after cherry-pick the pr

This is a fork. Forks are, by definition, not supported. If you're running a custom version of Argo, that's on you to maintain, please do not expect official support for something the project did not release.

the problem is still exists.

You did not provide any details to support that your issue is due to the same problem or that you have the same issue even. This is similarly not helpful and counter-productive.

Uploading profile001.svg…

Your upload did not complete so there is nothing here. You seem to have uploaded a similar file, a pprof profile, on Slack (around here), but that one has no details around it to tell if they're the same. Your memory usage there is also only at ~6GB, while OP has 100+ GB (i.e. at least an order of magnitude difference). You did not provide any other metrics to support this or give context on this either.

Given that this specific issue has received a resolution and that further comments have not been productive, I will be locking this issue. If you have a similar issue of unbounded growth of memory or lack of GC, please open a separate issue with as many details as possible. For instance, OP and team provided many graphs of metrics, configurations, etc. Without substantive details, it is impossible to a trace an issue.


Program startup options: Rename options::Flags::Hidden to options::Flags::Uncommon

Superseded by #15590

The base branch for PRs can be changed but not the head branch, thus opening a new PR: #15590


Leverage: (HAL-09) OPEN TODOs

Summary
Open To-dos can point to architecture or programming issues that still need to be resolved. Often these kinds of comments indicate areas of complexity or confusion for developers. This provides value and insight to an attacker who aims to cause damage to the protocol.
Problem Definition
Listing 18: Open Todos
1 ./x/ leverage / module .go :28: // TODO : Ensure x/ leverage implements simulator and then uncomment.
2 ./x/ leverage / keeper / interest .go :164: // TODO : use typed events
3 ./x/ leverage / keeper / interest .go :76: // @todo fix this when tender mint solves #8773

Proposal
Consider resolving the To-dos before deploying code to a production context. Use an independent issue tracker or other project management software to track development tasks.

For Admin Use

[ ] Not duplicate issue
[ ] Appropriate labels applied
[ ] Appropriate contributors tagged
[ ] Contributor assigned/self-assigned

I'm really having an impression that more and more auditing companies are spending their time on linting the code rather than searching for vulnerabilities.

See my comment here:
https://github.com/umee-network/umee/pull/1231#issuecomment-1210795366


Save test data to circle-ci

From https://circleci.com/docs/2.0/collect-test-data/#pytest

Merging without approval, this is definitely working on CircleCI, and it will make it easier to debug #164


Request: Add droplet as deployment method

Hi there @schrodingersgat @eeintech!
I would like to add the DigitalOcean droplet I recently created as a deployment method. There is the possibility to add a referral code to the link. If it is ok with you I would create a PR that adds a button to the Readme that enables a secure deployment to DigitalOcean within 3-5 min (if you already have a DigitalOcean account - else it is around 10 from start to ready deployment).
https://marketplace.digitalocean.com/apps/inventree
The update to 0.6.0 is already in review. The referral terms are: I get 25$ once a new customer (came from the app) spend 25$ as a credit on their plattform. I currently use Linode so I would not have use for it but I will switch if one or two referrals come in. I would be open to porridge resources for hosting the demo instance if you want.

Sounds like a great idea, I'd be happy to merge such a PR


libxml2: 2.10.2 → 2.10.3

Description of changes
https://gitlab.gnome.org/GNOME/libxml2/-/compare/v2.10.2...v2.10.3
CVE-2022-40304
CVE-2022-40303

Things done

Built on platform(s)

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

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

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Cherry-picked to master for testing, successfully built python310Packages.lxml, postgresql_14 (tests enabled), libxmlxx, glib, xmlsec, perlPackages.XMLLibXML on macos 10.15.

Cherry-picked to master for testing

This is targeted at master already. Going to get some sleep before i'll think about that.

I don't think it makes sense to have just a single mass-rebuild fix like this merged to master.  I can imagine a staging-next iteration focused on security fixes only and thus requiring only little human work.  (and perhaps merge it before fully finished, especially not waiting for *-darwin)  Note: master..staging-next is empty right now.

I forgot to add:

curl #197843
openssl "critical" fixes on November 1
libtiff in 163984b6f5

(maybe more; I only had a quick glance)

The changelog looks quite minimal.


Support Windows in setup.dart

Fixes https://github.com/dart-lang/wasm/issues/9

Maybe. Can we exclude fn_import_exception_test?

I'm away from my keyboard now. You can skip on a certain platform with the
test package. Just look at the docs for it. Otherwise feel free to land as
is now. And I can come back and look at enabling Windows tests. Whatever
you want to do.
On Fri, Jun 18, 2021, 14:22 Liam Appelbe @.***> wrote:

Maybe. Can we exclude fn_import_exception_test?
—
You are receiving this because your review was requested.
Reply to this email directly, view it on GitHub
https://github.com/dart-lang/wasm/pull/21#issuecomment-864281924, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAEFCVR2VHCXODTKBDGXXLTTO2K5ANCNFSM466HCXRQ
.

I tried windows CI but the setup script isn't working on github's windows. Need to investigate how their environment is different to mine. But I'll submit this as-is for now.


errors 'force_unicode' and 'I/O operation on closed file'

Trying run scaffold from docs:
python manage.py scaffold forum --model Forum char:name
py3, django 1.8.2
    from django.utils.encoding import force_unicode
ImportError: cannot import name 'force_unicode'```

py2, django 1.7.8
```  File "/srv/testy/lib/python3.4/site-packages/django_common/management/commands/scaffold.py", line 38, in handle
    scaffold.run()
  File "/srv/testy/lib/python3.4/site-packages/django_common/scaffold.py", line 730, in run
    self.create_model()
  File "/srv/testy/lib/python3.4/site-packages/django_common/scaffold.py", line 515, in create_model
    for line in self.models_file.readlines():
ValueError: I/O operation on closed file.```

Made fixes in the pull request https://github.com/Tivix/django-common/pull/20

I couldn't reproduce the first case with Python 3 and Django 1.8.2

PR #20 merged


[Run] High RAM usage

Microsoft PowerToys version
0.49
Running as admin

[X] Yes

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

Start the PC with Windows 11.
PowerLauncher.exe uses wy too much RAM

✔ Expected Behavior
No response
❌ Actual Behavior

Other Software
No response

PowerToysReport_2021-10-31-07-29-38.zip

Looks like it might be some interaction with the SearchIndexer 🤔
Might this be what's causing the Out of RAM error some users report? It doesn't happen everytime, does it?

Looks like it might be some interaction with the SearchIndexer 🤔
Might this be what's causing the Out of RAM error some users report? It doesn't happen everytime, does it?

Yeah only sometimes. But it should be fixed in the new dev channel build. I will open it again, when it happens again.


Atom.Object.defineProperty.get is deprecated.

atom.workspaceView is no longer available.
In most cases you will not need the view. See the Workspace docs for
alternatives: https://atom.io/docs/api/latest/Workspace.
If you do need the view, please use atom.views.getView(atom.workspace),
which returns an HTMLElement.
Atom.Object.defineProperty.get (/usr/share/atom/resources/app/src/atom.js:54:11)
AtomJsHint.updatePane (/home/s2move/.atom/packages/atom-jshint/lib/atom-jshint.js:168:9)

@Joezo Please close this as a duplicate of #70.


Noticed a small typo in Contants, an 's' is missing.

    Noticed a small typo in `Contants`, an 's' is missing.

Originally posted by @bglamadrid in https://github.com/trebol-ecommerce/spring-boot-backend/pull/111#discussion_r988542974

Solved by #119


New IPPool resource for fine-grained subnet cidr division.

Feature request
By dividing the CIDR into segments for management, we can bind a segment to a namespace, thus improving ease of use.

It would be nice to allow the users to specify the ippool name in pod/deployments/… annotation without the need to use ip ranges in annotations

Hi, in which release is this feature expected to land? 1.11.x ?

Hi, in which release is this feature expected to land? 1.11.x ?

@patriziobassi This new feature includes API changes and fundamental changes to the IPAM component, and we plan to release it in the 1.12 release.

Hi, in which release is this feature expected to land? 1.11.x ?

@patriziobassi This new feature includes API changes and fundamental changes to the IPAM component, and we plan to release it in the 1.12 release.

great! any ETA for it?

@patriziobassi Most of the code work is ready, we are trying to organize the document and release related work, and it should be officially released at the end of this month. You can try the master branch to check if it works before release and we will appreciate for that.


Flutter App Ideas / Preview

Home Page

Top Carousel
The idea is to have infinitely scrolling cards, which would contain a card for an upcoming event and the other cards would contain images from previous meetups (currently containing placeholders) or anything for that matter .
Grid Of Meetups
This Grid contains upcoming and past meetups marked with a chip / flag (currently not present).
Each card in this grid should contain very minimal amount to data (Date, Time, Etc). Each card contains a Location Button  which on clicked takes the user to Google Maps.
Event Page

Top Card
The top card would contain basic details about the event.
Speakers List

The Speakers are listed out in this beautiful card like format, the accent color for the speaker (currently red) will be extracted from the image.
If a user on the image of the speaker, the search ui would be shown up and other talks form the speaker would be shown off.
Google Maps

This Container shows the location of the meetup.
The Like / favourite Button
The like button should add this meetup a list of "favourite" , also the like button should add this meetup to the users calendar!
Try the app.
Git.
Leave your Thoughts, Ideas, Suggestions down below

This is beautiful! Thanks a lot for the hardwork. What do you need from us to start replacing hard-coded data with data from the API?


Add Rust Roguelike

https://github.com/richardanaya/rust-roguelike

I looked at it and there doesn't seem to be anything besides moving on the screen. This looks to me like a roguelike walking simulator (which has problems on the borders of the screen). Maybe close this issue?

ping

There hasn't been any activity in the linked repository. I vote for closing this issue.

fine by me

Closing it if there're no objections.

please close


doc starts with complicated stuff, before talking about the easy approach

chili is easy to use. Just do:
chili.encode(some_object)

or
chili.json_encode(some_object)

... but the doc currently talks about creating Encoder objects, annotating classes, etc, which is super complicated, and totally unnecessary for basic usage.
Strongly suggest starting with the easy way to use chili. Then afer tha, you can have a section "Advanced" to talk about more fancythings.

(also, for the class annotaiton requiremetn, something liek:
"Chili works with any dataclass. If you want to use chili with an object which is not a dataclass, you can also choose to annotate it with [insert chili annotaiton class here]"


Destination member configured but does not exist on destination.

Hi,
I was using automapper by creating maps using strings before but I wanted to use the assetConfigurationIsValid but its reporting errors that I do not think are correct.
I got the following error.
throw new Error("Mapping '" + mappingKey + "' is invalid: " + errorMessage + " (source: '" + sourceClassName + "', destination: '" + destinationClassName + "').");
                    ^

Error: Mapping 'CreateDepositTranQrRequest=>DepositTranQr' is invalid: Destination member 'currency' is configured, but does not exist on destination type (source: 'CreateDepositTranQrRequest', destination: 'DepositTranQr').

My map is a very simple createMap for testing, I have removed all others to ensure I get a good test result. Here it is
automapper.createMap(CreateDepositTranQrRequest, DepositTranQr)
    .forMember('currency', (opts: AutoMapperJs.IMemberConfigurationOptions) => opts.mapFrom('currency'));

automapper.assertConfigurationIsValid();

It states that the currency isn't available. Although I know it is. Here is the source and destination where you can see the currency exists and is public.
export class CreateDepositTranQrRequest {
    public currency: string;

and
export class DepositTranQr {
    public currency: string;

I must be using it incorrectly, but there are no concrete examples using the source and destination keys as physical classes rather than strings.
If I continue to pass in strings to the createMap rather than classes then the assertConfigurationIsValid throws a different error stating
throw new Error("Mapping '" + mappingKey + "' cannot be validated, since mapping.sourceType or mapping.destinationType are unspecified.");
                ^

Error: Mapping 'CreateDepositTranQrRequest=>DepositTranQr' cannot be validated, since mapping.sourceType or mapping.destinationType are unspecified.

Can anyone help ? Or tell me what I maybe doing wrong ?
Thanks in advance

Hi @appsolutegeek, thanks for creating an issue.
Before I try answering your question, please note validation is only a very early version of validation. I have been asked to implement validation a long while ago, but using validation in JavaScript has its (serious) limitations.
The sample that fails on you clearly shows one of those limitations. Only defining a TypeScript property does not result in the property actually being created in JavaScript. If you like to use validation, you must also initialize all properties. In the 'automapper-assertconfig-specs.ts' test file, you can see this in action:
class AssertConfigPropertiesProp {
    prop: string = undefined; // TODO Wiki: properties are only available when initialized: http://stackoverflow.com/a/20534039/702357
}

I hope this helps a bit. Should you love validation and be willing to give me a hand, feel free to create cool stuff and file a PR ;) .
Cheers, Bert


Why do we get a openai.error.InvalidRequestError if we pass None to logit_bias even if it defaults to null?

Describe the bug
According to the docs, logit_bias defaults to null, but if we pass None to this parameter we get openai.error.InvalidRequestError

openai.error.InvalidRequestError: None is not of type 'object' - 'logit_bias'

So, I suppose this is a bug in this package, as None should correspond to what the docs refer to as null, or the documentation is wrong.
To Reproduce
Use the script below
Code snippets
import openai

completions = openai.Completion.create(model="text-davinci-003",
                                       prompt="hello",
                                       logit_bias=None)
print(completions)

OS
macos monterey (12.5.1)
Python version
Python 3.8.13
Library version
0.27.0

I have experienced the same problem. In the documentation is is stated, that the default value should be null.

However, when providing it explicitly, I'm getting the same error in the Postman as OP.

As far as I have investigated the API. It looks like providing the empty map has fixed the problem.

So I believe, that there are two solutions here. First one would be changing the documentation and providing the "Defaults to empty map". Second one would be changing the API so it can accept the null value as logit_bias parameter.
Looking forward for any updates on this case and decided solution from the developers.

I will have the team take a look at this later this week.

Closing because this is an API issue rather than an SDK issue.


Fixing force flag + Updating required packages

Fixes #951
Proposed Changes

Fix the force flag used with the delete API. Currently the delete API call fails if the force flag is used
Update Packages file with the required version of typescript to make the first installation easier for new contributors

Pull Request Test Coverage Report for Build 2564

0 of 1 (0.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 67.503%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

packages/LUIS/bin/luis.js
0
1
0.0%

Totals

Change from base Build 2556:
0.0%

Covered Lines:
4199

Relevant Lines:
5893

💛  - Coveralls

I approved and signed off 2+ hours ago! :) Merge when your ready...


Generic cannot be narrowed to satisfy NonNullable

Bug Report

🔎 Search Terms

generic can't be narrowed
narrow nonnullable generic

🕗 Version & Regression Information

This is the behavior in every version I tried from 4.6.2 to 4.0.5 and nightly v4.7.0-dev.20220408

⏯ Playground Link

Playground link with relevant code
💻 Code

function test<T extends string | null>(input: T): NonNullable<T> {
  if (!input) { // this should narrow `input` to `T extends string`
    throw new Error();
  }

  return input; // type error
}

🙁 Actual behavior
Type error
Type 'T' is not assignable to type 'NonNullable<T>'.
  Type 'string | null' is not assignable to type 'NonNullable<T>'.
    Type 'null' is not assignable to type 'NonNullable<T>'.

🙂 Expected behavior
TypeScript should know I've narrowed the generic type to satisfied the NonNullable type.
I came across https://github.com/microsoft/TypeScript/pull/43183 which I was expecting to also address this scenario.

This might be a duplicate of https://github.com/microsoft/TypeScript/issues/48048


Use Rust 2018 syntax?

Should we be using Rust 2018 syntax in the book? The main change would be removing extern crate statements.

agree but the suggested change has to be synchronized with the appropriate change in source code of the examples at github.com/rust-embedded/cortex-m-quickstart .
I will help & fix both if someone explains me how to synchronize these Repos

What do you mean by synchronize? Open PRs on both and then we'll merge them, couldn't be easier. 😅

Created a PR on this issue

This issue might be closed since the appropriate PR was merged.

There are still some extern crate statements in the book. For example:
https://github.com/rust-embedded/book/blob/19f798d448835a4888e3b3eae7fe69f1d61d8681/src/peripherals/singletons.md?plain=1#L65
https://github.com/rust-embedded/book/blob/09986cd352404eb4659db44613b27cac9aa652fc/src/collections/index.md?plain=1#L33
Shall we fix them all?

@Narukara I would welcome a PR fixing them all. We could then close this issue.


ERROR: Missing precompiled manifest for 'AsyncLoadingScreen'

I am using Version: 4.25.4-14469661+++UE4+Release-4.25 on Windows 11,
while packaging my game for Linux x64, I get the following error:
UATHelper: Packaging (Linux (AArch64)):   ERROR: Missing precompiled manifest for 'AsyncLoadingScreen'. This module was most likely not flagged for being included in a precompiled build - set 'PrecompileForTargets = PrecompileTargetsType.Any;' in AsyncLoadingScreen.build.cs to override.
PackagingResults: Error: Missing precompiled manifest for 'AsyncLoadingScreen'. This module was most likely not flagged for being included in a precompiled build - set 'PrecompileForTargets = PrecompileTargetsType.Any;' in AsyncLoadingScreen.build.cs to override.
UATHelper: Packaging (Linux (AArch64)): Took 2.9980548s to run UnrealBuildTool.exe, ExitCode=6
The packaging for Windows is working fine.
The plugin should support linux.
How to fix it?
Thanks

It isn't clear how you broke this, so we can't say how to fix.

I think that he dont broke anything? for me it not work from absolute start same issue. with Linux, Win works perfectly

Are you placing the plugin into engine? Try instead placing it into game's Plugins dir.

"Whats" Games plugins Dir?
Plugins are instaled with Epic game launchers in the UE Directory not in the project directory. When Plugins are in game directory they usually not works.


Feature request: support custom control port

e.g: 443

@mantou132 you can change the constant in src/shared.rs:
https://github.com/ekzhang/bore/blob/2d0dcf9889dcdb3b202d69163f7f071d09facb83/src/shared.rs#L13-L15
I could make it variable, probably through a command line option if there's no reason it can't be changed @ekzhang.

I want this feature too.
Currently, bore cannot be used in a network where the control port is blocked.
I want to avoid this by choosing a port that is less restrictive (eg 443).

@hkcomori as I suggested, if you don't mind compiling it yourself, you can change the CONTROL_PORT constant.
https://github.com/ekzhang/bore/blob/9cd43f458a7f15142ab9e9c03f58a35c94ffbe4a/src/shared.rs#L16-L18


Adding WAS nodes breaks Generate button until browser refresh

When I add these nodes from your suite, the Generation button stops working until I refresh the browser page.
It's usually with Text to Conditioning nodes/Text Multiline.

I think I have steps to replicate:
1.) Use a text multi-line node + "Text to Conditioning" to set up some sampler. Generate some images
2.) Duplicate the "text to conditioning" node. When you connect the "String" output from the multi-line, comfyUI should soft lock. The generation button will not work, neither will save/load functions.

This is a ComfyUI front-end bug. Report there.
On Fri, Dec 1, 2023, 11:49 AM poisenbery @.***> wrote:

https://github.com/WASasquatch/was-node-suite-comfyui/assets/78466408/783dafc1-b251-4c9f-96af-7a6e8a566eaf
—
Reply to this email directly, view it on GitHub
https://github.com/WASasquatch/was-node-suite-comfyui/issues/285#issuecomment-1836681076,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAIZEZPQJHM2NLGU4PSQYCLYHIYFTAVCNFSM6AAAAAA75UGLNKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMZWGY4DCMBXGY
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


[Node Manager] Upload API doesn't support batch port upload

Context
The Node Mgr API /nodes/upload doesn't meet the design goal of registering multiple nodes in one shot. The required format of machine.json file is as follows:
{
   "Hosts": [
      {
         "local_ip": "<IP_ADDRESS>",
         "node_id": "cc09465c-5ed6-400e-806d-fbe3d12f94a9",
         "mac_address": "00:A0:C9:14:C8:29",
         "node_name": "Compute1",
         "server_port": 50001,
         "veth": "eth0"
      },
      {
         "local_ip": "<IP_ADDRESS>",
         "node_id": "a976fe8a-2ebc-4d8b-9750-a6ec31b9680e",
         "mac_address": "00:A0:C9:14:C8:3A",
         "node_name": "Compute2",
         "server_port": 50001,
         "veth": "eth0"
      },
      ......
      {
         "local_ip": "<IP_ADDRESS>",
         "node_id": "7fa7f9b8-8ce5-4c61-9a09-a739eeb965ac",
         "mac_address": "00:A0:C9:14:C8:4F",
         "node_name": "Compute19",
         "server_port": 50001,
         "veth": "eth0"
      }
   ]
}

Request
Code and UT fix

Hello Liguang,
I saw the following email.  Just FYI, when the Node Mgr API /nodes/upload was tested, it was fine. It looks like the reason it doesn’t work now may be the difference of machine.json.  I hope this helps you fix this issue.
Tested machine.json was in  services/node_manager/test/java/com.futurewei.alcor.nodenamaner/controller/machine.json. Previous file format was as fiollows:
{
"Hosts": [
{
"id": "ephost_0",
"ip": "<IP_ADDRESS>",
"mac": "02:42:ac:11:00:06",
"veth": {}
},
{
"id": "ephost_1",
"ip": "<IP_ADDRESS>",
"mac": "02:42:ac:11:00:07",
"veth": {}
},
{
"id": "ephost_2",
"ip": "<IP_ADDRESS>",
"mac": "02:42:ac:11:00:08",
"veth": {}
},
{
"id": "ephost_3",
"ip": "<IP_ADDRESS>",
"mac": "02:42:ac:11:00:09",
"veth": {}
},
{
"id": "ephost_4",
"ip": "<IP_ADDRESS>",
"mac": "02:42:ac:11:00:0a",
"veth": {}
},
{
"id": "ephost_5",
"ip": "<IP_ADDRESS>",
"mac": "02:42:ac:11:00:0b",
"veth": {}
},
{
"id": "ephost_6",
"ip": "<IP_ADDRESS>",
"mac": "02:42:ac:11:00:0c",
"veth": {}
},
{
"id": "ephost_7",
"ip": "<IP_ADDRESS>",
"mac": "02:42:ac:11:00:0d",
"veth": {}
},
{
"id": "ephost_8",
"ip": "<IP_ADDRESS>",
"mac": "02:42:ac:11:00:0e",
"veth": {}
},
{
"id": "ephost_9",
"ip": "<IP_ADDRESS>",
"mac": "02:42:ac:11:00:0f",
"veth": {}
}
]
}
From: Liguang Xie<EMAIL_ADDRESS>Sent: Saturday, July 18, 2020 5:43 PM
To: futurewei-cloud/alcor<EMAIL_ADDRESS>Cc: Subscribed<EMAIL_ADDRESS>Subject: [futurewei-cloud/alcor] [Node Manager] Upload API doesn't support batch port upload (#303)
Context
The Node Mgr API /nodes/upload doesn't meet the design goal of registering multiple nodes in one shot. The required format of machine.json file is as follows:
{
"Hosts": [
  {

     "local_ip": "<IP_ADDRESS>",

     "node_id": "cc09465c-5ed6-400e-806d-fbe3d12f94a9",

     "mac_address": "00:A0:C9:14:C8:29",

     "node_name": "Compute1",

     "server_port": 50001,

     "veth": "eth0"

  },

  {

     "local_ip": "<IP_ADDRESS>",

     "node_id": "a976fe8a-2ebc-4d8b-9750-a6ec31b9680e",

     "mac_address": "00:A0:C9:14:C8:3A",

     "node_name": "Compute2",

     "server_port": 50001,

     "veth": "eth0"

  },

  ......

  {

     "local_ip": "<IP_ADDRESS>",

     "node_id": "7fa7f9b8-8ce5-4c61-9a09-a739eeb965ac",

     "mac_address": "00:A0:C9:14:C8:4F",

     "node_name": "Compute19",

     "server_port": 50001,

     "veth": "eth0"

  }

]
}
Request
Code and UT fix
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ffuturewei-cloud%2Falcor%2Fissues%2F303&data=02|01|eunju.kim%40futurewei.com|31de1764d1b048abc7fd08d82b7cb764|0fee8ff2a3b240189c753a1d5591fedc|1|0|637307161946108427&sdata=cxL4y8KFWd2X6r%2BEoNslGV%2BA6%2FWUuwrdjSsBD7mo5ec%3D&reserved=0, or unsubscribehttps://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAOG3JMZWDDWD47G26IDLMZDR4I6SBANCNFSM4PASZ57Q&data=02|01|eunju.kim%40futurewei.com|31de1764d1b048abc7fd08d82b7cb764|0fee8ff2a3b240189c753a1d5591fedc|1|0|637307161946108427&sdata=0IwhcGMXpnDzNfRRufqTHm%2F39XWwO96mQfBOj3tiuxU%3D&reserved=0.

@kimeunju108 Thanks for providing the information.
Actually the TEST machine.json as your pointed out was actually tested first for POST /nodes/upload. But the API throws the following exception:
java.lang.ClassCastException: class org.json.simple.JSONObject cannot be cast to class java.lang.String
After trying a Json with the same Json format as that in POST /nodes, it would work but that only allows one node registration.


FAQ: Is there a way to exempt individual findings?

[Enter feedback here]
This is FAQ by our customers "Is there a way to exempt individual findings?"
The simple answer is no. Can we please have it documented as a limitation for now?
Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: ddbaf64c-f5c5-3e31-e639-b96213dc257c
Version Independent ID: ac13399d-6ee7-3ab9-b9fd-9dae5370b14d
Content: Review hardening recommendations - Microsoft Defender for Cloud
Content Source: articles/defender-for-cloud/apply-security-baseline.md
Service: defender-for-cloud
GitHub Login: @dcurwin
Microsoft Alias: dacurwin

@ankkp
Thanks for your feedback! We will investigate and update as appropriate.

@ankkp
Thanks for bringing this to our attention.
I'm going to assign this to the document author so they can take a look at it accordingly

#reassign:elazark

#label:"backlog-item-created"

Thank you for your comment. We'll investigate and get back to you.


Add help strings for configs and CLI

In one of the Studios I added help strings for configs because it was requested. Users might explore configs before going to run --help in the CLI, so it might make sense to add them.
Furthermore, I also think the order in which the arguments are presented in the config is important. Relevant ones should be at the top, less frequently used ones at the bottom. We don't have such an ordering at the moment afaik.
Sharing these here in case we want to reuse some of these descriptions.
Pretraining
# The name of the model to pretrain
# Choose from names in litgpt/config.py
model_name: tiny-llama-1.1b
# Where to save checkpoints and logs
# If run in a MMT job, look for it in /teamspace/jobs/<job-name>/share
out_dir: out/pretrain/tiny-llama
# Path to a checkpoint dir to resume from in case training got interrupted
resume: false
# The name of the logger to send metrics to. Choose from 'tensorboard', 'csv', 'wandb'
logger_name: tensorboard
# Dataset arguments
data:
  class_path: TinyLlama
  init_args:
    data_path: /teamspace/s3_connections/tinyllama-template
train:
  # The length of the input sequences to train on, also known as "context size"
  max_seq_length: 2048
  # After how many optimization steps to save a checkpoint
  save_interval: 1000
  # After how many optimization steps to log metrics
  log_interval: 1
  # The batch size across all GPUs in a machine
  global_batch_size: 512
  # The batch size to use for gradient accumulation
  # Maximize this value based on the available GPU VRAM
  micro_batch_size: 1
  # How many epochs to train for. Mutually exclusive with max_tokens and max_steps
  epochs: null
  # How many tokens to train for (total across all GPUs). Mutually exclusive with epochs and max_steps
  max_tokens:<PHONE_NUMBER>000
  # How many optimization steps to train for. Mutually exclusive with epochs and max_tokens
  max_steps: null
  # For how many optimization steps to warm up the learning rate
  lr_warmup_steps: 2000
  # The max learning rate after linear warmup
  learning_rate: 4e-4
  # The minimum learning rate after cosine decay
  min_lr: 4.0e-05
  # How much weight decay to use in AdamW
  weight_decay: 1e-1
  # Beta parameters for AdamW
  beta1: 0.9
  beta2: 0.95
  # Clip gradients to this norm
  max_norm: 1.0
  # Whether to tie embeddings (depends on the model)
  tie_embeddings: null
eval:
  # After how many optimization steps to run validation
  interval: 1000
  # How many tokens to generate during validation
  max_new_tokens: null
  # How many batches to run during validation
  max_iters: 100
# Path to the tokenizer dir that was used for preprocessing the dataset
tokenizer_dir: tokenizer/Llama-2-7b-hf
# How many devices/GPUs to use
devices: auto
# The random seed to initialize the weights of the model
seed: 42

Finetuning
# The path to the base model checkpoint dir to load for finetuning
checkpoint_dir: checkpoints/TinyLlama/TinyLlama-1.1B-intermediate-step-1431k-3T
# Where to save checkpoints and logs
out_dir: out/
# The precision to use for finetuning. Possible choices: bf16-true, bf16-mixed, 32-true
precision: bf16-true
# If set, quantize the model with this algorithm.
# Possible choices: bnb.nf4, bnb.nf4-dq, bnb.fp4, bnb.fp4-dq, bnb.int8-training
quantize: null
# How many devices/GPUs to use
devices: 1
# The LoRA hyperparameters
lora_r: 32
lora_alpha: 16
lora_dropout: 0.05
lora_query: true
lora_key: false
lora_value: true
lora_projection: false
lora_mlp: false
lora_head: false
# The name of the logger to send metrics to. Choose from 'tensorboard', 'csv', 'wandb'
logger_name: tensorboard
# Dataset arguments
data:
  class_path: litgpt.data.Alpaca2k
  init_args:
    # Whether to include the prompt part in the optimization
    mask_prompt: false
    # The prompt style to use. See litgpt/prompts.py for possible choices.
    prompt_style: alpaca
    # The seed to use for creating the train/val splits and shuffling the data.
    seed: 42
    # The number of workers to use per GPU for dataloading
    num_workers: 4
    # Where to download the data
    download_dir: data/alpaca2k
train:
  # The length of the input sequences to train on, also known as "context size"
  # This depends on how long the sequences in your finetuning dataset are, and
  # whether you want to truncate to save memory
  max_seq_length: 512
  # After how many optimization steps to save a checkpoint
  save_interval: 800
  # After how many optimization steps to log metrics
  log_interval: 1
  # The batch size across all GPUs in a machine
  global_batch_size: 8
  # The batch size to use for gradient accumulation
  # Maximize this value based on the available GPU VRAM
  micro_batch_size: 8
  # How many epochs to train for. Mutually exclusive with max_tokens and max_steps
  epochs: 4
  # How many tokens to train for (total across all GPUs). Mutually exclusive with epochs and max_steps
  max_tokens: null
  # How many optimization steps to train for. Mutually exclusive with epochs and max_tokens
  max_steps: null
  # For how many optimization steps to warm up the learning rate
  lr_warmup_steps: 10
  # The max learning rate after linear warmup
  learning_rate: 0.0002
  # The minimum learning rate after cosine decay
  min_lr: 6.0e-05
  # How much weight decay to use in AdamW
  weight_decay: 0.0
  # Beta parameters for AdamW
  beta1: 0.9
  beta2: 0.95
  # Clip gradients to this norm
  max_norm: null
  # Whether to tie embeddings (depends on the model)
  tie_embeddings: null
eval:
  # After how many optimization steps to run validation
  interval: 100
  # How many tokens to generate during validation
  max_new_tokens: 100
  # How many batches to run during validation
  max_iters: 100
# The random seed to initialize the weights of the model
seed: 1337

Great. We need to add these to all the docstrings in the scripts so that they appear in the CLI

This is all addressed in #1092 correct?


Reduce the default output level for sounds

Initial output level has been reduced by half, done right in dev branch, tested in pixel garden project.

Merge complete.


implement env vars in settings (#2785)

Summary of the Pull Request

Implement environment variables with validation
use StringMap as a container
recursively resolve ${env:NAME} vars in values in the StringMap or in
the process' environment
implement some tests

References

PR Checklist

[x] Closes #2785
[x] CLA signed. If not, go over here and sign the CLA
[x] Tests added/passed
[x] Documentation updated. If checked, please file a pull request on our docs repo and link it here: #xxx
[ ] Schema updated.
[ ] I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #xxx

Detailed Description of the Pull Request / Additional comments

Validation Steps Performed
Added tests and manual validation

@msftbot make sure @DHowett signs off on this.
I think he had some thoughts on three-way merging the variables or something? He mentioned something in team sync a couple weeks ago, but I forget what it was exactly. As a heads up, he's OOF currently, so it might be a few days before he's able to get back to this.

@zadjii-msft, should I resolve the merge conflicts by rebasing off your main and force pushing? I know this is not ideal for people reviewing this PR but I don't have any other way of resolving the conflicts from my end.

@christapley I think github let me resolve the conflict for you? I really hope that worked - I haven't had a ton of success with the web conflict resolver in the past.

@DHowett, let me know if there's anything you don't like or want changed. Thanks!

@christapley  sorry I'm so backlogged. I have ~ ~ thoughts ~ ~ about environment variables and want to make sure I have them in order before bossing you around on a code review. :smile:
Thanks for the patience!

Hey @DHowett, any feedback on this pr?

Good lord, I am so sorry to leave you hanging like that. It's my responsibility to uphold my end of the bargain when it comes to community management and PR review.

(I'm tagging this for discussion but it almost needs it's own dedicated meeting / spec review at this point)

Hey now that #14999 has merged, I think we can run at this hill again. Admittedly, this PR is MANY months out of date - the changes might need to just be rebased onto a new branch. However, this might be a good time to try again. @ianjoneill this might be something you're interested in doing, if @christapley is cool with that. (don't feel obligated to though)
Sorry that this ended up stagnating like this! Our environment variable story was singularly unpleasant for a long time, hopefully we can finally get past all that ☺

I've had a look over this - and I think I'd agree with @DHowett's comment above - the resolving of the variables should happen when the connection is started (where we refresh the environment block).
Following #14839, we'd get the set_user_environment_var() method in til::env to do the resolving for us - which will deal with the self-referencing etc. (which will allow adding stuff to %PATH%) and variables that reference one another - assuming we iterate over them in a well-defined order - say alphabetical (ignoring case).
In fact if we change the format from ${env:NAME} to use the Windows standard %NAME% format, this will come for free - assuming you're happy with changing that.
I can take a look about merging and updating this as per the above over the next couple of weekends if you agree.

@ianjoneill I'm cool with that. I'm cool with the %var% syntax too. I kinda liked the other one stylistically, but consistency with the rest of the OS is probably smarter anyways.

That's a lot of conflicts:
$ git merge main --no-ff
Auto-merging src/cascadia/LocalTests_SettingsModel/ProfileTests.cpp
CONFLICT (content): Merge conflict in src/cascadia/LocalTests_SettingsModel/ProfileTests.cpp
Auto-merging src/cascadia/LocalTests_SettingsModel/SerializationTests.cpp
CONFLICT (content): Merge conflict in src/cascadia/LocalTests_SettingsModel/SerializationTests.cpp
Auto-merging src/cascadia/TerminalApp/AppLogic.cpp
CONFLICT (content): Merge conflict in src/cascadia/TerminalApp/AppLogic.cpp
Auto-merging src/cascadia/TerminalApp/Resources/en-US/Resources.resw
Auto-merging src/cascadia/TerminalApp/TerminalPage.cpp
CONFLICT (modify/delete): src/cascadia/TerminalApp/TerminalSettings.cpp deleted in main and modified in HEAD.  Version HEAD of src/cascadia/TerminalApp/TerminalSettings.cpp left in tree.
CONFLICT (modify/delete): src/cascadia/TerminalApp/TerminalSettings.h deleted in main and modified in HEAD.  Version HEAD of src/cascadia/TerminalApp/TerminalSettings.h left in tree.
CONFLICT (modify/delete): src/cascadia/TerminalApp/TerminalSettings.idl deleted in main and modified in HEAD.  Version HEAD of src/cascadia/TerminalApp/TerminalSettings.idl left in tree.
Auto-merging src/cascadia/TerminalControl/IControlSettings.idl
CONFLICT (content): Merge conflict in src/cascadia/TerminalControl/IControlSettings.idl
CONFLICT (modify/delete): src/cascadia/TerminalSettingsEditor/Profiles.h deleted in main and modified in HEAD.  Version HEAD of src/cascadia/TerminalSettingsEditor/Profiles.h left in tree.
CONFLICT (modify/delete): src/cascadia/TerminalSettingsEditor/Profiles.idl deleted in main and modified in HEAD.  Version HEAD of src/cascadia/TerminalSettingsEditor/Profiles.idl left in tree.
Auto-merging src/cascadia/TerminalSettingsModel/CascadiaSettings.cpp
CONFLICT (content): Merge conflict in src/cascadia/TerminalSettingsModel/CascadiaSettings.cpp
Auto-merging src/cascadia/TerminalSettingsModel/CascadiaSettings.h
CONFLICT (content): Merge conflict in src/cascadia/TerminalSettingsModel/CascadiaSettings.h
Auto-merging src/cascadia/TerminalSettingsModel/JsonUtils.h
CONFLICT (content): Merge conflict in src/cascadia/TerminalSettingsModel/JsonUtils.h
Auto-merging src/cascadia/TerminalSettingsModel/Profile.cpp
CONFLICT (content): Merge conflict in src/cascadia/TerminalSettingsModel/Profile.cpp
Auto-merging src/cascadia/TerminalSettingsModel/Profile.h
CONFLICT (content): Merge conflict in src/cascadia/TerminalSettingsModel/Profile.h
Auto-merging src/cascadia/TerminalSettingsModel/Profile.idl
CONFLICT (content): Merge conflict in src/cascadia/TerminalSettingsModel/Profile.idl
Auto-merging src/cascadia/TerminalSettingsModel/TerminalWarnings.idl
CONFLICT (content): Merge conflict in src/cascadia/TerminalSettingsModel/TerminalWarnings.idl
Automatic merge failed; fix conflicts and then commit the result.

Closed in favor of #15082


add required methods by the consumers of the conn obj, to the conn interface

Notes from Connection discussion - https://pad.riseup.net/p/conn-things


docs: clarify the disaster recovery guide

A bit was missing from the documentation on disaster recovery, the reset
of the advertised peer urls for the node recovered from backup. Without
that, any subsequent server joining the cluster would not be able to
speak to the first node.

LGTM. Thanks!


Set ecr region

Added docker_set_ecr_region optional project property.
When utilizing cross account access to access ECR it might be necessary to explicitly set the AWS region of from the calling account when its default region is different than the parent AWS account that contains the ECR repository. This is an edge case that we've run into.

flubbed parent repo...


Add PoB integration test

Resolves koinos/koinos-system-contracts-as#17
Brief description
Adds PoB integration test
Checklist

[X] I have built this pull request locally
[X] I have ran the unit tests locally
[X] I have manually tested this pull request
[X] I have reviewed my pull request
[X] I have added any relevant tests

Demonstration
$ ./run.sh pob
~/git/koinos-integration-tests/tests/pob ~/git/koinos-integration-tests
[+] Running 9/9
 ⠿ Network pob_default             Created                                                                                0.0s
 ⠿ Volume "pob_config_volume"      Created                                                                                0.0s
 ⠿ Container pob-block_store-1     Started                                                                                1.0s
 ⠿ Container pob-node_config-1     Started                                                                                1.1s
 ⠿ Container pob-amqp-1            Started                                                                                1.1s
 ⠿ Container pob-mempool-1         Started                                                                                1.0s
 ⠿ Container pob-jsonrpc-1         Started                                                                                1.7s
 ⠿ Container pob-chain-1           Started                                                                                1.7s
 ⠿ Container pob-block_producer-1  Started                                                                                1.8s
=== RUN   TestPob
    integration.go:580: Waiting 1s for chain to be ready...
    integration.go:580: Waiting 2s for chain to be ready...
    integration.go:580: Waiting 4s for chain to be ready...
    integration.go:580: Waiting 5s for chain to be ready...
    integration.go:580: Waiting 5s for chain to be ready...
    pob_test.go:46: Uploading KOIN contract
    pob_test.go:50: Uploading VHP contract
    pob_test.go:54: Uploading PoB contract
    pob_test.go:58: Minting KOIN
    pob_test.go:65: Burning KOIN
    pob_test.go:104: Register Public Key
    pob_test.go:133: Enabling PoB
    pob_test.go:172: Block Height 7
    pob_test.go:172: Block Height 7
    pob_test.go:172: Block Height 7
    pob_test.go:172: Block Height 7
    pob_test.go:172: Block Height 9
    pob_test.go:172: Block Height 11
    pob_test.go:172: Block Height 12
    pob_test.go:172: Block Height 12
    pob_test.go:172: Block Height 12
    pob_test.go:172: Block Height 13
    pob_test.go:172: Block Height 13
    pob_test.go:172: Block Height 13
    pob_test.go:172: Block Height 14
    pob_test.go:172: Block Height 15
    pob_test.go:172: Block Height 15
    pob_test.go:172: Block Height 16
    pob_test.go:172: Block Height 17
    pob_test.go:172: Block Height 18
--- PASS: TestPob (34.54s)
PASS
ok      koinos-integration-tests/tests/pob      34.776s
[+] Running 9/9
 ⠿ Container pob-amqp-1            Removed                                                                                6.3s
 ⠿ Container pob-jsonrpc-1         Removed                                                                                0.3s
 ⠿ Container pob-block_store-1     Removed                                                                                0.2s
 ⠿ Container pob-chain-1           Removed                                                                                10.5s
 ⠿ Container pob-block_producer-1  Removed                                                                                10.4s
 ⠿ Container pob-mempool-1         Removed                                                                                10.3s
 ⠿ Container pob-node_config-1     Removed                                                                                0.0s
 ⠿ Volume pob_config_volume        Removed                                                                                0.0s
 ⠿ Network pob_default             Removed                                                                                0.1s
~/git/koinos-integration-tests

We're going to have to check in new contracts (ones with the fixed SDK), these are older and have the module trap error from the protocol buffer serialization/deserialization.


fix for dispatch already exists.

if I rename the .env.example -> .env and run docker-compose up - it fails to install with dispatch db already existing....
this fixes that problem.

actually didn't successfully load the data.

https://github.com/Netflix/dispatch-docker/pull/85 should fix the issue you ran into here.


Update zio, zio-test, zio-test-sbt to 1.0.4

Updates

dev.zio:zio
dev.zio:zio-test
dev.zio:zio-test-sbt

from 1.0.0-RC21-2 to 1.0.4.
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!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "dev.zio" } ]

labels: library-update, semver-pre-release

Superseded by #168.


Catch-all exceptions make for bad UX (need to ensure http:// on server)

I followed the server-via-docker setup and entered as URL <IP_ADDRESS>0:8005.
If I go to localhost:8005 on the server, and enter the family that I put into the phone, it says that family doesn't exist.
If I go manually to /view/dashboard/myfamily, it loads the page but says at the top. You need to add learning data first: group 'mygroup' does not exist, despite me having learned 5 locations already.
If in the app I press the link shown at the top, I get to FIND dashboard, it shows myfamily / mydevice, but the Location guesses just shows the logo with the orange square circling around.
In the adb logcat I see:
03-26 14:15:19.572 10394 10507 E Volley  : [524] NetworkDispatcher.processRequest: Unhandled exception java.lang.RuntimeException: Bad URL <IP_ADDRESS>:8005/data
03-26 14:15:19.572 10394 10507 E Volley  : java.lang.RuntimeException: Bad URL <IP_ADDRESS>:8005/data
03-26 14:15:19.572 10394 10507 E Volley  : 	at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:171)
03-26 14:15:19.572 10394 10507 E Volley  : 	at com.android.volley.NetworkDispatcher.processRequest(NetworkDispatcher.java:120)
03-26 14:15:19.572 10394 10507 E Volley  : 	at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:87)
03-26 14:15:19.572 10394 10507 E Volley  : Caused by: java.net.MalformedURLException: Protocol not found: <IP_ADDRESS>:8005/data
03-26 14:15:19.572 10394 10507 E Volley  : 	at java.net.URL.<init>(URL.java:176)
03-26 14:15:19.572 10394 10507 E Volley  : 	at java.net.URL.<init>(URL.java:125)
03-26 14:15:19.572 10394 10507 E Volley  : 	at com.android.volley.toolbox.HurlStack.executeRequest(HurlStack.java:92)
03-26 14:15:19.572 10394 10507 E Volley  : 	at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:131)
03-26 14:15:19.572 10394 10507 E Volley  : 	... 2 more
03-26 14:15:19.592 10394 10394 E ScanService: com.android.volley.VolleyError: java.lang.RuntimeException: Bad URL <IP_ADDRESS>:8005/data
03-26 14:15:19.644 10394 10521 D ScanService: started wifi scan
03-26 14:15:19.644 10394 10521 D ScanService: started discovery
03-26 14:15:20.703 10394 10394 D ScanService: timer off, trying to send data

So there are 3 problems here:

The Server field in the Android app really needs a protocol, like http://, in the front, otherwise the whole thing won't work. It would be nice if the app could tell you that.
The app does not correctly propagate this MalformedURLException up to the GUI, and continues anyway, thus suggesting to the user that everything is running when in fact nothing is running.
The app does not do exception handing correctly in general. There are catch-all exceptions in many places, such as:

https://github.com/schollz/find3-android-scanner/blob/7cdf6aa1823f8eeff94d887df82e79dbd0d8c71f/app/src/main/java/com/internalpositioning/find3/find3app/ScanService.java#L95
https://github.com/schollz/find3-android-scanner/blob/7cdf6aa1823f8eeff94d887df82e79dbd0d8c71f/app/src/main/java/com/internalpositioning/find3/find3app/ScanService.java#L210
https://github.com/schollz/find3-android-scanner/blob/7cdf6aa1823f8eeff94d887df82e79dbd0d8c71f/app/src/main/java/com/internalpositioning/find3/find3app/ScanService.java#L216
https://github.com/schollz/find3-android-scanner/blob/7cdf6aa1823f8eeff94d887df82e79dbd0d8c71f/app/src/main/java/com/internalpositioning/find3/find3app/ScanService.java#L237
https://github.com/schollz/find3-android-scanner/blob/7cdf6aa1823f8eeff94d887df82e79dbd0d8c71f/app/src/main/java/com/internalpositioning/find3/find3app/ScanService.java#L281
https://github.com/schollz/find3-android-scanner/blob/7cdf6aa1823f8eeff94d887df82e79dbd0d8c71f/app/src/main/java/com/internalpositioning/find3/find3app/AlarmReceiverLife.java#L45
6 more matches in https://github.com/schollz/find3-android-scanner/blob/7cdf6aa1823f8eeff94d887df82e79dbd0d8c71f/app/src/main/java/com/internalpositioning/find3/find3app/MainActivity.java

They these locations use code like
                } catch (Exception e) {
                    Log.e(TAG, e.toString());
                }

Catching all exceptions is a well-known antipattern in Java; turning all exceptions into mere warnings and then continuing makes for bad UX because the program cannot work that way.
I suspect that this error is triggering the code path where the exception is thrown here and this catch-all` catches it and the app continues despite error.

Leaving off the http is a common error sorry! It should be specified better.
The other try-catch statements are because I just wanted it to work and I've only been programming in Android for a month :)

The other try-catch statements are because I just wanted it to work and I've only been programming in Android for a month :)

Fair enough :) but ignoring the exceptions won't make things work more, only less (the app will continue in an incorrect state, and users won't know something is wrong).
I recommend you dont catch the exceptions. Then things will work equally much, the app will force-close properly, and users may even get a Report button where they can send you the stack trace.

That's a good point, I will go through those when I update it.


Please update screenshot and step-by-step instruction

When following the instructions under section "Register a subdomain name in a customer tenant" I noticed that the screenshots aren't current and the step named "I'll add the DNS records myself" and "Choose your online services" doesn't exist anymore due to renaming. Please update the instructions accordingly. Thanks.

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 1cb0c2ef-6274-9167-ecc6-3695d7460a8d
Version Independent ID: aacf7318-02fc-a1c3-369c-65e6936fdb3c
Content: Configure Session Border Controller - Multiple tenants - Microsoft Teams
Content Source: Teams/direct-routing-sbc-multiple-tenants.md
Service: msteams
GitHub Login: @CarolynRowe
Microsoft Alias: crowe

Thanks for your feedback

To make it easier for you to submit feedback on articles on learn.microsoft.com, we're transitioning our feedback system from GitHub Issues to a new experience.
As part of the transition, this GitHub Issue will be moved to a private repository. We're moving Issues to another repository so we can continue working on Issues that were open at the time of the transition. When this Issue is moved, you'll no longer be able to access it.
If you want to provide additional information before this Issue is moved, please update this Issue before December 15th, 2023.
With the new experience, you no longer need to sign in to GitHub to enter and submit your feedback. Instead, you can choose directly on each article's page whether the article was helpful. Then you can then choose one or more reasons for your feedback and optionally provide additional context before you select Submit.
Here's what the new experience looks like.
Note: The new experience is being rolled out across learn.microsoft.com in phases. If you don't see the new experience on an article, please check back later.
First, select whether the article was helpful:

Then, choose at least one reason for your feedback and optionally provide additional details about your feedback:

Article was helpful
Article was unhelpful

Finally, select Submit and you're done!


raft pkg clean up

Contributing guidelines
Please read our contribution workflow before submitting a pull request.

@xiang90

I do not think the change is necessary.
We still want to keep the Storage interface. One implementation does not return error does not mean that all implementation will not.
For the configuration, copy is safer. If you want to make it look better, get a deep copy of config instead of using pointer.
Also can you do one change per pr or commit in the future? It is easier to review.
Thanks.


added details about adding anonymous to everyone

https://github.com/MicrosoftDocs/windows-itpro-docs/issues/8194

Dear @JohanFreelancer9,
kindly do the copy editor review for this PR.
Dear @e0i, for your information
Thank you


Fix import of single links for JSON templates

The new structure uses a fields dictionary, so direct access to the link field's value is not possible anymore.

Totally overlooked that one :+1:
I'll add a spec for this and merge


Thrown exception swallowed (event handler with generator)

Code snippet:
def on_click_submit(e: me.ClickEvent) -> Generator[None, None, None]:
  yield from submit()

def on_input(e: me.InputEvent) -> Generator[None, None, None]:
  state = me.state(State)
  if not e.value.endswith("\n"):
    return
  state.input = e.value
  yield from submit()
  me.focus_component(key=f"input-{len(state.output)}")
  yield

def submit():
  state = me.state(State)
  if state.in_progress or not state.input:
    return
  input = state.input
  state.input = ""
  yield

  state.output = []
  output = state.output
  output.append(ChatMessage(role=_ROLE_USER, content=input))
  state.in_progress = True
  yield

  start_time = time.time()
  output_message = transform(input, state.output)
  assistant_message = ChatMessage(role=_ROLE_ASSISTANT)
  output.append(assistant_message)
  state.output = output

  for content in output_message:
    assistant_message.content += content
    # TODO: 0.25 is an abitrary choice. In the future, consider making this adjustable.
    if (time.time() - start_time) >= 0.25:
      start_time = time.time()
      print("transform_to_chunks")
      # transform assistant message into chunks
      transform_to_chunks(assistant_message)
      yield
  transform_to_chunks(assistant_message)
  state.in_progress = False
  me.focus_component(key=f"input-{len(state.output)}")
  yield

# TODO: handle the case where [4,5]
def transform_to_chunks(message: ChatMessage):
  # Split the message content into chunks based on citations
  chunks = re.split(r"(\[\d+\])", message.content)
  print("chunks'", chunks)
  # Initialize variables
  current_chunk = ""
  current_citations: list[int] = []

  # Process each chunk
  for chunk in chunks:
    print("chunk", chunk)
    if re.match(r"\[\d+\]", chunk):
      print("chunk is a citation")
      try:
        current_citations.append(int(chunk))
      except Exception as e:
        print("Error: chunk is not a number", e)
        pass

Ideas tried:

cdr.DetectChanges
use an explicit primitive property to try to trigger change detection

Ideas:

Log ngDoCheck on shell to see when it's being run
Use ngZone.runTask
wrap cdr.detectChanges with setTimeout
directly modify error box from shell using view child (seems hacky


error [cli][error] Could not open stream: Unable to open URL

can you help me  with this error.
sudo livestreamer http://livestream.com/accounts/15106628/events/4425181/player  best  --player "omxplayer --win '35 200 650 604' -o hdmi" --fifo --yes-run-as-rootsudo l
[cli][info] Found matching plugin livestream for URL http://livestream.com/accounts/15106628/events/4425181/player
[cli][info] Available streams: 270p (worst), 270p_hls, 432p (best), 432p_hls
[cli][info] Opening stream: 432p (akamaihd)
[cli][error] Could not open stream: Unable to open URL: http://viewerplus.livestream.com/assets/swf/hdplayer-2.0-viewerplus.swf (404 Client Error: Not Found)
Thank you

#1272

Super men Thank you

can you help me with another thing, I can open a youtube live streaming.
root@raspberrypi:/home/pi# livestreamer https://youtu.be/H-6LVwddye4 best --player "omxplayer --win '35 200 650 604' -o hdmi" --fifo --yes-run-as-root
error: No plugin can handle URL: https://youtu.be/H-6LVwddye4
Thank you

The plugin doesn't recognize the "youtu.be" URL.  Click on this link to get the youtube.com URL and use that one.  It will work fine.
Date: Wed, 13 Apr 2016 10:58:48 -0700
From<EMAIL_ADDRESS>To<EMAIL_ADDRESS>Subject: Re: [chrippa/livestreamer] error [cli][error] Could not open stream: Unable to open URL (#1282)
can you help me with another thing, I can open a youtube live streaming.
root@raspberrypi:/home/pi# livestreamer https://youtu.be/H-6LVwddye4 best --player "omxplayer --win '35 200 650 604' -o hdmi" --fifo --yes-run-as-root
error: No plugin can handle URL: https://youtu.be/H-6LVwddye4
Thank you
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub

Super men Thank you


splitting/joining data example

an example that shows the ingest of some data, have the data split up and operated on through different means, and then joined at the end.

https://gist.github.com/mikedewar/3364af352490239b496a


Java Issue Importing Jenkins CRD

Description of the bug:

I'm trying to import this CRD: https://raw.githubusercontent.com/jenkinsci/kubernetes-operator/master/deploy/crds/jenkins.io_jenkins_crd.yaml
But the Java package name ends up as jenkins.io/jenkins which is invalid.
Reproduction Steps:

cdk8s import -l java https://raw.githubusercontent.com/jenkinsci/kubernetes-operator/master/deploy/crds/jenkins.io_jenkins_crd.yaml
Error Log:

No error. This is where we should look at fixing:
https://github.com/awslabs/cdk8s/blob/b1fa11d6062dc5008e4e263cf556695a64ae88ad/packages/cdk8s-cli/lib/import/crd.ts#L73-L75
Environment:

Framework Version: latest (0.25.0)
OS: macOS Catalina 10.15.3

Other:

Either change module name conventions in the code linked above
Or handle this per-language

This is :bug: Bug Report

I think the fix should be in the java import code path. moduleName is "agnostic" and each language should mangle it based on it's constraints.


feat: let user send funds to address by using email or phone number

DO NOT MERGE
This is a test for Hadar.

The validate method should also be updated to work correctly
https://github.com/GoodDollar/GoodDAPP/blob/abc4e7bb1500ec5a4b6d080d57eb58914922b6fb/src/components/dashboard/Send.js#L35

@ImmanuelSegol this would still not proceed with the usual flow and would fail if no address matching email/mobile was found

@ImmanuelSegol this would still not proceed with the usual flow and would fail if no address matching email/mobile was found

Yeah sorry about that for some reason my commit was not pushed to the branch. Fixed it.


No internet after default install of snap lxd in ubuntu jammy (novice users)

Required information

Distribution: Ubuntu
Distribution version: 22.04.2 LTS

  driver: lxc | qemu
  driver_version: 5.0.2 | 8.0.0
  firewall: nftables
  kernel: Linux
  kernel_architecture: x86_64
  kernel_features:
    idmapped_mounts: "true"
    netnsid_getifaddrs: "true"
    seccomp_listener: "true"
    seccomp_listener_continue: "true"
    shiftfs: "false"
    uevent_injection: "true"
    unpriv_fscaps: "true"
  kernel_version: 5.15.0-71-generic
  lxc_features:
    cgroup2: "true"
    core_scheduling: "true"
    devpts_fd: "true"
    idmapped_mounts_v2: "true"
    mount_injection_file: "true"
    network_gateway_device_route: "true"
    network_ipvlan: "true"
    network_l2proxy: "true"
    network_phys_macvlan_mtu: "true"
    network_veth_router: "true"
    pidfd: "true"
    seccomp_allow_deny_syntax: "true"
    seccomp_notify: "true"
    seccomp_proxy_send_notify_fd: "true"
  os_name: Ubuntu
  os_version: "22.04"
  project: default
  server: lxd
  server_clustered: false
  server_event_mode: full-mesh
  server_name: scoop10
  server_pid: 4128436
  server_version: "5.14"
  storage: zfs
  storage_version: 2.1.5-1ubuntu6~22.04.1
  storage_supported_drivers:
  - name: btrfs
    version: 5.16.2
    remote: false
  - name: ceph
    version: 17.2.5
    remote: true
  - name: cephfs
    version: 17.2.5
    remote: true
  - name: cephobject
    version: 17.2.5
    remote: true
  - name: dir
    version: "1"
    remote: false
  - name: lvm
    version: 2.03.11(2) (2021-01-08) / 1.02.175 (2021-01-08) / 4.45.0
    remote: false
  - name: zfs
    version: 2.1.5-1ubuntu6~22.04.1
    remote: false

Issue description
No internet in the container after default install of snap lxd in ubuntu jammy
Reference thread: https://discuss.linuxcontainers.org/t/lxd-bridge-doesnt-work-with-ipv4-and-ufw-with-nftables/10034/17
Steps to reproduce

Install Ubuntu
Install snap lxd
Launch a container for example: lxc launch ubuntu:jammy
The NEW launched container has no internet

If one reads this:
https://linuxcontainers.org/lxd/docs/master/howto/network_bridge_firewalld/#ufw-add-rules-for-the-bridge
Suggestion

After finishing

sudo lxd init
2. Could the devs please give link to this https://linuxcontainers.org/lxd/docs/master/howto/network_bridge_firewalld/#ufw-add-rules-for-the-bridge  or dump
sudo ufw allow in on <network_bridge>
sudo ufw route allow in on <network_bridge>
sudo ufw route allow out on <network_bridge>

@simondeziel  One the maintainers "Tomp" asked me to create an issue. See last comment in the thread.
https://discuss.linuxcontainers.org/t/lxd-bridge-doesnt-work-with-ipv4-and-ufw-with-nftables/10034/32

@realdmitchell my apologies, I missed that!

@realdmitchell If I followed correctly (this time ;), you are asking for lxd init to point the user to our firewall setup doc. Is that right?

Yes. Or dump those commands.
If you follow  "Steps to reproduce" it would be normal for the average user to expect that the 'containers' are automatically connected to internet. And at the moment it is NOT. (Of course the correct solution would be some how fix it but you are the experts... Please decide what is the best)

anything needed?

Fyi, I commented on some finer-grained rules that could be added to the docs: https://discuss.linuxcontainers.org/t/lxd-bridge-doesnt-work-with-ipv4-and-ufw-with-nftables/10034/34?page=2


Fix removing notes without specified interpreter settings

What is this PR for?
This PR fixes incorrect behavior when trying to remove note without saving its interpreter binding settings.
What type of PR is it?
Bug Fix
Todos

[x] - don't let null return value

What is the Jira issue?
[ZEPPELIN-765] (https://issues.apache.org/jira/browse/ZEPPELIN-765)
How should this be tested?
Try to remove some notebook without saving its interpreter bindings when first entering it
Screenshots (if appropriate)
Before:

After:

Questions:

Does the licenses files need update? No
Is there breaking changes for older versions? No
Does this needs documentation? No

Looks good to me.
Merging if there is no more discussion.


I need help

I try test your demo https://demo.kasperkamperman.com/mobilecamtemplate open with safari on iphone it's can open camera of mobile . But when i try run code in github then try open safari it's can't open camera of mobile. What happen ? .. thank you

Have responce on safari iphone - > Please install an external webcam device

You need to run it on a secure server (https).
On Fri, 27 Dec 2019, 09:56 nicejava<EMAIL_ADDRESS>wrote:

Have responce on safari iphone - > Please install an external webcam device
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/kasperkamperman/MobileCameraTemplate/issues/4?email_source=notifications&email_token=AANN22FULY5X7CEQ7SJYS3TQ2X3RFA5CNFSM4J73Z4HKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEHXESQQ#issuecomment-569264450,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AANN22GKNLCCPPMVFDSULSLQ2X3RFANCNFSM4J73Z4HA
.

Try https response like this

Thanks I think it's answered, so I close this issue.


feat: use teeny-request instead of deprecated request dependency

Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly:

[x] Make sure to open an issue as a bug/issue before writing your code!  That way we can discuss the change, evaluate designs, and agree on the general idea
[x] Ensure the tests and linter pass
[x] Code coverage does not decrease (if any source code was changed)
[x] Appropriate docs were updated (if necessary)

Fixes #1584
This is my suggested fix to #1584. Having a dependency on request is not wise as it is deprecated and has security issues. But it also poses an issue with bundlers (such as webpack) that will try to include request that is not installed in node_modules. Hence this solution with an explicit dependency to teeny-request

Is anyone available to review the PR? @leahecole 🙏.  It's blocking us for a while, Thanks!

thanks for the ping! I want @sofisl to take a look at this first but Sofia, ping me if you want to chat about it

Just had a brain blast, wasn't @danielbankhead doing work to migrate us from teeny-request to gaxios? Wondering if we may want to use that instead here.

@leahecole yep! We will want to migrate away from both retry-request and teeny-request to gaxios.

Since gaxios is used in auth, it won't make the package any bigger :) I think this is in the next phase of @danielbankhead's project so we should be working on it soon. As an FYI, I am planning on deprecating teeny and retry within the next few months, will put up a deprecation notice on the README to alert users long before we deprecate so that they can start preparing.

Closing because I'm going with a different strategy - removing what's not needed! 😄  see #1612


Bug: ValueError: An operation has None for gradient.

Please make sure that this is a Bug or a Feature Request and provide all applicable information asked by the template.
If your issue is an implementation question, please ask your question on StackOverflow or on the Keras Slack channel instead of opening a GitHub issue.
System information

OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Linux Ubuntu 18.04
TensorFlow backend (yes / no):  yes
TensorFlow version:  1.12.0
Keras version:  2.2.4
Python version: 3.6
CUDA/cuDNN version:  9.2
GPU model and memory:  nVidia GTX360

Describe the current behavior
When I call train_on_batch on my model, i receive the error:
sup_loss = self.supervised_phase.train_on_batch(X, label)
  File "/home/xxx/anaconda3/envs/mygan/lib/python3.6/site-packages/keras/engine/training.py", line 1216, in train_on_batch
    self._make_train_function()
  File "/home/xxx/anaconda3/envs/mygan/lib/python3.6/site-packages/keras/engine/training.py", line 509, in _make_train_function
    loss=self.total_loss)
  File "/home/xxx/anaconda3/envs/mygan/lib/python3.6/site-packages/keras/legacy/interfaces.py", line 91, in wrapper
    return func(*args, **kwargs)
  File "/home/xxx/anaconda3/envs/mygan/lib/python3.6/site-packages/keras/optimizers.py", line 475, in get_updates
    grads = self.get_gradients(loss, params)
  File "/home/xxx/anaconda3/envs/mygan/lib/python3.6/site-packages/keras/optimizers.py", line 91, in get_gradients
    raise ValueError('An operation has `None` for gradient. '
ValueError: An operation has `None` for gradient. Please make sure that all of your ops have a gradient defined (i.e. are differentiable). Common ops without gradient: K.argmax, K.round, K.eval.

Describe the expected behavior
I expect the training to proceed with no errors.
Code to reproduce the issue
X = Input(shape=(self.phrase_size, self.n_cropped_notes, self.n_tracks), name="X")

s_pred, _  = self.encoder(X)

self.supervised_phase = Model(
			inputs=X,
			outputs=s_pred,
			name="supervised_phase"
		)
		self.supervised_phase.compile(
			loss="binary_crossentropy",
			loss_weights=[self.supervised_weight],
			optimizer=self.aae_optim,
			metrics=["binary_accuracy"]
		)

sup_loss = self.supervised_phase.train_on_batch(X, label)

Other info
I'm sure that self.encoder only contains differentiable operations, because I use it as part of other subgraphs that I can train without problems, I only get the error while trying to train self.supervised_phase.

See same thing on Keras 2.2.4 with TF 1.13.1. Downgrading to Keras 2.2.0 and TF 1.8.0 my code works.

@wilderrodrigues Hi there, did you manage to find a solution in the end?
I'm having the same issue when trying to get gradient values for interpretablity of the model.
my environment:

CentOS Linux 7 (Core)
Nvidia Driver Version: 418.87.00    CUDA Version: 10.1
Python 3.7.4
Tensorflow 2.0.0
Keras 2.3.1

Any ideas?

@wilderrodrigues Hi there, did you find any solution.
For some architecture my code is working but when I am using Dense layer I have encountered same problem.

@wilderrodrigues  @sepidehsaran  @alokssingh @Andrea-V
Did any of you find the reason for this issue ?
https://github.com/keras-team/keras/issues/12521 the suggestion is to look for unused weights. My model has 1.8 million parameters.
Do you know of any method to check for unused weights ?

Hey folks,
Wow, sorry for being away that long. I completely forgot to track this one. :(
I will try to reproduce it this week and come back to you. I have been using TF 2 for a year already. But I can try going back to Keras + TF 1.13 to see how it behaves.