vatsrahul1001 opened a new pull request, #67529: URL: https://github.com/apache/airflow/pull/67529
Manual backport of #67527 (squash commit `597891128e`) to `v3-2-test` for 3.2.3. The auto-backport bot can't cherry-pick this cleanly — `main` and `v3-2-test` diverged in the imports block of `airflow-core/src/airflow/models/callback.py` (`main` has `from dataclasses import dataclass`, `v3-2-test` still has `import inspect; from collections.abc import Callable`). Conflict resolved by keeping the v3-2-test imports and adding the new `import json` the fix needs. `Stats.incr` vs `stats.incr` needed no change — `handle_event` carries the v3-2-test form unmodified. ## Why this needs backporting `Callback.handle_event` crashes the triggerer when OpenTelemetry metrics are enabled and a deadline async callback completes with a dict-typed `result` (or dict-typed `kwargs`). OTel builds its aggregation key as `frozenset(attributes.items())`, which raises `TypeError: unhashable type: 'dict'`. Statsd accepts non-primitive tag values silently, so OSS deployments on default metrics don't see it — Astronomer Astro and any deployment with `[metrics] otel_*` configured hit it consistently. Reported by the Astro Runtime team while exercising 3.2.2rc2-based images. ## What's in the cherry-pick - `Callback.get_metric_info` coerces non-primitive tag values (dict/list/set) to JSON strings before returning. Primitives (`str | int | float | bool | None`) pass through unchanged. `json.dumps(..., default=str, sort_keys=True)` so `datetime` values fall back cleanly and equivalent dicts in different insertion order don't split metric cardinality. - New regression test `test_get_metric_info_dict_values_are_stringified` asserts every tag value is primitive and that `frozenset(tags.items())` does not raise. - Updates the existing `test_get_metric_info` to expect the JSON-stringified `kwargs` shape. -- 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]
