[Home]

Summary:ASTERISK-23680: Crash in hangup, cdr, sqlite
Reporter:billsimon (billsimon)Labels:
Date Opened:2014-04-28 09:48:44Date Closed:2014-04-28 09:56:29
Priority:MajorRegression?
Status:Closed/CompleteComponents:Resources/res_config_sqlite
Versions:11.9.0 Frequency of
Occurrence
Frequent
Related
Issues:
Environment:Linux pbx.local 2.6.32-431.1.2.0.1.el6.x86_64 #1 SMP Fri Dec 13 13:06:13 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux CentOS release 6.5 (Final) Attachments:
Description:Asterisk crashes with the following printed to the console:

pbx*CLI> *** glibc detected *** /usr/sbin/asterisk: corrupted double-linked list: 0x00007fb264011af0 ***
======= Backtrace: =========
/lib64/libc.so.6[0x3d0d676166]
/lib64/libc.so.6[0x3d0d679f8a]
/lib64/libc.so.6(__libc_malloc+0x71)[0x3d0d67a991]
/usr/lib64/libsqlite.so.0(sqliteMallocRaw+0xb)[0x7fb3249266eb]
/usr/lib64/libsqlite.so.0(findLockInfo+0x1aa)[0x7fb32491620a]
/usr/lib64/libsqlite.so.0(sqliteOsOpenExclusive+0x86)[0x7fb324916396]
/usr/lib64/libsqlite.so.0(+0x3d0da20308)[0x7fb324917308]
/usr/lib64/libsqlite.so.0(+0x3d0da0fafd)[0x7fb324906afd]
/usr/lib64/libsqlite.so.0(sqliteVdbeExec+0x2dd4)[0x7fb32492a6b4]
/usr/lib64/libsqlite.so.0(sqlite_step+0xa0)[0x7fb32492df00]
/usr/lib64/libsqlite.so.0(sqlite_exec+0xf7)[0x7fb324914b17]
/usr/lib/asterisk/modules/res_config_sqlite.so(+0x30e6)[0x7fb324b480e6]
/usr/sbin/asterisk[0x46df03]
/usr/sbin/asterisk(ast_cdr_detach+0xdb)[0x46e916]
/usr/sbin/asterisk(ast_hangup+0x9ab)[0x479e24]
/usr/sbin/asterisk[0x53c850]
/usr/sbin/asterisk[0x53cb93]
/usr/sbin/asterisk[0x597ee0]
/lib64/libpthread.so.0[0x3d0da079d1]
/lib64/libc.so.6(clone+0x6d)[0x3d0d6e8b6d]
======= Memory map: ========
00400000-006bf000 r-xp 00000000 08:02 38798896                           /usr/sbin/asterisk
008be000-008de000 rw-p 002be000 08:02 38798896                           /usr/sbin/asterisk
008de000-0091a000 rw-p 00000000 00:00 0
00bbd000-01fd0000 rw-p 00000000 00:00 0                                  [heap]
3d0d200000-3d0d220000 r-xp 00000000 08:02 12845267                       /lib64/ld-2.12.so
3d0d41f000-3d0d420000 r--p 0001f000 08:02 12845267                       /lib64/ld-2.12.so
3d0d420000-3d0d421000 rw-p 00020000 08:02 12845267                       /lib64/ld-2.12.so
3d0d421000-3d0d422000 rw-p 00000000 00:00 0
3d0d600000-3d0d78b000 r-xp 00000000 08:02 12845269                       /lib64/libc-2.12.so
3d0d78b000-3d0d98a000 ---p 0018b000 08:02 12845269                       /lib64/libc-2.12.so
3d0d98a000-3d0d98e000 r--p 0018a000 08:02 12845269                       /lib64/libc-2.12.so
3d0d98e000-3d0d98f000 rw-p 0018e000 08:02 12845269                       /lib64/libc-2.12.so
3d0d98f000-3d0d994000 rw-p 00000000 00:00 0
3d0da00000-3d0da17000 r-xp 00000000 08:02 12845506                       /lib64/libpthread-2.12.so
3d0da17000-3d0dc17000 ---p 00017000 08:02 12845506                       /lib64/libpthread-2.12.so
3d0dc17000-3d0dc18000 r--p 00017000 08:02 12845506                       /lib64/libpthread-2.12.so
3d0dc18000-3d0dc19000 rw-p 00018000 08:02 12845506                       /lib64/libpthread-2.12.so
3d0dc19000-3d0dc1d000 rw-p 00000000 00:00 0
3d0de00000-3d0de02000 r-xp 00000000 08:02 12845511                       /lib64/libdl-2.12.so
3d0de02000-3d0e002000 ---p 00002000 08:02 12845511                       /lib64/libdl-2.12.so
3d0e002000-3d0e003000 r--p 00002000 08:02 12845511                       /lib64/libdl-2.12.so
3d0e003000-3d0e004000 rw-p 00003000 08:02 12845511                       /lib64/libdl-2.12.so
3d0e200000-3d0e283000 r-xp 00000000 08:02 12845519                       /lib64/libm-2.12.so
3d0e283000-3d0e482000 ---p 00083000 08:02 12845519                       /lib64/libm-2.12.so
3d0e482000-3d0e483000 r--p 00082000 08:02 12845519                       /lib64/libm-2.12.so
3d0e483000-3d0e484000 rw-p 00083000 08:02 12845519                       /lib64/libm-2.12.so
3d0e600000-3d0e615000 r-xp 00000000 08:02 12845514                       /lib64/libz.so.1.2.3
3d0e615000-3d0e814000 ---p 00015000 08:02 12845514                       /lib64/libz.so.1.2.3
3d0e814000-3d0e815000 r--p 00014000 08:02 12845514                       /lib64/libz.so.1.2.3
3d0e815000-3d0e816000 rw-p 00015000 08:02 12845514                       /lib64/libz.so.1.2.3
3d0ea00000-3d0ea07000 r-xp 00000000 08:02 12845507                       /lib64/librt-2.12.so
3d0ea07000-3d0ec06000 ---p 00007000 08:02 12845507                       /lib64/librt-2.12.so
3d0ec06000-3d0ec07000 r--p 00006000 08:02 12845507                       /lib64/librt-2.12.so
3d0ec07000-3d0ec08000 rw-p 00007000 08:02 12845507                       /lib64/librt-2.12.so
3d0ee00000-3d0ee1d000 r-xp 00000000 08:02 12845515                       /lib64/libselinux.so.1
3d0ee1d000-3d0f01c000 ---p 0001d000 08:02 12845515                       /lib64/libselinux.so.1
3d0f01c000-3d0f01d000 r--p 0001c000 08:02 12845515                       /lib64/libselinux.so.1
3d0f01d000-3d0f01e000 rw-p 0001d000 08:02 12845515                       /lib64/libselinux.so.1
3d0f01e000-3d0f01f000 rw-p 00000000 00:00 0
3d0f200000-3d0f229000 r-xp 00000000 08:02 38805317                       /usr/lib64/libedit.so.0.0.27
3d0f229000-3d0f429000 ---p 00029000 08:02 38805317                       /usr/lib64/libedit.so.0.0.27
3d0f429000-3d0f42c000 rw-p 00029000 08:02 38805317                       /usr/lib64/libedit.so.0.0.27
3d0f42c000-3d0f42f000 rw-p 00000000 00:00 0
3d0f600000-3d0f616000 r-xp 00000000 08:02 12845513                       /lib64/libresolv-2.12.so
3d0f616000-3d0f816000 ---p 00016000 08:02 12845513                       /lib64/libresolv-2.12.so
3d0f816000-3d0f817000 r--p 00016000 08:02 12845513                       /lib64/libresolv-2.12.so
3d0f817000-3d0f818000 rw-p 00017000 08:02 12845513                       /lib64/libresolv-2.12.so
3d0f818000-3d0f81a000 rw-p 00000000 00:00 0
3d0fa00000-3d0fa4f000 r-xp 00000000 08:02 12845420                       /lib64/libldap_r-2.4.so.2.5.6
3d0fa4f000-3d0fc4e000 ---p 0004f000 08:02 12845420                       /lib64/libldap_r-2.4.so.2.5.6
3d0fc4e000-3d0fc50000 r--p 0004e000 08:02 12845420                       /lib64/libldap_r-2.4.so.2.5.6
3d0fc50000-3d0fc52000 rw-p 00050000 08:02 12845420                       /lib64/libldap_r-2.4.so.2.5.6
3d0fc52000-3d0fc54000 rw-p 00000000 00:00 0
3d0fe00000-3d0fe1d000 r-xp 00000000 08:02 12845541                       /lib64/libtinfo.so.5.7
3d0fe1d000-3d1001d000 ---p 0001d000 08:02 12845541                       /lib64/libtinfo.so.5.7
3d1001d000-3d10021000 rw-p 0001d000 08:02 12845541                       /lib64/libtinfo.so.5.7
3d10200000-3d1025f000 r-xp 00000000 08:02 38799021                       /usr/lib64/libodbc.so.2.0.0
3d1025f000-3d1045e000 ---p 0005f000 08:02 38799021                       /usr/lib64/libodbc.so.2.0.0
3d1045e000-3d10466000 rw-p 0005e000 08:02 38799021                       /usr/lib64/libodbc.so.2.0.0
3d10466000-3d10467000 rw-p 00000000 00:00 0
3d10600000-3d10619000 r-xp 00000000 08:02 38805265                       /usr/lib64/libsasl2.so.2.0.23
3d10619000-3d10818000 ---p 00019000 08:02 38805265                       /usr/lib64/libsasl2.so.2.0.23
Disconnected from Asterisk server


