Hi,
We have a server with libev-4.25 statically linked in and the first service it
provided after a recent restart produced the following core dump:
Core was generated by `/var/lib/comcent/dbin/comcentd --log'.
Program terminated with signal 11, Segmentation fault.
#0 0x0000000000741b04 in pipecb (loop=0xd5b5b0, iow=<optimized out>,
revents=<optimized out>) at ev.c:2552
2552 ev.c: No such file or directory.
Missing separate debuginfos, use: debuginfo-install
cyrus-sasl-lib-2.1.26-23.el7.x86_64 glibc-2.17-260.el7.x86_64
keyutils-libs-1.5.8-3.el7.x86_64 krb5-libs-1.15.1-34.el7.x86_64
libcom_err-1.42.9-13.el7.x86_64 libgcc-4.8.5-36.el7.x86_64
libpqxx-4.0.1-1.el7.x86_64 libselinux-2.5-14.1.el7.x86_64
libstdc++-4.8.5-36.el7.x86_64 nspr-4.19.0-1.el7_5.x86_64
nss-3.36.0-7.el7_5.x86_64 nss-softokn-freebl-3.36.0-5.el7_5.x86_64
nss-util-3.36.0-1.el7_5.x86_64 openldap-2.4.44-20.el7.x86_64
openssl-libs-1.0.2k-16.el7.x86_64 pcre-8.32-17.el7.x86_64
postgresql-libs-9.2.24-1.el7_5.x86_64 zlib-1.2.7-18.el7.x86_64
(gdb) where
#0 0x0000000000741b04 in pipecb (loop=0xd5b5b0, iow=<optimized out>,
revents=<optimized out>) at ev.c:2552
#1 0x0000000000740c95 in ev_invoke_pending (loop=0xd5b5b0) at ev.c:3322
#2 0x00000000007444d5 in ev_run (loop=0xd5b5b0, flags=<optimized out>) at
ev.c:3726
#3 0x0000000000637521 in ChannelWorker::main_ (arg=0x0) at
ChannelWorker.cpp:198
#4 0x00007fb225f74dd5 in start_thread () from /lib64/libpthread.so.0
#5 0x00007fb224855ead in clone () from /lib64/libc.so.6
(gdb) quit
Unfortunately the stack isn't examinable due to optimization but the source
code line 2552 maps to this snippet in pipecd() at ev.c:
2544 #if EV_ASYNC_ENABLE
2545 if (async_pending)
2546 {
2547 async_pending = 0;
2548
2549 ECB_MEMORY_FENCE;
2550
2551 for (i = asynccnt; i--; )
2552 if (asyncs [i]->sent)
2553 {
2554 asyncs [i]->sent = 0;
2555 ECB_MEMORY_FENCE_RELEASE;
2556 ev_feed_event (EV_A_ asyncs [i], EV_ASYNC);
2557 }
2558 }
2559 #endif
If not obvious from the above the source line in question appears to be:
2552 if (asyncs [i]->sent)
As noted this was 1st usage after a restart among otherwise stable, heavy
production use. I have scanned the mailing list from release 4.25 through
4.27 and didn't see this issue raised therein.
Regards,
Cal McPherson
_______________________________________________
libev mailing list
[email protected]
http://lists.schmorp.de/mailman/listinfo/libev