# HG changeset patch # User Marcin Kuzminski # Date 2019-01-04 12:00:21 # Node ID 2a133f7e0ec48fb14808ae8efd14a811680f8726 # Parent 9bba7a401f4816637289ae9d4d6104f089a77448 pull-requests: increase stability of concurrent pull requests creation by flushing prematurly the statuses of commits. This is required to increase the versions on each concurrent call. Otherwise we could get into an integrity errors of commitsha+version+repo diff --git a/rhodecode/model/changeset_status.py b/rhodecode/model/changeset_status.py --- a/rhodecode/model/changeset_status.py +++ b/rhodecode/model/changeset_status.py @@ -312,6 +312,7 @@ class ChangesetStatusModel(BaseModel): for st in cur_statuses: st.version += 1 Session().add(st) + Session().flush() def _create_status(user, repo, status, comment, revision, pull_request): new_status = ChangesetStatus() diff --git a/rhodecode/model/pull_request.py b/rhodecode/model/pull_request.py --- a/rhodecode/model/pull_request.py +++ b/rhodecode/model/pull_request.py @@ -530,7 +530,7 @@ class PullRequestModel(BaseModel): ) # we commit early at this point. This has to do with a fact # that before queries do some row-locking. And because of that - # we need to commit and finish transation before below validate call + # we need to commit and finish transaction before below validate call # that for large repos could be long resulting in long row locks Session().commit()