----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviewboard.asterisk.org/r/4457/#review14576 -----------------------------------------------------------
Ship it! Ship It! - Mark Michelson On March 3, 2015, 5:23 p.m., Matt Jordan wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviewboard.asterisk.org/r/4457/ > ----------------------------------------------------------- > > (Updated March 3, 2015, 5:23 p.m.) > > > Review request for Asterisk Developers. > > > Repository: Asterisk > > > Description > ------- > > When a 'core restart now' or 'core stop now' is executed and a channel is > currently in a media operation, the translator matrix can be destroyed while > a channel is currently blocked on getting the best translation choice (see > ast_translator_best_choice). When the channel gets the mutex, the translation > matrix now has invalid memory, and Asterisk crashes. > > This patch does two things: > (1) We now only clean up the translation matrix on a graceful shutdown. In > that case, there are no channels, and so there is no risk of this occurring. > (2) We also now set the __matrix and __indextable to NULL. In some initial > backtraces when this occurred, it looked as if there was a memory corruption > occurring, and it wasn't until we determined that something had restarted > Asterisk that the issue became clear. By setting these to NULL on shutdown, > it becomes a bit easier to determine why a crash is occurring. > > Note that we could litter the code with NULL checks on the __matrix, but the > act of making the translation matrix cleaned up on shutdown should preclude > this issue from occurring in the first place, and this part of the code needs > to be as fast as possible. > > > Diffs > ----- > > /branches/13/main/translate.c 432443 > > Diff: https://reviewboard.asterisk.org/r/4457/diff/ > > > Testing > ------- > > > Thanks, > > Matt Jordan > >
-- _____________________________________________________________________ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- asterisk-dev mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-dev