]> source.dussan.org Git - gitea.git/commit
Correctly rollback in ForkRepository (#17034)
authorzeripath <art27@cantab.net>
Tue, 14 Sep 2021 16:16:40 +0000 (17:16 +0100)
committerGitHub <noreply@github.com>
Tue, 14 Sep 2021 16:16:40 +0000 (18:16 +0200)
commit26ef180f466046f9cfab87eea5ea93f5d6da6998
treee4584497cf8bc64f572dcaa49ff1a4c4cb9bd62d
parent04b233e9408296fa14eb7623b7dbe0d98c1865f1
Correctly rollback in ForkRepository (#17034)

The rollback functionality in
services/repository/repository.go:ForkRepository is incorrect and could
lead to a deadlock as it uses DeleteRepository to delete the rolled-back
repository - a function which creates its own transaction.

This PR adjusts the rollback function to only use RemoveAll as any
database changes will be automatically rolled-back. It also handles
panics and adjusts the Close within WithTx to ensure that if there is a
panic the session will always be closed.

Signed-off-by: Andrew Thornton <art27@cantab.net>
models/context.go
modules/repository/fork.go