Summary: | ASTERISK-13732: Asterisk becomes unresponsive and seems to be locked waiting on a mutex | ||
Reporter: | tomsullivan (tomsullivan) | Labels: | |
Date Opened: | 2009-03-11 22:50:49 | Date Closed: | 2011-06-07 14:00:47 |
Priority: | Blocker | Regression? | No |
Status: | Closed/Complete | Components: | General |
Versions: | Frequency of Occurrence | ||
Related Issues: | |||
Environment: | Attachments: | ||
Description: | After a restart, Asterisk became unresponsive. The Asterisk console still worked, but no calls could be made. After a period, Asterisk was killed, and a coredump generated. The coredump shows that there were 1034 threads, 1015 of which were in __lll_mutex_lock_wait () (/lib/libpthread.so.0). Below is a full backtrace for one of these threads. All the waiting threads refer to the same lock (lock_addr=0x6650f0). Below is also a listing of the logs for the period during which it was unresponsive. ****** ADDITIONAL INFORMATION ****** Log excerpt: Mar 12 04:05:12 localhost asterisk[10731]: ERROR[10732]: utils.c:524 in lock_info_destroy: Thread 'listener started at [ 1084] asterisk.c ast_makesocket()' still has a lock! - '&(&logchannels)->lock' (0x6650f0) from 'ast_log' in logger.c:740! Mar 12 04:05:18 localhost asterisk[24648]: ERROR[24648]: codec_dahdi.c:419 in find_transcoders: Failed to open /dev/dahdi/transcode: No such file or directory ... Mar 12 08:08:18 localhost asterisk[9902]: ERROR[9902]: codec_dahdi.c:419 in find_transcoders: Failed to open /dev/dahdi/transcode: No such file or directory Full backtrace: #0 0x00007f5c6b77beeb in __lll_mutex_lock_wait () from /lib/libpthread.so.0 No symbol table info available. #1 0x00000000008964d8 in ?? () No symbol table info available. #2 0x0000000040d0580e in ?? () No symbol table info available. #3 0x00007f5c6b778dba in pthread_mutex_lock () from /lib/libpthread.so.0 No symbol table info available. #4 0x00007f5c697be8e4 in __PRETTY_FUNCTION__.8477 () from /lib/libc.so.6 No symbol table info available. ASTERISK-1 0x00000000008956c0 in ?? () No symbol table info available. ASTERISK-2 0x0000000000000e48 in ?? () No symbol table info available. ASTERISK-3 0x000000000066d220 in lock_infos_lock () No symbol table info available. ASTERISK-4 0x0000000000000100 in ?? () No symbol table info available. ASTERISK-5 0x00000000008956c0 in ?? () No symbol table info available. ASTERISK-6 0x0000000040d05540 in ?? () No symbol table info available. ASTERISK-7 0x00000000004dfee7 in ast_store_lock_info (type=AST_MUTEX, filename=0x522c54 "logger.c", line_num=740, func=0x5245bf "ast_log", lock_name=0x522ed2 "&(&logchannels)->lock", lock_addr=0x6650f0) at utils.c:591 lock_info = (struct thr_lock_info *) 0x40d09960 i = 0 ASTERISK-8 0x0000000000486cc0 in ast_log (level=5, file=0x522c54 "logger.c", line=904, function=0x524783 "ast_verbose", fmt=0x522e5c "%s") at logger.c:740 chan = (struct logchannel *) 0x7f5c698e0560 buf = (struct ast_dynamic_str *) 0x8969a0 t = 1236792302 tm = {tm_sec = 2, tm_min = 25, tm_hour = 4, tm_mday = 12, tm_mon = 2, tm_year = 109, tm_wday = 4, tm_yday = 70, tm_isdst = 1, tm_gmtoff = 39600, tm_zone = 0x0} date = "Mar 12 04:25:02\000PZÐ@\000\000\000\000PZÐ@\000\000\000\000pYÐ@\000\000\000\000\231GR\000\000\000\000\000\200\222Ð@\000\000\000\000\220XÐ@", '\0' <repeats 12 times>, "\027i\211\000\000\000\000\000\230h\211\000\000\000\000\000\230h\211\000\000\000\000\000@[Ð@\000\000\000\000PZÐ@\000\000\000\000\177\000\000\000\000\000\000\000\000 Ð@\000\000\000\000\220XÐ@\000\000\000\000úÖpi\\\177\000\000\001\200ûÿÿÿÿ\230h\211\000\000\000\000\000\230h\211\000\000\000\000\000K\000\000\000\000\000\000\0006\tQ\000\000\000\000\000åYÐ@\000\000\000\000PYÐ@\000\000\000\000fs"... ap = {{gp_offset = 0, fp_offset = 0, overflow_arg_area = 0x0, reg_save_area = 0x0}} __PRETTY_FUNCTION__ = "ast_log" ASTERISK-9 0x0000000000487893 in ast_verbose (fmt=0x40d05a50 "\177 == Parsing '%s': ") at logger.c:904 v = (struct verb *) 0x0 buf = (struct ast_dynamic_str *) 0x896890 res = 44 ap = {{gp_offset = 16, fp_offset = 48, overflow_arg_area = 0x40d05c50, reg_save_area = 0x40d05b90}} __PRETTY_FUNCTION__ = "ast_verbose" ASTERISK-10 0x000000000045d722 in config_text_file_load (database=0x40d08240 "@Åe", table=0x40d08140 "", filename=0x52527c "manager.conf", cfg=0x8967e0, withcomments=0) at config.c:881 i = 0 glob_ret = 0 globbuf = {gl_pathc = 1, gl_pathv = 0x800820, gl_offs = 0, gl_flags = 3088, gl_closedir = 0, gl_readdir = 0, gl_opendir = 0, gl_lstat = 0, gl_stat = 0} fn = "/etc/asterisk/manager.conf\000\000\000\000\000\000H\016\000\000\000\000\000\000 Òf\000\000\000\000\000À\tf\000\000\000\000\000ÀV\211\000\000\000\000\0000\200Ð@\000\000\000\000E\004N\000\000\000\000\000\224ªQ\000\000\000\000\000À\tf\000\000\000\000\000ÀV\211\000\000\000\000\000À\tf\000\000\000\000\000 \200Ð@\000\000\000\000\177ëE", '\0' <repeats 37 times>, "À\tf\000\000\000\000\000\"´Q\000\000\000\000\000m¸Q\000\000\000\000\000\177\203Ð@1\005\000\000\224ªQ\000\000\000\000\0000\203Ð@\000\000\000\000\000\000\000\000\001", '\0' <repeats 11 times>, "\020\201Ð@"... buf = '\0' <repeats 6688 times>, "\002\000\000\000\000\000\000\000°\200Ð@\000\000\000\000âQR\000\000\000\000\000äQR\000\000\000\000\000\006\000\000\000\000\000\000\000þ±ni\\\177\000\000\000\000\000\000\000\000\000\000p\200Ð@", '\0' <repeats 20 times>, "\220{Ð@\000\000\000\000 \202Ð@\000\000\000\000àQR\000\000\000\000\000À\200Ð@", '\0' <repeats 52 times>, "ÿÿÿÿÿÿÿÿ\000\000\000\000\b\000\000\000àQR\000\000\000\000\000x\177Ð@", '\0' <repeats 68 times>, " ", '\0' <repeats 30 times>, "s", '\0' <repeats 112 times>, "áQR\000\000\000\000\000\000\000\000\000ÿÿÿÿ", '\0' <repeats 192 times>... new_buf = 0x10040d08330 <Address 0x10040d08330 out of bounds> comment_p = 0x40d08140 "" process_buf = 0x10040d08330 <Address 0x10040d08330 out of bounds> f = (FILE *) 0x40d08240 lineno = 0 comment = 0 nest = {0 <repeats 128 times>} cat = (struct ast_category *) 0x0 count = 0 statbuf = {st_dev = 64768, st_ino = 424975, st_nlink = 1, st_mode = 33188, st_uid = 10003, st_gid = 10001, pad0 = 0, st_rdev = 0, st_size = 88, st_blksize = 4096, st_blocks = 8, st_atim = {tv_sec = 1236215471, tv_nsec = 0}, st_mtim = {tv_sec = 1236215471, tv_nsec = 0}, st_ctim = {tv_sec = 1236215471, tv_nsec = 0}, __unused = {0, 0, 0}} comment_buffer = 0x0 comment_buffer_size = 0 lline_buffer = 0x0 lline_buffer_size = 0 __PRETTY_FUNCTION__ = "config_text_file_load" ASTERISK-11 0x000000000045f6fb in ast_config_internal_load (filename=0x52527c "manager.conf", cfg=0x8967e0, withcomments=0) at config.c:1373 db = "@Åe\000\000\000\000\000Â-Q\000\000\000\000\000\2000Q\000\000\000\000\000\200\222Ð@\207\000\000\000¤-Q\000\000\000\000\000\bh\211", '\0' <repeats 21 times>, "ð\202Ð@\000\000\000\000{\026C\000\000\000\000\000\217\035EøªXÏè\222\001", '\0' <repeats 14 times>, "\021¬Q\000\000\000\000\000\000\000\000\000Í\001\000\000\224ªQ\000\000\000\000\000\000\000\000\000\001\000\000\000(\000\000\000\000\000\000\000pg\211\000\000\000\000\000àg\211\000\000\000\000\000\bh\211\000\000\000\000\000\220\205Ð@\222\001\000\000@\203Ð@\000\000\000\000j\024C\000\000\000\000\000O\000\000\000\000\000\000\000\021¬Q\000\000\000\000\0000\203Ð@Í\001\000"... table = '\0' <repeats 40 times>, "ÿÿÿÿ", '\0' <repeats 44 times>, " õ\215i\\\177", '\0' <repeats 58 times>, "Ð", '\0' <repeats 15 times>, "\a\020C", '\0' <repeats 13 times>, "@Åe\000\000\000\000\000\200\202Ð@\000\000\000\000u\023C\000\000\000\000\000\200\222Ð@\000\000\000\000c4oi\\\177\000\000 \000\000\0000\000\000\000\t\000\000\000\000\000\000\000©.Q\000\000\000\000\000¤-Q\000\000\000\000" loader = (struct ast_config_engine *) 0x660b40 result = (struct ast_config *) 0x40d085df __PRETTY_FUNCTION__ = "ast_config_internal_load" ASTERISK-12 0x000000000045f77c in ast_config_load (filename=0x52527c "manager.conf") at config.c:1392 cfg = (struct ast_config *) 0x8967e0 result = (struct ast_config *) 0x300000000 ASTERISK-13 0x000000000048a79d in authenticate (s=0x7f5c5d924080, m=0x40d08c90) at manager.c:964 cfg = (struct ast_config *) 0x40d08590 cat = 0x40d08590 "òLR" user = 0x40d0882a "munin" pass = 0x40d08808 "alxdvc3f" authtype = 0x524cf2 "" key = 0x524cf2 "" events = 0x40d087e8 "off" __PRETTY_FUNCTION__ = "authenticate" ASTERISK-14 0x000000000048e85d in process_message (s=0x7f5c5d924080, m=0x40d08c90) at manager.c:2195 action = "login", '\0' <repeats 74 times> tmp = (struct manager_action *) 0x40d09960 id = 0x524cf2 "" idText = '\0' <repeats 255 times> ret = 0 __PRETTY_FUNCTION__ = "process_message" ASTERISK-15 0x000000000048f09c in do_message (s=0x7f5c5d924080) at manager.c:2321 m = {hdrcount = 4, headers = {0x40d08840 "Action: login", 0x40d08820 "Username: munin", 0x40d08800 "Secret: alxdvc3f", 0x40d087e0 "Events: off", 0x0 <repeats 124 times>}} header_buf = "\000\n\000nts: off\000\n\0003f\000\n", '\0' <repeats 1005 times> res = 1 ASTERISK-16 0x000000000048f1d0 in session_do (data=0x7f5c5d924080) at manager.c:2337 s = (struct mansession *) 0x7f5c5d924080 res = 0 __PRETTY_FUNCTION__ = "session_do" ASTERISK-17 0x00000000004e0b80 in dummy_start (data=0x7f5c5d92e9c0) at utils.c:856 __cancel_buf = {__cancel_jmp_buf = {{__cancel_jmp_buf = {0, 1087410640, 0, 1087412576, 1087410816, 1087414272, 1087410432, 5114466}, __mask_was_saved = 0}}, __pad = {0x40d091f0, 0x0, 0x0, 0x0}} __cancel_routine = (void (*)(void *)) 0x42836a <ast_unregister_thread> __cancel_arg = (void *) 0x40d09960 not_first_call = 0 ret = (void *) 0x0 a = {start_routine = 0x48f1a0 <session_do>, data = 0x7f5c5d924080, name = 0x7f5c5d924750 "session_do", ' ' <repeats 11 times>, "started at [ 2460] manager.c accept_thread()"} lock_info = (struct thr_lock_info *) 0x8956c0 mutex_attr = {__size = "\001\000\000", __align = 1} __PRETTY_FUNCTION__ = "dummy_start" ASTERISK-18 0x00007f5c6b776f1a in start_thread () from /lib/libpthread.so.0 No symbol table info available. ASTERISK-19 0x00007f5c697725d2 in clone () from /lib/libc.so.6 No symbol table info available. ASTERISK-20 0x0000000000000000 in ?? () No symbol table info available. | ||
Comments: | By: Tilghman Lesher (tilghman) 2009-03-12 10:06:15 Please turn on DEBUG_THREADS in 'make menuselect' and get a 'core show locks' when the lockup occurs. By: Tilghman Lesher (tilghman) 2009-03-12 10:10:27 Also, please do not upload coredumps in the future. They are completely useless on any machine except the machine on which it was generated. The information we need is detailed in doc/backtrace.txt. By: Leif Madsen (lmadsen) 2009-04-09 10:48:44 Pinging reporter for feedback here? Otherwise we'll need to close the issue. Thanks! By: Joshua C. Colp (jcolp) 2009-04-21 09:06:48 Suspending this issue since the reporter has not responded in quite some time. |