From: Date: March 17 2006 10:09am Subject: bk commit into 4.1 tree (jonas:1.2470) BUG#18298 List-Archive: http://lists.mysql.com/commits/3914 X-Bug: 18298 Message-Id: <20060317090938.00FE530DF0E@perch.ndb.mysql.com> Below is the list of changes that have just been committed into a local 4.1 repository of jonas. When jonas does a push these changes will be propagated to the main repository and, within 24 hours after the push, to the public repository. For information on how to access the public repository see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html ChangeSet 1.2470 06/03/17 10:09:35 jonas@stripped +2 -0 ndb - bug#18298 8 repeated nr with table wo/ logging cause crash Dont create crashed replica for temporary tables ndb/src/kernel/blocks/dbdih/DbdihMain.cpp 1.32 06/03/17 10:09:33 jonas@stripped +13 -3 Dont create crashed replica for temporary tables ndb/src/kernel/blocks/dbdih/Dbdih.hpp 1.9 06/03/17 10:09:33 jonas@stripped +2 -1 Dont create crashed replica for temporary tables # This is a BitKeeper patch. What follows are the unified diffs for the # set of deltas contained in the patch. The rest of the patch, the part # that BitKeeper cares about, is below these diffs. # User: jonas # Host: perch.ndb.mysql.com # Root: /home/jonas/src/41-work --- 1.8/ndb/src/kernel/blocks/dbdih/Dbdih.hpp 2006-02-10 09:37:34 +01:00 +++ 1.9/ndb/src/kernel/blocks/dbdih/Dbdih.hpp 2006-03-17 10:09:33 +01:00 @@ -1038,7 +1038,8 @@ void prepareReplicas(FragmentstorePtr regFragptr); void removeNodeFromStored(Uint32 nodeId, FragmentstorePtr regFragptr, - ReplicaRecordPtr replicaPtr); + ReplicaRecordPtr replicaPtr, + bool temporary); void removeOldStoredReplica(FragmentstorePtr regFragptr, ReplicaRecordPtr replicaPtr); void removeStoredReplica(FragmentstorePtr regFragptr, --- 1.31/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp 2006-02-10 09:42:32 +01:00 +++ 1.32/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp 2006-03-17 10:09:33 +01:00 @@ -5212,6 +5212,7 @@ //const Uint32 lcpId = SYSFILE->latestLCP_ID; const bool lcpOngoingFlag = (tabPtr.p->tabLcpStatus== TabRecord::TLS_ACTIVE); + const bool temporary = !tabPtr.p->storedTable; FragmentstorePtr fragPtr; for(Uint32 fragNo = 0; fragNo < tabPtr.p->totalfragments; fragNo++){ @@ -5232,7 +5233,7 @@ jam(); found = true; noOfRemovedReplicas++; - removeNodeFromStored(nodeId, fragPtr, replicaPtr); + removeNodeFromStored(nodeId, fragPtr, replicaPtr, temporary); if(replicaPtr.p->lcpOngoingFlag){ jam(); /** @@ -12051,9 +12052,18 @@ /*---------------------------------------------------------------*/ void Dbdih::removeNodeFromStored(Uint32 nodeId, FragmentstorePtr fragPtr, - ReplicaRecordPtr replicatePtr) + ReplicaRecordPtr replicatePtr, + bool temporary) { - newCrashedReplica(nodeId, replicatePtr); + if (!temporary) + { + jam(); + newCrashedReplica(nodeId, replicatePtr); + } + else + { + jam(); + } removeStoredReplica(fragPtr, replicatePtr); linkOldStoredReplica(fragPtr, replicatePtr); ndbrequire(fragPtr.p->storedReplicas != RNIL);