The old blob implementation had code that attempted to upgrade the lock mode for
LM_CommittedRead operations, but it did not work properly as it did not recompute
the operation flags.
As a consequence, reading a blob with LM_CommittedRead could return inconsistent
data, with different part of the read data being from different commits done by
other transactions.
The fix is to correctly recompute all necessary flags when upgrading lock mode.
ndb/include/kernel/signaldata/ScanTab.hpp:
Remove assumption in setXXX() methods that old value is zero, needed to allow blob
code to upgrade lock mode.
Fix spelling and commments.
ndb/include/ndbapi/NdbOperation.hpp:
Add method to change lock mode, to allow blob code to upgrade lock mode.
ndb/include/ndbapi/NdbScanOperation.hpp:
Add method to change lock mode, to allow blob code to upgrade lock mode.
ndb/src/ndbapi/NdbBlob.cpp:
Fix upgrading lock mode (old code had no effect).
ndb/src/ndbapi/NdbOperationDefine.cpp:
Add method to change lock mode, to allow blob code to upgrade lock mode.
ndb/src/ndbapi/NdbScanOperation.cpp:
Add method to change lock mode, to allow blob code to upgrade lock mode.
ndb/test/ndbapi/testBlobs.cpp:
Add testcase.
ndb/test/run-test/daily-basic-tests.txt:
Enable bug tests for auto test.
into perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new-ndb
storage/ndb/src/kernel/blocks/ERROR_codes.txt:
Auto merged
storage/ndb/src/kernel/blocks/dbdih/Dbdih.hpp:
Auto merged
storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
Auto merged
storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
Auto merged
storage/ndb/src/kernel/blocks/suma/Suma.cpp:
Auto merged
storage/ndb/test/run-test/daily-basic-tests.txt:
Auto merged
storage/ndb/test/ndbapi/testNodeRestart.cpp:
merge
Fix race condition between NODE_FAILREP and local INCL_NODEREQ loop
Also retry on ZNODE_START_DISALLOWED_ERROR
storage/ndb/include/kernel/signaldata/StartPerm.hpp:
Move error code
storage/ndb/src/kernel/blocks/ERROR_codes.txt:
new error code
storage/ndb/src/kernel/blocks/dbdih/Dbdih.hpp:
Move error code
storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
1) retry also on ZNODE_START_DISALLOWED_ERROR
2) Change if() else in INCL_NODECONF to for-loop instead
3) (last but not least) fix bug, that could cause different block withing same node to have different opinion about node status
solution is to check if node is still alive before sening next local INCL_NODEREQ
storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
Add error insert to allow node to die during INCL_NODEREQ
storage/ndb/src/kernel/blocks/suma/Suma.cpp:
1) let suma be well behaved (i.e reply to INCL_NODEREQ)
2) Add dump to print c_connceted_nodes/c_subscriber_nodes (8010)
storage/ndb/test/ndbapi/testNodeRestart.cpp:
new testcase
storage/ndb/test/run-test/daily-basic-tests.txt:
new testcase
into whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-single-user
storage/ndb/include/ndbapi/NdbRecAttr.hpp:
Auto merged
storage/ndb/src/ndbapi/NdbRecAttr.cpp:
Auto merged
sql/ha_ndbcluster.cc:
manual merge
storage/ndb/test/src/NDBT_Table.cpp:
manual merge
correct cit printout
correct bit store retrieve
ndb/include/ndbapi/NdbRecAttr.hpp:
correct medium int printout
ndb/src/ndbapi/NdbRecAttr.cpp:
correct cit printout
sql/ha_ndbcluster.cc:
correct bit store retrieve
into whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb
storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
Auto merged
storage/ndb/test/ndbapi/testNodeRestart.cpp:
Auto merged
into whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb
storage/ndb/src/kernel/blocks/dbdih/Dbdih.hpp:
Auto merged
storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
Auto merged
storage/ndb/src/kernel/blocks/dbtc/Dbtc.hpp:
Auto merged
storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
Auto merged
storage/ndb/test/ndbapi/testNodeRestart.cpp:
Auto merged
into clam.ndb.mysql.com:/export/space/pekka/ndb/version/my51-bug24028
storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
Auto merged
storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
Auto merged
storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp:
Auto merged
storage/ndb/src/kernel/blocks/dbtup/DbtupGen.cpp:
Auto merged
storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp:
Auto merged
storage/ndb/src/mgmsrv/ConfigInfo.cpp:
Auto merged
storage/ndb/test/ndbapi/testNodeRestart.cpp:
Auto merged
storage/ndb/test/run-test/daily-basic-tests.txt:
Auto merged
storage/ndb/test/src/UtilTransactions.cpp:
Auto merged
into whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-single-user
storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp:
Auto merged
storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp:
Auto merged
storage/ndb/src/kernel/blocks/dbtc/Dbtc.hpp:
Auto merged
storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
Auto merged
storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp:
Auto merged
mysql-test/r/ndb_single_user.result:
manual merge
mysql-test/t/disabled.def:
manual merge
storage/ndb/include/kernel/signaldata/DictTabInfo.hpp:
manual merge
storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp:
manual merge
into whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-single-user
storage/ndb/include/kernel/signaldata/DictTabInfo.hpp:
Auto merged
storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp:
Auto merged
storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp:
Auto merged
storage/ndb/src/kernel/blocks/dbtc/Dbtc.hpp:
Auto merged
storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
Auto merged
storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp:
Auto merged
storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp:
Auto merged
into whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-single-user
ndb/src/kernel/blocks/dbdict/Dbdict.cpp:
Auto merged
ndb/src/kernel/blocks/dbdict/Dbdict.hpp:
Auto merged
ndb/src/kernel/blocks/dbtc/Dbtc.hpp:
Auto merged
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
Auto merged
ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp:
Auto merged
ndb/include/kernel/signaldata/DictTabInfo.hpp:
manual merge
ndb/src/ndbapi/NdbDictionaryImpl.cpp:
manual merge
ndb/include/kernel/signaldata/DictTabInfo.hpp:
add single user mode field in table definition
ndb/include/ndb_constants.h:
new constants for single usermode option of tables
ndb/include/ndbapi/NdbDictionary.hpp:
add single user mode field in table definition
ndb/src/common/debugger/signaldata/DictTabInfo.cpp:
add single user mode field in table definition
ndb/src/kernel/blocks/dbdict/Dbdict.cpp:
add single user mode field in table definition
send this infor to TC
ndb/src/kernel/blocks/dbdict/Dbdict.hpp:
add single user mode field in table definition
ndb/src/kernel/blocks/dbtc/Dbtc.hpp:
single user table mode on table object
merge some flags from uint8 to bits
get allow transaction to also check single user mode
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
single user table mode on table object
merge some flags from uint8 to bits
get allow transaction to also check single user mode
ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp:
set single user mode flag on system tables to make them always updatable
ndb/src/ndbapi/NdbDictionary.cpp:
get/set functions for single user mode on tables
ndb/src/ndbapi/NdbDictionaryImpl.cpp:
get/set functions for single user mode on tables
ndb/src/ndbapi/NdbDictionaryImpl.hpp:
get/set functions for single user mode on tables
ndb/test/src/NDBT_Table.cpp:
print single user mode
into poseidon.mysql.com:/home/tomas/mysql-5.0-ndb
ndb/src/kernel/blocks/dbtc/Dbtc.hpp:
Auto merged
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
Auto merged