One or more points were written more frequently than the maximum sampling period configured for the metric

Hi,
We are encountering ingestion errors One or more points were written more frequently than the maximum sampling period configured for the metric for a lot of custom metrics generated by Spring boot application.
We are running gmp as a self-deployed collection with below versions.

gmp version - v2.41.0-gmp.4-gke.1

chart: kube-prometheus-stack-46.4.1

Prometheus scrape config

  global:
    scrape_interval: 60s
    scrape_timeout: 10s
    evaluation_interval: 30s

Error from logs
{"caller":"export.go:940","component":"gcm_exporter","err":"rpc error: code = InvalidArgument desc = One or more TimeSeries could not be written: One or more points were written more frequently than the maximum sampling period configured for the metric.: xxxxxxx; One or more points were written more frequently than the maximum sampling period configured for the metric.:  xxxxxxx timeSeries[13-15]: error details: name = Unknown  desc = total_point_count:17 success_point_count:13 errors:{status:{code:9} point_count:4}","level":"error","msg":"send batch","size":17,"ts":"2024-02-12T13:44:02.876Z"}

Going through the documentation timeseries-collisions and verified below points

Disable the duplicate collectors by reducing the replica count to 1 (We are using single replica of prometheus instance )
Managed Service for Prometheus partially identifies a unique time series by the combination of {project_id, location, cluster, namespace, job, instance} labels. (I can see the labels for ingested metrics on the Metrics explorer)
The minimum scrape interval supported by Managed Service for Prometheus is 5 seconds. (In our case its 60s)

From the code BatchSizeMax = 200 and we are not providing any configuration from our side so it should be using default.
	// BatchSizeMax represents maximum number of samples to pack into a batch sent to GCM.
	BatchSizeMax = 200

On the metrics explorer, there are some metrics with the status FAILED_PRECONDITION but it doesn't provide any further info.
rate(monitoring_googleapis_com:collection_write_request_point_count{monitored_resource="monitoring.googleapis.com/MetricStatistics"}[${__interval}])

Could you please suggest what could be the issue for these ingestion errors and how can we fix those?

If you disabled HA collection, then the next most likely cause of issues is that you are doing a labeldrop action that causes multiple time series to be identical. You also might be hardcoding labels instead of letting Prometheus determine them, for example setting instance to localhost.
What will happen in this case is that the first scrape will get written but the second scrape won't. So just because you can see the time series in Metrics Explorer, doesn't mean that the labels are all set correctly - data will arrive even if you incorrectly hardcode the labels.

Thanks @lyanco for your quick response. Its not that all the metrics are not reaching to GMP. In logs I see below
total_point_count:22 success_point_count:12 errors:{status:{code:9} point_count:10}

In ServiceMonitor only drop we have is as below for probes
      - action: drop # drop metrics related to probes
        regex: '.*(/actuator/prometheus|/actuator/health).*'
        sourceLabels: [uri]

Below is the prometheusSpec block where we have externalLabels for k8s_cluster
  prometheusSpec:
    enableAdminAPI: false
    image:
      registry: gke.gcr.io
      repository: prometheus-engine/prometheus
      tag: v2.41.0-gmp.4-gke.1
      sha: ""
    logFormat: *logFmt
    scrapeInterval: "90s"
    scrapeTimeout: "10s"
    evaluationInterval: "30s"
    serviceMonitorSelectorNilUsesHelmValues: false
    replicas: 1
    resources:
      requests:
        memory: 2Gi
        cpu: 500m
      limits:
        memory: 8Gi
        cpu: 2
    podMonitorSelector: {}
    podMonitorSelectorNilUsesHelmValues: false
    ruleSelector: {}
    ruleSelectorNilUsesHelmValues: false
    prometheusExternalLabelName: cluster
    externalLabels:
      k8s_cluster: cluster-staging
    storageSpec:
      volumeClaimTemplate:
        spec:
          storageClassName: ssd
          accessModes:
            - ReadWriteOnce
          resources:
            requests:
              storage: 10Gi
    additionalArgs:
      - name: export.match
        value: '{job!~"ingress.*"}'

I don't see anything fishy here and the same configuration works with the existing prometheus setup.
Could you please guide me to troubleshoot further or need more info?

