Merge pull request #7678 from jellor/tx-rollback

This commit is contained in:
Samuel Karp 2022-11-17 23:24:06 -08:00 committed by GitHub
commit b9db5673f4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -154,9 +154,17 @@ func (o *snapshotter) Update(ctx context.Context, info snapshots.Info, fieldpath
return snapshots.Info{}, err return snapshots.Info{}, err
} }
rollback := true
defer func() {
if rollback {
if rerr := t.Rollback(); rerr != nil {
log.G(ctx).WithError(rerr).Warn("failed to rollback transaction")
}
}
}()
info, err = storage.UpdateInfo(ctx, info, fieldpaths...) info, err = storage.UpdateInfo(ctx, info, fieldpaths...)
if err != nil { if err != nil {
t.Rollback()
return snapshots.Info{}, err return snapshots.Info{}, err
} }
@ -171,6 +179,7 @@ func (o *snapshotter) Update(ctx context.Context, info snapshots.Info, fieldpath
info.Labels[upperdirKey] = o.upperPath(id) info.Labels[upperdirKey] = o.upperPath(id)
} }
rollback = false
if err := t.Commit(); err != nil { if err := t.Commit(); err != nil {
return snapshots.Info{}, err return snapshots.Info{}, err
} }