Search squid archive

Re: messages when "squid -k rotate" is run

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

 



On 2024-11-21 07:29, Matus UHLAR - fantomas wrote:
I run squid 6 (currently 6.10) on some debian hosts.

when rotating logs in the night, I get mail about cron output:

2024/11/21 00:00:41| Processing Configuration File: /etc/squid/squid.conf (depth 0) 2024/11/21 00:00:41| Processing Configuration File: /etc/squid/conf.d/debian.conf (depth 1) 2024/11/21 00:00:41| Processing Configuration File: /etc/squid/conf.d/ftplog.conf (depth 1)
2024/11/21 00:00:41| Set Current Directory to /var/spool/squid

This did not happen with squid-5.7
- is this a bug or a new feature?

IIRC, it is a side effect of a bug fix (or a series of bug fixes, to be more precise). Earlier, such messages were dropped or went to cache.log (violating locking rules and messing up triage of other complicated bugs and misconfigurations).

Those messages are sent to stderr, not stdout. I can imply redirect the "squid -k rotate" stderr to /dev/null but I would like to avoid it when possible - if any error happens, I't like to know about that.

On 21.11.24 16:16, Alex Rousskov wrote:
If you are OK with not seeing these particular messages in cache.log and on stderr, disable their level-1 reporting using cache_log_message directive. The ID of those messages is 68 (see doc/debug-messages.dox for IDs of other messages that can be controlled in your Squid).

Only cache.log would be ideal. However, the description at http://www.squid-cache.org/Doc/config/cache_log_message/ is not clear enough what exactly that level means, and unfortunately you didn't make id more clear.
(the page is mentioning doc/debug-messages.txt btw)

Do I understand it properly that level 1 goes to stderr+cache.log and level 2 nowhere?

For example:

   cache_log_message id=68 level=2


IIRC: Core developers failed to reach consensus regarding the best level for these messages, so their original "important" level (1) was preserved. The argument was "folks are quite often mistaken regarding what configuration files their Squids are actually using".

That makes sense, kinda.

If you want Squid to only report errors to stderr, then you will need to wait for (or orchestrate) the corresponding code changes. Currently, Squid defines error as a message with an ERROR: or FATAL: prefix. There is no Squid code to treat such messages specially though (yet?). For more details, please see https://github.com/squid-cache/squid/commit/d816f28de8ba817a98a49f9cfd88ddaa334d7aad

You may be able to emulate the above error detection/handling (including its risks related to incorrectly unclassified/unprefixed messages) via a shell script. For example, something like this might be a good starting point:

   squid -k rotate |& grep -E "FATAL:|ERROR:"

or, with added logging of all stderr messages:

   squid -k rotate |& \
       tee squid-last-rotate.log | \
       grep -E "FATAL:|ERROR:"

However, the above sketches need more work/adjustments to preserve "squid -k rotate" exit status code!

--
Matus UHLAR - fantomas, uhlar@xxxxxxxxxxx ; http://www.fantomas.sk/
Warning: I wish NOT to receive e-mail advertising to this address.
Varovanie: na tuto adresu chcem NEDOSTAVAT akukolvek reklamnu postu.
M$ Win's are shit, do not use it !
_______________________________________________
squid-users mailing list
squid-users@xxxxxxxxxxxxxxxxxxxxx
https://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