The primary labels that are used to distinguish multiple targets are:
project_id, location, cluster, job, instance, namespace.
The first 3 are auto-populated in GKE. Are you running in GKE?
job and instance are auto-populated by Prometheus itself.
That leaves namespace. Do you have targets across namespaces? If so, is it possible that label is not present on the exported metrics from your application?
You should be able to query, say up in Cloud Monitoring (or whatever frontend UI you're using for querying) to see what labels are on the data that was successfully sent.

You might also benefit by manually visiting the /metrics endpoint that has the metric in question and seeing if any of the labels are hardcoded or conflicting. Hard for us to debug further without looking at the raw data.

Good morning,
I have the same problem as reported in this issue.
I have a self-deployed prometheus with Google's prometheus-operator. When exporting the metrics I'm getting the following error:
{   "textPayload": "ts=2024-02-14T10:44:50.232Z caller=export.go:940 level=error component=gcm_exporter msg=\"send batch\" size=200 err=\"rpc error: code = InvalidArgument desc = One or more TimeSeries could not be written: One or more points were written more frequently than the maximum sampling period configured for the metric.: prometheus_target{job:kafka-connect-collector,location:europe-west1,cluster:XXXX-1,instance: XXXX-cp-kafka-connect-ababab:5556,namespace:default} timeSeries[0-199]: prometheus.googleapis.com/kafka_connect_sink_task_metrics_sink_record_active_count/gauge{task:0,pod:XXXX-cp-kafka-connect-abababa-sb8n7,connector:connector-name-123123}\\nerror details: name = Unknown  desc = total_point_count:200 success_point_count:197 errors:{status:{code:9} point_count:3}\"" }

I only have 1 replica of prometheus;
I dont drop any labels;
The labels are correct with the pod name of each target.

Can you help, please?

Hey @JoelRodrigues58,
I would recommend checking out the troubleshooting docs and seeing if they provide any guidance.
Otherwise, some sanity-checking:

Is the error message just limited to the one kafka-connect-collector job?
What does the Prometheus config look like there?
Do the targets look like you would expect - you can check them in the Prometheus UI (example)?

Hi @pintohutch , thanks for your quick response.
We are using Prometheus to monitoring Kafka cluster instantiated on Google Kubernetes Engine.
We already checked troubleshooting docs and none of solutions solved the problem, because we just use one replica of prometheus server and dont drop any label.
Is the error message just limited to the one kafka-connect-collector job?
No, on metrics from ksql-server-collector also return same error when exported do Cloud Monitoring.
What does the Prometheus config look like there?

global:
  evaluation_interval: 1m
  scrape_interval: 90s
  scrape_timeout: 1m
rule_files:
- /etc/config/recording_rules.yml
- /etc/config/alerting_rules.yml
- /etc/config/rules
- /etc/config/alerts
scrape_configs:
- job_name: zookeeper
  honor_labels: true
  kubernetes_sd_configs:
    - role: pod
  static_configs:
  - targets:
    - XXX-cp-zookeeper:5556
  relabel_configs:
    - source_labels: [__meta_kubernetes_namespace]
      regex: default
      action: keep
    - source_labels: [__meta_kubernetes_pod_label_app]
      regex: cp-zookeeper
      action: keep
    - source_labels: [__meta_kubernetes_pod_name]
      target_label: pod
      action: replace
    - source_labels: [__meta_kubernetes_pod_container_name]
      target_label: container
      action: replace
    - source_labels: [__meta_kubernetes_namespace]
      target_label: namespace
      action: replace
    - target_label: job
      replacement: zookeeper-collector
      action: replace
    - target_label: project_id
      replacement: [PROJECT_ID]
      action: replace
    - target_label: location
      replacement: europe-west1
      action: replace
    - target_label: cluster
      replacement: kafka-gke-1
      action: replace
    - source_labels: [__meta_kubernetes_pod_name]
      target_label: __tmp_instance
      action: replace
    - source_labels: [__meta_kubernetes_pod_controller_kind, __meta_kubernetes_pod_node_name]
      regex: DaemonSet;(.*)
      target_label: __tmp_instance
      replacement: $1
      action: replace
    - regex: container
      action: labeldrop
    - source_labels: [__tmp_instance]
      target_label: instance
      replacement: $1:5556
      action: replace
    - source_labels: [__meta_kubernetes_pod_ip]
      target_label: __address__
      replacement: $1:5556
      action: replace
- job_name: kafka-broker
  honor_labels: true
  kubernetes_sd_configs:
    - role: pod
  static_configs:
  - targets:
    - XXX-cp-kafka:5556
  relabel_configs:
    - source_labels: [__meta_kubernetes_namespace]
      regex: default
      action: keep
    - source_labels: [__meta_kubernetes_pod_label_app]
      regex: cp-kafka
      action: keep
    - source_labels: [__meta_kubernetes_pod_name]
      target_label: pod
      action: replace
    - source_labels: [__meta_kubernetes_pod_container_name]
      target_label: container
      action: replace
    - source_labels: [__meta_kubernetes_namespace]
      target_label: namespace
      action: replace
    - target_label: job
      replacement: kafka-broker-collector
      action: replace
    - target_label: project_id
      replacement: [PROJECT_ID]
      action: replace
    - target_label: location
      replacement: europe-west1
      action: replace
    - target_label: cluster
      replacement: kafka-gke-1
      action: replace
    - source_labels: [__meta_kubernetes_pod_name]
      target_label: __tmp_instance
      action: replace
    - source_labels: [__meta_kubernetes_pod_controller_kind, __meta_kubernetes_pod_node_name]
      regex: DaemonSet;(.*)
      target_label: __tmp_instance
      replacement: $1
      action: replace
    - regex: container
      action: labeldrop
    - source_labels: [__tmp_instance]
      target_label: instance
      replacement: $1:5556
      action: replace
    - source_labels: [__meta_kubernetes_pod_ip]
      target_label: __address__
      replacement: $1:5556
      action: replace
- job_name: kafka-connect
  honor_labels: true
  kubernetes_sd_configs:
    - role: pod
  static_configs:
  - targets:
    - XXX-cp-kafka-connect:5556
  relabel_configs:
    - source_labels: [__meta_kubernetes_namespace]
      regex: default
      action: keep
    - source_labels: [__meta_kubernetes_pod_label_app]
      regex: cp-kafka-connect
      action: keep
    - source_labels: [__meta_kubernetes_pod_name]
      target_label: pod
      action: replace
    - source_labels: [__meta_kubernetes_pod_container_name]
      target_label: container
      action: replace
    - source_labels: [__meta_kubernetes_namespace]
      target_label: namespace
      action: replace
    - target_label: job
      replacement: kafka-connect-collector
      action: replace
    - target_label: project_id
      replacement: [PROJECT_ID]
      action: replace
    - target_label: location
      replacement: europe-west1
      action: replace
    - target_label: cluster
      replacement: kafka-gke-1
      action: replace
    - source_labels: [__meta_kubernetes_pod_name]
      target_label: __tmp_instance
      action: replace
    - source_labels: [__meta_kubernetes_pod_controller_kind, __meta_kubernetes_pod_node_name]
      regex: DaemonSet;(.*)
      target_label: __tmp_instance
      replacement: $1
      action: replace
    - regex: container
      action: labeldrop
    - source_labels: [__tmp_instance]
      target_label: instance
      replacement: $1:5556
      action: replace
    - source_labels: [__meta_kubernetes_pod_ip]
      target_label: __address__
      replacement: $1:5556
      action: replace
- job_name: ksql-server
  honor_labels: true
  kubernetes_sd_configs:
    - role: pod
  static_configs:
  - targets:
    - XXX-cp-ksql-server:5556
  relabel_configs:
    - source_labels: [__meta_kubernetes_namespace]
      regex: default
      action: keep
    - source_labels: [__meta_kubernetes_pod_label_app]
      regex: cp-ksql-server
      action: keep
    - source_labels: [__meta_kubernetes_pod_name]
      target_label: pod
      action: replace
    - source_labels: [__meta_kubernetes_pod_container_name]
      target_label: container
      action: replace
    - source_labels: [__meta_kubernetes_namespace]
      target_label: namespace
      action: replace
    - target_label: job
      replacement: ksql-server-collector
      action: replace
    - target_label: project_id
      replacement: [PROJECT_ID]
      action: replace
    - target_label: location
      replacement: europe-west1
      action: replace
    - target_label: cluster
      replacement: kafka-gke-1
      action: replace
    - source_labels: [__meta_kubernetes_pod_name]
      target_label: __tmp_instance
      action: replace
    - source_labels: [__meta_kubernetes_pod_controller_kind, __meta_kubernetes_pod_node_name]
      regex: DaemonSet;(.*)
      target_label: __tmp_instance
      replacement: $1
      action: replace
    - regex: container
      action: labeldrop
    - source_labels: [__tmp_instance]
      target_label: instance
      replacement: $1:5556
      action: replace
    - source_labels: [__meta_kubernetes_pod_ip]
      target_label: __address__
      replacement: $1:5556
      action: replace

Do the targets look like you would expect - you can check them in the Prometheus UI (example)?
My targets are all up to date, when check up metrics on Cloud Monitoring metrics:

instance
job
location
namespace
pod
project_id
value

XXX-cp-kafka-0:5556
kafka-broker-collector
europe-west1
default
XXX-cp-kafka-0
[PROJECT_ID]
1

XXX-cp-kafka-1:5556
kafka-broker-collector
europe-west1
default
XXX-cp-kafka-1
[PROJECT_ID]
1

XXX-cp-kafka-2:5556
kafka-broker-collector
europe-west1
default
XXX-cp-kafka-2
[PROJECT_ID]
1

XXX-cp-kafka-connect-d6856db8f-jzqkj:5556
kafka-connect-collector
europe-west1
default
XXX-cp-kafka-connect-d6856db8f-jzqkj
[PROJECT_ID]
1

XXX-cp-kafka-connect-d6856db8f-kkh4g:5556
kafka-connect-collector
europe-west1
default
XXX-cp-kafka-connect-d6856db8f-kkh4g
[PROJECT_ID]
1

XXX-cp-kafka-connect-d6856db8f-x87jg:5556
kafka-connect-collector
europe-west1
default
XXX-cp-kafka-connect-d6856db8f-x87jg
[PROJECT_ID]
1

XXX-cp-ksql-server-85456d746c-gdfr4:5556
ksql-server-collector
europe-west1
default
XXX-cp-ksql-server-85456d746c-gdfr4
[PROJECT_ID]
1

XXX-cp-ksql-server-85456d746c-kxqmp:5556
ksql-server-collector
europe-west1
default
XXX-cp-ksql-server-85456d746c-kxqmp
[PROJECT_ID]
1

XXX-cp-zookeeper-0:5556
zookeeper-collector
europe-west1
default
XXX-cp-zookeeper-0
[PROJECT_ID]
1

XXX-cp-zookeeper-1:5556
zookeeper-collector
europe-west1
default
XXX-cp-zookeeper-1
[PROJECT_ID]
1

XXX-cp-zookeeper-2:5556
zookeeper-collector
europe-west1
default
XXX-cp-zookeeper-2
[PROJECT_ID]
1

Note: we use the following image: gke.gcr.io/prometheus-engine/prometheus:v2.41.0-gmp.9-gke.0

Got it - what are the static_configs doing for you? I don't see anything other than kubernetes sd labels being used in the relabeling rules. What happens if you omit those?

Hi @pintohutch ,
I see your point. In fact the static_configs config is unnecessary.
I refactored the prometheus config to the following:

apiVersion: v1
data:
  alerting_rules.yml: |
    {}
  alerts: |
    {}
  allow-snippet-annotations: "false"
  prometheus.yml: |
    global:
      evaluation_interval: 1m
      scrape_interval: 90s
      scrape_timeout: 1m
    rule_files:
    - /etc/config/recording_rules.yml
    - /etc/config/alerting_rules.yml
    - /etc/config/rules
    - /etc/config/alerts
    scrape_configs:
    - job_name: zookeeper
      honor_labels: true
      kubernetes_sd_configs:
        - role: pod
          namespaces:
            names:
            - default
          selectors:
            - role: pod
              label: app=cp-zookeeper
      relabel_configs:
        - source_labels: [__meta_kubernetes_namespace]
          regex: default
          action: keep
        - source_labels: [__meta_kubernetes_pod_label_app]
          regex: cp-zookeeper
          action: keep
        - source_labels: [__meta_kubernetes_pod_name]
          target_label: pod
          action: replace
        - source_labels: [__meta_kubernetes_pod_container_name]
          target_label: container
          action: replace
        - source_labels: [__meta_kubernetes_namespace]
          target_label: namespace
          action: replace
        - target_label: job
          replacement: zookeeper-collector
          action: replace
        - target_label: project_id
          replacement: datamgt-dev
          action: replace
        - target_label: location
          replacement: europe-west1
          action: replace
        - target_label: cluster
          replacement: kafka-gke-1
          action: replace
        - source_labels: [__meta_kubernetes_pod_name]
          target_label: __tmp_instance
          action: replace
        - source_labels: [__meta_kubernetes_pod_controller_kind, __meta_kubernetes_pod_node_name]
          regex: DaemonSet;(.*)
          target_label: __tmp_instance
          replacement: $1
          action: replace
        - regex: container
          action: labeldrop
        - source_labels: [__tmp_instance]
          target_label: instance
          replacement: $1:5556
          action: replace
        - source_labels: [__meta_kubernetes_pod_ip]
          target_label: __address__
          replacement: $1:5556
          action: replace
    - job_name: kafka-broker
      honor_labels: true
      kubernetes_sd_configs:
        - role: pod
          namespaces:
            names:
            - default
          selectors:
            - role: pod
              label: app=cp-kafka
      relabel_configs:
        - source_labels: [__meta_kubernetes_namespace]
          regex: default
          action: keep
        - source_labels: [__meta_kubernetes_pod_label_app]
          regex: cp-kafka
          action: keep
        - source_labels: [__meta_kubernetes_pod_name]
          target_label: pod
          action: replace
        - source_labels: [__meta_kubernetes_pod_container_name]
          target_label: container
          action: replace
        - source_labels: [__meta_kubernetes_namespace]
          target_label: namespace
          action: replace
        - target_label: job
          replacement: kafka-broker-collector
          action: replace
        - target_label: project_id
          replacement: datamgt-dev
          action: replace
        - target_label: location
          replacement: europe-west1
          action: replace
        - target_label: cluster
          replacement: kafka-gke-1
          action: replace
        - source_labels: [__meta_kubernetes_pod_name]
          target_label: __tmp_instance
          action: replace
        - source_labels: [__meta_kubernetes_pod_controller_kind, __meta_kubernetes_pod_node_name]
          regex: DaemonSet;(.*)
          target_label: __tmp_instance
          replacement: $1
          action: replace
        - regex: container
          action: labeldrop
        - source_labels: [__tmp_instance]
          target_label: instance
          replacement: $1:5556
          action: replace
        - source_labels: [__meta_kubernetes_pod_ip]
          target_label: __address__
          replacement: $1:5556
          action: replace
    - job_name: kafka-connect
      honor_labels: true
      kubernetes_sd_configs:
        - role: pod
          namespaces:
            names:
            - default
          selectors:
            - role: pod
              label: app=cp-kafka-connect
      relabel_configs:
        - source_labels: [__meta_kubernetes_namespace]
          regex: default
          action: keep
        - source_labels: [__meta_kubernetes_pod_label_app]
          regex: cp-kafka-connect
          action: keep
        - source_labels: [__meta_kubernetes_pod_name]
          target_label: pod
          action: replace
        - source_labels: [__meta_kubernetes_pod_container_name]
          target_label: container
          action: replace
        - source_labels: [__meta_kubernetes_namespace]
          target_label: namespace
          action: replace
        - target_label: job
          replacement: kafka-connect-collector
          action: replace
        - target_label: project_id
          replacement: datamgt-dev
          action: replace
        - target_label: location
          replacement: europe-west1
          action: replace
        - target_label: cluster
          replacement: kafka-gke-1
          action: replace
        - source_labels: [__meta_kubernetes_pod_name]
          target_label: __tmp_instance
          action: replace
        - source_labels: [__meta_kubernetes_pod_controller_kind, __meta_kubernetes_pod_node_name]
          regex: DaemonSet;(.*)
          target_label: __tmp_instance
          replacement: $1
          action: replace
        - regex: container
          action: labeldrop
        - source_labels: [__tmp_instance]
          target_label: instance
          replacement: $1:5556
          action: replace
        - source_labels: [__meta_kubernetes_pod_ip]
          target_label: __address__
          replacement: $1:5556
          action: replace
    - job_name: ksql-server
      honor_labels: true
      kubernetes_sd_configs:
        - role: pod
          namespaces:
            names:
            - default
          selectors:
            - role: pod
              label: app=cp-ksql-server
      relabel_configs:
        - source_labels: [__meta_kubernetes_namespace]
          regex: default
          action: keep
        - source_labels: [__meta_kubernetes_pod_label_app]
          regex: cp-ksql-server
          action: keep
        - source_labels: [__meta_kubernetes_pod_name]
          target_label: pod
          action: replace
        - source_labels: [__meta_kubernetes_pod_container_name]
          target_label: container
          action: replace
        - source_labels: [__meta_kubernetes_namespace]
          target_label: namespace
          action: replace
        - target_label: job
          replacement: ksql-server-collector
          action: replace
        - target_label: project_id
          replacement: datamgt-dev
          action: replace
        - target_label: location
          replacement: europe-west1
          action: replace
        - target_label: cluster
          replacement: kafka-gke-1
          action: replace
        - source_labels: [__meta_kubernetes_pod_name]
          target_label: __tmp_instance
          action: replace
        - source_labels: [__meta_kubernetes_pod_controller_kind, __meta_kubernetes_pod_node_name]
          regex: DaemonSet;(.*)
          target_label: __tmp_instance
          replacement: $1
          action: replace
        - regex: container
          action: labeldrop
        - source_labels: [__tmp_instance]
          target_label: instance
          replacement: $1:5556
          action: replace
        - source_labels: [__meta_kubernetes_pod_ip]
          target_label: __address__
          replacement: $1:5556
          action: replace
  recording_rules.yml: |
    {}
  rules: |
    {}
kind: ConfigMap
metadata:
  annotations:
    meta.helm.sh/release-name: XXXX
    meta.helm.sh/release-namespace: default
  creationTimestamp: "2023-06-14T13:48:54Z"
  labels:
    app: prometheus
    app.kubernetes.io/managed-by: Helm
    chart: prometheus-19.7.2
    component: server
    heritage: Helm
    release: XXXX
  managedFields:
  - apiVersion: v1
    fieldsType: FieldsV1
    fieldsV1:
      f:data:
        .: {}
        f:alerting_rules.yml: {}
        f:alerts: {}
        f:allow-snippet-annotations: {}
        f:recording_rules.yml: {}
        f:rules: {}
      f:metadata:
        f:annotations:
          .: {}
          f:meta.helm.sh/release-name: {}
          f:meta.helm.sh/release-namespace: {}
        f:labels:
          .: {}
          f:app: {}
          f:app.kubernetes.io/managed-by: {}
          f:chart: {}
          f:component: {}
          f:heritage: {}
          f:release: {}
    manager: helm
    operation: Update
    time: "2023-06-14T13:48:54Z"
  - apiVersion: v1
    fieldsType: FieldsV1
    fieldsV1:
      f:data:
        f:prometheus.yml: {}
    manager: GoogleCloudConsole
    operation: Update
    time: "2024-02-16T11:21:48Z"
  name: XXXX-prometheus-server
  namespace: default
  resourceVersion: "273642201"
  uid: 75183e12-2829-49a6-a7b0-8203e996b20a

But the error continues, for example:
{   "textPayload": "ts=2024-02-16T11:44:23.135Z caller=export.go:940 level=error component=gcm_exporter msg=\"send batch\" size=200 err=\"rpc error: code = InvalidArgument desc = One or more TimeSeries could not be written: One or more points were written more frequently than the maximum sampling period configured for the metric.: prometheus_target{instance:XXX-cp-ksql-server-85456d746c-gdfr4:5556,cluster:kafka-gke-1,job:ksql-server-collector,namespace:default,location:europe-west1} timeSeries[0-199]: prometheus.googleapis.com/kafka_consumer_consumer_fetch_manager_metrics_records_lag/gauge{partition:0,pod:XXX-cp-ksql-server-85456d746c-gdfr4,topic:clear-d51182fd-35ee-4db6-9d2d-f9c054358b43-StreamThread-1-consumer}\\nerror details: name = Unknown  desc = total_point_count:200 success_point_count:199 errors:{status:{code:9} point_count:1}\"",   "insertId": "qawquvct4ystxeat",   "resource": {     "type": "k8s_container",     "labels": {       "project_id": "datamgt-dev",       "cluster_name": "kafka-gke-1",       "pod_name": "XXXX-prometheus-server-74b8c75876-sw49n",       "namespace_name": "default",       "location": "europe-west1",       "container_name": "prometheus-server"     }   },   "timestamp": "2024-02-16T11:44:23.143898581Z",   "severity": "ERROR",   "labels": {     "k8s-pod/heritage": "Helm",     "k8s-pod/component": "server",     "k8s-pod/chart": "prometheus-19.7.2",     "compute.googleapis.com/resource_name": "gk3-kafka-gke-1-nap-23vsg07u-eb34b194-qnq9",     "k8s-pod/pod-template-hash": "74b8c75876",     "k8s-pod/release": "XXXX",     "k8s-pod/app": "prometheus"   },   "logName": "projects/[PROJECT_ID]/logs/stderr",   "receiveTimestamp": "2024-02-16T11:44:26.151537686Z" }

Hi @JoelRodrigues58 - thanks for sharing. A few things:

I do see you do an explicit relabeling to populate the container label, followed by a labeldrop for container. I wonder if you're running into (from Prometheus docs):

The pod role discovers all pods and exposes their containers as targets. For each declared port of a container, a single target is generated. If a container has no specified ports, a port-free target per container is created for manually adding a port via relabeling.

In this case, if you have multiple ports declared in that pod, each one will generate a target to scrape from. Your relabeling rules don't filter targets by port, but rather hardcode the port value in instance. It may help to include __meta_kubernetes_pod_container_port_number as well as __meta_kubernetes_pod_container_name in your relabeling to ensure you're only scraping one endpoint on the pod.

I see you're relabeling project_id, location, and cluster. FYI, if you're running on GKE, these values are automatically detected and set at runtime. So you don't need to explicitly set them in your config if you don't want to.
Be careful when doing job or instance relabeling in general, as these are built-in "magic" labels Prometheus computes for you. For example, if you inadvertently relabel job to the name of an existing scrape config, you could have collisions.

Hope that helps

Is kafka_connect_sink_task_metrics_sink_record_active_count the only metric? Or are there others?
I'm curious if it's limited to just the cp-ksql-server target or not.

Hi @pintohutch and @lyanco , thanks for your quick response.

Is kafka_connect_sink_task_metrics_sink_record_active_count the only metric? Or are there others?
I'm curious if it's limited to just the cp-ksql-server target or not.

No. I have this issue in several targets, not just one.

It's also possible that the exporter itself is generating duplicate time series due to hardcoding certain labels. You can go to the /metrics endpoint and manually search to see if there are duplicate time series with the same set of labels that are present in the error message above.

It looks like this could be the problem. When I call directly to the target and filter by a metric, for example:
curl http://[TARGET_IP]:5556/metrics | grep kafka_consumer_consumer_fetch_manager_metrics_records_lag
I get the same duplicate metric where one value is NaN.
kafka_consumer_consumer_fetch_manager_metrics_records_lag{clientId="test",partition="0",topic="topicName",} NaN
kafka_consumer_consumer_fetch_manager_metrics_records_lag{clientId="test",partition="0",topic="topicName",} 15.2

When I query the Prometheus API I get the following value:
  curl -g 'http://[PROMETHEUS_IP]:9090/api/v1/query?query=kafka_consumer_consumer_fetch_manager_metrics_records_lag{clientId="test",partition="0",topic="topicName",}'
{
    "status": "success",
    "data": {
        "resultType": "vector",
        "result": [
            {
                "metric": {
                    "__name__": "kafka_consumer_consumer_fetch_manager_metrics_records_lag",
                    "clientId": "test",
                    "instance": "[TARGET_IP]:5556",
                    "job": "ksql-server",
                    "partition": "0",
                    "pod": "XXX-cp-ksql-server-85456d746c-kxqmp",
                    "topic": "topicName"
                },
                "value": [
                    15.2,
                    "NaN"
                ]
            }
        ]
    }
}

The collision in sending metrics to Cloud Monitoring can originate here. Do you know how I can solve this?
Is it possible to filter the metrics with NaN so that they are not sent to Cloud Monitoring?

I don't think it's possible to filter on a value at scrape time. You'll have to go into the exporter documentation or the like to figure out why it's generating duplicate time series. My guess is that this is an artifact of you using "test" and "topicName" for test values, and that when you use real data this will go away.

@lyanco ,
I've put "test" and "topicName" to illustrate, they're not actually these values, they're real values.
My jmx-exporter has the following configuration, maybe you can help with your experience:
jmxUrl: service:jmx:rmi:///jndi/rmi://localhost:5555/jmxrmi
lowercaseOutputName: true
rules:
  # kafka.streams:type=stream-thread-metrics,thread-id="{threadId}"
  - pattern: 'kafka.streams<type=stream-thread-metrics, thread-id=(.+)><>(.+-total|.+-rate|.+-avg)'
    name: kafka_streams_stream_thread_metrics_$2
    labels:
      threadId: "$1"
    help: "Kafka Streams JMX metric $2"
    type: GAUGE

  # kafka.streams:type=stream-task-metrics,thread-id="{threadId}",task-id="{taskId}"
  - pattern: 'kafka.streams<type=stream-task-metrics, thread-id=(.+), task-id=(.+)><>(.+-total|.+-rate|.+-ratio|.+-avg)'
    name: kafka_streams_stream_task_metrics_$3
    labels:
      threadId: "$1"
      taskId: "$2"
    help: "Kafka Streams JMX metric $3"
    type: GAUGE

  #kafka.producer:type=producer-topic-metrics,client-id="{clientid}",topic="{topic}",partition="{partition}"
  #kafka.consumer:type=consumer-fetch-manager-metrics,client-id="{clientid}",topic="{topic}",partition="{partition}"
  - pattern: kafka.(.+)<type=(.+)-metrics, client-id=(.+), topic=(.+), partition=(.+)><>(.+-total|.+-rate|.+-avg|.+-lag)
    name: kafka_$1_$2_metrics_$6
    labels:
      clientId: "$3"
      topic: "$4"
      partition: "$5"
    help: "Kafka $1 JMX metric type $2"
    type: GAUGE

  #kafka.producer:type=producer-topic-metrics,client-id="{clientid}",topic="{topic}"
  #kafka.consumer:type=consumer-fetch-manager-metrics,client-id="{clientid}",topic="{topic}""
  - pattern: kafka.(.+)<type=(.+)-metrics, client-id=(.+), topic=(.+)><>(.+-total|.+-rate|.+-avg)
    name: kafka_$1_$2_metrics_$5
    labels:
      clientId: "$3"
      topic: "$4"
    help: "Kafka $1 JMX metric type $2"
    type: GAUGE

  #kafka.streams:type=streams-node-metrics,client-id="{clientid}",node-id="{nodeid}"
  #kafka.consumer:type=consumer-node-metrics,client-id=consumer-1,node-id="{nodeid}"
  - pattern: kafka.(.+)<type=(.+)-metrics, client-id=(.+), node-id=(.+)><>(.+-total|.+-avg)
    name: kafka_$1_$2_metrics_$5
    labels:
      clientId: "$3"
      nodeId: "$4"
    help: "Kafka $1 JMX metric type $2"
    type: UNTYPED

  #kafka.streams:type=kafka-metrics-theads,client-id="{clientid}"
  #kafka.consumer:type=consumer-fetch-manager-metrics,client-id="{clientid}"
  #kafka.consumer:type=consumer-coordinator-metrics,client-id="{clientid}"
  #kafka.consumer:type=consumer-metrics,client-id="{clientid}"
  #kafka.producer:type=producer-metrics,client-id="{clientid}"
  - pattern: kafka.(.+)<type=(.+)-metrics, client-id=(.*)><>(.+-total|.+-avg|.+-bytes|.+-count|.+-ratio|.+-rate|.+-age|.+-flight|.+-threads|.+-connectors|.+-tasks|.+-ago)
    name: kafka_$1_$2_metrics_$4
    labels:
      clientId: "$3"
    help: "Kafka $1 JMX metric type $2"
    type: GAUGE

  #io.confluent.ksql.metrics:type=ksql-engine-query-stats:{serviceId}
  - pattern: 'io.confluent.ksql.metrics<type=ksql-engine-query-stats><>(_confluent-ksql-default_)(.+-total|.+-rate|.+-avg|.+-per-sec|num.+queries)'
    name: ksql_metrics_ksql_engine_query_stats_$2
    labels:
      serviceId: "$1"
    help: "ksql JMX metric $2"
    type: GAUGE
  - pattern: 'io.confluent.ksql.metrics<type=ksql-engine-query-stats><>(_confluent-ksql-default_ksql-engine-query-stats-)(.+-queries)'
    name: ksql_metrics_ksql_engine_query_stats_$2
    labels:
      serviceId: "$1"
    help: "ksql JMX metric $2"
    type: GAUGE

  #io.confluent.ksql.metrics:id={id},key={key},type=producer-metrics
  #io.confluent.ksql.metrics:id={id},key={key},type=consumer-metrics
  - pattern: 'io.confluent.ksql.metrics<id=(.*),key=(.*),type=(.+)-metrics><>(.+-per-sec|.+-messages|.+-bytes)'
    name: ksql_metrics_$3_metrics_$4
    labels:
      id: "$1"
      key: "$2"
    help: "ksql JMX metric $4"
    type: GAUGE

I'm sorry, I really don't know anything about debugging individual exporters. I will say that the dedicated kafka_exporter is probably more popularly used than instrumenting it using the jmx exporter, so maybe try that.

Closing as won't fix as this looks to be an upstream exporter issue.


Nginx reverse proxy documentation clarification?

I don't find the reverse proxy docs that extensive for nginx novices?
Can anyone point the failure in understanding? Thanks in advance!

I have set up and installed everything on the server, ackee is running on  http://localhost:3000 on production

I have the domain : domaintest.com . Already i can access the interface via domaintest.com:3000 - but i need to both be able to send data from the tracker and access through ssl so i need to make a "reverse proxy" - what i find mystifying though is the example.

The example is for "example.com" which would be the nginx.conf file
for domaintest.com in my case - but editing this and all data is just proxied to Ackee - so i just get a blank page.

This is what i add to my domaintest.com nginx config file inside the location block
 add_header          Access-Control-Allow-Origin "*" always;
 add_header          Access-Control-Allow-Methods "GET, POST, PATCH, OPTIONS" always;
 add_header          Access-Control-Allow-Headers "Content-Type" always;
 add_header          Strict-Transport-Security "max-age=31536000" always;
 add_header          X-Frame-Options deny;
 proxy_pass          http://localhost:3000;
 proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
 proxy_redirect      off;
 proxy_buffering     off;
 proxy_set_header    Host $host;
 proxy_set_header    X-Real-IP $remote_addr;
 proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;

I am surely missing something because this doesn't seem to "gives any domain permission to access Ackee." but instead just proxies everything to Ackee, so my front page ends up being the Ackee page (but blank).
In my mind it seems like i need a new custom domain that is routed only to localhost:3000, but then i can't use the domain for anything else?

Hey, I don't know if I am fully understanding your problem, but here's how I am doing it with nginx and one domain:
I've setup a subdomain (e.g. ackee.domaintest.com) in my DNS which points to my server. Here's my nginx config file:
server {
	listen 80;
	server_name ackee.domaintest.com;
	return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    client_max_body_size 5000M;

    root /path/to/ackee/folder;
    server_name ackee.domaintest.com;

    # ... all my SSL stuff

    resolver <IP_ADDRESS>;

    add_header Access-Control-Allow-Credentials true;

    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_cache_bypass $http_upgrade;
        proxy_pass_request_headers on;
    }
}

