5dcd63e batches.py: Don't pass SQLAlchemy objects between threads

Authored and Committed by otaylor 2 years ago
    batches.py: Don't pass SQLAlchemy objects between threads
    
    SQLAlchemy objects can't be used from multiple threads - so when starting
    threads for builds, pass the ComponentBuild id rather than the object.
    (Note that despite the comment that the threads were sharing a session,
    they weren't - what was passed to the thread was a scoped_session that
    acts as a separate thread-local session per-thread.)
    
    BUILD_COMPONENT_DB_SESSION_LOCK - a threading.Lock() object that was used
    in a few places - but not nearly enough places to effectively lock usage
    of a shared session - is removed.
    
        
  • jenkins
    failure
    Build #1876 failed (commit: 5dcd63eb)
    2 years ago