Backtrace:

(gdb) backtrace
#0  0x0000003d0d632925 in raise () from /lib64/libc.so.6
#1  0x0000003d0d634105 in abort () from /lib64/libc.so.6
#2  0x0000003d0d670837 in __libc_message () from /lib64/libc.so.6
#3  0x0000003d0d676166 in malloc_printerr () from /lib64/libc.so.6
#4  0x0000003d0d679f8a in _int_malloc () from /lib64/libc.so.6
#5  0x0000003d0d67a991 in malloc () from /lib64/libc.so.6
#6  0x00007fb3249266eb in sqliteMallocRaw () from /usr/lib64/libsqlite.so.0
#7  0x00007fb32491620a in findLockInfo () from /usr/lib64/libsqlite.so.0
#8  0x00007fb324916396 in sqliteOsOpenExclusive () from /usr/lib64/libsqlite.so.0
#9  0x00007fb324917308 in ?? () from /usr/lib64/libsqlite.so.0
#10 0x00007fb324906afd in ?? () from /usr/lib64/libsqlite.so.0
#11 0x00007fb32492a6b4 in sqliteVdbeExec () from /usr/lib64/libsqlite.so.0
#12 0x00007fb32492df00 in sqlite_step () from /usr/lib64/libsqlite.so.0
#13 0x00007fb324914b17 in sqlite_exec () from /usr/lib64/libsqlite.so.0
#14 0x00007fb324b480e6 in cdr_handler (cdr=0x7fb2b81a0200) at res_config_sqlite.c:841
#15 0x000000000046df03 in post_cdr (cdr=0x7fb2b81a0200) at cdr.c:1192
#16 0x000000000046e916 in ast_cdr_detach (cdr=0x7fb2b81a0200) at cdr.c:1396
#17 0x0000000000479e24 in ast_hangup (chan=0x7fb2b812d9d8) at channel.c:2887
#18 0x000000000053c850 in __ast_pbx_run (c=0x7fb2b812d9d8, args=0x0) at pbx.c:6744
#19 0x000000000053cb93 in pbx_thread (data=0x7fb2b812d9d8) at pbx.c:6836
#20 0x0000000000597ee0 in dummy_start (data=0x7fb2b800bbc0) at utils.c:1162
#21 0x0000003d0da079d1 in start_thread () from /lib64/libpthread.so.0
#22 0x0000003d0d6e8b6d in clone () from /lib64/libc.so.6
(gdb) quit
Comments:By: Matt Jordan (mjordan) 2014-04-28 09:56:30.052-0500

This appears to be a memory corruption in the SQLite library. As this is not a bug in Asterisk, I'm closing this out as "Not a Bug".

Please file an issue with the creator of the libsqlite library.

By: billsimon (billsimon) 2014-04-28 09:59:30.921-0500

That was the quickest rejection I've ever gotten. And I didn't even use a pick-up line!

OK, so it's a memory corruption in SQLite, and Asterisk uses SQLite library, so.... what do you suggest? We are using a standard distribution of SQLite that comes in a major Linux distro. Shouldn't Asterisk work with that?