[Home]

Summary:ASTERISK-04440: [patch] a classical deadlock in chan_h323
Reporter:Pash (opa__)Labels:
Date Opened:2005-06-18 00:25:32Date Closed:2008-01-15 15:43:00.000-0600
Priority:MinorRegression?No
Status:Closed/CompleteComponents:Channels/chan_h323
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:( 0) ast-h323-lock2.diff
Description:it's look like problems of lock order:

ast_write():
locks chan->lock (from channel.c) then pvt->lock

connection made():
locks pvt->lock (from find_call_locked()) then pvt->owner->lock == chan->lock

some other call-backs have same problem.

we need something like grab_owner() from chan_alsa.c. IMHO

****** ADDITIONAL INFORMATION ******

tested on ASTERISK-3875. but chan_h323.c 1.119 are same
see ASTERISK-3875 for traces (deadlock).

Reproductivity are "always", but under my (low) load it's several time per day.
Comments:By: Paul Cadach (pcadach) 2005-07-21 04:51:09

Please, try attached patch and report how it helps you.

By: jerjer (jerjer) 2005-07-27 00:38:54

comitted to cvs -head.

By: jerjer (jerjer) 2005-07-27 00:39:06

not in -stable.

By: Digium Subversion (svnbot) 2008-01-15 15:43:00.000-0600

Repository: asterisk
Revision: 6234

U   trunk/channels/chan_h323.c

------------------------------------------------------------------------
r6234 | jeremy | 2008-01-15 15:43:00 -0600 (Tue, 15 Jan 2008) | 2 lines

Stomp on deadlock. Bug ASTERISK-4440

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=6234