Note: I am using this configuration with a Let's encrypt SSL certificate.
Hope that helps, let me know if you have any questions.

Thank you very much! I copied your code and i works now. (i stil don't generate any hits though, so i am still tinkering)
I pretty much deduced that a subdomain was necessary but wasn't sure. I think the docs could be made a bit easier for people especially when coming from gAnalytics.
A text like this would clarify a lot on the top of the page, instead of the 1,2,3 on the bottom of the page:
Ackee is a simple analytics tool consisting of two parts. A node server running on the server of your choice, and a tracking script that talks to that server. The node server shows you the interface with analytics and receives the request from all of your sites, while the tracking script is set up on each site you want analytics for. Since normally your site and your analytics server is running on the same machine, a subdomain is needed that proxies all requests from that subdomain to the node server running locally on port 3000.
Looking forward to use this neat tool!

Great info. I've added the text to the Get started guide!


 But I follow all the steps of the Sample App and yet get the following error

webview2samples-master\gettingstartedguides\win32_gettingstarted\packages\microsoft.windows.implementationlibrary.1.0.200902.2\include\wil\result_macros.h(1225): error C2440: 'return': cannot convert from 'initializer list' to 'wil::details::ResultStatus'

Not sure what I missed. I am using vs2015 (v140), Target platform Version: 10.0.17763.0, Target platform: Windows 10

Update: Everything is running fine in vs2019 with target sdk: v140 and platform Win 10. Problem only in vs2015 of before

I'm unsure if anyone's used WIL with 2015 in recent history, so it wouldn't surprise me if it has fallen out of support

So if my main project is in vs2015, and I need to make a dll/exe project for WebView2 use, I wouldn't be able to use WebView2 unless I update it to vs2019?

I wouldn't be able to use WebView2

I'm not familiar with WebView2; what part of it requires using WIL?

Unsure about that but need to include these two following headers:
#include <wrl.h>
#include <wil/com.h>
It uses webController:-
static wil::com_ptr webviewController;

need to include these two following headers:

Is this "need" coming from WebView2 itself? Or are you just following an example, etc? E.g. why can't you just use WRL's ComPtr type?

I am following an example of a sample app for Microsoft WebView2 @ https://docs.microsoft.com/en-us/microsoft-edge/webview2/gettingstarted/win32. Figuring out how much need there is of it.

There is not a specific need for wil::com_ptr, it's just what the sample uses: you can use Microsoft::WRL::ComPtr instead

Oh great! That works, thanks a lot :-)


