[asterisk-dev] [Code Review] 3127: Protect CEL data structures during reload and shutdown. v11 version.
rmudgett
reviewboard at asterisk.org
Tue Jan 14 16:24:12 CST 2014
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/3127/
-----------------------------------------------------------
Review request for Asterisk Developers.
Bugs: AST-1253
https://issues.asterisk.org/jira/browse/AST-1253
Repository: Asterisk
Description
-------
The CEL data structures need to be protected during a configuration reload and shutdown. Asterisk crashed during a shutdown because CEL events were still in flight and the CEL data structures were already destroyed.
* Protected the appset and linkedids ao2 containers using the reload_lock. As a result appset, linkedids, and held objects don't need a lock.
* Added NULL checks before use of the appset and linkedids ao2 containers in case the CEL module is already shutdown.
* Fixed overloading of the linkedids held objects reference count. During shutdown any held objects would be leaked.
* Fixed memory leak of linkedids held objects if the LINKEDID_END is not being tracked. The objects in the linkedids container were not removed if the LINKEDID_END event is not used.
* Added access protection to the appset container during the CLI "cel show status" command.
* Made CEL config reload not set defaults if the cel.conf file is invalid.
Diffs
-----
/branches/11/main/cel.c 405542
Diff: https://reviewboard.asterisk.org/r/3127/diff/
Testing
-------
* Checked CLI "cel show status" output was as expected.
* Checked CEL logs for APP_START/APP_END/LINKEDID_END events after a call.
* Shutdown asterisk with "core stop now" and "core stop gracefully" without any crashes.
Thanks,
rmudgett
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20140114/af31f2bc/attachment.html>
More information about the asterisk-dev
mailing list