fix: add missing Commit() to event listeners and cron jobs

With db.NewSession() now starting real transactions, all sessions that
do writes must explicitly commit. These listeners and cron jobs were
previously relying on auto-commit mode where each SQL statement was
committed immediately. Without explicit Commit(), the writes are
silently rolled back on Close(), and the held write locks cause
"database is locked" errors for subsequent requests on SQLite.
This commit is contained in:
kolaente 2026-02-24 15:33:11 +01:00
parent eea59c33c7
commit 2188c7a79d
3 changed files with 24 additions and 7 deletions

View File

@ -232,7 +232,7 @@ func (s *SendTaskCommentNotification) Handle(msg *message.Message) (err error) {
}
}
return
return sess.Commit()
}
// HandleTaskCommentEditMentions represents a listener
@ -262,7 +262,10 @@ func (s *HandleTaskCommentEditMentions) Handle(msg *message.Message) (err error)
Mentioned: true,
}
_, err = notifyMentionedUsers(sess, event.Task, event.Comment.Comment, n)
return err
if err != nil {
return err
}
return sess.Commit()
}
// SendTaskAssignedNotification represents a listener
@ -323,7 +326,7 @@ func (s *SendTaskAssignedNotification) Handle(msg *message.Message) (err error)
notifiedUsers[subscriber.UserID] = true
}
return nil
return sess.Commit()
}
// SendTaskDeletedNotification represents a listener
@ -374,7 +377,7 @@ func (s *SendTaskDeletedNotification) Handle(msg *message.Message) (err error) {
}
}
return nil
return sess.Commit()
}
// HandleTaskCreateMentions represents a listener
@ -403,7 +406,10 @@ func (s *HandleTaskCreateMentions) Handle(msg *message.Message) (err error) {
IsNew: true,
}
_, err = notifyMentionedUsers(sess, event.Task, event.Task.Description, n)
return err
if err != nil {
return err
}
return sess.Commit()
}
// HandleTaskUpdatedMentions represents a listener
@ -433,7 +439,10 @@ func (s *HandleTaskUpdatedMentions) Handle(msg *message.Message) (err error) {
}
_, err = notifyMentionedUsers(sess, event.Task, event.Task.Description, n)
return err
if err != nil {
return err
}
return sess.Commit()
}
// HandleTaskUpdateLastUpdated represents a listener
@ -832,7 +841,7 @@ func (s *SendProjectCreatedNotification) Handle(msg *message.Message) (err error
}
}
return nil
return sess.Commit()
}
// WebhookListener represents a listener

View File

@ -186,6 +186,10 @@ func RegisterOverdueReminderCron() {
log.Debugf("[Undone Overdue Tasks Reminder] Sent reminder email for %d tasks to user %d", len(ut.tasks), ut.user.ID)
}
if err := s.Commit(); err != nil {
log.Errorf("[Undone Overdue Tasks Reminder] Could not commit: %s", err)
}
})
if err != nil {
log.Fatalf("Could not register undone overdue tasks reminder cron: %s", err)

View File

@ -391,6 +391,10 @@ func RegisterReminderCron() {
log.Debugf("[Task Reminder Cron] Sent reminder email for task %d to user %d", n.Task.ID, n.User.ID)
}
if err := s.Commit(); err != nil {
log.Errorf("[Task Reminder Cron] Could not commit: %s", err)
}
})
if err != nil {
log.Fatalf("Could not register reminder cron: %s", err)