# HG changeset patch # User Marcin Kuzminski # Date 2019-01-04 12:00:21 # Node ID a4f559a80309b175869d84c571b55a77840fe756 # Parent 2e466d45f3f65392242a72693bd12c6b20412c3f 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 @@ -493,7 +493,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()