-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
Unknown
-
None
-
Affects Version/s: None
-
Component/s: Backpressure, Internal
-
None
Non-terminated global threads are a problem as described in JAVA-5643. We know that there is at least one user who suffers from it and has a workaround. That workaround handles only the global thread in PowerOfTwoBufferPool, and will break when we release backpressure with another global thread in the CommonExecutor.
DefaultAsyncClientExecutor should temporarily stop using CommonExecutor, and use its own single-thread scheduler instead. We will pay by sometimes creating a new thread per instance of MongoClient, but we will not break the aforementioned workaround.
When implementing this ticket, we should neither remove CommonExecutor, nor refactor DefaultAsyncClientExecutor in any significant way. The change is quite small and temporary.
When the backpressure project is released, we will do JAVA-5643, which will fix the problem in both PowerOfTwoBufferPool and CommonExecutor, and change DefaultAsyncClientExecutor back to using CommonExecutor. It is worth adding a TODO-JAVA-5643 Java comment in the code and updating the description of JAVA-5643 so that we no forget to undo the change when working on that ticket.
- is related to
-
JAVA-6291 Non-terminated threads in PowerOfTwoBufferPool and CommonExecutor prevent JEE application / OSGi bundle undeployment
-
- Needs Triage
-