[ClusterLabs] corosync eats the whole CPU core in epoll_wait() on one node in cluster
Jan Friesse
jfriesse at redhat.com
Mon Jun 1 07:21:06 UTC 2015
Vladislav
Vladislav Bogdanov napsal(a):
> Hi,
>
> Just noticed subj on just one node in 4-node cluster.
>
> I've dumped blackbox logs, but unfortunately that didn't help me to
> understand what's going on because even debug logs are too slender.
Do you still have them? Because maybe few lines from them may be helpful.
>
> strace on a running process doesn't show anything except epoll_wait.
> ...
> epoll_wait(4, {{EPOLLIN, {u32=19, u64=3703511490016313363}}}, 12, 107) = 1
> epoll_wait(4, {{EPOLLIN, {u32=19, u64=3703511490016313363}}}, 12, 107) = 1
> epoll_wait(4, {{EPOLLIN, {u32=19, u64=3703511490016313363}}}, 12, 107) = 1
> epoll_wait(4, {{EPOLLIN, {u32=19, u64=3703511490016313363}}}, 12, 107) = 1
> ...
>
> But that ones are way to frequent:
> # timeout 10 strace -p 2177 2>&1 | grep EPOLLIN >/tmp/corosync-epoll.log
> Terminated
> # wc -l /tmp/corosync-epoll.log
> 438399 /tmp/corosync-epoll.log
>
> that means: ~43840 times per second.
>
> Other nodes show zero.
> Pacemaker DC is on the another node.
>
> Nodes are completely identical.
>
> fd 19 which generates that events is shown in lsof this way:
> corosync 2177 root 19u unix 0xffff88062f896680 0t0
> 17987 socket
>
> netstat for that inode (17987) shows:
> unix 3 [ ] STREAM CONNECTED 17987 2177/corosync
> @cpg
>
> So that socket is used by CPG.
>
> nearest socket inode (connecting one, 17986) is used by pacemakerd.
>
> strace of pacemakerd shows absolutely normal
> poll([{fd=8, events=POLLIN}, {fd=6, events=POLLIN}, {fd=5,
> events=POLLIN}, {fd=4, events=POLLIN|POLLPRI}], 4, 500) = 0 (Timeout)
> poll([{fd=8, events=POLLIN}, {fd=6, events=POLLIN}, {fd=5,
> events=POLLIN}, {fd=4, events=POLLIN|POLLPRI}], 4, 500) = 0 (Timeout)
> poll([{fd=8, events=POLLIN}, {fd=6, events=POLLIN}, {fd=5,
> events=POLLIN}, {fd=4, events=POLLIN|POLLPRI}], 4, 500) = 0 (Timeout)
>
AFAIK pacemaker doesn't use libqb qb_loop but corosync does. That's the
reason.
> So, this looks like a defect, but where?
> libqb seems to be the main suspect, but I'm not sure.
>
> That is centos6, corosync 53f67a2 on top of libqb 0.17.1 (recompile of
> David's 0.17.1-1 dated Tue Aug 26 2014).
> Pacemaker is fbc239b.
Are you able to reproduce bug after corosync/node restart? If so, could
you try libqb master? There was bug in libqb
https://github.com/ClusterLabs/libqb/pull/147 in qb_loop part so maybe
related.
Regards,
Honza
>
> Best,
> Vladislav
>
>
>
> _______________________________________________
> Users mailing list: Users at clusterlabs.org
> http://clusterlabs.org/mailman/listinfo/users
>
> Project Home: http://www.clusterlabs.org
> Getting started: http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf
> Bugs: http://bugs.clusterlabs.org
More information about the Users
mailing list