Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 6 additions & 7 deletions distributed/spans.py
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,6 @@ class Span:
__weakref__: Any

__slots__ = tuple(__annotations__)
_metadata_seen: set[int] = set()

def __init__(
self,
Expand Down Expand Up @@ -171,11 +170,7 @@ def parent(self) -> Span | None:
return None

def add_metadata(self, metadata: SpanMetadata) -> None:
"""Add metadata to the span, e.g. code snippets"""
id_ = id(metadata)
if id_ in self._metadata_seen:
return
self._metadata_seen.add(id_)
"""Add metadata to the span, e.g. computed collections"""
if self._metadata is None:
self._metadata = copy.deepcopy(metadata)
else:
Expand Down Expand Up @@ -522,6 +517,9 @@ def observe_tasks(
"""
out = {}
default_span = None
# All tasks of the same graph submission share the same metadata object.
# Add it only once per span.
metadata_added: set[Span] = set()

for ts in tss:
if ts.annotations is None:
Expand All @@ -546,7 +544,8 @@ def observe_tasks(

if code:
span._code[code] = None
if span_metadata:
if span_metadata and span not in metadata_added:
metadata_added.add(span)
span.add_metadata(span_metadata)

# The span may be completely different from the one referenced by the
Expand Down
Loading