Hi All,

One of our embedded products (running Linux) uses open ssl for RPC
connections.
The daemon handling RPC connections intermittently crashes with the
following back trace.

Looks like it crashes with signal 4 illegal instruction from inside BIO_ctrl
library function of libcrypto.

Did anybody know of any known issues like this?

Thanks in advance...

----

Program terminated with signal 4, Illegal instruction.

(gdb) bt
#0  0x0eb79198 in main_arena () from
/proj/sustaining/build_symbols//v5.3.1a/swbd10/oss/lib/libc.so.6
#1  0x0efa658c in BIO_ctrl () from
/proj/sustaining/build_symbols//v5.3.1a/swbd10/oss/lib/libcrypto.so.0.9.8
#2  0x1008d9c0 in apissl_waitfor_resp (bio=0x106d6388, timeout=0x323685a0)
at apissl.c:1268
#3  0x1008c5e8 in apissl_read (acc=0x32368e58, pBuff=<value optimized out>,
nReadSize=36, timeout=<value optimized out>) at apissl.c:707
#4  0x1008d628 in apissl_recv_rpc_packet (client=0x32368e58,
pStartOfData=0x32368778, pnSize=0x3236877c, pnTxId=0x32368780,
rqstp=0x323685f0, timeout={tv_sec = 25, tv_usec = 0}) at apissl.c:1137
#5  0x1008bbb0 in apissl_dispatch (client=0x32368e58) at apissl.c:386
#6  0x1008ba14 in apissl_rpc_thread (pArg=<value optimized out>) at
apissl.c:332
#7  0x0ebb94f4 in pthread_free () from
/proj/sustaining/build_symbols//v5.3.1a/swbd10/oss/lib/libpthread.so.0
#8  0x0eaf8c98 in clone () from
/proj/sustaining/build_symbols//v5.3.1a/swbd10/oss/lib/libc.so.6
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

fabB

(gdb) bt
#0  0x32500048 in ?? ()
#1  0x0efa658c in BIO_ctrl () from
/proj/sustaining/build_symbols//v5.3.1a/swbd10/oss/lib/libcrypto.so.0.9.8
#2  0x1008d9c0 in apissl_waitfor_resp (bio=0x325004b8, timeout=0x323685a0)
at apissl.c:1268
#3  0x1008c5e8 in apissl_read (acc=0x32368e58, pBuff=<value optimized out>,
nReadSize=36, timeout=<value optimized out>) at apissl.c:707
#4  0x1008d628 in apissl_recv_rpc_packet (client=0x32368e58,
pStartOfData=0x32368778, pnSize=0x3236877c, pnTxId=0x32368780,
rqstp=0x323685f0, timeout={tv_sec = 25, tv_usec = 0}) at apissl.c:1137
#5  0x1008bbb0 in apissl_dispatch (client=0x32368e58) at apissl.c:386
#6  0x1008ba14 in apissl_rpc_thread (pArg=<value optimized out>) at
apissl.c:332
#7  0x0ebb94f4 in pthread_free () from
/proj/sustaining/build_symbols//v5.3.1a/swbd10/oss/lib/libpthread.so.0
#8  0x0eaf8c98 in clone () from
/proj/sustaining/build_symbols//v5.3.1a/swbd10/oss/lib/libc.so.6
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

In first back trace crash is actually from main_arena() (not sure whether
this is an indication of any memory corruption).
In second case, for some reason, gdb did not decode the function at frame 0.

Application actually calls BIO_get_fd from the place indicated in core
(apissl_waitfor_resp() ). I think BIO_get_fd is probably a macro or inline
function mapping to BIO_ctrl.

Thanks,
Sathish R.

Reply via email to