a902eef
From 2596dc814f05ce7575816e01857b2b1bdcfed4e9 Mon Sep 17 00:00:00 2001
a902eef
From: Patrick Uiterwijk <puiterwijk@redhat.com>
a902eef
Date: Fri, 2 Dec 2016 18:00:52 +0000
a902eef
Subject: [PATCH] Lock the buildsystem while logging in
a902eef
a902eef
Signed-off-by: Patrick Uiterwijk <puiterwijk@redhat.com>
a902eef
---
a902eef
 bodhi/server/buildsys.py | 15 +++++++++------
a902eef
 1 file changed, 9 insertions(+), 6 deletions(-)
a902eef
a902eef
diff --git a/bodhi/server/buildsys.py b/bodhi/server/buildsys.py
a902eef
index fbbcd347..6fbe5f6f 100644
a902eef
--- a/bodhi/server/buildsys.py
a902eef
+++ b/bodhi/server/buildsys.py
a902eef
@@ -14,6 +14,7 @@
a902eef
 
a902eef
 import time
a902eef
 import logging
a902eef
+from threading import Lock
a902eef
 
a902eef
 from os.path import join, expanduser
a902eef
 
a902eef
@@ -314,18 +315,20 @@ def get_krb_conf(config):
a902eef
 
a902eef
 def get_session():
a902eef
     """ Get a new buildsystem instance """
a902eef
-    global _buildsystem
a902eef
-    if not _buildsystem:
a902eef
-        log.warning('No buildsystem configured; assuming testing')
a902eef
-        return DevBuildsys()
a902eef
-    return _buildsystem()
a902eef
+    global _buildsystem, _buildsystem_login_lock
a902eef
+    with _buildsystem_login_lock:
a902eef
+        if not _buildsystem:
a902eef
+            log.warning('No buildsystem configured; assuming testing')
a902eef
+            return DevBuildsys()
a902eef
+        return _buildsystem()
a902eef
 
a902eef
 
a902eef
 def setup_buildsystem(settings):
a902eef
-    global _buildsystem, _koji_hub
a902eef
+    global _buildsystem, _koji_hub, _buildsystem_login_lock
a902eef
     if _buildsystem:
a902eef
         return
a902eef
 
a902eef
+    _buildsystem_login_lock = Lock()
a902eef
     _koji_hub = settings.get('koji_hub')
a902eef
     buildsys = settings.get('buildsystem')
a902eef
 
a902eef
-- 
a902eef
2.11.0
a902eef