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

Reply via email to