From: Faiyaz Ahmed Date: Fri, 4 Apr 2008 19:44:34 +0000 (+0000) Subject: File locking isn't exclusive in the same process across threads. Switched to regular... X-Git-Tag: NodeManager-1.8-0~59 X-Git-Url: http://git.onelab.eu/?p=nodemanager.git;a=commitdiff_plain;h=be69c6fca3b19f87c483091cdfaa99d465d0c1c1 File locking isn't exclusive in the same process across threads. Switched to regular semaphores. The assumption is sliver_vs.configure is called before Vserver.start(), which sets disk_usage_initialized. The disk check should be skipped during start, so the lock won't carry over. ...I hope. --- diff --git a/sliver_vs.py b/sliver_vs.py index 13ff990..3060b9f 100644 --- a/sliver_vs.py +++ b/sliver_vs.py @@ -24,6 +24,9 @@ import vserver import accounts import logger import tools +from threading import BoundedSemaphore + +globalsem = BoundedSemaphore() # special constant that tells vserver to keep its existing settings KEEP_LIMIT = vserver.VC_LIM_KEEP @@ -42,7 +45,7 @@ class Sliver_VS(accounts.Account, vserver.VServer): SHELL = '/bin/vsh' TYPE = 'sliver.VServer' - _init_disk_info_sem = tools.NMLock("/var/run/nm-disk-info.lock") + _init_disk_info_sem = globalsem def __init__(self, rec): logger.verbose ('initing Sliver_VS with name=%s'%rec['name'])