[asterisk-dev] [Code Review] Resolve some cleanup issues during module unload of chan_iax2

Russell Bryant russell at digium.com
Tue Jun 22 17:50:39 CDT 2010


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/736/
-----------------------------------------------------------

Review request for Asterisk Developers.


Summary
-------

The external test suite stops Asterisk using the "core stop gracefully" command.  The logs from the tests show that there are a number of problems with Asterisk trying to cleanly shut down.  This patch addresses the following type of error that comes from chan_iax2:

[Jun 22 16:58:11] ERROR[29884]: lock.c:129 __ast_pthread_mutex_destroy: chan_iax2.c line 11371 (iax2_process_thread_cleanup): Error destroying mutex &thread->lock: Device or resource busy

For an example in the context of a build, see:

http://bamboo.asterisk.org/browse/AST-TRUNK-739/log

The primary purpose of this patch is to change the thread pool shutdown procedure to be more explicit to ensure that the thread exits from a point where it is not holding a lock.  While testing that, I encountered various crashes due to the order of operations in unload_module() being problematic.  I reordered some things there, as well.


Diffs
-----

  /trunk/channels/chan_iax2.c 272048 

Diff: https://reviewboard.asterisk.org/r/736/diff


Testing
-------

I have started and stopped Asterisk using "core stop gracefully" many times and ensured that no errors were produced by chan_iax2.  I also ran the same process under valgrind a few times and ensured that it did not report any problems.


Thanks,

Russell




More information about the asterisk-dev mailing list