> On Jun 17, 2019, at 4:27 PM, Bryan Call <bc...@apache.org> wrote:
> 
> I would assume he is going to be calling ink_emergency(), so it wouldn’t be a 
> management API.

That’s not what I meant :).

I believe things that does process management, such as stop / start / check 
status etc. etc. all belongs in the mgmt APIs. Meaning, you signal 
traffic_manager what your intent is, and it does the appropriate marshaling and 
scheduling of events. Then the local manager handler for this event calls 
“ink_emergency()” inside of traffic_server, on behalf of the management API.

I understand your point though, this would be something a plugin would do as an 
extreme Error() call.  If this is what we want, then I agree with bcall in that 
it should be like TSError(), e.g. TSEmergency().

While looking at this, I noticed that we call Emergency when parsing 
records.config, that’s a really bad idea :-/. Commit #7f08ad6044, I will file 
an Issue, we should remove that.

Cheers,

— Leif

> 
> Fei, can you add more details about what "This API is a wrapper for the 
> "Emergency” call” is really going to do?
> 
> -Bryan
> 
> 
>> On Jun 17, 2019, at 3:22 PM, Leif Hedstrom <zw...@apache.org> wrote:
>> 
>> 
>> 
>>> On Jun 17, 2019, at 4:16 PM, Bryan Call <bc...@apache.org> wrote:
>>> 
>>> I would recommend having it like TSDebug and TSError.
>>> 
>>> tsapi void TSEmergency(const char *fmt, ...) TS_PRINTFLIKE(1, 2);
>>> 
>>> TSDebug and TSError:
>>> tsapi void TSDebug(const char *tag, const char *format_str, ...) 
>>> TS_PRINTFLIKE(2, 3);
>>> tsapi void TSError(const char *fmt, ...) TS_PRINTFLIKE(1, 2);
>>> 
>> 
>> 
>> What I don’t like with the original idea is that we’re putting management 
>> APIs (which we have ts/mgmt.h for) into the plugin APIs. There should be 
>> nothing stopping a plugin from using the management APIs I don’t think? If 
>> there is, that’s yet another issue. 
>> 
>> I feel reasonably strongly about not merging ts/hmgmt.h functionality into 
>> ts/ts.h.
>> 
>> — Leif
>> 
>>> 
>>> -Bryan
>>> 
>>> 
>>>> On Jun 17, 2019, at 2:13 PM, Fei Deng <duke8...@apache.org> wrote:
>>>> 
>>>> void TSEmergencyShutdown(const char *log_msg);
>>>> 
>>>> This API is a wrapper for the "Emergency" call, which signals
>>>> traffic_manager to not restart traffic_server after the shutdown, i.e. this
>>>> call should be used when something has gone wrong and cannot be recovered
>>>> by a restart.
>>> 
>> 
> 

Reply via email to