[Home]

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:31Date Closed:2010-07-21 11:20:21
Priority:CriticalRegression?No
Status:Closed/CompleteComponents: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