Hi Neelakanta,

Good work.
Ack from me.

Best regards,
Zoran


-----Original Message-----
From: [email protected] [mailto:[email protected]] 
Sent: Monday, November 02, 2015 12:39 PM
To: Zoran Milinkovic
Cc: [email protected]
Subject: [PATCH 1 of 1] imm:Failure in sqlite_step for pbeCommitTrans block new 
transactions [#1580]

 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