I am using Fedora 16 with default python2.7.2 installed, and found sometimes vdsm hanged at vdsm/storage/misc.py, func execFunc: p = subprocess.Popen(command, close_fds=True, cwd=cwd, stdin=infile, stdout=outfile, stderr=subprocess.PIPE, env=env)
Stopped command could be anything, most likely is "Thread-12::DEBUG::2012-04-12 11:18:08,995::__init__::1241::Storage.Misc.excCmd::(_log) '/usr/bin/sudo -n /sbin/iscsiadm -m session -R' (cwd None)" during vdsm booting up procedure. This happens only when an other thread is started at the same time by calling threading.thread.start(), which I found in clientIF._init(): self._hostStats.start()
When it happens , there would be two vdsm showed in ps command,: vdsm 13794 1 0 11:18 ? 00:00:00 /bin/bash -e /usr/share/vdsm/respawn --minlifetime 10 --daemon --masterpid /var/run/vdsm/respawn.pid /usr/share/vdsm/vdsm vdsm 13797 13794 0 11:18 ? 00:00:00 /usr/bin/python /usr/share/vdsm/vdsm vdsm 13837 13797 0 11:18 ? 00:00:00 /usr/bin/python /usr/share/vdsm/vdsm
Does anyone could give some idea about it? I made my own testing .py program calling misc.execFunc in one thread, and starting an other thread by start() in main thread, same thing happens with little chance, so I guess it is a bug in python threading and pipe, planning to change vdsm threading class to work around this.