[Home]

Summary:ASTERISK-04474: [patch] res_agi.c, launch_netscript() does not handle any system call interuption
Reporter:Donny Kavanagh (donnyk)Labels:
Date Opened:2006-02-09 13:01:54.000-0600Date Closed:2008-01-15 16:47:25.000-0600
Priority:MinorRegression?No
Status:Closed/CompleteComponents:Resources/res_agi
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:( 0) res_agiv2.patch
Description:launch_netscript() within res_agi.c had no mechanism to handle any interuption, which could (and was caused) by running two agi scripts sequentially without any pause.

explanation from kevin:
"the problem is happening because FastAGI is getting called before the child process from the AGI call has been reaped, when the SIGCHLD comes in, it interrupts the system call and FastAGI does not handle that right"

****** STEPS TO REPRODUCE ******

exten => _4323,1,AGI(IVRRoute.php)
exten => _4323,2,AGI(agi://${IVR_IP}/${IVR_Args})

-- call a agi script, followed by another.  I'm not sure if the first must be non fast agi to trigger the effect.

-- This is not guaranteed to reproduce, it depends on system speed, load, etc. and who knows what other factors.

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

I wrote the patch for 1.2.4 as per kevins request.  Its very simple, so i'd imagine it will apply to trunk without issue.

My disclaimer is on file.

This may or may not be the most elegant solution, as i lack expirence with unix sockets.  So i'm open to suggestions.
Comments:By: Donny Kavanagh (donnyk) 2006-02-10 11:20:57.000-0600

bump, for this simple 2 second patch, resolving a functional bug in release trunk.

By: Donny Kavanagh (donnyk) 2006-02-11 23:07:27.000-0600

nothing changed, inadvertantally had some spaces instead of tabs in initial upload.

By: Donny Kavanagh (donnyk) 2006-02-14 10:00:14.000-0600

ping.

By: Kevin P. Fleming (kpfleming) 2006-02-14 17:38:34.000-0600

Committed to branch-1.2 and trunk. Thanks!

By: Digium Subversion (svnbot) 2008-01-15 16:47:24.000-0600

Repository: asterisk
Revision: 10108

U   branches/1.2/res/res_agi.c

------------------------------------------------------------------------
r10108 | kpfleming | 2008-01-15 16:47:24 -0600 (Tue, 15 Jan 2008) | 2 lines

ensure that FastAGI launcher can handle system call interruption (issue ASTERISK-4474)

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

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

By: Digium Subversion (svnbot) 2008-01-15 16:47:25.000-0600

Repository: asterisk
Revision: 10109

_U  trunk/
U   trunk/res/res_agi.c

------------------------------------------------------------------------
r10109 | kpfleming | 2008-01-15 16:47:24 -0600 (Tue, 15 Jan 2008) | 10 lines

Merged revisions 10021,10108 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r10108 | kpfleming | 2006-02-14 18:36:57 -0600 (Tue, 14 Feb 2006) | 2 lines

ensure that FastAGI launcher can handle system call interruption (issue ASTERISK-4474)

........

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

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