Severity: Low
Observation
DatabricksCompositeReader.Dispose span shape is inconsistent between the CloudFetch and Inline result paths:
- CloudFetch path (
CloseOperationE2ETest.DisposeEmitsCloseOperationEvent(description: "CloudFetch")): carries reader.active_reader_type = "CloudFetchReader" AND result.bytes_downloaded = 253717688
- Inline path (
Inline+NoDirectResults, Inline+DirectResults): carries reader.active_reader_type only — no bytes counter
Total bytes consumed by the result reader is exactly the kind of debugging signal that should be present everywhere a Dispose happens.
Suggested fix
Track total bytes read in DatabricksReader (Inline path) and surface as result.bytes_read on its Dispose span, mirroring CloudFetch.
Evidence
Traces.CloseOperationE2ETest.20260527_144932/ — 3 Dispose spans, CloudFetch carries the byte counter, two Inline variants don't
Severity: Low
Observation
DatabricksCompositeReader.Disposespan shape is inconsistent between the CloudFetch and Inline result paths:CloseOperationE2ETest.DisposeEmitsCloseOperationEvent(description: "CloudFetch")): carriesreader.active_reader_type = "CloudFetchReader"ANDresult.bytes_downloaded = 253717688Inline+NoDirectResults,Inline+DirectResults): carriesreader.active_reader_typeonly — no bytes counterTotal bytes consumed by the result reader is exactly the kind of debugging signal that should be present everywhere a Dispose happens.
Suggested fix
Track total bytes read in
DatabricksReader(Inline path) and surface asresult.bytes_readon its Dispose span, mirroring CloudFetch.Evidence
Traces.CloseOperationE2ETest.20260527_144932/— 3 Dispose spans, CloudFetch carries the byte counter, two Inline variants don't