From 88f1a03cad92af854bc58d7db02ecc1ebf59ef7e Mon Sep 17 00:00:00 2001 From: Andrey Volk Date: Fri, 24 Jan 2020 02:59:46 +0400 Subject: [PATCH] [mod_mariadb] Fix autocommit not flipping back to on when a transaction ends in mod_mariadb causing switch_cache_db_test_reactive() to fail. --- src/mod/databases/mod_mariadb/mod_mariadb.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/mod/databases/mod_mariadb/mod_mariadb.c b/src/mod/databases/mod_mariadb/mod_mariadb.c index e0eea5a5a5..05151d4c89 100644 --- a/src/mod/databases/mod_mariadb/mod_mariadb.c +++ b/src/mod/databases/mod_mariadb/mod_mariadb.c @@ -854,14 +854,15 @@ switch_status_t database_commit(switch_database_interface_handle_t *dih) return SWITCH_STATUS_FALSE; result = mariadb_SQLEndTran(handle, SWITCH_TRUE); - result = result && database_SQLSetAutoCommitAttr(dih, SWITCH_TRUE); - result = result && mariadb_finish_results(handle); + result = database_SQLSetAutoCommitAttr(dih, SWITCH_TRUE) && result; + result = mariadb_finish_results(handle) && result; return result; } switch_status_t database_rollback(switch_database_interface_handle_t *dih) { + switch_status_t result; mariadb_handle_t *handle; if (!dih) { @@ -874,9 +875,11 @@ switch_status_t database_rollback(switch_database_interface_handle_t *dih) return SWITCH_STATUS_FALSE; } - mariadb_SQLEndTran(handle, SWITCH_FALSE); + result = mariadb_SQLEndTran(handle, SWITCH_FALSE); + result = database_SQLSetAutoCommitAttr(dih, SWITCH_TRUE) && result; + result = mariadb_finish_results(handle) && result; - return SWITCH_STATUS_SUCCESS; + return result; } switch_status_t mariadb_handle_callback_exec_detailed(const char *file, const char *func, int line,