Why is mx.eval necessary after each iteration in the examples?

Hi, I'm excited to see a new ML framework (since JAX?)!
Among many features, I found the lazy evaluation interesting.
In the examples, such as linear_regression.py, weights are materialized by mx.eval after each iteration; see, for example,
https://github.com/ml-explore/mlx/blob/0b283996386bfe1bbe6c644bab8d3e3251f71ef0/examples/python/linear_regression.py#L36
Commenting this line out keeps the results the same, to my knowledge, as expected.
But it's used in other examples as well, so I suspect it's intentional.
Are there any reasons that mx.eval is necessary?
Thank you!

First I'd point you to the quicksart guide, it has some information on this. Albeit we should add more docs on eval etc.
So if you do a computation in MLX it's lazy:
c = a + b

At this point c just has a shape and a type but no data. The + operations hasn't actually been run yet. To get the output you have to eval the graph. One way to force that to happen is to call mx.eval(c). It also happens implicitly in a few other cases such as printing c, calling np.array(c), etc.
No work starts until you call eval.  For example:
for _ in range(100000):
  a = mx.exp(a)

Produces a pretty long graph. And nothing gets computed until an eval has been called (implicitly or explicitly). For the linear regression example it's fine because the graph is still manageable. But for really long running computations if the graph gets too big it can drain resources and slow things down, so a good approach is to do an eval every so often (like after one step of SGD).

I'll close this issue for now. Feel free to comment if you have any more questions.

Thank you for the concise answer!
So far, I have just tried linear regression and MNIST examples, so I didn't notice that evaluation of long-running graphs causes performance degeneration; rather, I found mx.eval introduces some overhead. I will try more complex problems.
If I understand it correctly, mlx dynamically creates graphs like PyTorch. I know some complicated problems need dynamic graphs, but for simple problems, including the linear regression example, graphs can be static. Are there any ways to reuse once-constructed graphs to reduce overhead?

Are there any ways to reuse once-constructed graphs to reduce overhead?

Good question. At the moment no. In the future likely yes as we want to support a compiled path. However, we find our graph building overhead is really minimal in most cases so hopefully it shouldn't be too pressing for you. If you are running into graph overhead as a bottleneck, please share more information, that would be helpful to see.


[SPARK-7331][SQL] Re-use HiveConf in HiveQl

Re-use HiveConf in HiveQl

Can one of the admins verify this patch?

ok to test

Merged build triggered.

Merged build started.

Test build #32352 has started for   PR 6036 at commit 7ff1f9e.

This patch merges cleanly.

Test build #32352 has finished for   PR 6036 at commit 7ff1f9e.

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

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

Merged build finished. Test PASSed.

Thanks, merged.

@nitin2goyal you'll need to close this PR as the automated process won't.


Grunt support.

Does loose-envify support grunt?
When I use options like
transform: [
		       [
				'loose-envify',
				{
					global: true,
					NODE_ENV: 'production',
					_: 'purge'
				}
			]
		],

they seem to be ignored. processs.env.NODE_ENV is always replaced with the current NODE_ENV variable and not the one in the options.

Sorry, that's outside the scope of this project.


Wrap string

Before:
sphinx.pawPot.species.create(
    potential=get_potential_path("Al"),
    potType='"' + "AtomPAW" + '"',
    element='"' + "Al" + '"',
)

After
sphinx.pawPot.species.create(
    potential=get_potential_path("Al"),
    potType="AtomPAW",
    element="Al",
)

This can be turned off by setting wrap_string=False

Pull Request Test Coverage Report for Build<PHONE_NUMBER>1
Details

0 of 0   changed or added relevant lines in 0 files are covered.
87 unchanged lines in 3 files lost coverage.
Overall coverage increased (+0.3%) to 64.982%

Files with Coverage Reduction
New Missed Lines
%

toolkit.py
1
89.36%

src/generator.py
15
82.54%

input.py
71
76.85%

Totals

Change from base Build<PHONE_NUMBER>8:
0.3%

Covered Lines:
527

Relevant Lines:
811

💛  - Coveralls


Added .gitattributes file.

I've added .gitattributes file to ignore some files/directories that are not required on production.

Thanks!


Fix removing containers on leaving from pending state

fixes #23629
Signed-off-by: Tonis Tiigi<EMAIL_ADDRESS>

LGTM

LGTM :+1:

experimental timed out after all tests were completed
23:51:22 PASS: docker_api_swarm_test.go:554: DockerSwarmSuite.TestApiSwarmLeaveOnPendingJoin	3.596s


Assignment 3 done.

Great job just a 3D US and the histogram should give you 1 pixel for 254 without a graph even.


Hyphened directory names treated as variants

