Details
-
Task
-
Resolution: Cannot Reproduce
-
Major - P3
-
None
-
3.0.1
-
None
-
None
Description
On server side I have a replica set with one primary and one secondary.
I trigger a step-down (ie I switch the primary and the secondary) and during this operation, the client send a find request using the async java driver.
-> 100% CPU for ever on client side
When profiling, all the CPU is wasted in com.mongodb.connection.AsynchronousSocketChannelStream$BasicCompletionHandle#completed with this kind of stacktrace :
Thread-26@11189 daemon, prio=5, in group 'main', status: 'RUNNING'
at com.mongodb.connection.AsynchronousSocketChannelStream$BasicCompletionHandler.completed(AsynchronousSocketChannelStream.java:219)
at com.mongodb.connection.AsynchronousSocketChannelStream$BasicCompletionHandler.completed(AsynchronousSocketChannelStream.java:204)
at sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:126)
at sun.nio.ch.Invoker$2.run(Invoker.java:218)
at sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
When no request is sent during the step-down, all is ok