Blob Blame History Raw
From 2596dc814f05ce7575816e01857b2b1bdcfed4e9 Mon Sep 17 00:00:00 2001
From: Patrick Uiterwijk <puiterwijk@redhat.com>
Date: Fri, 2 Dec 2016 18:00:52 +0000
Subject: [PATCH] Lock the buildsystem while logging in

Signed-off-by: Patrick Uiterwijk <puiterwijk@redhat.com>
---
 bodhi/server/buildsys.py | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/bodhi/server/buildsys.py b/bodhi/server/buildsys.py
index fbbcd347..6fbe5f6f 100644
--- a/bodhi/server/buildsys.py
+++ b/bodhi/server/buildsys.py
@@ -14,6 +14,7 @@
 
 import time
 import logging
+from threading import Lock
 
 from os.path import join, expanduser
 
@@ -314,18 +315,20 @@ def get_krb_conf(config):
 
 def get_session():
     """ Get a new buildsystem instance """
-    global _buildsystem
-    if not _buildsystem:
-        log.warning('No buildsystem configured; assuming testing')
-        return DevBuildsys()
-    return _buildsystem()
+    global _buildsystem, _buildsystem_login_lock
+    with _buildsystem_login_lock:
+        if not _buildsystem:
+            log.warning('No buildsystem configured; assuming testing')
+            return DevBuildsys()
+        return _buildsystem()
 
 
 def setup_buildsystem(settings):
-    global _buildsystem, _koji_hub
+    global _buildsystem, _koji_hub, _buildsystem_login_lock
     if _buildsystem:
         return
 
+    _buildsystem_login_lock = Lock()
     _koji_hub = settings.get('koji_hub')
     buildsys = settings.get('buildsystem')
 
-- 
2.11.0