Search squid archive

Re: Survey on assertions: When the impossible happens

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




* Choices.

Overall, there are three options for handling an impossible situation:

1. Quit Squid process. This is what Squid does today in most cases.
    When the impossible happens, you get a crash. Very predictable.
    No malformed/corrupted/misleading HTTP messages (some are truncated).
    No memory leaks.

2. Quit the current processing sequence but keep Squid process running,
    assuming that [most] other processing sequences are not affected.
    [If you are familiar with programming, this is done by throwing
    exceptions instead of asserting and catching those exceptions at
    "processing sequence" boundaries].

3. Keep executing the current processing sequence, assuming that the
    assertion was wrong or unimportant. This is what you might be
    suggesting above. When the impossible happens, you may get a crash,
    memory leaks, malformed/corrupted/misleading HTTP messages, or normal
    behavior, depending on the assertion and traffic.

IMO, we should make #2 the default, but make the choice between all
three options configurable by the admin (without recompiling Squid).

Let me suggest #4 :

immediately execute an external program that calls gdb or any other debugger
which produces a stack trace of all squid processes and then do #1 or #2.

The stack dumps will be save in an assertion failure log file which admins
can send to Squid developers.

This will speedup the debugging and fixing procedure.

Finally, there must be a mechanism that warns admins that an assertion failure
happened.  This is not trivial since an admin does not look every day
in the squid log file.

Marcus
_______________________________________________
squid-users mailing list
squid-users@xxxxxxxxxxxxxxxxxxxxx
http://lists.squid-cache.org/listinfo/squid-users




[Index of Archives]     [Linux Audio Users]     [Samba]     [Big List of Linux Books]     [Linux USB]     [Yosemite News]

  Powered by Linux