Hi.
I've stumbled upon error with missing gmp.h (as described in #123): the headers file was located in /usr/include/x86_64-linux-gnu/ rather than just /usr/include/. First thing i've tried was to add +gmp=/usr/include/x86_64-linux-gnu variant, but phpbrew halted because it treated -linux part as another variant.

Hi @etki
Can you provide the complete command for us to add failing tests? Thanks

confirmed, I'm about to push a fix

@c9s Hi, i'm afraid that docker container is already wiped away, but it was something like
phpbrew install --name 5.3 5.3.29 +gmp=/usr/include/x86_64-linux-gnu

Thanks @marcioAlmada++

@marcioAlmada++

Fixed phpbrew self-update

@marcioAlmada thank you


Plz keep on mentaining

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: [e.g. iOS]
Browser [e.g. chrome, safari]
Version [e.g. 22]

Smartphone (please complete the following information):

Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Additional context
Add any other context about the problem here.

@Dvixe Thx for the error report form, I will use that as a template. I am maintaining the app, currently I am almost done with MAL anime integration. Let me know if you find any bugs.


[3.x] Add support for custom debug keystore

Fix #48096

I thought we had this feature already? When you fill the Debug Keystore and related settings in the export preset, don't they get used instead of the editor settings one?

@akien-mga There's a bug preventing it from working correctly for custom builds (see #48096)

Thanks!

Cherry-picked for 3.3.3.


Wait for Rubix initialization in Hive connector

This way we can fail fast whenever Rubix cannot be initialized of configuration is faulty.

Supersedes https://github.com/prestosql/presto/pull/3749


Missing tracks in imported .glb (glTF) animations

Godot version
4.0 alpha 4
System information
Windows 11
Issue description
I use animation from Mixamo. One animation clip per .glb file. Each file has same problem: left-hand fingers nodes have both, rotation and position tracks but right-hand fingers nodes have only position tracks, without rotation.
Importing animations to blender or different engines has no such issue.
Changing import options like "Optimizer", "Compression" or "Import Tracks" has no effect.
Re-exporting animations to .gltf format instead .glb has no effect too.
Steps to reproduce

Import any of attached animation file
Drag&drop imported asset to a scene
Right click > Editable Children
Select AnimationPlayer
You'll see that e.g. LeftHandPinkyX have both position and rotation tracks, but equivalent RightHandPinkyX only position.
Now import file to Blender - all tracks exists as they should

Minimal reproduction project
anim.zip

I noticed there's no mesh. Please review https://github.com/KhronosGroup/glTF-Blender-IO/pull/1560 for exporting pure animations.

I noticed there's no mesh. Please review KhronosGroup/glTF-Blender-IO#1582 for exporting pure animations.
Edited: 1582

I store meshes and animations in separate files and reuse them. Had no problems so far until now, when I started working with hand attachements.
Files I use (and attached here) comes from project that I've already made in different engine and now slowly porting to Godot.

Godot and Blender require an armature structure which is guessed from the gltf file.
The 1582 pr forces the Blender Armature / Godot Skeleton3D through adding the gltf nodes to a skin object. See the issue in the pr for more details.

Godot and Blender require an armature structure which is guessed from the gltf file.
The 1582 pr forces the Blender Armature / Godot Skeleton3D through adding the gltf nodes to a skin object. See the issue in the pr for more details.

Checked PR and and tried re-exporting with skeleton info. It imports structure as skeleton now, but it still doesn't solve the issue and tracks are missing.
Actually, regular hierachy instead of Skeleton was not a problem for me - I made a simple tool script to postprocess all imported animations to make them compatible with Skeleton3D. No problems so far, most of controller scripts have already done.
The problem is that some tracks are actually missing although they exist in file.
While exporimentiing with this updated glTF blender addon I've noticed one thing that could be a clue:

All tracks that are missing have all keyframes at exactly the same values, so their values once set don't change during whole animation.
So, maybe "Optimizer" althoguh is disabled, still somehow skips tracks that have all keyframes at same value all the time?
In my case even if such value is constant during animation, it's different from original T-Pose value so it must somehow be imported and actually exist as a track in animation.

Here I attach one of the animations re-exported to .gltf text file (with regular hierachy, no skeleton), so you can manually analyze it that rotation animation track actually exists (e.g. node id 38) but is not imported by Godot.
untitled.zip

We added a feature several months ago to address this. I forgot.

I believe we're supposed to blend animation with also the RESET pose. It was discussed at some point that we didn't want to generate placeholder tracks that reset the animation when the RESET track feature exists. Another feature that interacts is because a transform is split into three in the spec the tracks aren't physically there.
Can you describe more about how you use this feature?
I'll be back with a data inspection diagram.

I think there's probably an off by one by where constant values different from the RESET pose for one frame are lost.

In Blender 3.1, did you try to uncheck "optimize animation size"?

This option remove constant animation of nodes. Uncheck it will export animation anyway, even if all keyframes are equals

I believe we're supposed to blend animation with also the RESET pose. It was discussed at some point that we didn't want to generate placeholder tracks that reset the animation when the RESET track feature exists. Another feature that interacts is because a transform is split into three in the spec the tracks aren't physically there.
Can you describe more about how you use this feature?
I'll be back with a data inspection diagram.

