Summary: | ASTERISK-11157: segfault with the AMI | ||
Reporter: | Clod Patry (junky) | Labels: | |
Date Opened: | 2008-01-05 05:58:39.000-0600 | Date Closed: | 2008-01-07 11:43:02.000-0600 |
Priority: | Major | Regression? | No |
Status: | Closed/Complete | Components: | Core/ManagerInterface |
Versions: | Frequency of Occurrence | ||
Related Issues: | |||
Environment: | Attachments: | ||
Description: | I'm getting that segfault few times on that system: (gdb) bt #0 0x080cd11c in process_events (s=0x8439be8) at manager.c:2228 #1 0x080ce643 in do_message (s=0x8439be8) at manager.c:2592 #2 0x080ce98e in session_do (data=0xb5d15450) at manager.c:2652 #3 0x080ba2e9 in make_file_from_fd (data=0xb5d15450) at http.c:724 #4 0x0812709f in dummy_start (data=0xb5d1a508) at utils.c:857 ASTERISK-1 0xb7e18504 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0 ASTERISK-2 0xb7d3351e in clone () from /lib/tls/i686/cmov/libc.so.6 (gdb) bt full #0 0x080cd11c in process_events (s=0x8439be8) at manager.c:2228 eqe = (struct eventqent *) 0xb5013af0 ret = 0 #1 0x080ce643 in do_message (s=0x8439be8) at manager.c:2592 m = {hdrcount = 0, headers = {0x0 <repeats 128 times>}} header_buf = '\0' <repeats 1024 times> res = 0 #2 0x080ce98e in session_do (data=0xb5d15450) at manager.c:2652 ser = (struct server_instance *) 0xb5d15450 s = (struct mansession *) 0x8439be8 flags = 2050 res = 0 __PRETTY_FUNCTION__ = "session_do" #3 0x080ba2e9 in make_file_from_fd (data=0xb5d15450) at http.c:724 ser = (struct server_instance *) 0xb5d15450 __PRETTY_FUNCTION__ = "make_file_from_fd" cookie_funcs = {read = 0x80ba10b <ssl_read>, write = 0x80ba135 <ssl_write>, seek = 0, close = 0x80ba156 <ssl_close>} #4 0x0812709f in dummy_start (data=0xb5d1a508) at utils.c:857 __cancel_buf = {__cancel_jmp_buf = {{__cancel_jmp_buf = {-1209913356, 0, 0, -1242676104, 1256473616, -149393297}, __mask_was_saved = 0}}, __pad = { 0xb5ee44b0, 0x0, 0x0, 0x0}} __cancel_routine = (void (*)(void *)) 0x806dfa7 <ast_unregister_thread> __cancel_arg = (void *) 0xb5ee4ba0 not_first_call = 0 ret = (void *) 0xb7d7185e a = {start_routine = 0x80ba18c <make_file_from_fd>, data = 0xb5d15450, name = 0xb5d7d9e8 "make_file_from_fd started at [ 911] http.c server_root()"} ASTERISK-1 0xb7e18504 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0 No symbol table info available. ASTERISK-2 0xb7d3351e in clone () from /lib/tls/i686/cmov/libc.so.6 No symbol table info available. (gdb) | ||
Comments: | By: Clod Patry (junky) 2008-01-05 06:19:15.000-0600 Also: (gdb) p s $1 = (struct mansession *) 0x8439be8 (gdb) p s->last_ev $2 = (struct eventqent *) 0x0 (gdb) p *s $3 = {ms_t = 0, __lock = {__data = {__lock = 1, __count = 1, __owner = 27117, __kind = 1, __nusers = 1, {__spins = 0, __list = {__next = 0x0}}}, __size = "\001\000\000\000\001\000\000\000?i\000\000\001\000\000\000\001\000\000\000\000\000\000", __align = 1}, sin = {sin_family = 2, sin_port = 21469, sin_addr = {s_addr = 16777343}, sin_zero = "\000\000\000\000\000\000\000"}, f = 0x8390b08, fd = 150, inuse = 0, needdestroy = 0, waiting_thread = 4294967295, managerid = 0, sessionstart = 1199522157, sessiontimeout = 0, username = "ma", '\0' <repeats 77 times>, challenge = "\000\000\000\000\000\000\000\000\000", authenticated = 1, readperm = 127, writeperm = 127, inbuf = "\r\nmmand: meetme list 2\r\n\r\nmeetme list 2\r\n\r\n\000\n meetme list 2\r\n\r\ntme list 2\r\n\r\netme list 2\r\n\r\n", '\0' <repeats 932 times>, inlen = 0, send_events = -1, last_ev = 0x0, writetimeout = 100, list = {next = 0x84a29e0}} (gdb) So i wonder if we could simply add an if (s->last_ev != NULL) before calling NEW_EVENT ? By: Joshua C. Colp (jcolp) 2008-01-07 11:43:01.000-0600 Closed as this is a duplicate of 11373. Follow progress there. |