I've been seeing quite a few of these recently (often 5 or 6 a day,
sometimes more).
Socket Error: recv: Bad file descriptor
[-snip address-] (aee4e0a3) Connection denied
/boom/
I haven't managed to get a coredump out of it, but running under gdb
gives some clues: dfdfdf -> malloc junking -> use-after-free.
I forgot to do a 'thread apply all bt', maybe next time, but I thought
I'd post this anyway in case someone has any ideas.
Program received signal SIGBUS, Bus error.
[Switching to thread 1002324]
config_revoke (cf=0xdfdfdfdfdfdfdfdf) at config.c:208
208 if (--cf->cf_refcnt < 0)
(gdb) bt
#0 config_revoke (cf=0xdfdfdfdfdfdfdfdf) at config.c:208
#1 0x000016d8fb21d46e in server (arg=0x16db7791b7b0) at main.c:470
#2 0x000016dba2b0099e in _rthread_start (v=Variable "v" is not available.
) at /usr/src/lib/librthread/rthread.c:145
#3 0x000016db8e1da2eb in __tfork_thread () at
/usr/src/lib/libc/arch/amd64/sys/tfork_thread.S:75
#4 0x0000000000000000 in ?? ()
(gdb) frame 0
#0 config_revoke (cf=0xdfdfdfdfdfdfdfdf) at config.c:208
208 if (--cf->cf_refcnt < 0)
(gdb) list
203
204 void
205 config_revoke(struct config *cf)
206 {
207 pthread_mutex_lock(&mtx);
208 if (--cf->cf_refcnt < 0)
209 config_destroy(cf);
210 pthread_mutex_unlock(&mtx);
211 }
212
(gdb) frame 1
#1 0x000016d8fb21d46e in server (arg=0x16db7791b7b0) at main.c:470
470 access_done(sa);
(gdb) list
465 return (CVSYNC_THREAD_FAILURE);
466 }
467 if ((dca = dircmp_init(mx, sa->sa_hostinfo, cls, proto)) ==
NULL) {
468 mux_destroy(mx);
469 collection_destroy_all(cls);
470 access_done(sa);
471 return (CVSYNC_THREAD_FAILURE);
472 }
473 if ((fca = filecmp_init(mx, sa->sa_config->cf_collections, cls,
474 sa->sa_hostinfo, proto, hash)) == NULL)
{
(