<p> Attention is currently required from: Sean Bright, Joshua Colp, Kevin Harwell. </p>
<p><a href="https://gerrit.asterisk.org/c/asterisk/+/17798">View Change</a></p><p>1 comment:</p><ul style="list-style: none; padding: 0;"><li style="margin: 0; padding: 0;"><p><a href="null">File pbx/pbx_config.c:</a></p><ul style="list-style: none; padding: 0;"><li style="margin: 0; padding: 0 0 0 16px;"><p style="margin-bottom: 4px;"><a href="https://gerrit.asterisk.org/c/asterisk/+/17798/comment/44b5360e_8d8c76cd">Patch Set #5, Line 2098:</a> <code style="font-family:monospace,monospace">  /*</code></p><p><blockquote style="border-left: 1px solid #aaa; margin: 10px 0; padding: 0 10px;">This will cause PBX execution to halt during the entire I/O and processing operation for extensions. […]</blockquote></p><p style="white-space: pre-wrap; word-wrap: break-word;">The reason for locking here, is that during pbx_load_config(), multiple calls to ast_add_extension2 are made without an overall lock, and other modules can squeek in and run ast_add_extension2 in the meantime while pbx_load_config() is running.</p><p style="white-space: pre-wrap; word-wrap: break-word;">If there is an early-bail like the one I have in this patch for ast_add_extension2, then half the dialplan fails to load during a dialplan reload because other modules are interrupting and doing things like updating hints from sip and whatnot.</p><p style="white-space: pre-wrap; word-wrap: break-word;">Locking PBX is good to know.  I was concerned about that but wasn't sure.  I know adding 'big locks' is the opposite direction of where things should go, but locking contexts while they are being written to en-masse did make sense at the time.</p><p style="white-space: pre-wrap; word-wrap: break-word;">I think the right/next step here is going to be the reverse approach...  I think ast_add_extension needs to queue up changes and implement an 'added' callback.</p><p style="white-space: pre-wrap; word-wrap: break-word;">For example extension_state_add_destroy() would need to be made to an async call to ast_add_extension with a registered completion callback because the assumption is that after the extension is added, we can use it.</p></li></ul></li></ul><p>To view, visit <a href="https://gerrit.asterisk.org/c/asterisk/+/17798">change 17798</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.asterisk.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.asterisk.org/c/asterisk/+/17798"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: asterisk </div>
<div style="display:none"> Gerrit-Branch: 18 </div>
<div style="display:none"> Gerrit-Change-Id: I435db97fc56f18b6f5c25a3e400603817b07aa49 </div>
<div style="display:none"> Gerrit-Change-Number: 17798 </div>
<div style="display:none"> Gerrit-PatchSet: 5 </div>
<div style="display:none"> Gerrit-Owner: Mark Murawski <markm@intellasoft.net> </div>
<div style="display:none"> Gerrit-Reviewer: Friendly Automation </div>
<div style="display:none"> Gerrit-Reviewer: Joshua Colp <jcolp@sangoma.com> </div>
<div style="display:none"> Gerrit-Reviewer: Sean Bright <sean@seanbright.com> </div>
<div style="display:none"> Gerrit-CC: Kevin Harwell <kharwell@digium.com> </div>
<div style="display:none"> Gerrit-Attention: Sean Bright <sean@seanbright.com> </div>
<div style="display:none"> Gerrit-Attention: Joshua Colp <jcolp@sangoma.com> </div>
<div style="display:none"> Gerrit-Attention: Kevin Harwell <kharwell@digium.com> </div>
<div style="display:none"> Gerrit-Comment-Date: Tue, 18 Jan 2022 13:32:08 +0000 </div>
<div style="display:none"> Gerrit-HasComments: Yes </div>
<div style="display:none"> Gerrit-Has-Labels: No </div>
<div style="display:none"> Comment-In-Reply-To: Joshua Colp <jcolp@sangoma.com> </div>
<div style="display:none"> Gerrit-MessageType: comment </div>