← All contributions
OPENTELEMETRY JAVA / MERGED #8276

Putting a limit on sender threads.

Bound the default JdkHttpSender executor and report rejected submissions through the error callback.

The problem

The default executor allowed up to Integer.MAX_VALUE threads and used a SynchronousQueue. Under burst load, this permitted excessive thread creation.

The change

The merged diff caps the maximum pool size at Math.max(availableProcessors(), 5) and catches RejectedExecutionException to call onError. The final implementation retains AbortPolicy.

What the tests establish

Added tests check the pool bound and rejection policy, successful responses, I/O failures, and rejected execution reaching the error callback.

Scope matters

The original proposal mentioned CallerRunsPolicy. The merged implementation uses AbortPolicy. No production performance improvement is claimed here.

Inspect the evidence

The public pull request contains the implementation, regression tests, review discussion, and merge status.

Open the merged contribution ↗