Hi,
I just tried to catch up on our NetBSD 4.0 (i386) box, upgraded from 4.1.10 to
4.3.3 and got this:
# gdb /usr/pkg/bin/milter-greylist
(...)
(gdb) run
Starting program: /usr/pkg/bin/milter-greylist
(...)
milter-greylist: Error detected by libpthread: Invalid condition variable.
Detected by file "pthread_cond.c", line 283, function "pthread_cond_signal".
See pthread(3) for information.
Program received signal SIGABRT, Aborted.
0xbbaf922f in kill () from /usr/lib/libc.so.12
(gdb) bt
#0 0xbbaf922f in kill () from /usr/lib/libc.so.12
#1 0xbbbe3dcb in pthread__errorfunc () from /usr/lib/libpthread.so.0
#2 0xbbbe36f3 in pthread_cond_signal () from /usr/lib/libpthread.so.0
#3 0x080598d3 in dump_conf_changed ()
#4 0x0805960a in conf_load_internal ()
#5 0x080597bf in conf_load ()
#6 0x0804dd87 in main ()
pthread_cond_signal takes {dump,sync}_sleepflag:
# grep -r pthread_cond_signal milter-greylist-4.3.3
#
dump.c: if ((error = pthread_cond_signal(&dump_sleepflag)) != 0) {
dump.c: pthread_cond_signal(&dump_sleepflag);
dump.c: pthread_cond_signal(&dump_sleepflag);
sync.c: if ((error = pthread_cond_signal(&sync_sleepflag)) != 0) {
# egrep -r '(dump|sync)_sleepflag' milter-greylist-4.3.3
#
dump.c:static pthread_cond_t dump_sleepflag;
dump.c: if ((error = pthread_cond_init(&dump_sleepflag, NULL)) != 0) {
dump.c: error = pthread_cond_timedwait(&dump_sleepflag,
dump.c: error = pthread_cond_wait(&dump_sleepflag,
dump.c: if ((error = pthread_cond_signal(&dump_sleepflag)) != 0) {
dump.c: pthread_cond_signal(&dump_sleepflag);
dump.c: pthread_cond_signal(&dump_sleepflag);
sync.c:static pthread_cond_t sync_sleepflag = PTHREAD_COND_INITIALIZER;
sync.c: if ((error = pthread_cond_signal(&sync_sleepflag)) != 0) {
sync.c: pthread_cond_wait(&sync_sleepflag, &sync_dirty_lock);
Any ideas?
Petar BogdanovicMessage
libpthread: Invalid condition variable
2009-09-11 by Petar Bogdanovic
Attachments
- No local attachments were found for this message.