mortazakiani opened a new issue, #67028:
URL: https://github.com/apache/airflow/issues/67028

   ### Under which category would you file this issue?
   
   Helm chart
   
   ### Apache Airflow version
   
   airflow3.1.7
   
   ### What happened and how to reproduce it?
   
   i use  git sync and my dag name in gitlab contain space character the dag 
proccessor will  restart 
   
   ### What you think should happen instead?
   
   the space character of dag proccesor 
   
   ### Operating System
   
   rocky 9.6 
   
   ### Deployment
   
   Official Apache Airflow Helm Chart
   
   ### Apache Airflow Provider(s)
   
   _No response_
   
   ### Versions of Apache Airflow Providers
   
   3.1.7
   
   ### Official Helm Chart version
   
   1.19.0
   
   ### Kubernetes Version
   
   1.35.0
   
   ### Helm Chart configuration
   
   airflowConfigAnnotations: {}
   airflowHome: /opt/airflow
   airflowPodAnnotations: {}
   airflowVersion: 3.1.7
   allowJobLaunching: false
   allowPodLaunching: true
   apiSecretKeySecretName: airflow-api-secret
   apiServer:
     affinity: {}
     allowPodLogReading: true
     annotations: {}
     enabled: true
     env: []
     extraContainers: []
     extraInitContainers: []
     extraVolumeMounts: []
     extraVolumes: []
     hpa:
       behavior:
         scaleDown:
           stabilizationWindowSeconds: 300
         scaleUp:
           stabilizationWindowSeconds: 0
       enabled: true
       maxReplicaCount: 5
       metrics:
       - resource:
           name: memory
           target:
             averageUtilization: 80
             type: Utilization
         type: Resource
       minReplicaCount: 1
     labels: {}
     livenessProbe:
       failureThreshold: 5
       initialDelaySeconds: 15
       periodSeconds: 10
       scheme: HTTP
       timeoutSeconds: 5
     nodeSelector:
       airflow-role: core
     podAnnotations: {}
     podDisruptionBudget:
       enabled: false
     readinessProbe:
       failureThreshold: 5
       initialDelaySeconds: 15
       periodSeconds: 10
       scheme: HTTP
       timeoutSeconds: 5
     replicas: 1
     resources:
       limits:
         cpu: "2"
         memory: 4Gi
       requests:
         cpu: "1"
         memory: 2Gi
     securityContexts:
       container: {}
       pod: {}
     service:
       annotations: {}
       ports:
       - name: api-server
         port: '{{ .Values.ports.apiServer }}'
       type: ClusterIP
     serviceAccount:
       annotations: {}
       automountServiceAccountToken: true
       create: true
     startupProbe:
       failureThreshold: 6
       initialDelaySeconds: 0
       periodSeconds: 10
       scheme: HTTP
       timeoutSeconds: 20
     tolerations: []
     waitForMigrations:
       enabled: true
   cleanup:
     affinity: {}
     args:
     - bash
     - -c
     - exec airflow kubernetes cleanup-pods --namespace={{ .Release.Namespace }}
     enabled: false
     labels: {}
     nodeSelector:
       airflow-role: core
     podAnnotations: {}
     resources:
       limits:
         cpu: "2"
         memory: 4Gi
       requests:
         cpu: "1"
         memory: 2Gi
     schedule: '*/15 * * * *'
     securityContexts:
       container: {}
       pod: {}
     serviceAccount:
       annotations: {}
       automountServiceAccountToken: true
       create: true
     tolerations: []
   config:
     api:
       auth_jwt_leeway: "30"
       base_url: https://edl-dm.mtnirancell.ir
     core:
       auth_manager: 
airflow.providers.fab.auth_manager.fab_auth_manager.FabAuthManager
       colored_console_log: "False"
       dags_folder: '{{ include "airflow_dags" . }}'
       executor: '{{ .Values.executor }}'
       load_examples: "False"
       max_active_tasks_per_dag: 16
       parallelism: 32
       remote_logging: "False"
     database:
       sql_alchemy_max_overflow: "30"
       sql_alchemy_pool_pre_ping: "True"
       sql_alchemy_pool_recycle: "1800"
       sql_alchemy_pool_size: "10"
     fab:
       enable_proxy_fix: "True"
     kubernetes:
       kube_client_request_args: '{"_request_timeout": 60}'
       multi_namespace_mode: "False"
       namespace: '{{ .Release.Namespace }}'
       pod_template_file: '{{ include "airflow_pod_template_file" . 
}}/pod_template_file.yaml'
       worker_container_repository: */apache/airflow-custom
       worker_container_tag: latest
     kubernetes_executor:
       delete_worker_pods: "True"
       delete_worker_pods_on_failure: "False"
       multi_namespace_mode: "False"
       namespace: '{{ .Release.Namespace }}'
       pod_template_file: '{{ include "airflow_pod_template_file" . 
}}/pod_template_file.yaml'
       worker_container_repository: */apache/airflow-custom
       worker_container_tag: latest
       worker_pods_creation_batch_size: 8
     logging:
       colored_console_log: "False"
       remote_logging: "False"
     metrics:
       statsd_host: '{{ printf "%s-statsd" (include "airflow.fullname" .) }}'
       statsd_on: '{{ ternary "True" "False" .Values.statsd.enabled }}'
       statsd_port: 9125
       statsd_prefix: airflow
     scheduler:
       dag_dir_list_interval: "20"
       min_file_process_interval: "5"
       parsing_processes: "4"
       processor_poll_interval: "1"
       run_duration: "41460"
       scheduler_health_check_threshold: "30"
       scheduler_heartbeat_sec: "10"
       scheduler_max_threads: "4"
       standalone_dag_processor: '{{ ternary "True" "False" (or (semverCompare 
">=3.0.0"
         .Values.airflowVersion) (.Values.dagProcessor.enabled | default 
false)) }}'
       statsd_host: '{{ printf "%s-statsd" (include "airflow.fullname" .) }}'
       statsd_on: '{{ ternary "True" "False" .Values.statsd.enabled }}'
       statsd_port: 9125
       statsd_prefix: airflow
     webserver:
       enable_proxy_fix: "True"
   createUserJob:
     affinity: {}
     applyCustomEnv: true
     defaultUser:
       email: [email protected]
       firstName: admin
       lastName: user
       password: *
       role: Admin
       username: admin
     enabled: true
     extraContainers: []
     extraInitContainers: []
     extraVolumeMounts: []
     extraVolumes: []
     nodeSelector:
       airflow-role: core
     resources:
       limits:
         cpu: 1800m
         memory: 2Gi
       requests:
         cpu: 800m
         memory: 1512Mi
     securityContexts:
       container: {}
       pod: {}
     serviceAccount:
       annotations: {}
       automountServiceAccountToken: true
       create: true
     tolerations: []
     ttlSecondsAfterFinished: 300
     useHelmHooks: true
   dagProcessor:
     affinity: {}
     annotations: {}
     dagBundleConfigList:
     - classpath: airflow.dag_processing.bundles.local.LocalDagBundle
       kwargs: {}
       name: dags
     enabled: true
     env: []
     extraContainers: []
     extraInitContainers: []
     extraVolumeMounts: []
     extraVolumes: []
     labels: {}
     livenessProbe:
       failureThreshold: 5
       initialDelaySeconds: 10
       periodSeconds: 60
       timeoutSeconds: 20
     logGroomerSidecar:
       enabled: true
       frequencyMinutes: 15
       retentionDays: 15
     nodeSelector:
       airflow-role: core
     podAnnotations: {}
     replicas: 2
     resources:
       limits:
         cpu: "4"
         memory: 4Gi
       requests:
         cpu: "2"
         memory: 2Gi
     safeToEvict: true
     securityContexts:
       container: {}
       pod: {}
     serviceAccount:
       annotations: {}
       automountServiceAccountToken: true
       create: true
     terminationGracePeriodSeconds: 60
     tolerations: []
     waitForMigrations:
       enabled: true
   dags:
     gitSync:
       branch: dev
       containerName: git-sync
       credentialsSecret: airflow-git-credentials
       enabled: true
       period: 30s
       ref: HEAD
       repo: */airflow.git
       resources:
         limits:
           cpu: "2"
           memory: 4G
         requests:
           cpu: 100m
           memory: 128Mi
       rev: HEAD
       securityContexts:
         container: {}
       subPath: ""
       uid: 65533
     persistence:
       accessMode: ReadWriteMany
       enabled: true
       size: 20Gi
       storageClassName: longhorn
   data:
     metadataSecretName: ""
   databaseCleanup:
     affinity: {}
     applyCustomEnv: true
     enabled: true
     failedJobsHistoryLimit: 1
     nodeSelector:
       airflow-role: core
     resources:
       limits:
         cpu: 1800m
         memory: 2Gi
       requests:
         cpu: 200m
         memory: 512Mi
     retentionDays: 90
     schedule: 0 0 * * 0
     serviceAccount:
       annotations: {}
       automountServiceAccountToken: true
       create: true
     skipArchive: false
     successfulJobsHistoryLimit: 1
     tolerations: []
     verbose: true
   defaultAirflowRepository: */apache/airflow-custom
   defaultAirflowTag: latest
   elasticsearch:
     enabled: false
   enableBuiltInSecretEnvVars:
     AIRFLOW__API__SECRET_KEY: true
     AIRFLOW__API_AUTH__JWT_SECRET: true
     AIRFLOW__CELERY__BROKER_URL: false
     AIRFLOW__CELERY__CELERY_RESULT_BACKEND: false
     AIRFLOW__CELERY__RESULT_BACKEND: false
     AIRFLOW__CORE__FERNET_KEY: true
     AIRFLOW__CORE__SQL_ALCHEMY_CONN: true
     AIRFLOW__DATABASE__SQL_ALCHEMY_CONN: true
     AIRFLOW__ELASTICSEARCH__ELASTICSEARCH_HOST: false
     AIRFLOW__ELASTICSEARCH__HOST: false
     AIRFLOW__OPENSEARCH__HOST: false
     AIRFLOW__WEBSERVER__SECRET_KEY: true
     AIRFLOW_CONN_AIRFLOW_DB: true
   env:
   - name: PYTHONPATH
     value: 
