High CPU usage (32 vCPUs) - looks due to targets discovery in K8s

What did you do?
We're monitoring a Kubernetes cluster consisting of about 400 nodes and 4500 pods, leveraging a single Prometheus instance with 32 vCPUs (almost fully utilized, while memory hovers between 40-50Gi). The setup leverages Prometheus Operator and most of the targets come from Service Monitors definitions (shouldn't be too relevant for the issue though).
There are about 130 target pools, with a few of those that result each in a few hundreds pods to scrape (a handful can have a couple thousands pods).
Judging by the CPU profiling graph, it looks like most of the CPU is used to update those target pools.
pprof.prometheus.samples.cpu.005.pb.gz

EDIT: We're experiencing the same in another cluster with much less total Pods (~1500) but way higher target pools (~450).
What did you expect to see?
Not exactly sure what overall CPU usage to expect for such load, but definitely not >60% of 32vCPUs for targets discovery alone.
In case this usage is expected (and provided it is indeed coming from targets discovery), I would expect to be able to set a custom interval for targets update to tune such behavior or some other ways to reduce CPU footprint.
What did you see instead? Under which circumstances?
32 vCPUs (almost fully utilized), >60% of which seems to be related to targets discovery.
I see about 80 of such pools taking more than 5 seconds to get synched (varying between 4 and 8 seconds).
If my understanding is correct, the sync is executed every 5 seconds (https://github.com/prometheus/prometheus/blob/bd53b5ff37ec414d0f22315f2b4050e5c0a44652/scrape/manager.go#L158).
Environment

System information:

Linux 4.15.0-1093-azure x86_64

Prometheus version:

prometheus, version 2.20.1 (branch: HEAD, revision: 983ebb4a513302315a8117932ab832815f85e3d2)
build user:       root@7cbd4d1c15e0
build date:       20200805-17:26:58
go version:       go1.14.6

Prometheus configuration file:

global:
  scrape_interval: 30s
  scrape_timeout: 10s
  evaluation_interval: 30s
  external_labels:
    cluster: prod1c
    prometheus: monitoring/prometheus-operator-prometheus
    prometheus_replica: prometheus-prometheus-operator-prometheus-0
alerting:
  alert_relabel_configs:
  - separator: ;
    regex: prometheus_replica
    replacement: $1
    action: labeldrop
  alertmanagers:
  - kubernetes_sd_configs:
    - role: endpoints
      namespaces:
        names:
        - monitoring
    scheme: http
    path_prefix: /
    timeout: 10s
    api_version: v1
    relabel_configs:
    - source_labels: [__meta_kubernetes_service_name]
      separator: ;
      regex: prometheus-operator-alertmanager
      replacement: $1
      action: keep
    - source_labels: [__meta_kubernetes_endpoint_port_name]
      separator: ;
      regex: web
      replacement: $1
      action: keep
rule_files:
- /etc/prometheus/rules/prometheus-prometheus-operator-prometheus-rulefiles-0/*.yaml
- /etc/prometheus/rules/prometheus-prometheus-operator-prometheus-rulefiles-1/*.yaml
scrape_configs:
- job_name: asraas-prod/ambassador-asraas-prod/0
  honor_timestamps: true
  scrape_interval: 30s
  scrape_timeout: 10s
  metrics_path: /metrics
  scheme: http
  kubernetes_sd_configs:
  - role: endpoints
    namespaces:
      names:
      - asraas-prod
  relabel_configs:
  - source_labels: [__meta_kubernetes_service_label_service]
    separator: ;
    regex: ambassador-admin
    replacement: $1
    action: keep
  - source_labels: [__meta_kubernetes_endpoint_port_name]
    separator: ;
    regex: ambassador-admin
    replacement: $1
    action: keep
  - source_labels: [__meta_kubernetes_endpoint_address_target_kind, __meta_kubernetes_endpoint_address_target_name]
    separator: ;
    regex: Node;(.*)
    target_label: node
    replacement: ${1}
    action: replace
  - source_labels: [__meta_kubernetes_endpoint_address_target_kind, __meta_kubernetes_endpoint_address_target_name]
    separator: ;
    regex: Pod;(.*)
    target_label: pod
    replacement: ${1}
    action: replace
  - source_labels: [__meta_kubernetes_namespace]
    separator: ;
    regex: (.*)
    target_label: namespace
    replacement: $1
    action: replace
  - source_labels: [__meta_kubernetes_service_name]
    separator: ;
    regex: (.*)
    target_label: service
    replacement: $1
    action: replace
  - source_labels: [__meta_kubernetes_pod_name]
    separator: ;
    regex: (.*)
    target_label: pod
    replacement: $1
    action: replace
  - source_labels: [__meta_kubernetes_service_name]
    separator: ;
    regex: (.*)
    target_label: job
    replacement: ${1}
    action: replace
  - separator: ;
    regex: (.*)
    target_label: endpoint
    replacement: ambassador-admin
    action: replace
- job_name: asraas-prod/bofa-eng-usa-400-krypton/0
  honor_timestamps: true
  scrape_interval: 30s
  scrape_timeout: 10s
  metrics_path: /metrics
  scheme: http
  kubernetes_sd_configs:
  - role: endpoints
    namespaces:
      names:
      - asraas-prod
  relabel_configs:
  - source_labels: [__meta_kubernetes_service_label_app]
    separator: ;
    regex: krypton
    replacement: $1
    action: keep
  - source_labels: [__meta_kubernetes_service_label_release]
    separator: ;
    regex: bofa-eng-usa-400
    replacement: $1
    action: keep
  - source_labels: [__meta_kubernetes_endpoint_port_name]
    separator: ;
    regex: kr-svc-http
    replacement: $1
    action: keep
  - source_labels: [__meta_kubernetes_endpoint_address_target_kind, __meta_kubernetes_endpoint_address_target_name]
    separator: ;
    regex: Node;(.*)
    target_label: node
    replacement: ${1}
    action: replace
  - source_labels: [__meta_kubernetes_endpoint_address_target_kind, __meta_kubernetes_endpoint_address_target_name]
    separator: ;
    regex: Pod;(.*)
    target_label: pod
    replacement: ${1}
    action: replace
  - source_labels: [__meta_kubernetes_namespace]
    separator: ;
    regex: (.*)
    target_label: namespace
    replacement: $1
    action: replace
  - source_labels: [__meta_kubernetes_service_name]
    separator: ;
    regex: (.*)
    target_label: service
    replacement: $1
    action: replace
  - source_labels: [__meta_kubernetes_pod_name]
    separator: ;
    regex: (.*)
    target_label: pod
    replacement: $1
    action: replace
  - source_labels: [__meta_kubernetes_service_name]
    separator: ;
    regex: (.*)
    target_label: job
    replacement: ${1}
    action: replace
  - separator: ;
    regex: (.*)
    target_label: endpoint
    replacement: kr-svc-http
    action: replace
- job_name: asraas-prod/bofa-eng-usa-400-krypton/1
  honor_timestamps: true
  scrape_interval: 10s
  scrape_timeout: 10s
  metrics_path: /metrics
  scheme: http
  kubernetes_sd_configs:
  - role: endpoints
    namespaces:
      names:
      - asraas-prod
  relabel_configs:
  - source_labels: [__meta_kubernetes_service_label_app]
    separator: ;
    regex: krypton
    replacement: $1
    action: keep
  - source_labels: [__meta_kubernetes_service_label_release]
    separator: ;
    regex: bofa-eng-usa-400
    replacement: $1
    action: keep
  - source_labels: [__meta_kubernetes_endpoint_port_name]
    separator: ;
    regex: kr-fluentd-metrics-port
    replacement: $1
    action: keep
  - source_labels: [__meta_kubernetes_endpoint_address_target_kind, __meta_kubernetes_endpoint_address_target_name]
    separator: ;
    regex: Node;(.*)
    target_label: node
    replacement: ${1}
    action: replace
  - source_labels: [__meta_kubernetes_endpoint_address_target_kind, __meta_kubernetes_endpoint_address_target_name]
    separator: ;
    regex: Pod;(.*)
    target_label: pod
    replacement: ${1}
    action: replace
  - source_labels: [__meta_kubernetes_namespace]
    separator: ;
    regex: (.*)
    target_label: namespace
    replacement: $1
    action: replace
  - source_labels: [__meta_kubernetes_service_name]
    separator: ;
    regex: (.*)
    target_label: service
    replacement: $1
    action: replace
  - source_labels: [__meta_kubernetes_pod_name]
    separator: ;
    regex: (.*)
    target_label: pod
    replacement: $1
    action: replace
  - source_labels: [__meta_kubernetes_service_name]
    separator: ;
    regex: (.*)
    target_label: job
    replacement: ${1}
    action: replace
  - separator: ;
    regex: (.*)
    target_label: endpoint
    replacement: kr-fluentd-metrics-port
    action: replace
[...]

PS: I can provide the full configuration if that's helpful, though it's quite longer

Removing a few jobs that weren't scraping any targets (~20) did actually reduce the CPU load significantly (~3 vCPU)

Can we have the startup logs?

Here's the log from the past few days, including startup (I'm seeing a lot of K8s API errors, which I believe are related to transient instability of that managed cluster).
prod1c-prom-logs.zip
This is a fresh start with debug level.
prod1c-prom-logs-debug.zip

You are opening 28 different kubernetes connections. You could try to reuse the exact same service discoveries config and apply relabling per job to select which targets to monitor.
cat prod1c-prom-logs-debug.txt |grep subs |grep kuber -c
28

Thanks for the logs anyway, I will try to have a look at the code as well.

@roidelapluie thanks for the suggestion; can you point me to an example of such config? I then need to check if that's possible via PromOp ServiceMonitors or something similar...
I know the overall config could be way more efficient, though we're offering the Prometheus environment to multiple teams, each of which should be able to deploy the configuration needed.

Basically if the bit under kubernetes_sd_configs: is identical then we'll only instantiate one k8s discovery.

So basically I need to get rid of the namespace in the kubernetes_sd_configs and add a relabel_configs to filter the namespace.
I believe that's not (currently) possible with ServiceMonitors, not even with a more general matchExpressions (which is limited to the Service's label:
https://github.com/prometheus-operator/prometheus-operator/blob/v0.42.1/pkg/prometheus/promcfg.go#L911).
I'll ask around and possibly reach out to PromOp to see if there are ways to do that. However having the namespace filter in the kubernetes_sd_configs seemed more logical, and I was under the impression to also be more efficient (not trying to filter among all the clusters' pods).
I still hope you can find some other optimizations in the discovery code or Prometheus-wide settings to leverage 😃

What's more efficient would depend on how many namespaces there are, and what proportion of them that this Prometheus is interested in. I'd expect specifying a namespace to always be more efficient though, so if this is the issue this smells like a performance issue in the k8s client code somewhere as the namespace filtering isn't happening properly on the server side.

@brian-brazil  we have
❯ k get ns --no-headers | wc -l
     112

and
❯ k get servicemonitor -A --no-headers  | awk '{ print $1}' | sort | uniq -c | sort -r
 118 asraas-stage
  87 asraas-qa
  54 gatekeeper-qa
  29 gatekeeper-dev
  24 mix-dev
  23 monitoring
  23 mix-stage
  23 mix-qa
  18 nluaas-stage
  16 gatekeeper2-dev
  16 asraas-dev
  15 nluaas-qa
   9 gatekeeper-stage
   8 fabric-stage
   8 fabric-qa
   8 fabric-dev
   8 fabric-ctp-dev
   7 fabric-ctp-qa
   6 ttsaas-dev
   6 nluaas-ctp-dev
   6 dlgaas-dev
   5 nluaas-dev
   4 ttsaas-stage
   4 svc-ps-dev
   4 nluaas-ctp-qa
   4 global-auth-stage
   4 global-auth-qa
   4 global-auth-dev
   4 global-auth-ctp-qa
   4 global-auth-ctp-dev
   4 dlgaas-qa
   3 ttsaas-qa
   3 mixidp-auth-dev
   3 media-manager-dev
   3 dlgaas-stage
   2 mixidp-auth-stage
   2 mixidp-auth-qa
   1 xarch-dev
   1 ingress-controllers
   1 cert-manager

Any insights here would be helpful. we are getting to 500 nodes with > 2000 pods and right now we would need to get > 32 CPU for prometheus.

What's more efficient would depend on how many namespaces there are, and what proportion of them that this Prometheus is interested in. I'd expect specifying a namespace to always be more efficient though, so if this is the issue this smells like a performance issue in the k8s client code somewhere as the namespace filtering isn't happening properly on the server side.

There is no namespace level filtering on the server-side that I'm aware of. There's two ways you can implement it. 1 'watch all namespaces' watcher, with client side filtering, or open 1 watch per-namespace (with http2 that can still be 1 connection if you re-use the client I believe).

So we managed to merge together a lot of ServiceMonitors. Even though they were all scraping the same namespace, we got an impressive reduction in CPU usage (less than half; see below).
I think this indicates the number of connections to Kubernetes (as suggested previously) might not be the primary contributor, while the sheer number of jobs that use K8s Service Discovery is.
Just to reiterate on this: is my assumption the service discovery for each target pool runs every 5 seconds correct (see here)?

Just to reiterate on this: is my assumption the service discovery for each target pool runs every 5 seconds correct (see here)?

No, that's a throttle so we don't process updates from an SD more than every 5s. Processing updates is considered to be cheap, but not that cheap.

We are currently facing the same issue on our Prometheis instances: we have ~30 kube sd jobs (pod type) that are not constrained by namespaces and there are a lot of pods running on the platform (~5K pods) and the CPU usage for those instances is abnormally high.
Having a look at the discovery page of the ui we can see that most of the jobs are keeping less than 100 targets out of ~28K each.
In order to mitigate this we added selectors to some of the kube sd jobs, which helped reduce the CPU usage by half. However this is not perfect since it seems when a selector is matching nothing you see 0/28K in the discovery which is weird.
Our impressions on this is that the less targets discovered you have as a result of the kube calls the less CPU is consumed in the end, meaning the consumption might not be linked to kube calls but to what is done afterwards (relabeling and such?).

Can you get a CPU profile?

CPU profile with the selectors
profile_with_selectors.zip

CPU profile without selectors
profile.zip

Looks like it's that part of the code alright. It's not something we've ever really optimised, as it's not meant to be run particularly often. k8s sending 28k targets for each of 30 scrape configs every 5 seconds wasn't exactly in mind. There's probably some low hanging fruit here.

@brian-brazil Hey there! What if we have a label filter in the k8s discovery plugin? In our case discovery produces ~120 labels per target, but we use only 5 of them. Yes, there is a relabel config, but the main performance issue is to alloc memory for the number of labels (30000 targets * 120 labels=~3 million labels), sort them, hash for deduplication, and then send to relabeling. This long and hard work happens each scrape pool sync. What do you think?

That sounds like slowly reinventing relabelling, so would ultimately end up with the same performance costs. We have to allocate  the labels one way or the other.
I'd suggest looking at ways to make what we have more efficient, rather than immediately jumping to adding yet more configuration for users. There's likely quite a few low hanging fruit performance wise, as the relevant code paths have never really been optimised.

The option from @vitkovskii sounds really reasonable. Unfortunately, we just wasting CPU and memory for useless work here and I have no idea what to do next because the number of targets in our K8S growing really rapidly. It seems that Prometheus becoming unscalable here. Let's find an engineering solution, colleagues.

cc @simonpasquier @brancz

Actually, this hard work is doing per service monitor. So if you have 30 of them, you have x30 useless work. Let's count: 120 labels is about 6Kb, 30000 targets, and 30 service monitors. It's about 5.5Gb of RAM only to create raw label sets from discovery.

Do you have concrete exemples about how we could avoid that? Is that e.g. underlying labels you could delete from your pods?

Let's count: 120 labels is about 6Kb, 30000 targets, and 30 service monitors. It's about 5.5Gb of RAM only to create raw label sets from discovery.

That'd only be if none of them were dropped, which is unlikely to be the case. We should only be keeping dropped targets once, not 30x - if not that sounds like a low hanging fruit that could be tackled.

Actually, this hard work is doing per service monitor. So if you have 30 of them, you have x30 useless work.

It's definitely amplified by the number of Service Monitors. We replaced tens of SM with a single one (for a particular application), while the overall pods/labels stayed the same (or even slightly increased) and the CPU usage got to less than 50% it was before (see https://github.com/prometheus/prometheus/issues/8014#issuecomment-725935652)

and the CPU usage got to less than 50% it was before

I'm confused here. https://github.com/prometheus/prometheus/issues/8014#issuecomment-737328100 is talking about RAM, and now you're talking about CPU. Which is the problem?

@brian-brazil  you URL doesn't pin tto the same comment as the one from @lorenzo-biava comment's
https://github.com/prometheus/prometheus/issues/8014#issuecomment-725935652

For us it was definitely CPU (as per the title of the issue). Not sure about RAM, haven't seen any correlation with a change in memory usage yet.
PS: All the provided profiles are for CPU. Let me know if you also need a memory one.

Let's just stick with CPU then. If it is also memory that's a separate thing which we can look at optimising.
My first though on how to handle this generally so it benefits all SDs/users would be to see if we can avoid re-process a target that hasn't changed when there's refresh from SD, thus avoiding a large chunk of the relabelling processing.

Yeah, looking at the code at https://github.com/prometheus/prometheus/blob/master/scrape/scrape.go#L417-L431 if we made droppedTargets a map we could check if an identical target was dropped last time and fastpath that, bypassing all the relabelling.

@brian-brazil Heaviest function is targetsFromGroup() https://github.com/prometheus/prometheus/blob/master/scrape/scrape.go#L419. This function builds two label sets: the original and the relabeled one. So we can't identify the target before targetsFromGroup() because the target is identifying with its hash(label set). Yes, there is some room for small optimizations around this place, but it won't let us reduce RAM and CPU usage dramatically without refactoring a large amount of code.

Do you know what we can use better than hash() for a map key to skip targetsFromGroup()?

My point was that we can avoid doing that work if we've previously dropped that target, as the metadata alone determines if it'll be dropped - we don't need to run it every time.
Also looking at your scrape configs, they look like they can be optimised and collapsed down into a single scrape config. The keeps can all be done in one action, and the endpoint label is always the same as the port name. The first pod action is also redundant, as it's always overwritten by the second. You can also remove the service label, as that information is already in the job label - you don't need it twice, that just clutters up your target labels.

Do you know what we can use better than hash() for a map key to skip targetsFromGroup()?

It's either that, or render the entire metadata string. Collisions seem unlikely given the numbers we're dealing with, so hash should be fine.

@brian-brazil https://github.com/prometheus/prometheus/pull/8250 check it out. Did you mean something like that?

That's in the right direction, I've commented on the PR on how to improve it.

@brian-brazil @roidelapluie Hi guys. Here are some performance graphs:

After the first purple annotation is the #8250 fix. After second is the fix where unused labels are filtered out.
Our setup is 6 sharded Prometheus instances + 6 replicas. As you see the first optimization reduces only ~10 CPU cores, but the second ~80 cores and it's 3x lower than the original core consumption.
Here is a label list which are going from SD and what labels we need: https://gist.github.com/vitkovskii/abc0ef5f2805165b943602aceed3dd34

That's a big difference but as I've said above, let's not jump to optimisations that require user configuration that only work for one SD in only particular extreme use cases before we've optimised the general code path in ways that'll Just Work for everyone.

My suggestion would change k8s discovery default behavior to discover only some basic labels and also make it possible to turn on other labels using an inclusive list or something like that.

This problem hits any setup with k8s discovery and service monitors :) I think many engineers don't even guess that they heat the air by using Prometheus to monitor k8s.

This problem hits any setup with k8s discovery and service monitors :) I think many engineers don't even guess that they heat the air by using Prometheus to monitor k8s.

What does it look like by just removing the labelpresent and annotationpresent labels?

My suggestion would change k8s discovery default behavior to discover only some basic labels and also make it possible to turn on other labels using an inclusive list or something like that.

That's not the paradigm we take with SD, we expose everything that could be of use. That'd also be a breaking change for many users.

Could we not predict the source labels that relabeling rules will use, and only produce those?

Yes, I thought about the same idea and I have a concern. Will a low amount of labels enough to identify the target using hash(). Should we mark some labels as "identifying" and don't remove them in any case?

I don't think that matters. If there's two targets from SD whose metadata labels differ in a way that doesn't affect relabelling such that they end up with the same target labels, they were going to get de-duped anyway after relabelling.
There's two bigger issues. The first is that SDs are shared across multiple scrape configs, the second is that we expose all labels in the API/UI and silently dropping that would make both configuration and debugging harder.

@brian-brazil Is it a strict rule that we should expose all original labels( to UI/API) in a sorted way? Or can we break the sequence? My experiments show that the most expensive operation is sorting labels. But for relabeling it isn't required labels to be sorted. So we can sort much fewer labels only after relabeling. The drawback is that the original label set will be exposed unsorted.

@brian-brazil Is it a strict rule that we should expose all original labels(to UI/API) in a sorted way? Or can we break the sequence? My experiments show that the most expensive operation is sorting labels. But for relabeling it isn't required labels to be sorted. So we can sort much fewer labels only after relabeling. The drawback is that the original label set will be exposed unsorted.

We could sort them in the UI, if that is really making a big difference. But I think that relabeling might somwhow have dependencies on order, alonside other sanity checks we do (like checking for duplicate labels)

Is it a strict rule that we should expose all original labels(to UI/API) in a sorted way?

Yes, that's part of our documented API that cannot be broken - though the sorting doesn't matter, it is a JSON map which has no ordering.

My experiments show that the most expensive operation is sorting labels.

For the data structure to work it needs to be sorted, and that includes for relabelling so it can find the labels. Are we sorting more than we need to? We should only need to do it once per SD target.

The first one is here: https://github.com/prometheus/prometheus/blob/master/scrape/target.go#L368 actually, it's not necessary for relabeling:

and that includes for relabelling so it can find the labels
Relabeling scans all labels and it's not required them to be sorted.

Why relabeling take a list of labels, not a map? For every target on every config iteration, it allocates a new list. This is the second bottleneck after sorting.

The map is the old data structure, Prometheus 2.x introduced the list for performance reasons. The map should be considered legacy, and remaining uses removed where practical.
Why not do the sort up in SD? We only need it once, not for every scrape config and it'd further prune where the old data structure is used.

Relabeling scans all labels and it's not required them to be sorted.

It's using a library which expects them to be sorted, so that invariant should be maintained. Relabelling does require them to be sorted due to this.

@brian-brazil there are any plans to improve that area? it's still a pain for anybody who uses many service monitors in his cluster, the savings potential here is great.

@brian-brazil there are any plans to improve that area? it's still a pain for anybody who uses many service monitors in his cluster, the savings potential here is great.

I think that's the first thing we should probably look at improving.

I think that's the first thing we should probably look at improving.

@shaikatz do you mind uploading the whole profile either as a file to github or via https://share.polarsignals.com/ ? It would be great if we could explore the profile.
I also opened https://github.com/prometheus-operator/prometheus-operator/issues/3840 as I think that is another angle from which this can be optimized on the prometheus-operator side.

@brancz
pprof.prometheus.samples.cpu.001.pb.gz

Could you also share an allocs profile?
From that profile it does look to me like a lot of memory-trash is produced by discovery which causes large sweep and GC CPU usage. It does all seem to add up to https://github.com/prometheus-operator/prometheus-operator/issues/3840.

Can you provide the exact pprof command to get your required profile?

Yeah it is, thank you! Yeah that seems to also point in the same direction.

@brancz / @brian-brazil / @roidelapluie is there any update on this issue? any options we can explore to patch this behavior?
The prom-operator's PR seems to be stuck since March...

Same problem here.
The easy solution for now is to merge servicemonitor.
Try Using only one servicemonitor for all the services to be monitored, and the prometheus reload op will be more efficicent.

Same problem here.
The easy solution for now is to merge servicemonitor.
Try Using only one servicemonitor for all the services to be monitored, and the prometheus reload op will be more efficicent.

As MR was not accepted we've decided to implement our own separate discovery service (we're calling it "target balancer") and deliver targets in files (fileSD) to Proms. Profits: 1) reduce kubeAPI load 2) significantly reduced CPU usage on Prom instances

It seems we are also hitting this issue, but the weird thing is we are hitting the issue with only 1 of our prometheus servers!! (we have configured 2 replicas in prometheus operator, no sharding).
prometheus-0: profile.pb.gz

prometheus-1: profile(1).pb.gz

You can see the difference in pprof between two instances. Also the difference in CPU usage of these instances:

@m-yosefpor we finally moved out all discovery logic outside of prometheus to separate daemon and switched to simple file/http discovery, it also allowed us to implement custom sharding logic.
Maybe it makes sense to open source this tool.

@m-yosefpor we finally moved out all discovery logic outside of prometheus to separate daemon and switched to simple file/http discovery, it also allowed us to implement custom sharding logic. Maybe it makes sense to open source this tool.

We would appreciate if such tools gets open-sourced.

Waiting for a great solution, currently we set scrape.discovery-reload-interval to a larger duration as the temporary solution.

It's using a library which expects them to be sorted, so that invariant should be maintained. Relabelling does require them to be sorted due to this.

I can't figure out why this could happen. Which library is being used?

The problems described at the top may be improved by #12048 and #12084.

Hello from the bug scrub.
We assume this problem has been improved by  #12048 and #12084 indeed. If you still see excessive CPU usage that we might be able to fix, please follow up here (or file a new issue).

Hello, I have created a question on https://discuss.prometheus.io/t/constantly-increasing-cpu-usage-on-the-prometheus-server/2304 about the increasing CPU usage of my Prometheus server.
Honestly, I'm not sure if it is related at all. Probably not, but I currently can't find a solution to my situation. Could you please advise me on which direction to take next?

profile002.pb.gz


Fix compiling with newest autoconf.

autoconf version: 2.69
Current master:
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
libtoolize: copying file 'm4/libtool.m4'
libtoolize: copying file 'm4/ltoptions.m4'
libtoolize: copying file 'm4/ltsugar.m4'
libtoolize: copying file 'm4/ltversion.m4'
libtoolize: copying file 'm4/lt~obsolete.m4'
configure.ac:12: installing './compile'
automake: warnings are treated as errors
src/python/Makefile.am:2: warning: source file '../common/rnn.c' is in a subdirectory,
src/python/Makefile.am:2: but option 'subdir-objects' is disabled
automake: warning: possible forward-incompatibility.
automake: At least a source file is in a subdirectory, but the 'subdir-objects'
automake: automake option hasn't been enabled.  For now, the corresponding output
automake: object file(s) will be placed in the top-level directory.  However,
automake: this behaviour will change in future Automake versions: they will
automake: unconditionally cause object files to be placed in the same subdirectory
automake: of the corresponding sources.
automake: You are advised to start using 'subdir-objects' option throughout your
automake: project, to avoid future incompatibilities.
src/python/Makefile.am:2: warning: source file '../common/rnn_runner.c' is in a subdirectory,
src/python/Makefile.am:2: but option 'subdir-objects' is disabled
src/python/Makefile.am:2: warning: source file '../common/utils.c' is in a subdirectory,
src/python/Makefile.am:2: but option 'subdir-objects' is disabled
/usr/share/automake-1.15/am/ltlibrary.am: warning: 'librnnrunner.la': linking libtool libraries using a non-POSIX
/usr/share/automake-1.15/am/ltlibrary.am: archiver requires 'AM_PROG_AR' in 'configure.ac'
src/python/Makefile.am:1:   while processing Libtool library 'librnnrunner.la'
src/rnn-generate/Makefile.am:2: warning: source file '../common/rnn.c' is in a subdirectory,
src/rnn-generate/Makefile.am:2: but option 'subdir-objects' is disabled
src/rnn-generate/Makefile.am:2: warning: source file '../common/rnn_runner.c' is in a subdirectory,
src/rnn-generate/Makefile.am:2: but option 'subdir-objects' is disabled
src/rnn-generate/Makefile.am:2: warning: source file '../common/utils.c' is in a subdirectory,
src/rnn-generate/Makefile.am:2: but option 'subdir-objects' is disabled
src/rnn-learn/Makefile.am:2: warning: source file '../common/rnn.c' is in a subdirectory,
src/rnn-learn/Makefile.am:2: but option 'subdir-objects' is disabled
src/rnn-learn/Makefile.am:2: warning: source file '../common/rnn_lyapunov.c' is in a subdirectory,
src/rnn-learn/Makefile.am:2: but option 'subdir-objects' is disabled
src/rnn-learn/Makefile.am:2: warning: source file '../common/entropy.c' is in a subdirectory,
src/rnn-learn/Makefile.am:2: but option 'subdir-objects' is disabled
src/rnn-learn/Makefile.am:2: warning: source file '../common/solver.c' is in a subdirectory,
src/rnn-learn/Makefile.am:2: but option 'subdir-objects' is disabled
src/rnn-learn/Makefile.am:2: warning: source file '../common/utils.c' is in a subdirectory,
src/rnn-learn/Makefile.am:2: but option 'subdir-objects' is disabled
src/rnn-lyapunov/Makefile.am:2: warning: source file '../common/rnn.c' is in a subdirectory,
src/rnn-lyapunov/Makefile.am:2: but option 'subdir-objects' is disabled
src/rnn-lyapunov/Makefile.am:2: warning: source file '../common/rnn_runner.c' is in a subdirectory,
src/rnn-lyapunov/Makefile.am:2: but option 'subdir-objects' is disabled
src/rnn-lyapunov/Makefile.am:2: warning: source file '../common/rnn_lyapunov.c' is in a subdirectory,
src/rnn-lyapunov/Makefile.am:2: but option 'subdir-objects' is disabled
src/rnn-lyapunov/Makefile.am:2: warning: source file '../common/solver.c' is in a subdirectory,
src/rnn-lyapunov/Makefile.am:2: but option 'subdir-objects' is disabled
src/rnn-lyapunov/Makefile.am:2: warning: source file '../common/utils.c' is in a subdirectory,
src/rnn-lyapunov/Makefile.am:2: but option 'subdir-objects' is disabled
src/unit-test/Makefile.am:2: warning: source file '../common/rnn.c' is in a subdirectory,
src/unit-test/Makefile.am:2: but option 'subdir-objects' is disabled
src/unit-test/Makefile.am:2: warning: source file '../common/solver.c' is in a subdirectory,
src/unit-test/Makefile.am:2: but option 'subdir-objects' is disabled
src/unit-test/Makefile.am:2: warning: source file '../common/entropy.c' is in a subdirectory,
src/unit-test/Makefile.am:2: but option 'subdir-objects' is disabled
src/unit-test/Makefile.am:2: warning: source file '../common/rnn_lyapunov.c' is in a subdirectory,
src/unit-test/Makefile.am:2: but option 'subdir-objects' is disabled
src/unit-test/Makefile.am:2: warning: source file '../common/rnn_runner.c' is in a subdirectory,
src/unit-test/Makefile.am:2: but option 'subdir-objects' is disabled
src/unit-test/Makefile.am:2: warning: source file '../common/utils.c' is in a subdirectory,
src/unit-test/Makefile.am:2: but option 'subdir-objects' is disabled
src/unit-test/Makefile.am:2: warning: source file '../rnn-learn/target.c' is in a subdirectory,
src/unit-test/Makefile.am:2: but option 'subdir-objects' is disabled
src/unit-test/Makefile.am:2: warning: source file '../rnn-learn/parse.c' is in a subdirectory,
src/unit-test/Makefile.am:2: but option 'subdir-objects' is disabled
parallel-tests: installing './test-driver'
autoreconf: automake failed with exit status: 1

After adding the subdir-objects to AM_INIT_AUTOMAKE:
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
libtoolize: copying file 'm4/libtool.m4'
libtoolize: copying file 'm4/ltoptions.m4'
libtoolize: copying file 'm4/ltsugar.m4'
libtoolize: copying file 'm4/ltversion.m4'
libtoolize: copying file 'm4/lt~obsolete.m4'
configure.ac:12: installing './compile'
automake: warnings are treated as errors
/usr/share/automake-1.15/am/ltlibrary.am: warning: 'librnnrunner.la': linking libtool libraries using a non-POSIX
/usr/share/automake-1.15/am/ltlibrary.am: archiver requires 'AM_PROG_AR' in 'configure.ac'
src/python/Makefile.am:1:   while processing Libtool library 'librnnrunner.la'
parallel-tests: installing './test-driver'
autoreconf: automake failed with exit status: 1```

When I started to compile the package as instructed in the README, after running " ./autogen.sh", I got this error message:  ./autogen.sh: line 5: autoreconf: command not found.
Is there any fix for it? Thanks.

You are probably missing the autoconf package. Make sure to install it on your system.


Certificate sale escrow flaw

Test: Resell escrow with certificate
Buyer releases escrow, then seller does,
Cert is received, arbiter does not need to do anything,
Reseller did not need to do anything, got his commission,
The flow works properly, however, there is a major flaw here, if the cert needs to be transferred after the escrow is released,
then how does the arbiter know who to side with, it seems pointless to have escrow for selling certs.

the owner transfers cert manually before buyer releases.. i put in code to deal with a manual xfer.. seller xfers manually and then buyer releases

buyer will never release if they dont get something so seller usually will xfer manually

But in a dispute, there is really no way for the Arbiter to know if the sale was legit or if the buyer is scamming?

if the seller transfers and the buyer doesnt release, the seller shows the txid and the cert guid and shows it got transferred, the arbiter then releases to the seller... its actually a perfect usecase and its easy to prove the cert was xferred

Sure, you can, but you cannot prove what's inside that certificate. It could just say "hahahhaa" instead of having the promised data. Or for example if it's a bitcoin wallet, the seller could use the bitcoin as soon as the cert is transferred and then there's no way for the Arbiter to know who used the wallet or promo code or whatever.

that is true, if the buyer gets garbage he would have to prove it, by encrypting hahahaha with his public key and showing it points to the same message which is encrypted

the seller can screw buyer over for digital downloads or transfers of sensitive info, it would just hurt his rep, i think a feedback is probably easy enough and necessary... aswell as a derived rep from escrow usage

Yes I agree..
The capture of the HAHAH works but if they give a legit code that they use as soon as it's sold, then the Arbiter wouldn't be able to tell who used it first.

yea you cant really stop that, reputation is there to give incentive not to do that

or there needs to be something that is setup that allows someone to know if they have redeemed their certificate, and anything before that is the seller.. when the buyer is ready to view or use the certificate they would click something and look at it, if seller uses it before that then we know its seller thats the culprit... the buyer would use it right away to avoid seller from screwing around.

Closing since reputation system is now available close #44


cctp and router + wiring

Brings in Circle CCTP module and Strangelove router module for mints+forwards over Circle CCTP.
These modules will be moved out into their respective repositories, but we are merging them into the core repo for now for the grand-1 argon testnet upgrade.

@Mergifyio backport release/v4.0.x


Dockerfile refactor

This Dockerfile gives us more control and isolation of dependencies
during development.
Base image FROM ubuntu instead of fcpo/stack-build.  We will use the
Stack and GHC on the host system, don't need it installed in the image.
The image is just for isolating the system package dependencies. Stack
will isolate the Haskell package dependencies (and the pip and npm
dependencies).
This gives is a single authority for the resolver, which is
the stack.yaml. We no longer need to manually make the stack.yaml
and Dockerfile resolvers agree.
Don't install jupyter in the Docker image, we'll use stack --docker to
install it later. This allows developers to choose the version of the jupyter
dependencies.
Add the docker section to stack.yaml, disabled by default.
Motivating example: ipywidgets version 7 has changed its protocol.
We want to upgrade ihaskell-widgets, which works only on ipywidgets
version 6. To install ipywidgets version 6, we need to downgrade Python to 3.5.
We can use stack --docker to isolate a development environment in
which ihaskell-widgets is working, and then upgrade it to the latest
versions.

This looks great, thanks!

@vaibhavsagar You're admirably fast with these merges.

Thanks! I figure I can always revert a merge if it turns out it was a bad idea.


Convert dumpDiag to use kind export logs

Today in KTF we manually step through all the pods/objects in the cluster to get debug information. KIND now supports simply running kind export logs which does a better job of giving us a cluster debug overview. Switch the DumpDiagnostics function to use this command for cluster log dumping instead.
Intentionally leave the logic which allows each addon to write their own specific cleanup functionality.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

testing before moving out of draft state

Codecov Report
Patch coverage has no change and project coverage change: -47.11 :warning:

Comparison is base (ba1dcf6) 52.90% compared to head (a1fe67f) 5.79%.

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

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #591       +/-   ##
==========================================
- Coverage   52.90%   5.79%   -47.11%
==========================================
  Files          47      31       -16
  Lines        3869    2449     -1420
==========================================
- Hits         2047     142     -1905
- Misses       1563    2301      +738
+ Partials      259       6      -253

Flag
Coverage Δ

integration-test
?

unit-test
5.79% <0.00%> (+0.14%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

pkg/clusters/addons/kong/addon.go
0.00% <0.00%> (-57.25%)
:arrow_down:

pkg/clusters/diagnostics.go
0.00% <0.00%> (-41.99%)
:arrow_down:

pkg/clusters/types/gke/cluster.go
0.00% <0.00%> (ø)

pkg/clusters/types/kind/cluster.go
0.00% <0.00%> (-75.00%)
:arrow_down:

pkg/clusters/types/kind/utils.go
0.00% <0.00%> (-27.78%)
:arrow_down:

... and 37 files with indirect coverage changes
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

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

Example dump from a KIND cluster can be seen in artifacts here: https://github.com/redhat-et/bpfd/actions/runs/4481401852

From the functional perspective that looks good to me now. 🎉
The integration tests seem to be failing because of missing access to secrets, we need to figure out a way around it to make the PR green.
In the meantime, we will also need a changelog entry for the changes. Bonus points from me for an integration test for Kind implementation that would ensure the dump functionality indeed works as expected if you have time for it. :)

Rebased onto main after making the workflow skip tests that require secrets: https://github.com/Kong/kubernetes-testing-framework/pull/597

+1 sorry I just saw your previous comment, I'll try and get to that Int test today!

Yep sorry for the snail pace I started this locally just need to finish it up...

I did a test run with this on https://github.com/Kong/kubernetes-ingress-controller/actions/runs/4694072692?pr=3886 and it looks the describe info and resource dumps are getting lost with this change.
diagnostics-integration-tests-enterprise-postgres.zip has logs in the new KIND logs format, but no kubectl_get_all.yaml or kubectl_describe_all.txt. Am I missing somewhere else they got moved, or are those indeed getting lost somehow?
I think the dump of kubectl get all and kubectl describe all are removed.

@rainest That was originally by design, but I'm happy to add that back!
@randmonkey Thanks for the feedback working on some updates now.

Looks like we need to rebase for latest main but then otherwise tests are passing @astoycos :+1:


Remove AzureDataLakeStoreCosmosStructuredStreamDataset since it's internal only

Latest improvements:
MSFT employees can try out our new experience at OpenAPI Hub  - one location for using our validation tools and finding your workflow.

Contribution checklist:

[x] I have reviewed the documentation for the workflow.
[x] Validation tools were run on swagger spec(s) and have all been fixed in this PR.
[x] The OpenAPI Hub was used for checking validation status and next steps.

ARM API Review Checklist

[x] Service team MUST add the "WaitForARMFeedback" label if the management plane API changes fall into one of the below categories.
adding/removing APIs.
adding/removing properties.
adding/removing API-version.
adding a new service in Azure.

Failure to comply may result in delays for manifest application. Note this does not apply to data plane APIs.

[] If you are blocked on ARM review and want to get the PR merged urgently, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.
Please follow the link to find more details on API review process.

Can one of the admins verify this patch?

Automation for azure-sdk-for-ruby

Automation for azure-sdk-for-python

Hi reviewer(s), this dataset model is accidentally added last time.
It's actually internal only, and should not be exposed to external customers. External customers have no way to leverage it either, so it won't break anything if we roll it back now.
Thank your for your review :)

Automation for azure-sdk-for-go

Automation for azure-sdk-for-java

Automation for azure-sdk-for-node

Automation for azure-sdk-for-js

@wuchunchunt19 could you point to the PR in which this was introduced?

@anuchandy , it's this one:
https://github.com/Azure/azure-rest-api-specs/pull/5218

@anuchandy Could you please help review this change? Thanks!


Port over next half of our organization's members into the website (remaining 40+ members)

When the main page/website is ready, require assistance to port over the last remaining half of our community members (around 40+ people) into the website.

Awesome! Looking forward to the PR 😊

@flawlesslys , basic website has been setup.
You may proceed to port over our group members.
Same thing for issue #5 , FYI

Reassigned issue #5 and issue #6 to @GabrielWarner due to inactivity by @flawlesslys

@GabrielWarner, can you add a message or comment here. Can't seem to assign you this task without you adding an entry to this issue.

No problem! I look forward to working on it.

@GabrielWarner, I look forward to your two PR's.
Take care, and good night 👍🏻


Java application monitoring with Sysdig Cloud

Contributed chapter on Java application on Docker monitoring with Sysdig Cloud
@arun-gupta can you please merge this? Thx

LGTM
@ManoMarks can you merge this? I plan to update this after trying it further.


Optimized gauge query + add derived data stores

Add new API endpoint (on web server) that computes active external gauges from all gauge query every 15 minutes. Fixes #1182
Added a derived data map store, that computes higher-level metrics on top of lower-level query stores at the root level store (maps poolID=>data store). Added use of these in the various card views (assets page, pools page), as well as pool detail page. Results in less repeated computation, less repeated/similar code, etc. Going to consider this enough to address thoughts in #1180, which could be reopened if needed (as more improvements/refactoring could be made). Eventually, I'd like these stores to contain all computations on lower-level pools/gauge/lock data.

Testing

Pool detail page, displaying bond cards
Pools page, external

I definitely notice a performance improvement, especially when navigating across pages (especially navigating to the pools page).


refactor(ui): migrate UserInfo to functional component

Partial fix for #9810
Partial fix for #11740
Motivation

Use newer, modern functional components compatible with hooks instead of legacy class-based components

Use newer, modern async/await syntax instead of Promise chains

also remove a deprecated usage of BasePage

BasePage is a deprecated usage of react-router's private context before React made context an official API (it's quite old)

removing this is necessary to upgrade react-router-dom as the old, private context no longer exists in new versions

I'm also in process of migrating its remaining usages to functional components, this is one of a few PRs to do so (the others are significantly more complex, so I have split them out. See #11794)

Modifications

mostly straightforward state refactor from this.state to useState

plus refactor componentDidMount to useEffect

remove deprecated BasePage extends and typings

it wasn't even used in UserInfo (or at least not currently), so just removed references

no routing primitives are used in UserInfo

plus remove unused BasePage methods

these are not used by anything at this time

searched the codebase and found 0 references

Verification

Pure refactor, no real semantic changes
Manually tested locally that the UserInfo page works the same as it did before

Notes for Reviewers
Turn on "ignore whitespace" to make the diff much simpler to read

Can we merge similar PRs?

At your previous request, I did. You picked the odd one out.
#11791 has 12 components and 27 files changed. They are all pure functional components or have very minimal state.
I mentioned there in the opening comment your previous request as well.
This one has an effect, unlike all the rest in #11791.
Per my opening comment, I split out #11794 as it is substantially more complex than any of the rest (and also took me by far the longest to rewrite). It also follows the structure of an older PR closely for ease of review.
In any case, all 3 pass CI as there are significantly less flakes after #11753. They all merge cleanly as well. So at this point, it would also be unnecessary extra work to merge them together, especially when that makes the diff much worse and harder to review as well.

BasePage is finally gone with #11891 ! 🎉
No more 6+ year old APIs! 😅


Fix corrupt DB state after connection removal

Not a valid solution since we expect a disconnected user to stay on so that they can reconnect.


Error - Cannot find module "."

Hi,
I'm trying to integrate argonjs library in my ionic 2 app. I followed the method which is given in http://docs.argonjs.io/start/setup/.
I installed argonjs using npm npm install<EMAIL_ADDRESS>Imported in my ts file, import * as Argon from '@argonjs/argon'.
I'm getting Cannot find module "." error when I called init method (Argon.init()).
I am using,
Ionic Framework: 2.0.0-rc.5
Ionic Native: 2.2.11
Ionic App Scripts: 1.0.0
Angular Core: 2.2.1
Angular Compiler CLI: 2.2.1
Node: 6.9.1
OS Platform: Windows 7
tsconfig.json:
{
"compilerOptions": {
"allowSyntheticDefaultImports": true,
"declaration": false,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"lib": [
"dom",
"es2015"
],
"module": "es2015",
"moduleResolution": "node",
"sourceMap": true,
"target": "es5"
},
"include": [
"src/**/*.ts"
],
"exclude": [
"node_modules"
],
"compileOnSave": false,
"atom": {
"rewriteTsconfig": false
}
}
Error message:
Runtime Error
Cannot find module "."
Stack
Error: Cannot find module "."
at webpackMissingModule (http://localhost:8100/build/main.js:97112:3910)
at http://localhost:8100/build/main.js:97112:3988
at Object. (http://localhost:8100/build/main.js:97112:4534)
at Object. (http://localhost:8100/build/main.js:118068:30)
at webpack_require (http://localhost:8100/build/main.js:20:30)
at Object. (http://localhost:8100/build/main.js:55840:73)
at webpack_require (http://localhost:8100/build/main.js:20:30)
at Object. (http://localhost:8100/build/main.js:118078:75)
at webpack_require (http://localhost:8100/build/main.js:20:30)
at Object. (http://localhost:8100/build/main.js:85858:73)
Please let me know what I'm doing wrong here...

Same problem for me, in IONIC.
npm install<EMAIL_ADDRESS>In my TS file : import * as Argon from '@argonjs/argon'.
I'm getting "Cannot find module "." error" when I called anything about Argon.
init method Argon.init()
or anything else like :
const Cesium = Argon.Cesium
or
console.log(Argon);
Same error message.
Thanks for your help

This looks like a problem with your webpack configuration. Is any other package in your node_modules directory loading correctly? Can you share your webpack config?

Hi, thank you for your answer.
Everything in my node_modules directory is loading correctly.
With the exception of that, everything works well, and seems to be loaded, as long as I do not use "Argon" object.
how can can i share webpack config with you ?
Actually, I simply use "webpack": "^1.12.9", in my package.json, in an ionic context.
Thanks.

I've been able to reproduce this problem, and am looking for a solution.

Okay, pretty sure this is the source of the problem https://github.com/systemjs/builder/issues/734
I'll have to try rebuilding argon.js with this updated version of the systemjs builder

You're probably right. That's exactly the trace i get.
Let us know when you will be able to rebuild with this fix.
Many thanks.

It seems that the fix has not yet made it into jspm-cli. Once jspm pulls in this fix, a future release of argon.js will work for you. In the meantime, please try this as a workaround:
Load argon.js manually via a script tag in your html:
<script<EMAIL_ADDRESS>
And then, instead of importing argon via a import statement, add the following line to your module (where you would normally use import):
/// <reference types="@argonjs/argon" />

After doing this, you should be able to use the @argon/argonjs package via a global Argon variable. Let me know if this works for you!

Actually, Typescript may still complain with this workaround. You may just have to declare the Argon variable as type any if you want to load argon.js via a script element. The next release of Typescript should allow you to use UMD globals within a module.

@speigg Thank you for your answer,
I have added argonJS & threeJS scripts tags in my html.
`
`
JS file is getting loaded but I'm getting following error (when I added script tag for argonJS).
Uncaught Error: No NgModule metadata found for 'AppModule'.     at NgModuleResolver.resolve (ng_module_resolver.js:31)     at CompileMetadataResolver._loadNgModuleMetadata (metadata_resolver.js:334)     at CompileMetadataResolver.loadNgModuleMetadata (metadata_resolver.js:313)     at RuntimeCompiler._loadModules (runtime_compiler.js:99)     at RuntimeCompiler._compileModuleAndComponents (runtime_compiler.js:69)     at RuntimeCompiler.compileModuleAsync (runtime_compiler.js:59)     at PlatformRef_._bootstrapModuleWithZone (application_ref.js:302)     at PlatformRef_.bootstrapModule (application_ref.js:284)     at Object.<anonymous> (main.ts:5)     at __webpack_require__ (bootstrap a30429e…:19)

Thank you

These errors have nothing to do with Argon. Looks like angular errors. Does this happen just when you load argon.js in a script element, or are you initializing it too? Is the Argon global being created correctly?

@speigg
It happened only when I added argon.js script tag. Before this my app was working normal.

Just so you know, I don't think we have ever tried to use argon.js in a cordova app, so we've never run into these kinds of issues.  Have you tried to rebuild the argon.js files yourself, and see what it takes to make it work with Cordova?

There is no error after loading argonjs dynamically.
Thank you

There is no error after loading argonjs dynamically.
Thank you

Glad you resolved the errors! I'm curious though, what do you mean by "loading argonjs dynamically"?

Instead of script tag, http://stackoverflow.com/questions/21294/dynamically-load-a-javascript-file
var head = document.getElementsByTagName('head')[0];    var script = document.createElement('script');    script.type = 'text/javascript';    script.src = url;    script.onload = callback;    head.appendChild(script);

@ashwathan I suspected that is what you meant, but I'm not sure why that would make a difference. Strange.

Issue Resolved


Translate May 1 covid report into Italian

Hello @nextstrain/italian!
The situation report from 2020-05-01 is ready to be translated to Italian. The report focuses on Central & Eastern Europe. As per previous week's, please translate the Twitter post below! It's still a bummer when the translation is great, but people do not know it because I used Google translate for the Twitter post (lol).
Branch to translate on: sit-rep_it
File to translate: https://github.com/nextstrain/translations/blob/sit-rep_it/narratives/translations_ncov_sit-rep_it_2020-05-01.md You can translate directly in this file, but please remember to push often as other people may be working on the translation!
Link to preview: https://nextstrain.org/community/narratives/nextstrain/translations@sit-rep_it/ncov/sit-rep/it/2020-05-01
Twitter post to translate:
“In the latest #COVID19 situation report, we explore outbreaks in Central & Eastern Europe. The report is now available in Italian. Thank you @, @, and @ for the rapid translation."
Logistics
Please update the translations board as you work on the translation: https://github.com/orgs/nextstrain/projects/7
Please assign yourself to the translation if you’re working on it this week.
When a translation is ready for publication -- at minimum meaning two people have worked on it and both agree that it’s ready -- please create a pull request to merge to master and tag me and the issue in it!
Discussion board for your team is here: https://github.com/orgs/nextstrain/teams/italian
Standard rules for translation:
Note that the file to translate is in Markdown. In general, it is important not to change any formatting or links. (Although it is okay to update Wikipedia or CDC links to the appropriate language version.) Comments to help with translation are noted in comment symbols like <! -- Comment -->.
Please add your name under translators: with new line, tab, and dash, formatted just like authors are. Please also add a link to your professional page (can use Twitter) under translatorLinks:.
Note: You may know of other great resources available in Italian; please don’t add them to the situation report. We need to keep content the same across all translations, so we can be confident in the accuracy of what we publish. Thanks for understanding.
At minimum, I require two sets of eyes on every translation; one of those people should have a background in phylogenetics. Although if you have more, that’s fine too.
Feel free to use a live, online editor like hackmd (sign in with GitHub) to translate together.
Thank you so very much! As always, it's an honor work with you all to make these analyses accessible. Take care.

Hi all,
sorry for the late reply but today is my birthday and I spent the last days trying to organize a "real" birthday, the lockdown notwithstanding, with a special lunch, the cake and even some gifts!
Said as it is, it was nothing special actually, but given the overall situation it was one of my best birthdays ever!
This is not only a justification for the late reply, but mainly a way to share the good feelings with you.
We do not know each other, but we've been working together for a while now, and we are on the same side of the fight. Since fights need also good feelings to share, here's mine!
I'll revise the translation by @al-epo tomorrow!
Best,
Sara

Happy birthday, Sara! I'm so glad you had a special day :) I think that kind of thing is even more important considering covid :)

happy birthday Sara! it is great that you had a nice celebration especially given the situation.
Thank you for sharing this with us!

Thank you girls! =)

Happy Birthday Sara!!
A present!
“I wish it need not have happened in my time,” said Frodo. “So do I,” said
Gandalf, “and so do all who live to see such times. But that is not for
them to decide. All we have to decide is what to do with the time that is
given us.”
Gandalf would be proud of your birthday organization!!
I am checking the translation now!
Alice
On Mon, May 4, 2020, 15:25 Sara Pilia<EMAIL_ADDRESS>wrote:

Thank you girls! =)
—
You are receiving this because you are on a team that was mentioned.
Reply to this email directly, view it on GitHub
https://github.com/nextstrain/translations/issues/117#issuecomment-623495976,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACW4WUM4PAWNE2AEFJCD45LRP3F43ANCNFSM4MXMEWTA
.

Hi @cassiawag we are ready for publication.
Below, you find the tweet, this time I was a bit more "creative", and I wrote it like a normal post on my Italian profile, forgetting completely the English original. The meaning is quite the same, I hope you'll trust me! =)
Nell'ultimo rapporto sulla situazione #COVID19 esploriamo i focolai dell'Europa centrale e orientale. Grazie alla rapida traduzione di @MEKlab , @Sara Meiqi  e @alice_ledda_ , ora potete leggerlo anche in italiano!

Definitely trust you @sarameiqi; thanks for being creative!

Published and tweeted: https://nextstrain.org/narratives/ncov/sit-rep/it/2020-05-01?f_region=Europe
Thanks ladies for the amazing translation and all the encouragement in this thread


[Feature] add SMOKE data augmentation

Thanks for your contribution and we appreciate it a lot. The following instructions would make your pull request more healthy and more easily get feedback. If you do not understand some items, don't worry, just make the pull request and seek help from maintainers.
Motivation
add smoke data augmentation:
AffineResize
RandomShiftScale
Modification
add smoke data augmentation:
AffineResize
RandomShiftScale
BC-breaking (Optional)
Does the modification introduce changes that break the back-compatibility of the downstream repos?
If so, please describe how it breaks the compatibility and how the downstream projects should modify their code to keep compatibility with this PR.
Use cases (Optional)
If this PR introduces a new feature, it is better to list some use cases here, and update the documentation.
Checklist

Pre-commit or other linting tools are used to fix the potential lint issues.
The modification is covered by complete unit tests. If not, please add more unit test to ensure the correctness.
If the modification has potential influence on downstream projects, this PR should be tested with downstream projects.
The documentation has been modified accordingly, like docstring or example tutorials.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.zhuchenming.vendor seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Embed graph metadata into Flatbuffer

Add support to embed graph metadata information (nodes, attributes etc) into Flatbuffer.

this issue is in coordination with other teams. Closing.


How do FX changes affect current subscribers

How do changes to Foreign Exchange policy affect current subscribers?

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

ID: 4c0ce426-a720-24d2-35e6-6c63f68e47a8
Version Independent ID: e993bc40-5837-3b76-ea5a-fe07002d3c2c
Content: Create a SaaS offer, Azure Marketplace and Microsoft AppSource
Content Source: articles/marketplace/partner-center-portal/create-new-saas-offer.md
Service: marketplace
Sub-service: partnercenter-marketplace-publisher
GitHub Login: @mingshen-ms
Microsoft Alias: mingshen

@mvfolino68 Thank you for your query, we will look into it and get back to you at the earliest.

@mvfolino68 Thank you for being patient on this, I have reached out to our internal team to get an answer for your query. We will keep you updated as I have more information.

please close.
—
Michael Folino
Customer Success Engineer
<EMAIL_ADDRESS>Tackle.io
Schedule a meeting
MARKETPLACE BUYERS & SELLERS! Tackle needs your help to understand the current State of B2B Marketplaces and the role they play in business growth. Complete our 10-minute survey and secure your copy of the resulting report!
--- original message ---
On August 10, 2020, 3:09 PM EDT<EMAIL_ADDRESS>wrote:
@mvfolino68 Thank you for being patient on this, I have reached out to our internal team to get an answer for your query. We will keep you updated as I have more information.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.
--- end of original message ---

@mvfolino68 Thank you for circling back on this and asking to close the thread.
If you have any information that can be shared for broader community usage please feel free to do so.
We will go ahead and close this issue for now, however will continue to track this with our internal team and if there is information that can be shared here will update the thread accordingly. If you have any further queries please tag us in your reply and will be happy to reopen the thread and continue the conversation. Thank you


Returned proxy fails instanceof test

An instance of a constructor returned by proxyquire does not pass an instanceof test with the parent. In particular, this causes an error when attempting to render a proxy of a React component. Here is a test case for the issue.
parent.js
'use strict';

var Parent = function() {};

Parent.prototype = {'foo' : function() {return 'bar';}};

module.exports = Parent;

foo.js
'use strict';

var Parent = require('./parent');

var Foo = function() {};

Foo.prototype = Parent.prototype;

module.exports = Foo;

foo-test.js
'use strict';

var expect     = require('chai').expect;
var proxyquire = require('proxyquireify')(require);
var Parent     = require('../../application/parent');
var Normal     = require('../../application/foo');
var Proxy      = proxyquire('../../application/foo', {});

describe('Normal require', function() {

    it('returns constructor an instance of which passes instanceof test', function() {
        var normal = new Normal();

        expect(normal instanceof Parent).to.equal(true);
    });

});

describe('Proxyquire', function() {

    it('returns constructor an instance of which passes instanceof test', function() {
        var proxy = new Proxy();

        expect(proxy instanceof Parent).to.equal(true);
    });

});

Thanks

I don't think this behavior can change. If anyone looks more deeply and thinks this case can be made to work we'll reopen.


Install on MacOSX

Had node and yarn already for other projects. Went through the clone and build (only got warnings).  Running the app it reports:
Compiled with warnings.
src/components/FileUploader/UploadView/UploadProgress.js
Line 25:6:  React Hook useEffect has missing dependencies: 'file' and 'onUpload'. Either include them or remove the dependency array  react-hooks/exhaustive-deps
src/components/FileUploader/UrlUploader.js
Line 59:19:  Array.prototype.map() expects a return value from arrow function                                                                                array-callback-return
Line 82:3:   React Hook useEffect contains a call to 'setLoader'. Without a list of dependencies, this can lead to an infinite chain of updates. To fix this, pass [loader, fileDownloaded, files] as a second argument to the useEffect Hook  react-hooks/exhaustive-deps
src/components/GraphViewer/GraphViewer.js
Line 69:10:  'resize' is assigned a value but never used  no-unused-vars
src/components/NodeDetailView/Details/DatasetDetails.js
Line 11:8:   'CustomChips' is defined but never used                           no-unused-vars
Line 42:82:  Array.prototype.map() expects a return value from arrow function  array-callback-return
Line 53:63:  Array.prototype.map() expects a return value from arrow function  array-callback-return
src/components/NodeDetailView/Details/Views/Breadcrumbs.js
Line 3:8:    'CLOSE' is defined but never used                 no-unused-vars
Line 4:10:   'useSelector' is defined but never used           no-unused-vars
Line 6:10:   'WidgetStatus' is defined but never used          no-unused-vars
Line 11:18:  'close' is assigned a value but never used        no-unused-vars
Line 18:9:   'closeViewer' is assigned a value but never used  no-unused-vars
src/components/NodeDetailView/Headers/CollectionHeader.js
Line 3:8:  'Breadcrumbs' is defined but never used  no-unused-vars
src/components/NodeDetailView/Headers/DatasetHeader.js
Line 3:8:  'Breadcrumbs' is defined but never used  no-unused-vars
src/components/NodeDetailView/Headers/FileHeader.js
Line 3:8:  'Breadcrumbs' is defined but never used  no-unused-vars
src/components/NodeDetailView/Headers/PersonHeader.js
Line 3:8:  'Breadcrumbs' is defined but never used  no-unused-vars
src/components/NodeDetailView/Headers/ProtocolHeader.js
Line 3:8:  'Breadcrumbs' is defined but never used  no-unused-vars
src/components/NodeDetailView/factory.js
Line 1:10:  'NODES' is defined but never used  no-unused-vars
src/components/Sidebar/Footer.js
Line 1:8:   'Help' is defined but never used                no-unused-vars
Line 4:8:   'ArrowRight' is defined but never used          no-unused-vars
Line 5:15:  'IconButton' is defined but never used          no-unused-vars
Line 5:27:  'Typography' is defined but never used          no-unused-vars
Line 8:11:  'expand' is assigned a value but never used     no-unused-vars
Line 8:19:  'setExpand' is assigned a value but never used  no-unused-vars
src/components/Sidebar/TreeView/InstancesTreeView.js
Line 110:6:  React Hook useEffect has missing dependencies: 'datasets' and 'searchTree'. Either include them or remove the dependency array                                                                                react-hooks/exhaustive-deps
Line 113:3:  React Hook useEffect contains a call to 'setItems'. Without a list of dependencies, this can lead to an infinite chain of updates. To fix this, pass [items.length, datasets] as a second argument to the useEffect Hook  react-hooks/exhaustive-deps
src/redux/middleware.js
Line 1:13:  'GeppettoActions' is defined but never used  no-unused-vars
src/utils/Splinter.js
Line 564:21:  'index' is assigned a value but never used  no-unused-vars
Search for the keywords to learn more about each warning.
To ignore, add // eslint-disable-next-line to the line before.

And then all I end up with (after waiting to see if anything shows up), after dismissing the message, is a white window

Thanks for the detailed description @jgrethe, looking into it.

Hey @ddelpiano , can you test in Mac if you get this error? It's happening after 'yarn start', in Linux is working fine.

Just an FYI - if there is a version issue:


Links to commits in comments don't update after repo transfer

Hi,
When I transfer a repo to another org, then existing links to commits in comments are not updated to reflect that change.
I've seen this in Gitea Version: 1.4.3 .

Closing as outdated.


How to specify appscan-config.xml to exclude libraries from scan

Prerequisites
Assuming to have a project that relies on a customer delivered api.
The libraries has issues, but we are not in charge to change no we can do it.
Possible solution
use a appscan-config xml and add an exclusion to the target.
Problem
Each time I run the plugin the appscan-config.xml is rewritten, therefore the manual changes are lost.
Question
May I specify a precreated appscan-config an if yes how to do so.
My researches in the soruce code didnt find any entry how to do.

Hi, the plugin doesn't support using a custom appscan-config.xml. If the classes within the target you want to exclude are under a different namespace than those that you want to scan, you can use the "namespaces" option to whitelist the scan to just the namespaces that you're interested in scanning.


Removing skip regression check cli argument

As the title.
This argument is not needed since the extension provides ignore_image_cache.
Close #2472

LGTM


Overhaul code generation

Changes introduced with this PR
This PR is a continuation of #28 and implements a full code generator for all supported types. Missing items:

[ ] More tests
[ ] External references (see readme)

By contributing to this repository, I agree to the contribution guidelines.

I have not been successful in running this code.
I generated this schema_input.yaml file from the arcaflow_plugin_stressng plugin.
When I try to generate the corresponding code I get:
$ go generate
2023/04/14 23:13:25 failed to generate code (failed to execute base template (template: templates/plugin.go.tpl:9:21: executing "templates/plugin.go.tpl" at <partial "code/schema" .PluginSchema>: error calling partial: failed to parse partial code/schema (template: code/schema.go.tpl:2:4: executing "code/schema.go.tpl" at <partial "code/type" $step.InputValue>: error calling partial: failed to parse partial code/type (template: code/type.go.tpl:20:8: executing "code/type.go.tpl" at <partial "code/scope" .>: error calling partial: failed to parse partial code/scope (template: code/scope.go.tpl:2:7: executing "code/scope.go.tpl" at <partial "code/type" $object>: error calling partial: failed to parse partial code/type (template: code/type.go.tpl:22:8: executing "code/type.go.tpl" at <partial "code/object" .>: error calling partial: failed to parse partial code/object (template: code/object.go.tpl:4:36: executing "code/object.go.tpl" at <partial "code/type" $property.Type>: error calling partial: failed to parse partial code/type (template: code/type.go.tpl:16:8: executing "code/type.go.tpl" at <partial "code/list" .>: error calling partial: failed to parse partial code/list (template: code/list.go.tpl:1:5: executing "code/list.go.tpl" at <partial "type" .Items>: error calling partial: failed to parse partial type (template: no template "type.go.tpl" associated with template "templates/plugin.go.tpl"))))))))))

Status:

Needs more tests
In the kubernetes lib, we don't want to gen structs when they often already exist. That needs to be added for it to be helpful for just about anything related to kubernetes.

I'm going to move this to draft state for now until we have the time and resources to return to it.


☢☢ The FmF (Find-my-Friends) Tracking Method is not working due to a change Apple made

Apple has made a change to the data returned from iCloud Location Services. The the url links to that would return the FmF data are no longer returning any FmF data. It looks a lot like the FamShr data but I can not be sure if it is the same data or only part of it.
The location for the friends is still being reported correctly in the FindMy app but not being sent with iCloud3 requests it.
I will be investigating the issue and see what can be done. In the meantime, the FamShr tracking method is working fine.

+1 on this.

Hey Gary @gcobb321,
Have you found anything yet?

Not a thing. I found a web site with a lot of Apple links but nothing useful.

Just to check, does this change on apples side likely mean that the FMF method is dead for the foreseeable future? I ask because that's pretty much how all the users in our instance are tracked.

Yes for now. I’ve done since digging but have not found anything solution yet


Research table freezes the game on multiplayer server

every time a player opens or theorizes in the research table this freezes the game of all for a few seconds, also when you choose a theory you must close and open the interface to continue causing it to freeze again

Same problem. Have u fixed it?

No, I did not, but once my team and I played for 4 hours, the problem disappeared for a while, although when restarting the server it reappeared

already checked for to low RAM? (MC and Java)
press F3 to see

how many additional mods do you have? could you post a log?


Azure Java “Web app with MySQL in-app” unable to fetch data in Front-end from database.

Driver version or jar name
com.microsoft.sqlserver 6.2.1.jre8
SQL Server version
Please tell us what the MYSQL 6.0.6
Client operating system
Windows 10
Java/JVM version
java version "1.8.0", IBM J9 VM
Problem description
I am trying to fetch data from MySQL database which is hosted in Microsoft Azure and my spring boot maven app is also deployed in Azure.
When I am hitting my data hosting link, it displays data in JSON format on a web browser. For Example - https://xyz.azurewebsites.net/checklist displays data in JSON format.
On the other end When I am hitting my front-end link, it displays my design. For Example - https://xyz.azurewebsites.net/search.html displays HTML view.
Note - This complete app working fine on local server //localhost/3306. But it is not running fine when I am deploying it on Microsoft Azure. Kind of mismatch issue.
Can anyone please help me out? Where am I doing a mistake?
Also, Let me know if any other details needed from my end?
-- | --
Expected behavior and actual behavior
Actual behavior - running fine on localhost
Expected behavior - Should run on the cloud using cloud database.

Hi @Keval0001, can you please confirm which database you are using? Microsoft SQL Server/Azure SQL Database or MySQL? This JDBC Driver is to be used against Microsoft SQL Server.

@ajlam Thank for your reply! Currently, I am using MYSQL Workbench. I knew that driver will be used against Microsoft SQL Server but I tried both drivers but nothing works for me. I don't know where am I doing a mistake.
If you want I am ready to share my code snippet.

@Keval0001 - You should not include the mssql-jdbc driver in your POM.xml file if you're trying to connect to a MySQL database. The mssql-jdbc driver itself is only compatible with SQL Server.
May I suggest opening a bug in the mysql-connector-j repository? Please also take a look at some of the getting started tutorials available for accessing data in MySQL from a Spring application. Outside of that, my general suggestion would be to ensure that your firewall rules allow both inbound and outbound traffic to/from your application and wherever your MySQL database is hosted.
Unfortunately, this driver repository and the team working on it focus on Java application connectivity to SQL Server and not MySQL. Closing this issue.


Update log4cats-noop, log4cats-slf4j to 2.4.0

Updates

org.typelevel:log4cats-noop
org.typelevel:log4cats-slf4j

from 2.2.0 to 2.4.0.
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!

Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.typelevel" } ]

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

labels: library-update, early-semver-minor, semver-spec-minor, commit-count:1

Superseded by #178.

Superseded by #219.


Uk keyboard outline navigateback key binding issue

In UK keyboard with the latest update, I cannot bind my "go back" navigation button to the default value of ctrl+alt+-. In the keybindings.json it says "You won't be able to produce this key combination under your current keyboard layout." for some reason.

VSCode Version: Code 1.11.1 (d9484d12b38879b7f4cdd1150efeb2fd2c1fbf39, 2017-04-06T13:55:56.395Z)
OS Version: Linux x64 4.4.0-72-generic
Extensions:

Extension
Author
Version

code-gnu-global
austin
0.2.1

CppSnippets
hars
0.0.7

clangcomplete
kube
0.0.6

cpptools
ms-vscode
0.10.5

openclvsc
RiccardoB
0.0.1

@seckinsimsek Due to our change in 1.11 to dispatch on scan codes, some bindings might have changed (including the ones you have previously customized).
It should be possible for you to press the Define keybinding button and record a keypress:

open keybindings.json
click Define Keybinding
press the desired key combination

Does that work for you?

When i try to change it to the key combination "ctrl+alt+-" which was the original, the keybinding.json complains with the following error and it does not bind this key combination.
"You won't be able to produce this key combination under your current keyboard layout."

To clarify: are you doing this:

You can now also do this:

In the keybindings file, I am doing the following that is shown in the picture attached.
When I try to do the same thing via "Keyboard Shortcuts" as you shown, it does not accept and does not set the key binding for "Go Back" command.

Any news on this issue? Do you need any more information?

@seckinsimsek
I just tried the English (UK) keyboard layout on Ubuntu + Unity and ctrl+alt+- works for me. So I'm thinking you have a different environment. I think there could be two things going wrong:

either we don't receive the key press combination (i.e. the OS or some other application consumes it at the OS level)
or we incorrectly detect your keyboard layout.

1. What linux distribution + window manager do you use?
2. If you open a terminal and run setxkbmap -query what output do you get?
3. What values do we receive for code and keyCode for the keypress?
When you say the input box does not accept your keypress, can you please hover over the input box and take a screenshot (here I am doing it for ctrl+shift+w, but please do it for ctrl+alt+-:

4. What does our C++ module detect?
Open a text file. The run F1 >Developer: Inspect Key Mappings. Save the output to a file and attach it here.

I am using Ubuntu Mate 16.04.

The result i get is below:
rules:      evdev
model:      pc105
layout:     gb

The screenshot is attached.

Key-mappings file is attached.

key-mappings.txt

@seckinsimsek Thank you, I can reproduce now. I will continue investigating a fix.
Until then, you can workaround by writing the following keybinding rule (using the scan code of the key):
// Place your key bindings in this file to overwrite the defaults
[
    {
        "key": "ctrl+alt+[Minus]",
        "command": "workbench.action.navigateBack"
    }
]

Ok, thank you very much! That works for me now.

@alexandrudima What are the steps to verify? You couldn't reproduce it initially and then you managed, what was the difference before tries?

@michelkaporin To verify, when on Linux and using the GB keyboard layout, and recording a keypress that involves the [Minus] scan code (usually situated two keys left of Backspace), when the keypress is accepted, in the keybindings.json you should now see ctrl+alt+[Minus], whereas before it would be ctrl+alt+-.

@alexandrudima thank you, works well.


Add phone number mask

Adding a mask to the phone number and avoiding letters in the input.

Yeah that will work too,You won't get error in any

But why is good to use "type=value"? @Singh212dab


bump some deps versions

When https://github.com/JuliaSmoothOptimizers/Percival.jl/pull/89/files is merged and released, tests should pass here.

Codecov Report

Merging #5 (fab3977) into master (b2cf2f2) will increase coverage by 3.16%.
The diff coverage is 100.00%.

:exclamation: Current head fab3977 differs from pull request most recent head 098e1d1. Consider uploading reports for the commit 098e1d1 to get more accurate results

@@            Coverage Diff             @@
##           master       #5      +/-   ##
==========================================
+ Coverage   83.58%   86.74%   +3.16%
==========================================
  Files           1        1
  Lines          67       83      +16
==========================================
+ Hits           56       72      +16
  Misses         11       11

Impacted Files
Coverage Δ

src/NonconvexPercival.jl
86.74% <100.00%> (+3.16%)
:arrow_up:

:mega: Codecov can now indicate which changes are the most critical in Pull Requests. Learn more


Default configuration of labels throws validation error

Basic usage of this module throws validation error:
  │   - labels[created_by] (value): Field does not match the pattern /[-_./@0-9a-z]*/
  │
  │   with module.net.yandex_vpc_network.this[0],
  │   on .terraform/modules/net/main.tf line 11, in resource "yandex_vpc_network" "this":
  │   11: resource "yandex_vpc_network" "this" {

This happens because created_by label is set by default to the value that does not mach the pattern provided in the error message:
https://github.com/terraform-yc-modules/terraform-yc-vpc/blob/77aa74f4c8e4449f4355f05c78bf93a34b6d099e/variables.tf#L133
I believe this should be fixed, although it could be worked around by overriding default configuration:
module "net" {
  // ...

  labels = {
    "created_by" = "terraform-yc-module"
  }
}

After that fix everything works fine.

Example configuration to reproduce
module "net" {
  source              = "github.com/terraform-yc-modules/terraform-yc-vpc.git"
  network_name        = "net"
  network_description = "My network"

  private_subnets = [
    {
      name           = "subnet-a"
      zone           = "ru-central1-a"
      v4_cidr_blocks = ["<IP_ADDRESS>/24"]
    },
    {
      name           = "subnet-b"
      zone           = "ru-central1-b"
      v4_cidr_blocks = ["<IP_ADDRESS>/24"]
    },
    {
      name           = "subnet-d"
      zone           = "ru-central1-d"
      v4_cidr_blocks = ["<IP_ADDRESS>/24"]
    }
  ]
}

Full output of "terraform apply"
$ terraform apply -auto-approve
module.net.data.yandex_client_config.client: Reading...
module.net.data.yandex_client_config.client: Read complete after 0s [id=553783327]

Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
  + create

Terraform will perform the following actions:

  # module.net.yandex_vpc_default_security_group.default_sg[0] will be created
  + resource "yandex_vpc_default_security_group" "default_sg" {
      + created_at  = (known after apply)
      + description = "Default security group"
      + folder_id   = "..."
      + id          = (known after apply)
      + labels      = {
          + "created_by" = "terraform yc module"
        }
      + name        = (known after apply)
      + network_id  = (known after apply)
      + status      = (known after apply)

      + egress {
          + description       = "To internet"
          + from_port         = -1
          + id                = (known after apply)
          + labels            = (known after apply)
          + port              = -1
          + protocol          = "ANY"
          + to_port           = -1
          + v4_cidr_blocks    = [
              + "<IP_ADDRESS>/0",
            ]
          + v6_cidr_blocks    = []
            # (2 unchanged attributes hidden)
        }

      + ingress {
          + description       = "Communication inside this SG"
          + from_port         = -1
          + id                = (known after apply)
          + labels            = (known after apply)
          + port              = -1
          + predefined_target = "self_security_group"
          + protocol          = "ANY"
          + to_port           = -1
          + v4_cidr_blocks    = []
          + v6_cidr_blocks    = []
            # (1 unchanged attribute hidden)
        }
      + ingress {
          + description       = "ICMP"
          + from_port         = 0
          + id                = (known after apply)
          + labels            = (known after apply)
          + port              = -1
          + protocol          = "ICMP"
          + to_port           = 65535
          + v4_cidr_blocks    = [
              + "<IP_ADDRESS>/0",
            ]
          + v6_cidr_blocks    = []
            # (2 unchanged attributes hidden)
        }
      + ingress {
          + description       = "NLB health check"
          + from_port         = -1
          + id                = (known after apply)
          + labels            = (known after apply)
          + port              = -1
          + predefined_target = "loadbalancer_healthchecks"
          + protocol          = "TCP"
          + to_port           = -1
          + v4_cidr_blocks    = []
          + v6_cidr_blocks    = []
            # (1 unchanged attribute hidden)
        }
      + ingress {
          + description       = "RDP"
          + from_port         = -1
          + id                = (known after apply)
          + labels            = (known after apply)
          + port              = 3389
          + protocol          = "ANY"
          + to_port           = -1
          + v4_cidr_blocks    = [
              + "<IP_ADDRESS>/0",
            ]
          + v6_cidr_blocks    = []
            # (2 unchanged attributes hidden)
        }
      + ingress {
          + description       = "ssh"
          + from_port         = -1
          + id                = (known after apply)
          + labels            = (known after apply)
          + port              = 22
          + protocol          = "ANY"
          + to_port           = -1
          + v4_cidr_blocks    = [
              + "<IP_ADDRESS>/0",
            ]
          + v6_cidr_blocks    = []
            # (2 unchanged attributes hidden)
        }
    }

  # module.net.yandex_vpc_gateway.egress_gateway[0] will be created
  + resource "yandex_vpc_gateway" "egress_gateway" {
      + created_at = (known after apply)
      + folder_id  = "..."
      + id         = (known after apply)
      + labels     = (known after apply)
      + name       = "net-egress-gateway"

      + shared_egress_gateway {}
    }

  # module.net.yandex_vpc_network.this[0] will be created
  + resource "yandex_vpc_network" "this" {
      + created_at                = (known after apply)
      + default_security_group_id = (known after apply)
      + description               = "My network"
      + folder_id                 = "..."
      + id                        = (known after apply)
      + labels                    = {
          + "created_by" = "terraform yc module"
        }
      + name                      = "net"
      + subnet_ids                = (known after apply)
    }

  # module.net.yandex_vpc_route_table.private[0] will be created
  + resource "yandex_vpc_route_table" "private" {
      + created_at = (known after apply)
      + folder_id  = "..."
      + id         = (known after apply)
      + labels     = (known after apply)
      + name       = "net-private"
      + network_id = (known after apply)

      + static_route {
          + destination_prefix = "<IP_ADDRESS>/0"
          + gateway_id         = (known after apply)
            # (1 unchanged attribute hidden)
        }
    }

  # module.net.yandex_vpc_subnet.private["<IP_ADDRESS>/24"] will be created
  + resource "yandex_vpc_subnet" "private" {
      + created_at     = (known after apply)
      + folder_id      = (known after apply)
      + id             = (known after apply)
      + labels         = {
          + "created_by" = "terraform yc module"
        }
      + name           = "subnet-a"
      + network_id     = (known after apply)
      + route_table_id = (known after apply)
      + v4_cidr_blocks = [
          + "<IP_ADDRESS>/24",
        ]
      + v6_cidr_blocks = (known after apply)
      + zone           = "ru-central1-a"

      + dhcp_options {
          + domain_name         = "internal."
          + domain_name_servers = []
          + ntp_servers         = []
        }
    }

  # module.net.yandex_vpc_subnet.private["<IP_ADDRESS>/24"] will be created
  + resource "yandex_vpc_subnet" "private" {
      + created_at     = (known after apply)
      + folder_id      = (known after apply)
      + id             = (known after apply)
      + labels         = {
          + "created_by" = "terraform yc module"
        }
      + name           = "subnet-b"
      + network_id     = (known after apply)
      + route_table_id = (known after apply)
      + v4_cidr_blocks = [
          + "<IP_ADDRESS>/24",
        ]
      + v6_cidr_blocks = (known after apply)
      + zone           = "ru-central1-b"

      + dhcp_options {
          + domain_name         = "internal."
          + domain_name_servers = []
          + ntp_servers         = []
        }
    }

  # module.net.yandex_vpc_subnet.private["<IP_ADDRESS>/24"] will be created
  + resource "yandex_vpc_subnet" "private" {
      + created_at     = (known after apply)
      + folder_id      = (known after apply)
      + id             = (known after apply)
      + labels         = {
          + "created_by" = "terraform yc module"
        }
      + name           = "subnet-d"
      + network_id     = (known after apply)
      + route_table_id = (known after apply)
      + v4_cidr_blocks = [
          + "<IP_ADDRESS>/24",
        ]
      + v6_cidr_blocks = (known after apply)
      + zone           = "ru-central1-d"

      + dhcp_options {
          + domain_name         = "internal."
          + domain_name_servers = []
          + ntp_servers         = []
        }
    }

Plan: 7 to add, 0 to change, 0 to destroy.
module.net.yandex_vpc_network.this[0]: Creating...
module.net.yandex_vpc_gateway.egress_gateway[0]: Creating...
module.net.yandex_vpc_gateway.egress_gateway[0]: Creation complete after 0s [id=enpkq1jtqdrkgavgjn20]
╷
│ Error: Error while requesting API to create network: server-request-id = 0802f13f-4fce-4552-850e-79d5e47df3df server-trace-id = 75d6293c27096ed8:e435786ccaf07d59:75d6293c27096ed8:1 client-request-id = 3c2d8e4d-b859-4e2b-b1a4-e333b333214c client-trace-id = 9e720224-e948-4376-afc9-962b9103b3c0 rpc error: code = InvalidArgument desc = Validation failed:
│   - labels[created_by] (value): Field does not match the pattern /[-_./@0-9a-z]*/
│
│   with module.net.yandex_vpc_network.this[0],
│   on .terraform/modules/net/main.tf line 11, in resource "yandex_vpc_network" "this":
│   11: resource "yandex_vpc_network" "this" {
│
╵

https://github.com/terraform-yc-modules/terraform-yc-vpc/releases/tag/1.0.7 fix


Incorrect Japanese translation

URL: https://learn.microsoft.com/ja-jp/power-apps/maker/canvas-apps/controls/control-form-detail
「Power Apps での Edit form および Display form のコントロール」のWebページに、【「Edit form」コントロール】という単語が出てきますが、Power Apps上では「編集フォーム」となっているので、単語を合わせておいた方が良いと思います。（初めて読んだ時、何のことか理解できませんでした。）
以上、よろしくお願いいたします。
There are the words as described ["Edit form"コントロール] in 「Power Apps での Edit form および Display form のコントロール」Web page. In Power Apps application (website), it describes "編集フォーム".
It should use the same words to avoid any misunderstanding. (I initially read the sentence, I could not understand the meaning.)
Thanks.

ドキュメントの詳細
⚠ このセクションを編集しないでください。 learn.microsoft.com で必須です ➟ GitHub の問題のリンク。

ID: 280091f4-274b-32f9-eaac-d526c8851404
Version Independent ID: f55d8425-89dd-ea1b-e556-f17ded9acd56
Content: Power Apps での Edit form および Display form のコントロール - Power Apps
Content Source: powerapps-docs/maker/canvas-apps/controls/control-form-detail.md
Service: powerapps
Sub-service: canvas-maker
GitHub Login: @aneesmsft
Microsoft Alias: aneesa

Thanks for your comment, @HisashiSasamoto. This issue has been assigned to the doc author for review.

Work item has been created to our supplier for review. Many thanks.
cc @Bernadette2022

This is just information.
When I open Power Apps, I can see the following control.

I can see the following Japanese description when I refer to the document.

and so on...
I have noticed that some keywords used in Power Apps and in the documents are not consistent.
But, in some cases, I can find the keywords described in the document in Power Apps when I choose the details setting (詳細設定). It might not be an issue because users can find the keywords.
I notice that it is difficult to update the document but I hope it might be revised.
Thanks.

Thank you for the feedback .  We are working on localizing the Power Apps control names in Power Apps  tech documentation

@HisashiSasamoto
the control names have been localized.  Please take a look and let us know if you have other feedbacks.


rofi: automatically switch to EN keyboard layout

Completed by https://github.com/sharkov63/dotfiles/commit/088859a4d0b2c181d6144785bc5f004f7e77ef3e


[1.1-preview2] Resolve issues where AppInstance.FindOrRegisterForKey("key") can return null. (#2362)

Cherry pick from main to 1.1-preview2 branch

/azp run


Add the ability to get resources from JAR archives

Currently Http.fromResource is able to provide file resources only. However, it is often necessary to provide a resource that is inside a JAR archive. For example, if you run an application through sbt run, the application classes and resources will be packaged into a temporary JAR archive, and the resource URLs will have a jar:file scheme. Now such resources cannot be obtained with Http.fromResource. This PR adds this feature. Based on the implementation of ResourceFile from akka-http.

Codecov Report

Merging #1393 (1fdab0c) into main (cc7de3f) will increase coverage by 0.25%.
The diff coverage is 88.46%.

@@            Coverage Diff             @@
##             main    #1393      +/-   ##
==========================================
+ Coverage   60.82%   61.07%   +0.25%
==========================================
  Files          71       71
  Lines        2435     2456      +21
  Branches       71       78       +7
==========================================
+ Hits         1481     1500      +19
- Misses        954      956       +2

Impacted Files
Coverage Δ

zio-http/src/main/scala/zhttp/http/Http.scala
64.19% <88.46%> (+2.48%)
:arrow_up:

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


Selecting a separate user doesn't trigger a search every time

If I set up two separate users, two seperate users appear in the UI and clicking between them searches, but only sometimes.

this may be linked to the 403 errors from last year, "Loading" appears and never finishes and a 403 is thrown.

the server responded with a status of 403 (Forbidden) from api.github.com

closing as #66 is a better description


Chat: E2E tests for chat PCW events.

Adds E2E tests for telemetry events for code buttons in chat. Asserts that changes they produce in a document are correctly categorized as cody_chat.
Adds a new "[Internal] Log character logger counters" for characters logger debugging.
Closes https://linear.app/sourcegraph/issue/CODY-4233/implement-e2e-vs-code-tests-for-pcw-events-from-chat

Test plan

CI with the updated E2E test.
Open command palette in VS Code and run "[Internal] Log character logger counters". It should output the character logger counters in the Cody output channel. Enable verbose debugging by adding "'cody.debug.verbose': true" to your VS Code settings.

Figuring out how to make the output channel assertion more reliable.