all lists on lists.proxmox.com
 help / color / mirror / Atom feed
From: "Fabian Grünbichler" <f.gruenbichler@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [PATCH cluster 3/3] pmxcfs: enable QB log thread
Date: Thu,  1 Oct 2020 10:53:26 +0200	[thread overview]
Message-ID: <20201001085326.3815261-4-f.gruenbichler@proxmox.com> (raw)
In-Reply-To: <20201001085326.3815261-1-f.gruenbichler@proxmox.com>

since pmxcfs is a multi-threaded application, and `man qblog.h`
explicitly states:

 Thread safe non-blocking logging.

 Logging is only thread safe when threaded logging is in use. If you
 plan on logging from multiple threads, you must initialize libqb's
 logger thread and use qb_log_filter_ctl to set the QB_LOG_CONF_THREADED
 flag on all the logging targets in use.

without this we can lose log messages under high load, especially when
enabling debug mode to trouble-shoot issues.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---

Notes:
    this would have saved Alexandre and me quite a bit of back and forth and false
    leads ;)

 data/src/pmxcfs.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/data/src/pmxcfs.c b/data/src/pmxcfs.c
index 00aa53d..3146121 100644
--- a/data/src/pmxcfs.c
+++ b/data/src/pmxcfs.c
@@ -1005,8 +1005,13 @@ int main(int argc, char *argv[])
 		}
 	} else {
 		write_pidfile(getpid());
+		// foreground == STDERR logging enabled, make it threaded
+		qb_log_ctl(QB_LOG_STDERR, QB_LOG_CONF_THREADED, QB_TRUE);
 	}
 
+	qb_log_ctl(QB_LOG_SYSLOG, QB_LOG_CONF_THREADED, QB_TRUE);
+	qb_log_thread_start();
+
 	wrote_pidfile = TRUE;
 
 	cfs_loop_t *corosync_loop = cfs_loop_new(fuse);
-- 
2.20.1





  parent reply	other threads:[~2020-10-01  8:54 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-01  8:53 [pve-devel] [PATCH cluster 0/3] logging improvements Fabian Grünbichler
2020-10-01  8:53 ` [pve-devel] [RFC cluster 1/3] pmxcfs: switch log domain to enum Fabian Grünbichler
2020-10-01  8:53 ` [pve-devel] [PATCH cluster 2/3] pmxcfs: set log domain in more places Fabian Grünbichler
2020-10-01  8:53 ` Fabian Grünbichler [this message]
2021-04-22 19:45 ` [pve-devel] [PATCH cluster 0/3] logging improvements Thomas Lamprecht

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201001085326.3815261-4-f.gruenbichler@proxmox.com \
    --to=f.gruenbichler@proxmox.com \
    --cc=pve-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal