[collectd] collectd 5.10 threading
Brandon Hume
hume-ml+collectd at bofh.ca
Fri Sep 14 21:19:06 CEST 2012
On 09/14/12 12:37 PM, Cyril Feraudet wrote:
> This is mine ;-) Try the last version on my branch.
> This plugin work fine in a large environment (5300 server and more than 19000 update by second in MySQL) but never tested on Solaris.
I think I found the issue. If you look at:
https://github.com/feraudet/collectd/blob/cf/perfwatcher/src/write_mysql.c#L532-576
On line 536 the mutex is unlocked. And then, on line 576 it's unlocked
again. On a sufficiently fast/multithreaded machine another thread can
grab the lock in between those two lines, and then probably get hung up
on I/O talking to the mysql server right afterward. Then the lock gets
undone, and then another thread will lock it again and try to talk to
Mysql on its own.
So the locks/unlocks get out of sync and there's no longer exclusive
access to the database handle.
Since there's an unlock on line 572, the one on line 576 can probably be
removed.
More information about the collectd
mailing list