I store character mesh in a separate .glb file with skeleton in T-Pose as rest pose (those T-Pose transforms i use in RESET track, so they are default if no track is defined for a bone in animation).
Every animation clip I store in separate .glb file. Those files are pure Mixamo animation, just reexported to .glb from original .fbx. They all had armature in T-Pose (it's important to note)  but actual initial pose of animation is defined in first frame using keyframes, and some of values don't change over time.
Importing mesh to Godot with Skeleton in T-Pose works flawlessy.
Importing animation file works fine too, the only problem I had is that imported animation refers to regular node structure instead of Skeleton bone name. I simply made editor PostImport script that renames track paths to refer Skeleton and it works very well, can create and use animation trees on my character with no problem.
The problem is when some track value doesn't change over time (so bone pose is set once in first frame and thats all) - then this track is not imported by Godot and animator uses value from RESET, so T-Pose pose instead of pose defined by first frame of animation clip.
I've just noticed another thing:
If I export original animation file (with T-Pose as rest pose) now with updated addon that exports actual Skeleon, then althroguh tracks are still missing, the rest pose of Skeleton3D that comes with importing such file is not T-Pose but pose defined by keyframes from first animation frame!
Noticed that same situation is in my current workflow, with converting regular hierarchy to Skeleton3D - nodes are initially set to transform of first animation frame.
I can workaround problem by updating my PostImport script to add missing tracks using those transforms, but still, this is not a valid solution.
Initial pose defiend by first frame instead of original T-Pose could be because of glTF exporter, because I was working with those files eralier already.
I think that Godot somehow skips importing animation tracks whose keyframes don't differ from original value, even with disabled Optimizer etc.
If you try to improt this file again to Blender, then it works fine and imports such tracks, and this is expected behaviour in Godot - so those tracks physically exist in file, I analyzed that in my previous post where I attached sample .gltf text file that contains such tracks that are not imported by Godot.

In Blender 3.1, did you try to uncheck "optimize animation size"?
This option remove constant animation of nodes. Uncheck it will export animation anyway, even if all keyframes are equals

Yes, but it doesn't change anything.
Tracks, that are not imported by Godot, do exist in file - otherwise they wouldn't be imported by Blender.

I see in source that glTF importer has hardcoded skipping animation tracks whose all keys are equal to node rest value.
And rest pose is always set to first animation frame during exporting from Blender - at least in my cases.
It's definitely going to be even more problematic when resuing more animation clips on more different, but compatible character - rest pose on character node will be usually different than rest pose in animation file, so I think it's better not to have hardcoded such unwanted optimizations.
No other scene importer I see in Godot does that - tested exporting to different formats and this problem doesn't occur, everything is fine.
Will make a PR later.

For anyone interested in a simple workaround:
Add one more animation to the NLA tracks. It should be one keyframe of your model in rest pose. Make this the top track with all tracks muted. This will force blender's exporter to export your intended rest pose as the rest pose for the file.
This works for me for now, but I will probably need these constant tracks, including ones that match the rest pose, in order to do layered animations correctly

And rest pose is always set to first animation frame during exporting from Blender - at least in my cases.

This is no more the case since Blender 3.2. Now, by default, rest pose (ie when armature is in edit mode) is used as rest pose at export.

The usability of glTF animation export has improved greatly in Blender 3.2 and every subsequent version.
As for the original issue, there is an issue that animation tracks with only one keyframe will be removed when identical to the rest pose. The real issue here is the rest pose is identical to the animation keyframe, which means retargeting won't work as expected. Since this issue was reported, we did add a checkbox in Godot 4.0 to the import settings to workaround this exact issue:
If you encounter this issue and do not intend to use retargeting, you can disable the "Remove Immutable Tracks" option under the Animation section of the Scene, and then optionally change the "Import Tracks" dropdowns in the AnimationPlayer node of the advanced import settings to remove unwanted Scale tracks.
Otherwise, going through newer versions of Blender should be an option and will work better on the latest version of Blender.
Given that there has been no new comments or reports on this issue for most of a year, I think it is reasonable to close this issue at this point.

I see in source that glTF importer has hardcoded skipping animation tracks whose all keys are equal to node rest value. And rest pose is always set to first animation frame during exporting from Blender - at least in my cases.

This seems to still be the case. I turned off the optimiser, and only moving my bones slightly out of rest position helped.
If it is then this would explain my problem
I switch between equip animations depending on equipped item. Some items don't require me to update the hand position.
Because Godot drops the tracks that match bone rest those bones stay in their last position.
So if my player equips a chocolate bar (pinch movement) and then holds a crate (flat hand, rest pose), the hand is still in a pinched position while holding the crate.
If this is still the case, and it seems to be, this really needs to be an importer option.

I ran into this as well. I disabled the optimizer in Blender export settings, and everything worked fine. However, after making some changes to the mesh and re-exporting, my animation tracks were once again missing. I had to RE-ENABLE the optimizer to get the tracks to come back...


Context deadline exceeded when using the context passed to the activity

Expected Behavior
I should no receive the error context deadline exceeded when doing DB operations with the context passed in the Activity parameter
Actual Behavior
I have code like this in my app
func CleanupActivity(ctx context.Context) error {
	// this is a TemporalLogger (pkg/logger/temporal.go)
	log := activity.GetLogger(ctx)

	return cleanup.Cleanup(ctx, param.JobID)
}

func Cleanup(ctx context.Context, jobID string) error {
	db := database.GetDB()

	// Fetch the job from the database.
	j := &job.Job{ID: jobID}
	err := db.NewSelect().Model(j).WherePK().Scan(ctx)
	if err != nil {
		return wferrors.NewTaskError(errors.WithStack(err), wferrors.ErrCodeDatabase, "failed to fetch job")
	}

and inside the cleanup.Cleanup function I do database operations with the Bun library that uses the context that is passed so when it tries to make a query I got the error:
DatabaseError, failed to fetch job, context deadline exceeded

so the database query is failing due  to  context deadline exceeded
Steps to Reproduce the Problem

Use the context passed in the Activity as argument for database access
Deploy on production

Specifications

Version: go.temporal.io/sdk v1.25.1
Platform: Linux

The context passed into an activity has documentation around when users should expect it to be cancelled
https://github.com/temporalio/sdk-go/blob/3da09e02e2d4b36d24cc52a6ef0c9c46e92b78c1/activity/doc.go#L77
I would suspect in your case the activity is timing out before the database operation is complete.

Yes, I thought that, but the problem is that my deadline is of 10 hours and when it starts failing for example failed the job 1 the subsquents jobs keep failing for the same reason, how can fail a new job for this reason if I have a deadline of 10 hours.
btw, this is how I have the workflow settings
activityoptions := workflow.ActivityOptions{
		// Set Activity Timeout duration
		// ScheduleToCloseTimeout: 5 * time.Second,
		StartToCloseTimeout: 60 * time.Minute,
		// ScheduleToStartTimeout: 10 * time.Second,
	}
	ctx = workflow.WithActivityOptions(ctx, activityoptions)
	ctx = workflow.WithRetryPolicy(ctx, temporal.RetryPolicy{
		MaximumAttempts: 10,
	})

The timeouts can be shorter depending on what other activity and workflow option, it is also possible the error is coming from some internal deadline set in your database library and not the activity context. You can check the deadline of the context using ctx.Deadline() to see when the context would expire.
https://pkg.go.dev/context#Context

The problem is that this does not happen everytime, in our production experience we have deployed the solution and everything works fine for some executions, and after some days one workflow starts to fail and the next ones will always fail for the same reason

On one of these occurrences can you share the actual activity schedule event ?

rn this is failing again
error
activity error (type: PreprocessingActivity, scheduledEventID: 5, startedEventID: 6, identity: ): activity StartToClose timeout (type: StartToClose): activity StartToClose timeout (type: StartToClose)

Error
last connection error: connection error: desc = "error reading server preface: read tcp <IP_ADDRESS>:39422-><IP_ADDRESS>:7233: use of closed network connection"

PanicError
runtime error: index out of range [4096] with length 4096

we are seeing this error, I wonder if somehow the connection with the temporal servers is lost

The last errors looks like an issue with you application and not the SDK, but just the error message  is not enough  for me to provide any insight and I cannot tell what is wrong with your application.
To  help debug any further what I would need is a stand alone reproduction of the issue showing the SDK canceling the context outside of the documented cases where users should expect it to be cancelled https://github.com/temporalio/sdk-go/blob/3da09e02e2d4b36d24cc52a6ef0c9c46e92b78c1/activity/doc.go#L77

we are using nomad to deploy our containers and when restart them the issue is solved, this issue uses to happen everyweek, all the workflows start to throw timeouts and I think the reason is they lost connection with the temporal servers, so the temporal server can not execute the activities and time out


Single-line if/then/end, WITHOUT else, generates OneLineConditional offense

Offending code/output:
lib/ndb_ascii_parser.rb:70:9: C: Favor the ternary operator (?:) over if/then/else/end constructs.
        if gsub_result.nil? then warn( "Malformed alphanumeric value: '#{field}'" ) end
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Note that the same line also triggers IfUnlessModifier, which I would actually expect in this case. On the other hand, OneLineConditional seems like it should only be triggered when there exists an "else" to become the right half of the ternary.
$ rubocop -V
0.32.1 (using Parser <IP_ADDRESS>, running on ruby 2.2.1 x86_64-darwin14)

Yep, that's a bug.


quota limits?

I'm getting hit with quota limits.  I tried setting all the quota limits for the admin user and admin class/project to 10000, but I'm still getting the following.  Is it a different user??
| openshift_nodes           | fdfbfdd3-2891-4e07-ab40-f81354be779b | state changed                                                                                | UPDATE_IN_PROGRESS | 2016-05-24T18:51:31 |
| openshift_nodes           | f5fe3f84-fcb7-4659-89fe-c2b56bb6de31 | resources.openshift_nodes: OverQuotaClient: resources.ao4itnqwsnhx.resources.security_group: Quota exceeded for resources: ['security_group']                                                                     | UPDATE_FAILED      | 2016-05-24T18:55:44 |
| openshift                 | af30aee1-b4ef-476f-b4d4-f106d5ada9d1 | resources.openshift_nodes: OverQuotaClient: resources.ao4itnqwsnhx.resources.security_group: Quota exceeded for resources: ['security_group']                                                                     | UPDATE_FAILED      | 2016-05-24T18:55:45 |
+---------------------------+--------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------+---------------------+

nevermind.  Red Hat CLI docs didn't make the changes that Horizon made.  I'll debug this later.


Fix Matomo tracker on website

Motivation
We have a new Matomo tracker, but our WordPress website (using a random person's Matomo plugin) still refers to piwik.js instead of matomo.js. Therefore, tracking doesn't work. Docs does not have the tracker yet at all.
Proposed solution

[x] For WordPress, find another Matomo plugin that uses the new matomo.js URL.
[x] For the docs site, put the Matomo tracking code somewhere in the theme.

Alternatives
If we do not find a good Matomo WordPress plugin, I will have to create a "child theme" and insert the HTML manually in our theme.
Additional context
N/A

What about using https://wordpress.org/plugins/matomo/ ?

What about using https://wordpress.org/plugins/matomo/ ?

If I'm correct, that plugin works with the Matomo SaaS offering. We use Matomo on-premise and that appears to require a different plugin, namely: https://wordpress.org/plugins/wp-piwik/

Tracking is now working for the main website and the documentation.


add create story API

Based on question #3, I decided to create pull request for create story wrapper

and remove some trailing spaces on the source code also.

Closing due to no activity.


vm: fix debug_module

Motivation
Enable debug_module feature in move-vm-runtime should also enable the feature in vm-natives.
Have you read the Contributing Guidelines on pull requests?
Yes
Test Plan
(Share your test plan here. If you changed code, please provide us with clear instructions for verifying that your changes work.)
Related PRs
(If this PR adds or changes functionality, please take some time to update the docs at https://github.com/libra/website, and link to your PR here.)

@bors-libra r+

:pushpin: Commit 50cd5ec has been approved by vgao1996

:hourglass: Testing commit 50cd5ec429510980b36aaaf77353b1d811b18da2 with merge 963108a1afebc22a249025808bbc01fa5cb5eb5c...

:sunny: Test successful - checks-actions_land_blocking_test, checks-circle_commit_workflow
Approved by: vgao1996
Pushing 963108a1afebc22a249025808bbc01fa5cb5eb5c to master...


More commands

Add health, leader, token, and root token generation commands

Awesome 👍  Will merge asap!


Unpermitted parameters when hive (re-)registers

When a hive registers, I see the following in the logs ... yet everything appears to be working:
Unpermitted parameters: brand, device_type, hostname, model, operating_system_name, operating_system_version, runner_plugins, version

Check to see if this is still an issue.

Yes, this is still an issue but not a major problem. This warning comes from the following line at the top of the register method in app/controllers/api/devices_controller.rb:
    create_parameters = device_params

The parameters that are passed include parameters that are specific for the device type but device_params only validates the fields that are related to the core Device model. I.e., the parameters "brand, device_type, hostname, model, operating_system_name, operating_system_version, runner_plugins, version" are relevant to HiveMindHive::Plugin.
To avoid this warning device_params needs to be more clever, taking into account device_params[:device_type].

I have done some work on this in this branch:
https://github.com/bbc/hive_mind/tree/fix_unpermitted_parameters
but it is not yet complete.


<EMAIL_ADDRESS>

https://github.com/ava-labs/avalanchego/releases/tag/v1.7.3

Currently getting this error:
>>> make build
go build -o ./rosetta-server ./cmd/server
# gopkg.in/olebedev/go-duktape.v3
In file included from _cgo_export.c:4:
debugger.go:23:13: warning: unused function '_duk_debugger_attach' [-Wunused-function]
# github.com/ava-labs/coreth/plugin/evm
../../go/pkg/mod/github.com/ava-labs/coreth@v0.8.3-rc.1/plugin/evm/vm.go:85:2: cannot use &VM{} (type *VM) as type block.ChainVM in assignment:
	*VM does not implement block.ChainVM (wrong type for Connected method)
		have Connected(ids.ShortID) error
		want Connected(ids.ShortID, version.Application) error
make: *** [build] Error 2


Cache problem with CLI package

Hello,
I have a problem with cache clearing after adding CLI dependency. For some reason, cache:clear creates cache folders "de_", "tes_" ... instead of "dev" and "test". Then it tries to create class inherited from final kernel class. It happens every time:
$ composer create-project symfony/skeleton:3.3.x-dev flex-test
Installing symfony/skeleton (3.3.x-dev 19daacfd7ca93335963b7dd0e5ea4e18c228135c)
  - Installing symfony/skeleton (3.3.x-dev 19daacf) Cloning 19daacfd7c from cache
Created project in flex-test
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 22 installs, 0 updates, 0 removals
  - Installing symfony/flex (dev-master b189327) Loading from cache
    Detected auto-configuration settings for "symfony/flex"
    Setting configuration and copying files
  - Installing symfony/stopwatch (3.4.x-dev 162ab93) Loading from cache
  - Installing symfony/routing (3.4.x-dev f3af6eb) Loading from cache
    Detected auto-configuration settings for "symfony/routing"
  - Installing symfony/polyfill-mbstring (dev-master e79d363) Loading from cache
  - Installing psr/log (dev-master 4ebe3a8) Loading from cache
  - Installing symfony/debug (3.4.x-dev 91dc1c8) Loading from cache
  - Installing symfony/http-foundation (3.4.x-dev 0900138) Loading from cache
  - Installing symfony/event-dispatcher (3.4.x-dev 01243ca) Loading from cache
  - Installing symfony/http-kernel (3.4.x-dev 4ba97f8) Loading from cache
  - Installing symfony/finder (3.4.x-dev a10477b) Loading from cache
  - Installing symfony/filesystem (3.4.x-dev 45e8dd4) Loading from cache
  - Installing psr/container (dev-master b7ce3b1) Loading from cache
  - Installing symfony/dependency-injection (3.4.x-dev 456d7c2) Loading from cache
  - Installing symfony/config (3.4.x-dev 1d84496) Loading from cache
  - Installing symfony/class-loader (3.4.x-dev cf3e7ac) Loading from cache
  - Installing psr/simple-cache (dev-master 753fa59) Loading from cache
  - Installing psr/cache (dev-master 78c5a01) Loading from cache
  - Installing symfony/cache (3.4.x-dev bfa3962) Loading from cache
  - Installing doctrine/cache (dev-master 24ae84f) Loading from cache
  - Installing symfony/framework-bundle (3.4.x-dev bbd5351) Loading from cache
    Detected auto-configuration settings for "symfony/framework-bundle"
    Enabling the package as a Symfony bundle
    Setting configuration and copying files
    Adding environment variable defaults
    Adding Makefile entries
    Adding entries to .gitignore
  - Installing symfony/yaml (3.4.x-dev 7e40fc6) Loading from cache
  - Installing symfony/dotenv (3.4.x-dev 80f0687) Loading from cache
Writing lock file
Generating autoload files
Executing script make cache-warmup [OK]
Skipping "assets:install --symlink --relative web" (needs symfony/console to run).

 What's next?

  * Run your application:
    1. Change to the project directory
    2. Execute the make serve command;
    3. Browse to the http://localhost:8000/ URL.

  * Read the documentation at https://symfony.com/doc

$ cd flex-test/
$ composer req cli
Using version ^3.2 for symfony/console
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
  - Installing symfony/console (3.4.x-dev 4dd3bd4) Loading from cache
    Detected auto-configuration settings for "symfony/console"
    Setting configuration and copying files
Writing lock file
Generating autoload files
Executing script make cache-warmup [OK]
Executing script assets:install --symlink --relative %WEB_DIR% [OK]

$ bin/console ca:cl

 // Clearing the cache for the dev environment with debug true

Fatal error: Class App\Kerne_ may not inherit from final class (App\Kernel) in /Users/honza/dev/istrix/flex-test/var/cache/de_/kernel.tmp on line 49

  [Symfony\Component\Debug\Exception\FatalErrorException]
  Compile Error: Class App\Kerne_ may not inherit from final class (App\Kernel)

cache:clear [--no-warmup] [--no-optional-warmers] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-e|--env ENV] [--no-debug] [--] <command>

Try running with bin/console ca:cl --no-warmup, or better use make cache-warmup

It works that way. Thank you! But still I consider it a bug

This issue is being tracked in symfony/symfony. So closing it here.


Restructure elements context and slices

This PR tightens up the abstractions around the ElementsContext, formerly called BackboneElementContext. One big improvement is the proper integration of parent contexts into sub-contexts, which will be foundational to properly incorporating fixed/pattern values from structure definitions into resources. Related and a more noticeable developer-facing change is the addition of the required path property on most input components to facilitate usage of ElementsContext.
Most of the work for applying pattern/fixed values is mostly ready to go, but I wanted to break it up into a separate PRs to keep them more digestible.

Replaced by #3869


Multiple AnimatedSlides in a Stack change sibling widget's position

I have a stack of AnimatedSlides set to the bottom left of the parent. In the following minimal reproduction, the first child widget is set to the bottom left (values found using logic not shown here). With the other children in the stack the first sibling is not shown as it is moved further to the left. When the last child is removed the first sibling can be seen again. As they are in a stack the position of one sibling should not effect that of the others. I have found that the larger the sibling widgets the worse the effect is. That is, having four of the smaller second sibling widgets in the stack produces less of an issue than one long sibling widget. (I cannot use CustomMultiChildLayout because I need to animate these child widgets on click to the top in any order, something I believe CustomMultiChildLayout cannot do.) Issue exists in dart 2 and 3 (flutter 3.10 and 3.7 checked)
import 'package:flutter/material.dart';

const Color darkBlue = Color.fromARGB(255, 18, 32, 47);
void main() {runApp(MyApp());}
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData.dark().copyWith(scaffoldBackgroundColor: darkBlue,),
      debugShowCheckedModeBanner: false,
      home: const AnimatedSlideExample(),
    );
  }
}

