----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviewboard.asterisk.org/r/4034/#review13431 -----------------------------------------------------------
Ship it! Ship It! - Mark Michelson On Sept. 30, 2014, 7:24 p.m., rmudgett wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviewboard.asterisk.org/r/4034/ > ----------------------------------------------------------- > > (Updated Sept. 30, 2014, 7:24 p.m.) > > > Review request for Asterisk Developers. > > > Bugs: ASTERISK-24356 > https://issues.asterisk.org/jira/browse/ASTERISK-24356 > > > Repository: Asterisk > > > Description > ------- > > Performing a directed call pickup resulted in a deadlock when PJSIP channels > were involved. > > A masquerade needs to hold onto the channel locks while it swaps channel > information between > the two channels involved in the masquerade. With PJSIP channels, the fixup > routine needed > to push a fixup task onto the PJSIP channel's serializer. Unfortunately, if > the serializer > was also processing a task that needed to lock the channel, you get deadlock. > > * Added a new control frame that is used to notify the channels that a > masquerade is about to start and when it has completed. > > * Added the ability to query supported taskprocessors if the current thread > is the > taskprocessor thread. > > * Added the ability to suspend/unsuspend the PJSIP serializer thread so a > masquerade could > fixup the PJSIP channel without using the serializer. > > > Diffs > ----- > > /branches/13/res/res_pjsip_session.exports.in 424175 > /branches/13/res/res_pjsip_session.c 424175 > /branches/13/main/taskprocessor.c 424175 > /branches/13/main/core_unreal.c 424175 > /branches/13/main/channel.c 424175 > /branches/13/main/bridge_channel.c 424175 > /branches/13/include/asterisk/taskprocessor.h 424175 > /branches/13/include/asterisk/res_pjsip_session.h 424175 > /branches/13/include/asterisk/frame.h 424175 > /branches/13/funcs/func_frame_trace.c 424175 > /branches/13/channels/chan_unistim.c 424175 > /branches/13/channels/chan_skinny.c 424175 > /branches/13/channels/chan_sip.c 424175 > /branches/13/channels/chan_pjsip.c 424175 > /branches/13/channels/chan_motif.c 424175 > /branches/13/channels/chan_misdn.c 424175 > /branches/13/channels/chan_iax2.c 424175 > /branches/13/addons/chan_ooh323.c 424175 > > Diff: https://reviewboard.asterisk.org/r/4034/diff/ > > > Testing > ------- > > * Performed several directed call pickups without deadlocking. Before the > patch, the system would usually deadlock. > > * Performed a SIP attended transfer to an appliction. The transfer still > works. > > > Thanks, > > rmudgett > >
-- _____________________________________________________________________ -- 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
