Summary: | ASTERISK-15960: crash when calling ao2_unlock inside pthread_timer_disable_continuous - NOT FIXED PLEASE RE-OPEN | ||
Reporter: | Eddie Edwards (eddie edwards) | Labels: | |
Date Opened: | 2010-04-15 08:06:31 | Date Closed: | 2010-07-21 11:20:21 |
Priority: | Critical | Regression? | No |
Status: | Closed/Complete | Components: | Resources/res_timing_pthread |
Versions: | Frequency of Occurrence | ||
Related Issues: | |||
Environment: | Attachments: | ||
Description: | See ASTERISK-14848. We are also experiencing this issue. Asterisk 1.6.1.6. Bug has been closed because Digium thinks it is a compiler bug. Quote tilghman: "As it turns out, the "@plt" is a dead giveaway as to the source of this problem. This is a problem in the compiler/linker tools for your platform. Please report this issue upstream to the package maintainers of your distribution environment. This is NOT a bug in Asterisk, but a compiler (or linker) bug." This is clearly not the case. By the time the bug is hit (at load of around 200 calls) ao2_unlock has already been called thousands if not millions of times. The dynamic linker is not entered subsequently. There is no evidence of a linker problem. In all likelihood, Asterisk is trashing the PLT itself via a bad pointer. Please re-open ASTERISK-14848 and fix. | ||
Comments: | By: Elazar Broad (ebroad) 2010-04-15 10:19:32 For the record, what is the: kernel version? gcc version? glibc version? binutils version? elazar By: Tilghman Lesher (tilghman) 2010-04-15 11:22:09 You'll need to replicate this under valgrind for us to take this any further. Please see doc/valgrind.txt. There is unfortunately very little that we can do without a repeatable case. By: Eddie Edwards (eddie edwards) 2010-04-16 03:56:47 We'll try to debug it here By: Leif Madsen (lmadsen) 2010-04-27 12:48:14 Any chance for the valgrind output soon? By: Paul Belanger (pabelanger) 2010-05-12 13:08:28 Suspended due to lack of activity. Please request a bug marshal in #asterisk-bugs on the IRC network irc.freenode.net to reopen the issue should you have the additional information requested. Further information can be found at http://www.asterisk.org/developers/bug-guidelines By: Digium Subversion (svnbot) 2010-07-21 11:15:02 Repository: asterisk Revision: 278465 U trunk/res/res_timing_pthread.c ------------------------------------------------------------------------ r278465 | russell | 2010-07-21 11:14:59 -0500 (Wed, 21 Jul 2010) | 41 lines Use poll() instead of select() in res_timing_pthread to avoid stack corruption. This code did not properly check FD_SETSIZE to ensure that it did not try to select() on fds that were too large. Switching to poll() removes the limitation on the maximum fd value. (closes issue ASTERISK-14848) Reported by: keiron (closes issue ASTERISK-15960) Reported by: Eddie Edwards (closes issue ASTERISK-15349) Reported by: Hubguru (closes issue ASTERISK-14670) Reported by: flop (closes issue ASTERISK-12249) Reported by: falves11 (closes issue ASTERISK-13973) Reported by: vrban (closes issue ASTERISK-15971) Reported by: aleksey2000 (closes issue ASTERISK-14385) Reported by: kowalma (closes issue ASTERISK-16185) Reported by: dcabot (closes issue ASTERISK-16085) Reported by: glwgoes (closes issue ASTERISK-15895) Reported by: erikje possibly other issues, too ... ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=278465 By: Digium Subversion (svnbot) 2010-07-21 11:20:20 Repository: asterisk Revision: 278479 _U branches/1.6.2/ U branches/1.6.2/res/res_timing_pthread.c ------------------------------------------------------------------------ r278479 | russell | 2010-07-21 11:20:17 -0500 (Wed, 21 Jul 2010) | 48 lines Merged revisions 278465 via svnmerge from https://origsvn.digium.com/svn/asterisk/trunk ........ r278465 | russell | 2010-07-21 11:15:00 -0500 (Wed, 21 Jul 2010) | 41 lines Use poll() instead of select() in res_timing_pthread to avoid stack corruption. This code did not properly check FD_SETSIZE to ensure that it did not try to select() on fds that were too large. Switching to poll() removes the limitation on the maximum fd value. (closes issue ASTERISK-14848) Reported by: keiron (closes issue ASTERISK-15960) Reported by: Eddie Edwards (closes issue ASTERISK-15349) Reported by: Hubguru (closes issue ASTERISK-14670) Reported by: flop (closes issue ASTERISK-12249) Reported by: falves11 (closes issue ASTERISK-13973) Reported by: vrban (closes issue ASTERISK-15971) Reported by: aleksey2000 (closes issue ASTERISK-14385) Reported by: kowalma (closes issue ASTERISK-16185) Reported by: dcabot (closes issue ASTERISK-16085) Reported by: glwgoes (closes issue ASTERISK-15895) Reported by: erikje possibly other issues, too ... ........ ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=278479 |