class AnimatedSlideExample extends StatefulWidget {
  const AnimatedSlideExample({super.key});
  @override
  State<AnimatedSlideExample> createState() => _AnimatedSlideExampleState();
}

class _AnimatedSlideExampleState extends State<AnimatedSlideExample> {
  double containerHeight = 300;
  double objectHeight = 30;
  String sentence = "a is two three fours looongg andMore";
  double fontSize = 20;
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('AnimatedSlide Sample')),
      body: Column(
        children: [
          Expanded(
            child: Column(
              children: [
                Container(
                  width:<PHONE_NUMBER>2727275,
                  height: containerHeight,
                  color: Colors.red,
                  alignment: Alignment.center,
                  padding: const EdgeInsets.all(50.0),
                  child: Stack(
                    children: [
                      AnimatedSlide(
                        offset: const Offset(-17.35123966942149, 0),
                        duration: const Duration(milliseconds: 500),
                        curve: Curves.easeInOut,
                        child: Text("a", style: TextStyle(fontSize: fontSize)),
                      ),
                      AnimatedSlide(
                        offset: const Offset(-11.085227272727273, 0),
                        duration: const Duration(milliseconds: 500),
                        curve: Curves.easeInOut,
                        child: Text("is", style: TextStyle(fontSize: fontSize)),
                      ),
                      // remove this to see the above widgets move to the right   <----
                      AnimatedSlide(
                        offset: const Offset(-4.632231404958678, 0),
                        duration: const Duration(milliseconds: 500),
                        curve: Curves.easeInOut,
                        child: Text("two", style: TextStyle(fontSize: fontSize)),
                      ),
                    ],
                  ),
                ),
              ],
            ),
          ),
        ],
      ),
    );
  }
}

images:

Looks very good

@yakagami Thanks for the report.
I ran your code sample using latest stable version (3.10.0) and saw below on mobile for I am not sure what exactly is the issue and what's the expected behavior you are looking for. Can you please elaborate on it ?

Also I see a lot of hardcoded and specific values for width and Offset. Is there a way for you to use MideaQuery widget and see if you can use its size property and check if they help in your use case ?

@darshankawar the letter "a" is missing in the image. When you remove
AnimatedSlide(
     offset: const Offset(-4.632231404958678, 0),
     duration: const Duration(milliseconds: 500),
     curve: Curves.easeInOut,
     child: Text("two", style: TextStyle(fontSize: fontSize)),
),

From the stack list the "a" widget reappears. This shouldn't be happening as one child widget should not effect the layout of the other. I am using hardcoded values only in this example to show a minimal reproduction the I got from printing the values I got from mediaquery and context.size. I can elaborate more on my specific usecase if needed. In terms of the actual bug it should be visible when you remove the last widget from the stack children. Removing it should have no effect yet it does. I should have used some containers with set widths instead of text becasue it would have been more clear. I can give a better example if needed. The "A" widget should be visible yet it is not.

Thanks for the update @yakagami
I am wondering if the A missing could be due to the specific offsets and width you are passing. Did you get a chance to look at mediaQuery widget and see if it helps ?

Thanks for the update and feedback. Seeing the same behavior as reported.

 stable, master flutter doctor -v
[!] Flutter (Channel stable, 3.10.0, on macOS 12.2.1 21D62 darwin-x64, locale
    en-GB)
    • Flutter version 3.10.0 on channel stable at
      /Users/dhs/documents/fluttersdk/flutter
    ! Warning: `flutter` on your path resolves to
      /Users/dhs/Documents/Fluttersdk/flutter/bin/flutter, which is not inside
      your current Flutter SDK checkout at
      /Users/dhs/documents/fluttersdk/flutter. Consider adding
      /Users/dhs/documents/fluttersdk/flutter/bin to the front of your path.
    ! Warning: `dart` on your path resolves to
      /Users/dhs/Documents/Fluttersdk/flutter/bin/dart, which is not inside your
      current Flutter SDK checkout at /Users/dhs/documents/fluttersdk/flutter.
      Consider adding /Users/dhs/documents/fluttersdk/flutter/bin to the front
      of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 84a1e904f4 (2 days ago), 2023-05-09 07:41:44 -0700
    • Engine revision d44b5a94c9
    • Dart version 3.0.0
    • DevTools version 2.23.1
    • If those were intentional, you can disregard the above warnings; however
      it is recommended to use "git" directly to perform update checks and
      upgrades.

[!] Xcode - develop for iOS and macOS (Xcode 12.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    ! Flutter recommends a minimum Xcode version of 13.
      Download the latest version or update via the Mac App Store.
    • CocoaPods version 1.11.2

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

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

[✓] Connected device (5 available)
    • SM G975F (mobile)       • RZ8M802WY0X • android-arm64   • Android 11 (API 30)
    • Darshan's iphone (mobile)  • 21150b119064aecc249dfcfe05e259197461ce23 •
      ios            • iOS 14.4.1 18D61
    • iPhone 12 Pro Max (mobile) • A5473606-0213-4FD8-BA16-553433949729     •
      ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)            • macos                                    •
      darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
    • Chrome (web)               • chrome                                   •
      web-javascript • Google Chrome 98.0.4758.80

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.

[!] Flutter (Channel master, 3.11.0-6.0.pre.86, on macOS 12.2.1 21D62
    darwin-x64, locale en-GB)
    • Flutter version 3.11.0-6.0.pre.86 on channel master at
      /Users/dhs/documents/fluttersdk/flutter
    ! Warning: `flutter` on your path resolves to
      /Users/dhs/Documents/Fluttersdk/flutter/bin/flutter, which is not inside
      your current Flutter SDK checkout at
      /Users/dhs/documents/fluttersdk/flutter. Consider adding
      /Users/dhs/documents/fluttersdk/flutter/bin to the front of your path.
    ! Warning: `dart` on your path resolves to
      /Users/dhs/Documents/Fluttersdk/flutter/bin/dart, which is not inside your
      current Flutter SDK checkout at /Users/dhs/documents/fluttersdk/flutter.
      Consider adding /Users/dhs/documents/fluttersdk/flutter/bin to the front
      of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision ea5eddb5a9 (55 minutes ago), 2023-05-15 21:39:26 -0700
    • Engine revision c4d4b40c65
    • Dart version 3.1.0 (build 3.1.0-113.0.dev)
    • DevTools version 2.23.1
    • If those were intentional, you can disregard the above warnings; however
      it is recommended to use "git" directly to perform update checks and
      upgrades.

