1
0
Fork 0
mirror of https://github.com/anyproto/any-sync.git synced 2025-06-11 18:20:28 +09:00

Fix rollbacks

This commit is contained in:
Mikhail Rakhmanov 2025-03-07 10:49:35 +01:00
parent 211158dae0
commit 3fd1e0b9ee
No known key found for this signature in database
GPG key ID: DED12CFEF5B8396B
3 changed files with 16 additions and 4 deletions

View file

@ -99,14 +99,18 @@ func New(ctx context.Context, spaceId string, store anystore.DB) (StateStorage,
return storage, nil
}
func Create(ctx context.Context, state State, store anystore.DB) (StateStorage, error) {
func Create(ctx context.Context, state State, store anystore.DB) (st StateStorage, err error) {
tx, err := store.WriteTx(ctx)
if err != nil {
return nil, err
}
storage, err := CreateTx(tx.Context(), state, store)
defer func() {
if err != nil {
tx.Rollback()
}
}()
if err != nil {
tx.Rollback()
return nil, err
}
return storage, tx.Commit()

View file

@ -66,8 +66,12 @@ func CreateStorage(ctx context.Context, root *consensusproto.RawRecordWithId, he
return nil, err
}
storage, err := CreateStorageTx(tx.Context(), root, headStorage, store)
defer func() {
if err != nil {
tx.Rollback()
}
}()
if err != nil {
tx.Rollback()
return nil, err
}
return storage, tx.Commit()

View file

@ -82,8 +82,12 @@ func CreateStorage(ctx context.Context, root *treechangeproto.RawTreeChangeWithI
return nil, err
}
storage, err := CreateStorageTx(tx.Context(), root, headStorage, store)
defer func() {
if err != nil {
tx.Rollback()
}
}()
if err != nil {
tx.Rollback()
return nil, err
}
return storage, tx.Commit()