forked from forgejo/forgejo
Correctly handle failed migrations (#17575)
* Correctly handle failed migrations There is a bug in handling failed migrations whereby the migration task gets decoupled from the migration repository. This leads to a failure of the task to get deleted with the repository and also leads to the migration failed page resulting in a ISE. This PR removes the zeroing out of the task id from the migration but also makes the migration handler tolerate missing tasks much nicer. Fix #17571 Signed-off-by: Andrew Thornton <art27@cantab.net>
This commit is contained in:
parent
47448083a1
commit
bab95c3a86
6 changed files with 26 additions and 4 deletions
|
@ -58,6 +58,9 @@ func runMigrateTask(t *models.Task) (err error) {
|
|||
t.EndTime = timeutil.TimeStampNow()
|
||||
t.Status = structs.TaskStatusFailed
|
||||
t.Message = err.Error()
|
||||
// Ensure that the repo loaded before we zero out the repo ID from the task - thus ensuring that we can delete it
|
||||
_ = t.LoadRepo()
|
||||
|
||||
t.RepoID = 0
|
||||
if err := t.UpdateCols("status", "errors", "repo_id", "end_time"); err != nil {
|
||||
log.Error("Task UpdateCols failed: %v", err)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue