Uploaded image for project: 'Java Driver'
  1. Java Driver
  2. JAVA-1825

100% CPU with find request during a primary change

    XMLWordPrintableJSON

Details

    • Icon: Task Task
    • Resolution: Cannot Reproduce
    • Icon: Major - P3 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

      Attachments

        Activity

          People

            Unassigned Unassigned
            jburet Julien Buret
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: