And here I was, desperately trying to find out why my modified gmetad dumped core on me intermittently, when I finally thought "OK, let's backtrack to the clean 2.5.1 source and see how that behaves". Turned out that too dies with a segfault. And in libc, no less. Grrr.
Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 24580 (LWP 28733)] 0x400e2f02 in pthread_mutex_lock () from /lib/i686/libpthread.so.0 (gdb) bt #0 0x400e2f02 in pthread_mutex_lock () from /lib/i686/libpthread.so.0 #1 0x400e5572 in flockfile () from /lib/i686/libpthread.so.0 #2 0x420694dc in fputc () from /lib/i686/libc.so.6 #3 0x0804bde2 in debug_msg (format=0x805f45d "Updated rrd %s with value %s") at debug_msg.c:23 There seems to be no problem with the arguments to debug_msg(); both are valid strings. I get the same behaviour with a gmetad compiled from CVS HEAD. I'm running a pretty stock Red Hat 8.0, with gcc 3.2 and glibc 2.2.93. -- Leif Nixon Systems expert ------------------------------------------------------------ National Supercomputer Centre Linkoping University ------------------------------------------------------------