[!] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Users/dhs/Library/Android/sdk
    ✗ cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`
      See https://developer.android.com/studio/command-line for more details.
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/macos#android-setup for
      more details.

[✓] Xcode - develop for iOS and macOS (Xcode 13.2.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 13C100
    • CocoaPods version 1.11.2

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

[✓] IntelliJ IDEA Ultimate Edition (version 2021.3.2)
    • IntelliJ at /Applications/IntelliJ IDEA.app
    • Flutter plugin version 65.1.4
    • Dart plugin version 213.7228

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

[✓] Connected device (3 available)
    • Darshan's iphone (mobile) • 21150b119064aecc249dfcfe05e259197461ce23 • ios
      • iOS 15.3.1 19D52
    • macOS (desktop)           • macos                                    •
      darwin-x64     • macOS 12.2.1 21D62 darwin-x64
    • Chrome (web)              • chrome                                   •
      web-javascript • Google Chrome 109.0.5414.119

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

! Doctor found issues in 1 category.

[!] Xcode - develop for iOS and macOS (Xcode 12.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    ! Flutter recommends a minimum Xcode version of 13.
      Download the latest version or update via the Mac App Store.
    • CocoaPods version 1.11.2

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

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

[✓] Connected device (5 available)
    • SM G975F (mobile)       • RZ8M802WY0X • android-arm64   • Android 11 (API 30)
    • Darshan's iphone (mobile)  • 21150b119064aecc249dfcfe05e259197461ce23 •
      ios            • iOS 14.4.1 18D61
    • iPhone 12 Pro Max (mobile) • A5473606-0213-4FD8-BA16-553433949729     •
      ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)            • macos                                    •
      darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
    • Chrome (web)               • chrome                                   •
      web-javascript • Google Chrome 98.0.4758.80

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.

Can I close this issue and reopen one with the better expample instead?

Feel free to do that.

@goderbauer Thanks! New issue here: https://github.com/flutter/flutter/issues/126967


update sec 23.2.6 (cts time normalizing flows) by adding references to flow matching papers

create short sec 25.4.7 (diffusion chapter) on flow matching
update sec 23.2.6 (cts time normalizing flows) to refer to 25.4.7


[bfgroup-lyra] update to <1.3>

Library name: bfgroup-lyra
New version number: 1.4
Other information that may be useful (release notes, etc...)

@skyshaver, thanks for bringing this up.
I noticed the latest release revision is 1.3 , so I update it to 1.3.

The PR has been merged, please get latest source and try again.


chore: ignore pockybot.net dependency for test

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

v1.13.2
GitHub release

Your semantic-release bot :package::rocket:


Optimize load aggregation algorithm of Claesson and Javed

The load aggregation methods are slowed down by for loops in the next_time_step() and temporal_superposition() class methods. These could be refactored using matrix multiplications for the Claesson and Javed algorithm.
There may also be opportunities to increase the performance of the Li and MLAA algorithms.

A solution is to use numpy.einsum to replace the for loop in temporal_superposition:
https://github.com/MassimoCimmino/pygfunction/blob/66d8b4ce8ee12f14fb74e48d5283284a7a6cc121/pygfunction/load_aggregation.py#L198-L200
simply becomes : deltaT = np.einsum('ijk,jk', self.dg, self.Q).

The time shifting process is reformulated as a matrix multiplication, so that:
https://github.com/MassimoCimmino/pygfunction/blob/66d8b4ce8ee12f14fb74e48d5283284a7a6cc121/pygfunction/load_aggregation.py#L114-L126
becomes : self.Q = self.Q @ self.A.
Here we dropped the special cases to limit the dispersion of loads further that the time history. This is not part of the original Claesson and Javed algorithm and does not have significant impact on the accuracy.

Changed the issue to only focus on the Claesson and Javed algorithm. It is the best performing algorithm (also the most recent). The other algorithms should probably be deprecated in future versions to simplify the use of pygfunction.


Yaml UnmarshalStrict implementation.

This resolves #4017.
As suggested, I updated configuration to call UnmarshalStrict() over simple
unmarshalling, thus rendering util/yaml/yaml.go no longer needed.
The original vendor package gopkg.in/yaml.v2 was updated and used (https://godoc.org/gopkg.in/yaml.v2#UnmarshalStrict).
Tests ran successfully against config/ and using make test with go1.10.
Edit: As @krasi-georgiev pointed out, this also fixes #1275.

noticed that pro.../common/config also uses checkOverflow so I opened a  follow up issue https://github.com/prometheus/common/issues/126 to remove to update that package as well.

LGTM
waiting for one more LGTM and will merge.

There seems to be quite a few unrelated cleanup changes in here. Considering the breadth of this change, I'd prefer this be limited to just the core change.

all changes are related to the UnmarshalStrict usage.

No, there's quite a few other changes in here.

can you put a comment next to the line you think is unrelated and will double check.

There are multiple unrelated changes to error handling and scoping.

I reverted some of the changes, if there are any more to be reverted please let me know which ones when you have the time. Thank you.


Notebook restructure

The changes here represent initial work related to https://github.com/ARM-software/lisa/issues/211.
The first of the patches moves the example notebooks in one location and the second one adds more details to the testenv_example notebook, work which will also be done for other example notebooks in future commits.

Good initial work, I would suggest to add to this PR all the modifications required to complete the notebook reorganisation so that we punch our users just one time... it will be a big shock, thus better to give it just one single time before they notice our intents ;-)

I've started reviewing some PR and this turns out to be one of the oldest ones still pending.
Should it be considered stalled for the time being?
I'm asking because I fear that it I proceed with other PR they can affect work already done here... @ionela-voinescu are you ok for me to keep merging other PRs and thus possibly forcing you to rebase this on top of the new code-base?

@derkling: I've updated the branch with the work for the entire examples notebooks. Most of the work includes a change of structure of the example folders (change in name to keep consistency, change in contents where the contents was duplicated), re-runs of the notebooks and small fixes or changes were more information was necessary and details on the use of the APIs.

@derkling Thank you for the review, guys! I'm addressing your comments now (plus my own) and I'll push the final branch after lunch.

So, if you wanna push after lunch.. that means we should have lunch now... let's go ;-)

I pushed what I believe to be the final version with:

all DEBUG logs removed
small cleanup changes (based on Brendan's comments and mine)
UiBench notebook removed.
LisaLogging.setup(level=logging.INFO) changed to LisaLogging.setup() , as INFO is the default.

Well done, let's merge it! Thanks!


AIX JDK13 nightly build failure: log files not found

Platform:
jdk13u-aix-ppc64-hotspot
jdk13u-aix-ppc64-openj9
Please describe the issue that you are having with our binaries and if possible how to recreate it.
Since 04-01-2020, the jdk13u-aix-ppc64-hotspot pipeline at adopt has been suffering from various No such file or directory errors when looking for various log files. What files exactly seem to vary for each run.
The common error message:
/opt/freeware/bin/bash: cannot make pipe for process substitution: No such file or directory
/opt/freeware/bin/bash: cannot make pipe for process substitution: No such file or directory
/opt/freeware/bin/bash: >(/opt/freeware/bin/tee -a /home/jenkins/workspace/build-scripts/jobs/jdk13u/jdk13u-aix-ppc64-hotspot/workspace/build/src/build/aix-ppc64-server-release/hotspot/variant-server/libjvm/objs/gcPolicyCounters.o.log): ambiguous redirect
cp_64: cannot stat '/home/jenkins/workspace/build-scripts/jobs/jdk13u/jdk13u-aix-ppc64-hotspot/workspace/build/src/build/aix-ppc64-server-release/hotspot/variant-server/libjvm/objs/gcPolicyCounters.o.log': No such file or directory
gmake[3]: *** [lib/CompileJvm.gmk:177: /home/jenkins/workspace/build-scripts/jobs/jdk13u/jdk13u-aix-ppc64-hotspot/workspace/build/src/build/aix-ppc64-server-release/hotspot/variant-server/libjvm/objs/gcPolicyCounters.o] Error 1

gmake[1]: *** [/home/jenkins/workspace/build-scripts/jobs/jdk13u/jdk13u-aix-ppc64-hotspot/workspace/build/src/make/Init.gmk:312: main] Error 2
gmake: *** [/home/jenkins/workspace/build-scripts/jobs/jdk13u/jdk13u-aix-ppc64-hotspot/workspace/build/src/make/Init.gmk:186: product-images] Error 2

The log files that cause the error (in date descending order):
heapRegion.o.log
gcPolicyCounters.o.log
metaspaceCounters.o.log
g1BarrierSetRuntime.o.log
loopopts.o.log
logDecorators.o.log
c1_Compiler.o.log
abstractInterpreter_ppc.o.log
libretransform002.o.log
_the.jdk.jdeps_batch.log
_the.java.xml.crypto_batch.log
BUILD PASSED 15/01/2020
_the.java.sql.rowset_batch.log 16/01/2020
https://ci.adoptopenjdk.net/view/Failing Builds/job/build-scripts/job/jobs/job/jdk13u/job/jdk13u-aix-ppc64-hotspot/148/
consoleOutput.txt

@karianna @gdams Since 13 is no longer in support, this can probably be closed. I haven't spotted the log file failures since Jan 21.

Now that we've released JDK13/HotSpot/Jan2020 release successfully this week this is no longer a concern.


CSS improvement, can't see navbar

Standard fix navbars on bootstrap is block by the hijack notification.

Thanks @martolini for reporting this. Could you provide a fix for bootstrap?


Check connection to vManage

Description
First version can check connection via ICMP. It is needed to check the connection before accessing vManage for proper error messages handling.

This issue was migrated from an old repository: https://github.com/CiscoDevNet/catalystwan/issues/52


Ensure named_objs does not fail on unhashable objects

Not all objects are hashable so the named_objs implementation has started causing some errors (e.g. because mpl colormaps aren't hashable anymore). For unhashable objects we try to reverse map the objects by identity.

Codecov Report

Merging #632 (fc4b67b) into master (d960230) will decrease coverage by 0.04%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #632      +/-   ##
==========================================
- Coverage   82.91%   82.86%   -0.05%
==========================================
  Files           5        5
  Lines        3073     3076       +3
==========================================
+ Hits         2548     2549       +1
- Misses        525      527       +2

Impacted Files
Coverage Δ

numbergen/__init__.py
80.56% <0.00%> (-0.14%)
:arrow_down:

Continue to review full report at Codecov.

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

y main confusion here is why it even attempts a reverse mapping at all if an explicit namesdict has already been provided.

Even if an explicit namesdict has been provided, it isn't required to be complete. Where that matters is  if check_on_set=False for this Selector, in which case someone can do Obj.x=val, for any val, whether that value is in the namesdict or not. The namesdict will then be incomplete, and so named_objs attempts to complete it by providing some representation for every item in the object list.  Here you could maybe skip any unhashable items while still attempting to provide a representation for hashable items? But you'd then need the rest of the code to gracefully handle the case of an object not being in the namesdict.

But you'd then need the rest of the code to gracefully handle the case of an object not being in the namesdict.

The rest of the code being what in this case? Panel already does and afaik that's the only thing that actually uses the names.


Is H2 "Inbound security rules (Ingress traffic)" a Bash or PowerShell script?

The syntax for this code block looks initially to be Bash, but the variable setup will throw an error due to quoting:

Using double quotes will fix the error.  Please also put in the ```azurecli code block tag when you edit the article. Thank you.

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

ID: a65ad133-2cc7-2c83-855b-b40e09b32be6
Version Independent ID: 591cd17e-69b6-3f5d-170c-5ee9aec319ff
Content: Use NSG to restrict traffic on HDInsight on AKS - Azure HDInsight on AKS
Content Source: articles/hdinsight-aks/secure-traffic-by-nsg.md
Service: hdinsight-aks
GitHub Login: @yeturis
Microsoft Alias: sairamyeturi

@dbradish-microsoft
Thanks for your feedback! We will investigate and update as appropriate.

@dbradish-microsoft
Thank you for bringing this to our attention! We've initiated a pull request (PR) to address this issue. Once the author reviews the changes, they will be merged, and the updates should go live shortly. Your diligence is much appreciated!


FoodOrder: Consumer/Restaurant Chat

[ ]  Add a Chat feature between the consumer and the restaurant for some FoodOrderStatus stages (which ones?)

duplicated issue