[asterisk-dev] [Code Review] 4399: HTTP: Stop accepting requests on final system shutdown.

Matt Jordan reviewboard at asterisk.org
Tue Feb 3 13:43:14 CST 2015


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



/branches/13/main/asterisk.c
<https://reviewboard.asterisk.org/r/4399/#comment24910>

    It looks like you will double lock safe_system_lock here with the lock on line 1989.



/branches/13/main/http.c
<https://reviewboard.asterisk.org/r/4399/#comment24909>

    I'd change this to a 503 Service Unavailable. If you hit this, the HTTP server is unavailable (but still running), and may come back up.
    
    Granted, it may not, but we have to assume that the user plans on bringing Asterisk back up eventually...
    


- Matt Jordan


On Feb. 2, 2015, 6:21 p.m., rmudgett wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviewboard.asterisk.org/r/4399/
> -----------------------------------------------------------
> 
> (Updated Feb. 2, 2015, 6:21 p.m.)
> 
> 
> Review request for Asterisk Developers.
> 
> 
> Bugs: ASTERISK-24752
>     https://issues.asterisk.org/jira/browse/ASTERISK-24752
> 
> 
> Repository: Asterisk
> 
> 
> Description
> -------
> 
> There are three CLI commands to stop and restart Asterisk each.
> 
> 1) core stop/restart now - Hangup all calls and stop or restart Asterisk.
> 
> 2) core stop/restart gracefully - Stop or restart Asterisk when there are
> no calls in the system.  New channels are prevented while the shutdown
> request is pending.
> 
> 3) core stop/restart when convenient - Stop or restart Asterisk when there
> are no calls in the system.  New calls are not prevented while the
> shutdown request is pending.
> 
> ARI has made stopping/restarting Asterisk more problematic.  While a
> shutdown request is pending it is desirable to continue to process ARI
> HTTP requests for current calls.  To handle the current calls while a
> shutdown request is pending, a new committed to shutdown phase is needed
> so ARI applications can deal with the calls until the system is fully
> committed to shutdown.
> 
> * Added a new shutdown committed phase so ARI applications can deal with
> calls until the final committed to shutdown phase is reached.
> 
> * Made refuse new HTTP requests when the system has reached the final
> system shutdown phase.
> 
> * Split the bridging framework shutdown to not cleanup the global bridging
> containers when shutting down in a hurry.  This is similar to how other
> modules prevent crashes on rapid system shutdown.
> 
> * Moved prototypes for ast_begin_shutdown(), ast_cancel_shutdown(), and
> ast_shutting_down() to asterisk.h.  You should not have to include
> channel.h just to access these system functions.
> 
> 
> Diffs
> -----
> 
>   /branches/13/main/http.c 431537 
>   /branches/13/main/bridge.c 431537 
>   /branches/13/main/asterisk.c 431537 
>   /branches/13/include/asterisk/channel.h 431537 
>   /branches/13/include/asterisk.h 431537 
> 
> Diff: https://reviewboard.asterisk.org/r/4399/diff/
> 
> 
> Testing
> -------
> 
> Extended the final shutdown phase sleep so I could send a HTTP request
> while in the final shutdown phase.  The HTTP request was not refused while
> the shutdown request was pending and refused after the final shutdown
> phase was reached.
> 
> 
> Thanks,
> 
> rmudgett
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20150203/35587604/attachment.html>


More information about the asterisk-dev mailing list