[Home]

Summary:ASTERISK-08973: when stress-testing load/unloading modules, * deadlocks
Reporter:Clod Patry (junky)Labels:
Date Opened:2007-03-08 14:16:22.000-0600Date Closed:2007-07-11 19:59:05
Priority:MinorRegression?No
Status:Closed/CompleteComponents:Core/General
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:( 0) test_loader.php
Description:When running the attached script,
* deadlocks after 6 full loads/unloads.

if im adding the sleep(1), * run without any problems.

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

this is the last output(in the 7th loop)

send to AMI: module unload app_forkcdr.so
send to AMI: module load app_forkcdr.so
send to AMI: module unload app_getcpeid.so
send to AMI: module load app_getcpeid.so
send to AMI: module unload app_hasnewvoicemail.so
send to AMI: module load app_hasnewvoicemail.so
send to AMI: module unload app_ices.so
send to AMI: module load app_ices.so
send to AMI: module unload app_image.so




Comments:By: Joshua C. Colp (jcolp) 2007-03-27 19:15:02

The issue here is that the module being unloaded is unregistering a manager action. Well... while this manager action (to execute a command) is executing that list is held in read only, so when it goes to unregister the action it waits indefinitely. This is just one of those things that you should not do over the asterisk manager interface.

By: Clod Patry (junky) 2007-03-27 19:48:39

which module exactly? why does it happen only after 6 loops?

By: Joshua C. Colp (jcolp) 2007-05-24 10:30:08

Fixed in 1.4 as of revision 65902 and trunk as of revision 65905. There is now a blacklist of commands that should never be executed using the AMI Command action.