So this is what it looks like now: tsapi void TSEmergency(const char *fmt, ...) { va_list args;
va_start(args, fmt); EmergencyV(fmt, args); va_end(args); } Regards, Fei Deng On Tue, Jun 18, 2019 at 9:41 AM Fei Deng <duke8...@gmail.com> wrote: > Yes, this is suggested by Alan and Susan, since sometimes we need plugins > to be able to abort and not try to restart (say if some important files are > missing). I'll change the name to TSEmergency(). > > And I'll look at TSDebug and TSError, and make it similar to those. > > Regards, > Fei Deng > > > On Mon, Jun 17, 2019 at 5:59 PM Bryan Call <bc...@apache.org> wrote: > >> Looking how Emergency() vs ink_emergency() works. The only difference is >> Emergency() calls Diags::cleanup_func() with is only defined in >> traffic_manager. >> >> Here is the call stack for Emergency(): >> Emergency > DiagsError > diags->error > error_va > ink_emergency_va > >> ::exit(UNRECOVERABLE_EXIT) >> >> Vs >> ink_emergency > ink_emergency_va > ::exit(UNRECOVERABLE_EXIT) >> >> -Bryan >> >> >> > On Jun 17, 2019, at 3: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. >> > >> > 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. >> >>> >> >> >> > >> >>