comtihon / mongodb-erlang

MongoDB driver for Erlang
Apache License 2.0
342 stars 267 forks source link

high CPU usage when replica set node down #171

Open arthur-xie opened 7 years ago

arthur-xie commented 7 years ago

When we shutdown one node of a replica set, the beam process consumes about 120%(multiple cores) CPU. After some debugging, we found when any node down, the mc_monitor:check will crash on line {ok, Conn} = mc_worker_api:connect(ConnectArgs) because of unmatch between {error, econnrefused} and {ok, Conn}. This will make mc_monitor step into dead loop(no sleep because the Type is unknown).

comtihon commented 7 years ago

Hi. Yes, this is a known problem. Can you mention all the steps to reproduce the problem? I would like to write a test on this as i don't have any replica set right now.

wandermyz commented 5 years ago

Any update on this?

arihantdaga commented 5 years ago

I am having the same issue - Steps to reproduce.

  1. Have a mongodb replica server with 3 replicas.
  2. Turn off one of the secondary replica, which doesnt affect overall cluster, there is still one primary and one secondary.
  3. check with top on the machine with erlang mqtt driver running. You'll see beam.smp on top consuming high CPU.