Signed-off-by: Seongmin Lee git@boltless.me
+1
-4
appview/db/profile.go
+1
-4
appview/db/profile.go
···
108
108
}
109
109
110
110
func UpsertProfile(tx *sql.Tx, profile *models.Profile) error {
111
-
defer tx.Rollback()
112
-
113
111
// update links
114
112
_, err := tx.Exec(`delete from profile_links where did = ?`, profile.Did)
115
113
if err != nil {
···
203
201
return err
204
202
}
205
203
}
206
-
207
-
return tx.Commit()
204
+
return nil
208
205
}
209
206
210
207
func GetProfiles(e Execer, filters ...orm.Filter) (map[string]*models.Profile, error) {
+6
appview/ingester.go
+6
appview/ingester.go
···
341
341
if err != nil {
342
342
return fmt.Errorf("failed to start transaction")
343
343
}
344
+
defer tx.Rollback()
344
345
345
346
err = db.ValidateProfile(tx, &profile)
346
347
if err != nil {
···
348
349
}
349
350
350
351
err = db.UpsertProfile(tx, &profile)
352
+
if err != nil {
353
+
return fmt.Errorf("upserting profile: %w", err)
354
+
}
355
+
356
+
err = tx.Commit()
351
357
case jmodels.CommitOperationDelete:
352
358
err = db.DeleteArtifact(i.Db, orm.FilterEq("did", did), orm.FilterEq("rkey", e.Commit.RKey))
353
359
}
+12
-5
appview/state/profile.go
+12
-5
appview/state/profile.go
···
624
624
s.pages.Notice(w, "update-profile", "Failed to update profile, try again later.")
625
625
return
626
626
}
627
+
defer tx.Rollback()
628
+
629
+
err = db.UpsertProfile(tx, profile)
630
+
if err != nil {
631
+
log.Println("failed to update profile", err)
632
+
s.pages.Notice(w, "update-profile", "Failed to update profile, try again later.")
633
+
return
634
+
}
627
635
628
636
client, err := s.oauth.AuthorizedClient(r)
629
637
if err != nil {
···
672
680
return
673
681
}
674
682
675
-
err = db.UpsertProfile(tx, profile)
676
-
if err != nil {
677
-
log.Println("failed to update profile", err)
678
-
s.pages.Notice(w, "update-profile", "Failed to update profile, try again later.")
679
-
return
683
+
if err := tx.Commit(); err != nil {
684
+
s.logger.Error("failed to commit transaction", "err", err)
685
+
// db failed, but PDS operation succeed.
686
+
// log error and continue
680
687
}
681
688
682
689
s.notifier.UpdateProfile(r.Context(), profile)
Submissions
1 commit
expand
collapse
appview: move tx rollback logic out of
db.UpsertProfile()
Signed-off-by: Seongmin Lee <git@boltless.me>
1/3 timeout, 2/3 success
expand
collapse
no conflicts, ready to merge