[Home]

Summary:ASTERISK-03405: Race condition in ast_request_and_dial
Reporter:Tilghman Lesher (tilghman)Labels:
Date Opened:2005-02-01 00:47:52.000-0600Date Closed:2011-06-07 14:05:00
Priority:MajorRegression?No
Status:Closed/CompleteComponents:Core/General
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:
Description:After ast_request_and_dial calls ast_request(), which invokes a new thread for the channel, ast_request_and_dial() modifies core channel structures without locking the channel first.  Since the channel could potentially exit at any time following its thread creation, this is a potential race condition.

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

The channel probably needs to be locked prior to invoking any thread creation, including invoking the various monitor threads of the various channel modules, to be unlocked only after we are done allocating and setting channel structure elements in the request routines.
Comments:By: Mark Spencer (markster) 2005-02-01 00:48:47.000-0600

Again, you are mistaken, ast_request does not spawn a new thread.