mirror of
https://github.com/goharbor/harbor
synced 2024-09-20 18:39:52 +00:00
fix: using new ctx to scan artifact when scanAll (#14884)
DB transaction failure may break the loop query of the artifacts, the result is that not all artifacts are scanned in one scan all job. Using a new DB connection to call the Scan method of the controller to avoid this problem. Signed-off-by: He Weiwei <hweiwei@vmware.com>
This commit is contained in:
parent
76af3c2699
commit
ac30941406
|
@ -327,7 +327,7 @@ func (bc *basicController) startScanAll(ctx context.Context, executionID int64)
|
|||
return bc.Scan(ctx, artifact, WithExecutionID(executionID))
|
||||
}
|
||||
|
||||
if err := orm.WithTransaction(scan)(ctx); err != nil {
|
||||
if err := orm.WithTransaction(scan)(bc.makeCtx()); err != nil {
|
||||
// Just logged
|
||||
log.Errorf("failed to scan artifact %s, error %v", artifact, err)
|
||||
|
||||
|
|
|
@ -277,7 +277,7 @@ func (suite *ControllerTestSuite) SetupSuite() {
|
|||
},
|
||||
|
||||
cloneCtx: func(ctx context.Context) context.Context { return ctx },
|
||||
makeCtx: func() context.Context { return context.TODO() },
|
||||
makeCtx: func() context.Context { return orm.NewContext(nil, &ormtesting.FakeOrmer{}) },
|
||||
|
||||
execMgr: suite.execMgr,
|
||||
taskMgr: suite.taskMgr,
|
||||
|
|
Loading…
Reference in New Issue
Block a user