Skip to content

Commit 9cfaf8c

Browse files
committed
bugfix(exporter): ensure response is closed
Fix open-telemetry#4476 Signed-off-by: Alex Boten <[email protected]>
1 parent 2450943 commit 9cfaf8c

File tree

4 files changed

+11
-0
lines changed

4 files changed

+11
-0
lines changed

CHANGELOG.md

+2
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
3232
([#4406](https://github.com/open-telemetry/opentelemetry-python/pull/4406))
3333
- Fix env var error message for TraceLimits/SpanLimits
3434
([#4458](https://github.com/open-telemetry/opentelemetry-python/pull/4458))
35+
- Fix intermittent `Connection aborted` error when using otlp/http exporters
36+
([#4477](https://github.com/open-telemetry/opentelemetry-python/pull/4477))
3537

3638
## Version 1.30.0/0.51b0 (2025-02-03)
3739

exporter/opentelemetry-exporter-otlp-proto-http/src/opentelemetry/exporter/otlp/proto/http/_log_exporter/__init__.py

+3
Original file line numberDiff line numberDiff line change
@@ -167,8 +167,10 @@ def export(self, batch: Sequence[LogData]) -> LogExportResult:
167167
resp = self._export(serialized_data)
168168
# pylint: disable=no-else-return
169169
if resp.ok:
170+
resp.close()
170171
return LogExportResult.SUCCESS
171172
elif self._retryable(resp):
173+
resp.close()
172174
_logger.warning(
173175
"Transient error %s encountered while exporting logs batch, retrying in %ss.",
174176
resp.reason,
@@ -177,6 +179,7 @@ def export(self, batch: Sequence[LogData]) -> LogExportResult:
177179
sleep(delay)
178180
continue
179181
else:
182+
resp.close()
180183
_logger.error(
181184
"Failed to export logs batch code: %s, reason: %s",
182185
resp.status_code,

exporter/opentelemetry-exporter-otlp-proto-http/src/opentelemetry/exporter/otlp/proto/http/metric_exporter/__init__.py

+3
Original file line numberDiff line numberDiff line change
@@ -206,8 +206,10 @@ def export(
206206
resp = self._export(serialized_data.SerializeToString())
207207
# pylint: disable=no-else-return
208208
if resp.ok:
209+
resp.close()
209210
return MetricExportResult.SUCCESS
210211
elif self._retryable(resp):
212+
resp.close()
211213
_logger.warning(
212214
"Transient error %s encountered while exporting metric batch, retrying in %ss.",
213215
resp.reason,
@@ -216,6 +218,7 @@ def export(
216218
sleep(delay)
217219
continue
218220
else:
221+
resp.close()
219222
_logger.error(
220223
"Failed to export batch code: %s, reason: %s",
221224
resp.status_code,

exporter/opentelemetry-exporter-otlp-proto-http/src/opentelemetry/exporter/otlp/proto/http/trace_exporter/__init__.py

+3
Original file line numberDiff line numberDiff line change
@@ -159,8 +159,10 @@ def _export_serialized_spans(self, serialized_data):
159159
resp = self._export(serialized_data)
160160
# pylint: disable=no-else-return
161161
if resp.ok:
162+
resp.close()
162163
return SpanExportResult.SUCCESS
163164
elif self._retryable(resp):
165+
resp.close()
164166
_logger.warning(
165167
"Transient error %s encountered while exporting span batch, retrying in %ss.",
166168
resp.reason,
@@ -169,6 +171,7 @@ def _export_serialized_spans(self, serialized_data):
169171
sleep(delay)
170172
continue
171173
else:
174+
resp.close()
172175
_logger.error(
173176
"Failed to export batch code: %s, reason: %s",
174177
resp.status_code,

0 commit comments

Comments
 (0)