timoOutLoopStartLab() checks if any transactions have been delayed
for so long that we are forced to perform some action (e.g. abort,
resend etc).
It is *MEANT* to (according to the comment):
> To avoid aborting both transactions in a deadlock detected by time-out
> we insert a random extra time-out of upto 630 ms by using the lowest
> six bits of the api connect reference.
> We spread it out from 0 to 630 ms if base time-out is larger than 3 sec,
> we spread it out from 0 to 70 ms if base time-out is smaller than 300 msec,
> and otherwise we spread it out 310 ms.
The comment (as all do) lies.
the API connect reference is not very random, producing incredibly
predictable "random" numbers. This could lead to both txns being
aborted instead of just one.
Before:
timeout value: 123 3
timeout value: 122 2
timeout value: 122 2
timeout value: 122 2
timeout value: 123 3
After:
timeout value: 127 7
timeout value: 126 6
timeout value: 129 9
timeout value: 139 19
timeout value: 137 17
timeout value: 151 31
timeout value: 130 10
timeout value: 132 12
Index: ndb-work/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp
===================================================================
ndb/src/common/util/Makefile.am:
BUG#30379 Better randomise time before retry in timeout check (DBTC)
ndb/include/util/ndb_rand.h:
BUG#30379 Better randomise time before retry in timeout check (DBTC)
ndb/src/common/util/ndb_rand.c:
BUG#30379 Better randomise time before retry in timeout check (DBTC)
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
BUG#30379 Better randomise time before retry in timeout check (DBTC)
Handle out of transaction buffer in TC for INDX lookups
ndb/src/kernel/blocks/ERROR_codes.txt:
Add new error codes for simulating out of transaction buffer memory
ndb/src/kernel/blocks/dbtc/Dbtc.hpp:
Change signature to handle out of buffer
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
Handle otu of transaction buffers in index operations
(TCINDXREQ++)
ndb/src/ndbapi/NdbTransaction.cpp:
Give more info on 4012
ndb/src/ndbapi/ndberror.c:
Add new error code
ndb/test/ndbapi/testIndex.cpp:
add tests
ndb/test/run-test/daily-basic-tests.txt:
add tests
sql/ha_ndbcluster.cc:
Set correct status
ndb/src/ndbapi/NdbDictionaryImpl.cpp:
Twiddle the "replicaCount" and "fragCount" variable when restore data from different endian.
ndb/src/ndbapi/NdbDictionaryImpl.hpp:
Add byte order variable
ndb/tools/restore/Restore.cpp:
Twiddle blob, datatime,timestamp when do restore in different endian.
mysql-test/r/ndb_restore_different_endian_data.result:
Test case result for restore data from different endian
mysql-test/std_data/ndb_backup50_data_be/BACKUP-1-0.1.Data:
Test case data
mysql-test/std_data/ndb_backup50_data_be/BACKUP-1-0.2.Data:
Test case data
mysql-test/std_data/ndb_backup50_data_be/BACKUP-1.1.ctl:
Test case data
mysql-test/std_data/ndb_backup50_data_be/BACKUP-1.1.log:
Test case data
mysql-test/std_data/ndb_backup50_data_be/BACKUP-1.2.ctl:
Test case data
mysql-test/std_data/ndb_backup50_data_be/BACKUP-1.2.log:
Test case data
mysql-test/std_data/ndb_backup50_data_le/BACKUP-1-0.1.Data:
Test case data
mysql-test/std_data/ndb_backup50_data_le/BACKUP-1-0.2.Data:
Test case data
mysql-test/std_data/ndb_backup50_data_le/BACKUP-1.1.ctl:
Test case data
mysql-test/std_data/ndb_backup50_data_le/BACKUP-1.1.log:
Test case data
mysql-test/std_data/ndb_backup50_data_le/BACKUP-1.2.ctl:
Test case data
mysql-test/std_data/ndb_backup50_data_le/BACKUP-1.2.log:
Test case data
mysql-test/t/ndb_restore_different_endian_data.test:
Test case for restore data from different endian
Not very clever fix for DIH incorrect REDO handling
- Dont report GCP_SAVE_CONF until first LCP has been complete during NR
ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
Not very clever fix for DIH incorrect REDO handling
- Dont report GCP_SAVE_CONF until first LCP has been complete during NR
into perch.ndb.mysql.com:/home/jonas/src/mysql-5.0-ndb
ndb/src/kernel/blocks/dblqh/Dblqh.hpp:
Auto merged
ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
Auto merged
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
Auto merged
ndb/test/ndbapi/testNodeRestart.cpp:
merge
ndb/test/run-test/daily-basic-tests.txt:
merge
In TC init node status for already started nodes during node restart
(not present in 5.1)
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
on node restart, make sure to init all already started nodes to NF_STARTED
ndb/test/ndbapi/testNodeRestart.cpp:
test prg
ndb/test/run-test/daily-basic-tests.txt:
test prg
Fix 3 problems in REDO validation that could(will) lead to "Error while reading REDO log"
ndb/src/kernel/blocks/dblqh/Dblqh.hpp:
add new state
ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
fix bugs + add debugging
ndb/include/debugger/EventLogger.hpp:
add definition for new printLogEvent() function in CommandInterpreter.cpp
ndb/src/mgmclient/CommandInterpreter.cpp:
add a printLogEvent() function to print log event;
filter "<PING>" by ndb_logevent_get_next() in event_thread_run();
filter "<PING>" by ndb_logevent_get_next() in executeStartBackup();
and make executeStartBackup() same in both 5.0 and 5.1
ndb/src/mgmclient/Makefile.am:
add link to use ndb_logevent_get_next()
mysql-test/r/ndb_backup_print.result:
testcase result for ndb_backup_print
produced by mysql_test_run.pl
mysql-test/t/ndb_backup_print.test:
add testcase for ndb_mgm -e "start backup", check outupt format
ndb/src/common/debugger/EventLogger.cpp:
Remove "no start" from output when nodes restart.
ndb/src/mgmclient/CommandInterpreter.cpp:
Add new prompting string when nodes restart.
into whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb
ndb/src/common/transporter/Packer.cpp:
Auto merged
ndb/src/common/transporter/TCP_Transporter.hpp:
Auto merged
ndb/test/ndbapi/testNdbApi.cpp:
Auto merged
ndb/test/run-test/daily-basic-tests.txt:
Auto merged
ndb/src/common/transporter/TransporterRegistry.cpp:
manual merge
ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp:
manual merge
into whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb
ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
Auto merged
ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp:
Auto merged
ndb/test/run-test/daily-basic-tests.txt:
Auto merged
ndb/src/kernel/blocks/ERROR_codes.txt:
manual merge
ndb/test/ndbapi/testNodeRestart.cpp:
manual merge
so that othernodes dont get confused after having recevied status from master
and then tries to update it self
ndb/src/kernel/blocks/ERROR_codes.txt:
error 1001, delay node_failrep
ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp:
error 1001, delay node_failrep
ndb/test/ndbapi/testNodeRestart.cpp:
testcase
ndb/test/run-test/daily-basic-tests.txt:
testcase