At present, if the super vdsm server dies with an exception inside
Python's multiprocessing module, then it will not usually produce any
useful debugging output.
The multiprocessing module includes error logging using Python's logging
module, but it is not enabled by default. This patch enables the
logging and sets it to propagate to the supervdsmServer's root logger,
so it now defaults to producing logging and can be configured easily
from /etc/vdsm/svdsm.logger.conf.
Signed-off-by: David Gibson <david(a)gibson.dropbear.id.au>
---
vdsm/supervdsmServer | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/vdsm/supervdsmServer b/vdsm/supervdsmServer
index 40ec9df..43a408f 100755
--- a/vdsm/supervdsmServer
+++ b/vdsm/supervdsmServer
@@ -42,6 +42,7 @@ except:
log.warn("Could not init proper logging", exc_info=True)
from storage import fuser
+import multiprocessing
from multiprocessing import Pipe, Process
from gluster import listPublicFunctions
import storage.misc as misc
@@ -356,6 +357,9 @@ class _SuperVdsm(object):
def main(sockfile, pidfile=None):
log = logging.getLogger("SuperVdsm.Server")
+ # Wire up the multiprocessing logger
+ mlog = multiprocessing.get_logger()
+ mlog.propagate = 1
def bind(func):
def wrapper(_SuperVdsm, *args, **kwargs):
--
1.8.3.1
--
David Gibson <dgibson(a)redhat.com>