/opt/airflow/dags/repo:/opt/airflow/dags/repo/dags:opt/airflow/dags/repo/plugins
   - name: SPARK_HOME
     value: /opt/spark
   - name: JAVA_HOME
     value: /opt/java/openjdk
   executor: KubernetesExecutor
   extraEnv: null
   extraEnvFrom: null
   fernetKeySecretName: airflow-fernet-secret
   flower:
     enabled: false
   fullnameOverride: airflow
   gid: 0
   images:
     airflow:
       pullPolicy: Always
       repository: */apache/airflow-custom
       tag: latest
     gitSync:
       pullPolicy: IfNotPresent
       repository: */k8s/git-sync/git-sync
       tag: v4.4.2
     migrationsWaitTimeout: 60
     pgbouncer:
       pullPolicy: IfNotPresent
       repository: */apache/airflow
       tag: airflow-pgbouncer-2025.03.05-1.23.1
     pgbouncerExporter:
       pullPolicy: IfNotPresent
       repository: */apache/airflow
       tag: airflow-pgbouncer-exporter-2025.03.05-0.18.0
     pod_template:
       pullPolicy: Always
       repository: */apache/airflow-custom
       tag: latest
     statsd:
       pullPolicy: IfNotPresent
       repository: */quay/prometheus/statsd-exporter
       tag: v0.28.0
     useDefaultImageForMigration: false
   ingress:
     apiServer:
       annotations:
         cert-manager.io/issuer: airflow-selfsigned-issuer
         nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
         nginx.ingress.kubernetes.io/proxy-read-timeout: "3600"
         nginx.ingress.kubernetes.io/proxy-send-timeout: "3600"
       enabled: true
       hosts:
       - name: *
         tls:
           enabled: true
           secretName: airflow-general-tls-secret
       ingressClassName: nginx
       path: /
       pathType: Prefix
     flower:
       enabled: false
     web:
       enabled: false
   jwtSecretName: airflow-api-secret
   kerberos:
     enabled: false
   labels: {}
   logs:
     persistence:
       enabled: true
       size: 20Gi
       storageClassName: longhorn
   migrateDatabaseJob:
     affinity: {}
     applyCustomEnv: true
     enabled: true
     extraInitContainers: []
     extraVolumeMounts: []
     extraVolumes: []
     nodeSelector:
       airflow-role: core
     resources:
       limits:
         cpu: "2"
         memory: 4Gi
       requests:
         cpu: 500m
         memory: 2Gi
     securityContexts:
       container: {}
       pod: {}
     serviceAccount:
       annotations: {}
       automountServiceAccountToken: true
       create: true
     tolerations: []
     ttlSecondsAfterFinished: 300
     useHelmHooks: true
   multiNamespaceMode: false
   nameOverride: ""
   networkPolicies:
     enabled: false
   opensearch:
     enabled: false
   pgbouncer:
     enabled: false
   podTemplate: |
     apiVersion: v1
     kind: Pod
     metadata:
       name: airflow-task-pod
     spec:
       nodeSelector:
         airflow-role: exec
       tolerations:
         - key: "dedicated"
           operator: "Equal"
           value: "data"
           effect: "NoSchedule"
       restartPolicy: Never
       imagePullSecrets:
         - name: harbor-pull-secret
       initContainers:
         - name: git-sync
           image: */git-sync/git-sync:v4.4.2
           envFrom:
             - secretRef:
                 name: airflow-git-credentials
           env:
             - name: GIT_SYNC_REPO
               value:*
             - name: GIT_SYNC_BRANCH
               value: dev
             - name: GIT_SYNC_REV
               value: HEAD
             - name: GIT_SYNC_DEPTH
               value: "1"
             - name: GIT_SYNC_ROOT
               value: /git
             - name: GIT_SYNC_DEST
               value: repo
             - name: GIT_SYNC_ONE_TIME
               value: "true"
           volumeMounts:
             - name: dags
               mountPath: /git
       containers:
         - name: base
           image: placeholder
           imagePullPolicy: Always
           env:
             - name: AIRFLOW__CORE__EXECUTION_API_SERVER_URL
               value: http://airflow-api-server:8080/execution/
             - name: AIRFLOW__DAG_PROCESSOR__DAG_BUNDLE_CONFIG_LIST
               value: 
'[{"classpath":"airflow.dag_processing.bundles.local.LocalDagBundle","kwargs":{},"name":"dags"}]'
             - name: PYTHONPATH
               value: 
"/opt/airflow/dags/repo:/opt/airflow/dags/repo/dags:/opt/airflow/dags/repo/plugins"
             - name: SPARK_HOME
               value: /opt/spark
             - name: JAVA_HOME
               value: /opt/java/openjdk
           volumeMounts:
             - name: logs
               mountPath: /opt/airflow/logs
             - name: dags
               mountPath: /opt/airflow/dags
               subPath: repo
       volumes:
         - name: logs
           persistentVolumeClaim:
             claimName: airflow-logs
         - name: dags
           emptyDir: {}
   ports:
     airflowUI: 8080
     apiServer: 8080
     flowerUI: 5555
     pgbouncer: 6543
     pgbouncerScrape: 9127
     redisDB: 6379
     statsdIngest: 9125
     statsdScrape: 9102
     triggererLogs: 8794
     workerLogs: 8793
   postgresql:
     enabled: true
     image:
       registry: *
       repository: */bitnami/postgresql
     persistence:
       enabled: true
       size: 20Gi
       storageClass: longhorn
   rbac:
     create: true
     createSCCRoleBinding: false
   redis:
     enabled: false
   revisionHistoryLimit: 3
   scheduler:
     affinity: {}
     annotations: {}
     enabled: true
     extraContainers: []
     extraInitContainers: []
     extraVolumeMounts: []
     extraVolumes: []
     labels: {}
     livenessProbe:
       failureThreshold: 5
       initialDelaySeconds: 10
       periodSeconds: 60
       timeoutSeconds: 20
     logGroomerSidecar:
       enabled: true
       frequencyMinutes: 15
       retentionDays: 15
     nodeSelector:
       airflow-role: core
     podAnnotations: {}
     replicas: 2
     resources:
       limits:
         cpu: "4"
         memory: 4Gi
       requests:
         cpu: "2"
         memory: 2Gi
     safeToEvict: true
     securityContexts:
       container: {}
       pod: {}
     serviceAccount:
       annotations: {}
       automountServiceAccountToken: true
       create: true
     startupProbe:
       failureThreshold: 6
       initialDelaySeconds: 0
       periodSeconds: 10
       timeoutSeconds: 20
     terminationGracePeriodSeconds: 60
     tolerations: []
     waitForMigrations:
       enabled: true
   securityContexts:
     containers:
       allowPrivilegeEscalation: false
     pod:
       fsGroup: 0
       runAsGroup: 0
       runAsUser: 50000
   statsd:
     enabled: true
   triggerer:
     enabled: true
   uid: 50000
   useStandardNaming: true
   webserver:
     enabled: false
   webserverSecretKeySecretName: airflow-api-secret
   
   ### Docker Image customizations
   
   _No response_
   
   ### Anything else?
   
   the log of  dag processor 2026-05-16T07:36:50.294405Z [error    ] Invalid 
stat name: dag_processing.last_run.seconds_ago.test_of sprak_opertaor. 
[airflow.metrics.validators] loc=validators.py:125
   Traceback (most recent call last):
     File 
"/home/airflow/.local/lib/python3.12/site-packages/airflow/metrics/validators.py",
 line 122, in wrapper
       stat = handler_stat_name_func(stat)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File 
"/home/airflow/.local/lib/python3.12/site-packages/airflow/metrics/validators.py",
 line 210, in stat_name_default_handler
       raise InvalidStatsNameException(
   airflow.exceptions.InvalidStatsNameException: The stat name 
(dag_processing.last_run.seconds_ago.test_of sprak_opertaor) has to be composed 
of ASCII alphabets, numbers, or the underscore, dot, or dash characters.
   
   ### Are you willing to submit PR?
   
   - [ ] Yes I am willing to submit a PR!
   
   ### Code of Conduct
   
   - [x] I agree to follow this project's [Code of 
Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to