[Home]

Summary:ASTERISK-25991: ASAN: double free in res_odbc.c
Reporter:Badalian Vyacheslav (slavon)Labels:
Date Opened:2016-05-04 07:39:24Date Closed:2016-10-30 13:41:17
Priority:CriticalRegression?
Status:Closed/CompleteComponents:Resources/res_odbc
Versions:13.8.2 13.9.1 Frequency of
Occurrence
Related
Issues:
Environment:Attachments:( 0) asan.16318
( 1) asan.16318.txt
( 2) asan.1640
( 3) asan.1640.txt
( 4) backtrace_claudiu_2016-05-10T12_06_19+0300.txt
( 5) full_claudiu.txt
Description:Asan log in attached files
Comments:By: Asterisk Team (asteriskteam) 2016-05-04 07:39:25.240-0500

Thanks for creating a report! The issue has entered the triage process. That means the issue will wait in this status until a Bug Marshal has an opportunity to review the issue. Once the issue has been reviewed you will receive comments regarding the next steps towards resolution.

A good first step is for you to review the [Asterisk Issue Guidelines|https://wiki.asterisk.org/wiki/display/AST/Asterisk+Issue+Guidelines] if you haven't already. The guidelines detail what is expected from an Asterisk issue report.

Then, if you are submitting a patch, please review the [Patch Contribution Process|https://wiki.asterisk.org/wiki/display/AST/Patch+Contribution+Process].

By: Badalian Vyacheslav (slavon) 2016-05-04 07:40:03.661-0500

Asan logs

By: Rusty Newton (rnewton) 2016-05-04 13:02:24.845-0500

For simple text logs, please attach them as .txt so we can quickly access them via browser.

By: Rusty Newton (rnewton) 2016-05-04 14:26:35.112-0500

Re-attaching reporter's debug as .txt

By: Claudiu Olteanu (claudiuolteanu) 2016-05-10 10:06:58.070-0500

Hi there,

Today I encountered a similar problem on my environment (RedHat 7.2, Kernel version 3.10.0-229.14.1.el7.x86_64, Asterisk 13.9.0) and I believe that the crash is related with this issue. I attached the logs and the backtrace.

Best wishes,
Claudiu

By: Badalian Vyacheslav (slavon) 2016-05-22 05:32:40.058-0500

13.9.1, Centos 7. All last updates. Bug still here

By: Marek Cervenka (cervajs) 2016-06-02 02:02:06.014-0500

Claudiu Olteanu, Badalian Vyacheslav  please fill your unixODBC version, odbc-connector type and version, SQL type and version


By: Claudiu Olteanu (claudiuolteanu) 2016-06-03 01:05:54.239-0500

Hello,

Here are some information about my environment:
- OS: RedHat 7.2, kernel version 3.10.0-327.13.1.el7.x86_64
- unixODBC version: unixODBC-2.3.1-11.el7.x86_64
- odbc-connector 1: Microsoft® ODBC Driver 13 (Preview)
- odbc-connector 2: freetds-0.95.81-1.el7.x86_64
- SQL type and version: Microsoft SQL Server 2012 (SP1) - 11.0.3128.0 (X64)
- Asterisk 13.9.0

Claudiu

By: Badalian Vyacheslav (slavon) 2016-06-03 06:41:39.551-0500

CentOS 7. Asterisk 13.9.1. GCC 5.2.1 (devtoolset)

- unixODBC-devel-2.3.1-11.el7.x86_64
- mysql-connector-odbc
# 5.3.6-1.el7.x86_64 (from MYSQL site)
# 5.2.5-6.el7 (from base REPO)
- unixODBC-2.3.1-11.el7.x86_64

unloadiing (noload) {{odbc_cel.so}} was fixed problem. CDR without CEL writed to DB fine.

in mysql-connector version 5.3.6-1.el7.x86_64 have 2 different SO files with suffix {{a}} (ANSI) and {{w}} (UTF)

if we use {{w}} version also have this asan:
{code}
# cat /var/log/cores/asterisk/old/asan.3844
=================================================================
==3844==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x7fe7097e9f7b bp 0x7fe71351e3b0 sp 0x7fe71351e3b0 T18)
   #0 0x7fe7097e9f7a in mysql_get_character_set_info (/usr/lib64/libmyodbc5w.so+0x6bf7a)
   #1 0x7fe7097cc40c in myodbc_do_connect (/usr/lib64/libmyodbc5w.so+0x4e40c)
   #2 0x7fe7097cc838 in MySQLConnect (/usr/lib64/libmyodbc5w.so+0x4e838)
   #3 0x7fe70f1573b2 in SQLConnect (/lib64/libodbc.so.2+0x103b2)
   #4 0x7fe70f3ba049 in odbc_obj_connect /root/asterisk-13.9.1/res/res_odbc.c:813
   #5 0x7fe70f3b90e3 in _ast_odbc_request_obj2 /root/asterisk-13.9.1/res/res_odbc.c:722
   #6 0x7fe70f3b924f in _ast_odbc_request_obj /root/asterisk-13.9.1/res/res_odbc.c:738
   #7 0x7fe6f6dfa573 in odbc_log /root/asterisk-13.9.1/cdr/cdr_adaptive_odbc.c:411
   #8 0x52edbf in post_cdr /root/asterisk-13.9.1/main/cdr.c:3271
   #9 0x532a96 in cdr_detach /root/asterisk-13.9.1/main/cdr.c:3568
   #10 0x51d9ec in cdr_object_dispatch /root/asterisk-13.9.1/main/cdr.c:1199
   #11 0x52691e in handle_channel_cache_message /root/asterisk-13.9.1/main/cdr.c:2129
   #12 0x79938e in router_dispatch /root/asterisk-13.9.1/main/stasis_message_router.c:201
   #13 0x775ed5 in subscription_invoke /root/asterisk-13.9.1/main/stasis.c:433
   #14 0x777a68 in dispatch_exec_async /root/asterisk-13.9.1/main/stasis.c:702
   #15 0x7b53ab in ast_taskprocessor_execute /root/asterisk-13.9.1/main/taskprocessor.c:848
   #16 0x7b1fb2 in default_tps_processing_function /root/asterisk-13.9.1/main/taskprocessor.c:183
   #17 0x7e58b5 in dummy_start /root/asterisk-13.9.1/main/utils.c:1235
   #18 0x7fe7178d9dc4 in start_thread (/lib64/libpthread.so.0+0x7dc4)
   #19 0x7fe716bb928c in clone (/lib64/libc.so.6+0xf628c)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV ??:0 mysql_get_character_set_info
Thread T18 created by T0 here:
   #0 0x7fe71946c703 in pthread_create (/lib64/libasan.so.2+0x36703)
   #1 0x7e5cbe in ast_pthread_create_stack /root/asterisk-13.9.1/main/utils.c:1288
   #2 0x7b212c in default_listener_start /root/asterisk-13.9.1/main/taskprocessor.c:200
   #3 0x7b47c0 in __allocate_taskprocessor /root/asterisk-13.9.1/main/taskprocessor.c:682
   #4 0x7b498d in ast_taskprocessor_get /root/asterisk-13.9.1/main/taskprocessor.c:728
   #5 0x776294 in internal_stasis_subscribe /root/asterisk-13.9.1/main/stasis.c:487
   #6 0x776548 in stasis_subscribe /root/asterisk-13.9.1/main/stasis.c:517
   #7 0x7998b1 in stasis_message_router_create_internal /root/asterisk-13.9.1/main/stasis_message_router.c:230
   #8 0x7999a9 in stasis_message_router_create /root/asterisk-13.9.1/main/stasis_message_router.c:243
   #9 0x537f0b in ast_cdr_engine_init /root/asterisk-13.9.1/main/cdr.c:4183
   #10 0x49242e in asterisk_daemon /root/asterisk-13.9.1/main/asterisk.c:4640
   #11 0x491572 in main /root/asterisk-13.9.1/main/asterisk.c:4289
   #12 0x7fe716ae4b14 in __libc_start_main (/lib64/libc.so.6+0x21b14)

==3844==ABORTING
{code}