From 1a09a645c82e07fee8d42642a83652c6c85473ff Mon Sep 17 00:00:00 2001 From: Alan Hicks Date: Mon, 31 Oct 2016 18:27:45 +0000 Subject: [PATCH 26/33] Rebalance commit/rollback --- src/dm_mailboxstate.c | 9 ++++++--- src/imapcommands.c | 1 + 2 files changed, 7 insertions(+), 3 deletions(-) diff --git src/dm_mailboxstate.c src/dm_mailboxstate.c index 723689a..c04b6d7 100644 --- src/dm_mailboxstate.c +++ src/dm_mailboxstate.c @@ -212,11 +212,12 @@ T MailboxState_new(Mempool_T pool, uint64_t id) db_begin_transaction(c); // we need read-committed isolation state_load_metadata(M, c); state_load_messages(M, c); + db_commit_transaction(c); CATCH(SQLException) LOG_SQLERROR; + db_rollback_transaction(c); t = DM_EQUERY; FINALLY - db_commit_transaction(c); db_con_close(c); END_TRY; @@ -888,11 +889,12 @@ int MailboxState_info(T M) TRY db_begin_transaction(c); db_getmailbox_info(M, c); + db_commit_transaction(c); CATCH(SQLException) LOG_SQLERROR; + db_rollback_transaction(c); t = DM_EQUERY; FINALLY - db_commit_transaction(c); db_con_close(c); END_TRY; @@ -928,11 +930,12 @@ int MailboxState_count(T M) TRY db_begin_transaction(c); db_getmailbox_count(M, c); + db_commit_transaction(c); CATCH(SQLException) LOG_SQLERROR; + db_rollback_transaction(c); t = DM_EQUERY; FINALLY - db_commit_transaction(c); db_con_close(c); END_TRY; diff --git src/imapcommands.c src/imapcommands.c index bdedb4a..43760fc 100644 --- src/imapcommands.c +++ src/imapcommands.c @@ -946,6 +946,7 @@ void _ic_delete_enter(dm_thread_data *D) db_commit_transaction(c); CATCH(SQLException) LOG_SQLERROR; + db_rollback_transaction(c); t = DM_EQUERY; FINALLY db_con_close(c); -- 2.10.1 (Apple Git-78)