Skip to content

Infinite loop through exporter, when using OTLPLogExporter #4688

@4c0n

Description

@4c0n

Describe your environment

OS: Debian Python Docker Image
Python version: 3.13
SDK version: 1.35.0
API version: N/A

What happened?

We setup our log exporting as follows:

resource = Resource(attributes={SERVICE_NAME: "otel-service"})
logger_provider = LoggerProvider(resource=resource)
logger_provider.add_log_record_processor(BatchLogRecordProcessor(OTLPLogExporter()))
set_logger_provider(logger_provider)

logging_handler = LoggingHandler(level=logging.NOTSET, logger_provider=logger_provider)

logger = logging.getLogger()
logger.addHandler(logging_handler)
logger.setLevel(settings.log_level)

Now when exporting the logs fails because it is not possible to connect to the collector, we end up in an infinite loop type situation. This is caused by the mixin here:

which tries to log the fact that exporting the logs failed.

The mixin is used by OTLPLogExporter: https://github.com/open-telemetry/opentelemetry-python/blob/v1.35.0/exporter/opentelemetry-exporter-otlp-proto-grpc/src/opentelemetry/exporter/otlp/proto/grpc/_log_exporter/__init__.py

Steps to Reproduce

Set up logging as described above and make sure there is no collector running to export the logs to.

Expected Result

Not quite sure, at least not a hanging application that is stuck in this infinite loop.

Actual Result

An infinite loop.

Additional context

No response

Would you like to implement a fix?

Yes

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions