@ -5,7 +5,6 @@
package task
package task
import (
import (
"bytes"
"errors"
"errors"
"fmt"
"fmt"
"strings"
"strings"
@ -39,10 +38,8 @@ func handleCreateError(owner *models.User, err error, name string) error {
func runMigrateTask ( t * models . Task ) ( err error ) {
func runMigrateTask ( t * models . Task ) ( err error ) {
defer func ( ) {
defer func ( ) {
if e := recover ( ) ; e != nil {
if e := recover ( ) ; e != nil {
var buf bytes . Buffer
err = fmt . Errorf ( "PANIC whilst trying to do migrate task: %v\nStacktrace: %v" , err , log . Stack ( 2 ) )
fmt . Fprintf ( & buf , "Handler crashed with error: %v" , log . Stack ( 2 ) )
log . Critical ( "PANIC during runMigrateTask[%d] by DoerID[%d] to RepoID[%d] for OwnerID[%d]: %v" , t . ID , t . DoerID , t . RepoID , t . OwnerID , err )
err = errors . New ( buf . String ( ) )
}
}
if err == nil {
if err == nil {
@ -52,14 +49,14 @@ func runMigrateTask(t *models.Task) (err error) {
return
return
}
}
log . Error ( "FinishMigrateTask failed: %s" , err . Error ( ) )
log . Error ( "FinishMigrateTask[%d] by DoerID[%d] to RepoID[%d] for OwnerID[%d] failed: %v" , t . ID , t . DoerID , t . RepoID , t . OwnerID , err )
}
}
t . EndTime = timeutil . TimeStampNow ( )
t . EndTime = timeutil . TimeStampNow ( )
t . Status = structs . TaskStatusFailed
t . Status = structs . TaskStatusFailed
t . Errors = err . Error ( )
t . Errors = err . Error ( )
if err := t . UpdateCols ( "status" , "errors" , "end_time" ) ; err != nil {
if err := t . UpdateCols ( "status" , "errors" , "end_time" ) ; err != nil {
log . Error ( "Task UpdateCols failed: %s " , err . Error ( ) )
log . Error ( "Task UpdateCols failed: %v " , err )
}
}
if t . Repo != nil {
if t . Repo != nil {