From 6b3409c605dfab4ae6a950f364e36d724966bbe5 Mon Sep 17 00:00:00 2001 From: Pavel Raiskup Date: Dec 06 2016 06:43:04 +0000 Subject: [frontend] fix traceback when forking I'm not sure why, but I got this traceback error: InvalidRequestError: This session is in 'committed' state; no further SQL can be emitted within this transaction. But anyway, it looks like the fork job should be committed once it is completely done. Instead of commit() for each forked build, let's explicitly flush() now (per discussion in PR #16). --- diff --git a/frontend/coprs_frontend/coprs/logic/complex_logic.py b/frontend/coprs_frontend/coprs/logic/complex_logic.py index 6c92cb1..a71a0f8 100644 --- a/frontend/coprs_frontend/coprs/logic/complex_logic.py +++ b/frontend/coprs_frontend/coprs/logic/complex_logic.py @@ -62,6 +62,7 @@ class ComplexLogic(object): fbuild = forking.fork_build(build, fcopr, fpackage) builds_map[fbuild.id] = build.result_dir_name + db.session.commit() ActionsLogic.send_fork_copr(copr, fcopr, builds_map) return fcopr, created @@ -234,7 +235,7 @@ class ProjectForking(object): for chroot in fbuild.build_chroots: chroot.status = StatusEnum("forked") db.session.add(fbuild) - db.session.commit() + db.session.flush() return fbuild def create_object(self, clazz, from_object, exclude=list()):