You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Bug#31410674: RESTORE SET PERSISTED LOG_ERROR_VERBOSITY IN TIME TO AFFECT INNODB SET-UP
During start-up, the order is roughly,
- read .cnf files
- read SET PERSISTed system variables
- restore "read-only_ persists by appending
them to the command-line
- parse "early" command-line options
(handle_early_options())
- init many things (incl. error log)
- parse "regular" command-line options (get_options())
- init server components
(open error log, init InnoDB, init DD, read auto.cnf, ...)
- component infrastructure
(as dependent on InnoDB for its config)
- restore "regular" PERSISTs by emulating SET GLOBAL ...
- engage loadable logging components
...
This means that if setting log_error_verbosity on
the command-line, the new value will be set and
become active before InnoDB starts.
However if log_error_verbosity is PERSISTed,
it is restored as a "regular_ persisted sys-var,
and therefore only after InnoDB has started.
As a result, its value will not be used to filter
InnoDB's start-up messages.
Fix:
Tagging the sys-var, log_error_verbosity,
as PERSIST_AS_READONLY results in the
persisted value being restored via the
command-line.
This way,
a) the value will be set before InnoDB
starts up, so InnoDB's messages will be
filtered using the desired verbosity;
b) the log_error_verbosity's behaviour
when using SET PERSIST is more in line
with its behaviour when setting the
value from the command-line.
Patch flags log_error_suppression_list
in the same way. As it is an option
for filtering error-log messages that
affects the same filter (log_filter_internal),
it should be applied at the same time to
avoid surprises.
Approved by: Jens Even Blomsoy <[email protected]>
0 commit comments