osaf/libs/common/immsv/immpbe_dump.cc | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
When sqlite3_step is failed in pbeCommitTrans, then there is a possibility of
sqliteTransLock getting a higher values. This leads to pbeBeginTrans will fail
always.
diff --git a/osaf/libs/common/immsv/immpbe_dump.cc
b/osaf/libs/common/immsv/immpbe_dump.cc
--- a/osaf/libs/common/immsv/immpbe_dump.cc
+++ b/osaf/libs/common/immsv/immpbe_dump.cc
@@ -2959,7 +2959,7 @@ SaAisErrorT pbeCommitTrans(void* db_hand
preparedSql[SQL_INS_CCB_COMMITS],
sqlite3_errmsg(dbHandle));
pbeAbortTrans(db_handle);
err = SA_AIS_ERR_FAILED_OPERATION;
- goto done;
+ goto abort_done;
}
sqlite3_reset(stmt);
}
@@ -2977,6 +2977,7 @@ SaAisErrorT pbeCommitTrans(void* db_hand
--sqliteTransLock;
--sqliteTransLock;
--sqliteTransLock; /* Lock is released. */
+ abort_done:
fsyncPbeJournalFile(); /* This should not be needed. sqlite does double
fsync itself */
return err;
}
------------------------------------------------------------------------------
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel