Details
-
Problem report
-
Status: Open
-
Trivial
-
Resolution: Unresolved
-
None
-
None
-
None
-
None
Description
ZBXNEXT-6923 task added more functionality to server main process and new HA manager process, which is not included in the normal worker thread list.
Log level changing was based on the worker thread list, so handling of main/HA manager processes was added by calling custom sigusr1 hook after forwarding log level changing command to workers. The main process sigusr1 handler then checks if the log level scope includes main/HA manager processes and changes log level if necessary.
This approach is working, however trying to change main/HA manager process log level by pid (log_level_(in|de)crease=<pid>) will succeed while still logging incorrect message (<pid> process is not Zabbix child process).
To fix it we need to change how the custom sigusr1 hook is working. Currently it's called if the default sigusr1 signal handler does not recognize the command and also after log level change command has been processed, so basically post action hook. It should be changed to pre action hook - call it before processing commands and continue with default commands only if it returns FAIL.
This will allow main process to override sigusr1 default log change command handling if the scope is main/HA manager process.
All current custom sigusr1 hooks should be updated to return SUCCEED if they have handled the command and FAIL otherwise.