
On 03/10/2014 09:01 AM, Daniel P. Berrange wrote:
A earlier commit changed the global log buffer so that it only records messages that are explicitly requested via the log filters setting. This removes the performance burden, and improves the signal/noise ratio for messages in the global buffer. At the same time though, it is somewhat pointless, since all the recorded log messages are already going to be sent to an explicit log output like syslog, stderr or the journal. The global log buffer is thus just duplicating this data on stderr upon crash.
Signed-off-by: Daniel P. Berrange <berrange@redhat.com> --- daemon/libvirtd-config.c | 3 - daemon/libvirtd-config.h | 1 - daemon/libvirtd.c | 2 - daemon/libvirtd.conf | 10 +- docs/logging.html.in | 10 -- src/libvirt_private.syms | 2 - src/locking/lock_daemon.c | 2 - src/locking/lock_daemon_config.c | 2 - src/locking/lock_daemon_config.h | 1 - src/locking/virtlockd.conf | 10 +- src/rpc/virnetserver.c | 45 ------- src/util/virlog.c | 264 +-------------------------------------- src/util/virlog.h | 2 - 13 files changed, 13 insertions(+), 341 deletions(-)
+++ b/daemon/libvirtd.conf @@ -345,11 +345,11 @@ #log_outputs="3:syslog:libvirtd" #
-# Log debug buffer size: default 64 -# The daemon keeps an internal debug log buffer which will be dumped in case -# of crash or upon receiving a SIGUSR2 signal. This setting allows to override -# the default buffer size in kilobytes. -# If value is 0 or less the debug log buffer is deactivated +# Log debug buffer size: +# +# This configuration option is no longer used, since the global +# log buffer functionality has been removed. Please configure +# suitable log_outputs/log_filters settings to obtain logs. #log_buffer_size = 64
Yay, this fixes my concern from v1.
@@ -412,23 +384,6 @@ virNetServerPtr virNetServerNew(size_t min_workers, sig_action.sa_handler = SIG_IGN; sigaction(SIGPIPE, &sig_action, NULL);
- /* - * catch fatal errors to dump a log, also hook to USR2 for dynamic - * debugging purposes or testing - */ - sig_action.sa_sigaction = virNetServerFatalSignal; - sig_action.sa_flags = SA_SIGINFO; - sigaction(SIGFPE, &sig_action, NULL); - sigaction(SIGSEGV, &sig_action, NULL); - sigaction(SIGILL, &sig_action, NULL); - sigaction(SIGABRT, &sig_action, NULL); -#ifdef SIGBUS - sigaction(SIGBUS, &sig_action, NULL); -#endif -#ifdef SIGUSR2 - sigaction(SIGUSR2, &sig_action, NULL); -#endif
This says we now let fatal errors be handled normally; but the old code merely tried to dump the log then re-raise the fatal error. So I can live with this (I still think it might be nicer to try and output a bug-reporting address before crashing, but I'm not going to insist). ACK -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org