into perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new-ndb
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/ndbfs/Ndbfs.cpp:
Auto merged
storage/ndb/test/ndbapi/testDict.cpp:
Auto merged
storage/ndb/test/run-test/daily-basic-tests.txt:
Auto merged
storage/ndb/test/src/NDBT_Test.cpp:
Auto merged
redo checkSchemaState to handle bug (plus prepare to handle other DD related bugs in the area)
storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp:
bug#21755
redo checkSchemaState to handle bug (plus prepare to handle other DD related bugs in the area)
storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp:
bug#21755
new big test prg testDict -n DictRestart
new bug test prg testDict -n Bug21755
storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.cpp:
new small FS trace feature
storage/ndb/test/ndbapi/testDict.cpp:
new big test prg testDict -n DictRestart
new bug test prg testDict -n Bug21755
storage/ndb/test/run-test/daily-basic-tests.txt:
new big test prg testDict -n DictRestart
new bug test prg testDict -n Bug21755
refactor testSRBank and create new class NdbMixRestarter
storage/ndb/test/ndbapi/testSRBank.cpp:
refactor testSRBank and create new class NdbMixRestarter
storage/ndb/test/src/Makefile.am:
refactor testSRBank and create new class NdbMixRestarter
storage/ndb/test/src/NDBT_Test.cpp:
fix
storage/ndb/test/include/NdbMixRestarter.hpp:
New BitKeeper file ``storage/ndb/test/include/NdbMixRestarter.hpp''
storage/ndb/test/src/NdbMixRestarter.cpp:
New BitKeeper file ``storage/ndb/test/src/NdbMixRestarter.cpp''
- enable indexes to be used always, if in single user, reject will happen before, and if it is kerlel doing stuff, it should always be allowed
mysql-test/r/ndb_single_user.result:
Bug #27710 Creating unique index fails during single user mode
mysql-test/t/ndb_single_user.test:
Bug #27710 Creating unique index fails during single user mode
into whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-single-user
storage/ndb/tools/restore/Restore.hpp:
Auto merged
storage/ndb/tools/restore/consumer_restore.cpp:
Auto merged
mysql-test/r/ndb_restore.result:
manual merge
mysql-test/t/ndb_restore.test:
manual merge
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
into perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new-ndb
storage/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp:
Auto merged
storage/ndb/src/kernel/blocks/dbtup/DbtupRoutines.cpp:
Auto merged
storage/ndb/test/include/HugoOperations.hpp:
Auto merged
storage/ndb/test/run-test/daily-basic-tests.txt:
Auto merged
storage/ndb/test/src/HugoOperations.cpp:
Auto merged
storage/ndb/test/src/HugoTransactions.cpp:
Auto merged
storage/ndb/include/kernel/AttributeHeader.hpp:
merge
storage/ndb/include/ndbapi/NdbDictionary.hpp:
merge
storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp:
merge
storage/ndb/src/ndbapi/ndb_cluster_connection.cpp:
merge
storage/ndb/test/ndbapi/testBasic.cpp:
merge
make sure that copy tuple is released in all cases
storage/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp:
make sure that copy tuple is released in all cases
storage/ndb/test/run-test/daily-basic-tests.txt:
add testcase
testcase only
new pseudo column NDB$COPY_ROWID
storage/ndb/include/kernel/AttributeHeader.hpp:
Add new pseudo column for reading location of copy tuple
storage/ndb/include/ndbapi/NdbDictionary.hpp:
Add new pseudo column for reading location of copy tuple
storage/ndb/src/kernel/blocks/dbtup/DbtupRoutines.cpp:
Add new pseudo column for reading location of copy tuple
storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp:
Add new pseudo column for reading location of copy tuple
storage/ndb/src/ndbapi/ndb_cluster_connection.cpp:
Add new pseudo column for reading location of copy tuple
storage/ndb/test/ndbapi/testBasic.cpp:
add testcase for bug#27756
storage/ndb/test/include/HugoOperations.hpp:
Add method for setting of primary key
storage/ndb/test/src/HugoAsynchTransactions.cpp:
Add method for setting of primary key
storage/ndb/test/src/HugoOperations.cpp:
Add method for setting of primary key
storage/ndb/test/src/HugoTransactions.cpp:
Add method for setting of primary key
into perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new-ndb
mysql-test/r/ndb_dd_basic.result:
Auto merged
mysql-test/t/ndb_dd_basic.test:
Auto merged
storage/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp:
Auto merged
storage/ndb/src/kernel/blocks/dbtup/DbtupScan.cpp:
Auto merged
tupscan misses uncommitted inserts by own transaction
let tupkeyreq handle dirty/savepoint
also siable diskscan as temporary fix for bug#27776
storage/ndb/src/kernel/blocks/dbtup/DbtupScan.cpp:
let tupkeyreq handle dirty/savepoint
into whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-single-user
storage/ndb/src/ndbapi/Ndb.cpp:
Auto merged
storage/ndb/src/ndbapi/Ndbif.cpp:
Auto merged
storage/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp:
null merge
- try to catch as many malloc failures as possible and give error messages
(more for 5.1)
storage/ndb/src/ndbapi/ObjectMap.cpp:
Rename: ndb/src/ndbapi/ObjectMap.cpp -> storage/ndb/src/ndbapi/ObjectMap.cpp
into whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-single-user
storage/ndb/src/ndbapi/NdbImpl.hpp:
Auto merged
storage/ndb/src/ndbapi/NdbOperation.cpp:
Auto merged
storage/ndb/src/ndbapi/NdbRecAttr.cpp:
Auto merged
storage/ndb/src/ndbapi/NdbReceiver.cpp:
Auto merged
storage/ndb/src/ndbapi/NdbScanFilter.cpp:
Auto merged
storage/ndb/include/ndbapi/NdbReceiver.hpp:
Auto merged
storage/ndb/include/ndbapi/NdbTransaction.hpp:
Auto merged
storage/ndb/include/util/BaseString.hpp:
Auto merged
storage/ndb/src/common/util/BaseString.cpp:
Auto merged
storage/ndb/src/ndbapi/NdbScanOperation.cpp:
Auto merged
storage/ndb/src/ndbapi/NdbTransaction.cpp:
Auto merged
storage/ndb/src/ndbapi/Ndbif.cpp:
Auto merged
storage/ndb/src/ndbapi/Ndblist.cpp:
Auto merged
storage/ndb/src/ndbapi/SignalSender.cpp:
Auto merged
storage/ndb/src/ndbapi/ndb_cluster_connection.cpp:
Auto merged
storage/ndb/src/ndbapi/ndb_cluster_connection_impl.hpp:
Auto merged
sql/ha_ndbcluster.cc:
Bug#26176 NdbObjectIdMap::expand unable to expand!! mysqld got signal 11
- manual merge to 5.1
storage/ndb/include/ndbapi/Ndb.hpp:
Bug#26176 NdbObjectIdMap::expand unable to expand!! mysqld got signal 11
- manual merge to 5.1
storage/ndb/include/ndbapi/NdbDictionary.hpp:
Bug#26176 NdbObjectIdMap::expand unable to expand!! mysqld got signal 11
- manual merge to 5.1
storage/ndb/include/util/Vector.hpp:
Bug#26176 NdbObjectIdMap::expand unable to expand!! mysqld got signal 11
- manual merge to 5.1
storage/ndb/src/ndbapi/DictCache.cpp:
Bug#26176 NdbObjectIdMap::expand unable to expand!! mysqld got signal 11
- manual merge to 5.1
storage/ndb/src/ndbapi/DictCache.hpp:
Bug#26176 NdbObjectIdMap::expand unable to expand!! mysqld got signal 11
- manual merge to 5.1
storage/ndb/src/ndbapi/Makefile.am:
Bug#26176 NdbObjectIdMap::expand unable to expand!! mysqld got signal 11
- manual merge to 5.1
storage/ndb/src/ndbapi/Ndb.cpp:
Bug#26176 NdbObjectIdMap::expand unable to expand!! mysqld got signal 11
- manual merge to 5.1
storage/ndb/src/ndbapi/NdbDictionary.cpp:
Bug#26176 NdbObjectIdMap::expand unable to expand!! mysqld got signal 11
- manual merge to 5.1
storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp:
Bug#26176 NdbObjectIdMap::expand unable to expand!! mysqld got signal 11
- manual merge to 5.1
storage/ndb/src/ndbapi/NdbDictionaryImpl.hpp:
Bug#26176 NdbObjectIdMap::expand unable to expand!! mysqld got signal 11
- manual merge to 5.1
storage/ndb/src/ndbapi/ObjectMap.hpp:
Bug#26176 NdbObjectIdMap::expand unable to expand!! mysqld got signal 11
- manual merge to 5.1
Only prepare "next" GCI if we're in the first 4 highest GCI's
to avoid we can get several buckets with same GCI
storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp:
Only prepare "next" GCI if we're in the first 4 highest GCI's
to avoid we can get several buckets with same GCI
into perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new-ndb
storage/ndb/include/kernel/signaldata/SumaImpl.hpp:
Auto merged
storage/ndb/src/kernel/blocks/suma/Suma.cpp:
Auto merged
storage/ndb/src/ndbapi/ndberror.c:
Auto merged
Make sure API is connected to nodes when subscribing
storage/ndb/include/kernel/signaldata/SumaImpl.hpp:
new error code
storage/ndb/src/kernel/blocks/suma/Suma.cpp:
make sure API is connected in SUB_START_REQ
storage/ndb/src/ndbapi/ndberror.c:
new error code
into dev3-240.dev.cn.tlan:/home/justin.he/mysql/mysql-5.1/mysql-5.1-new-ndb-bj.merge
sql/handler.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_update.cc:
Auto merged
storage/ndb/src/mgmclient/CommandInterpreter.cpp:
Auto merged
storage/ndb/src/mgmsrv/ConfigInfo.cpp:
Auto merged
storage/ndb/src/ndbapi/NdbScanFilter.cpp:
Auto merged
sql/ha_ndbcluster.cc:
merge
- add any value to ndb
- use it to update correct server id in binlog thread
sql/ha_ndbcluster.cc:
ndb: use "any value" to set correct server_id
sql/ha_ndbcluster_binlog.cc:
ndb: use "any value" to set correct server_id
storage/ndb/include/kernel/AttributeHeader.hpp:
add any_value as psudo column, updatable from ndbapi
storage/ndb/include/kernel/signaldata/FireTrigOrd.hpp:
add any_value as psudo column, updatable from ndbapi
storage/ndb/include/kernel/signaldata/SumaImpl.hpp:
add any_value as psudo column, updatable from ndbapi
storage/ndb/include/ndbapi/NdbDictionary.hpp:
add any_value as psudo column, updatable from ndbapi
storage/ndb/include/ndbapi/NdbEventOperation.hpp:
add any_value as psudo column, updatable from ndbapi
storage/ndb/include/ndbapi/NdbOperation.hpp:
add any_value as psudo column, updatable from ndbapi
storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp:
add any_value as psudo column, updatable from ndbapi
storage/ndb/src/kernel/blocks/dbtup/DbtupAbort.cpp:
add any_value as psudo column, updatable from ndbapi
storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp:
add any_value as psudo column, updatable from ndbapi
storage/ndb/src/kernel/blocks/dbtup/DbtupGen.cpp:
add any_value as psudo column, updatable from ndbapi
storage/ndb/src/kernel/blocks/dbtup/DbtupRoutines.cpp:
add any_value as psudo column, updatable from ndbapi
storage/ndb/src/kernel/blocks/dbtup/DbtupStoredProcDef.cpp:
add any_value as psudo column, updatable from ndbapi
storage/ndb/src/kernel/blocks/dbtup/DbtupTrigger.cpp:
add any_value as psudo column, updatable from ndbapi
storage/ndb/src/kernel/blocks/suma/Suma.cpp:
add any_value as psudo column, updatable from ndbapi
storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp:
add any_value as psudo column, updatable from ndbapi
storage/ndb/src/ndbapi/NdbEventOperation.cpp:
add any_value as psudo column, updatable from ndbapi
storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp:
add any_value as psudo column, updatable from ndbapi
storage/ndb/src/ndbapi/NdbEventOperationImpl.hpp:
add any_value as psudo column, updatable from ndbapi
storage/ndb/src/ndbapi/NdbOperationDefine.cpp:
add any_value as psudo column, updatable from ndbapi
storage/ndb/src/ndbapi/ndb_cluster_connection.cpp:
add any_value as psudo column, updatable from ndbapi
into perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new-ndb
storage/ndb/src/mgmsrv/InitConfigFileParser.cpp:
Auto merged
storage/ndb/src/kernel/blocks/dbtup/DbtupPageMap.cpp:
merge
into perch.ndb.mysql.com:/home/jonas/src/51-telco-gca
storage/ndb/src/kernel/blocks/dbtup/DbtupPageMap.cpp:
Auto merged
storage/ndb/src/mgmsrv/InitConfigFileParser.cpp:
Auto merged
into whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-single-user
storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp:
Auto merged
storage/ndb/src/kernel/blocks/dbtup/DbtupAbort.cpp:
Auto merged
storage/ndb/src/kernel/blocks/dbtup/DbtupCommit.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/dbtup/DbtupIndex.cpp:
Auto merged
storage/ndb/src/kernel/blocks/dbtup/DbtupMeta.cpp:
Auto merged
storage/ndb/src/kernel/blocks/dbtup/DbtupScan.cpp:
Auto merged
storage/ndb/src/kernel/blocks/dbtup/DbtupVarAlloc.cpp:
Auto merged
- increase var part reference from 32 to 64 bits on 64 bit systems
- note current patch does not allow for online upgrade from 32 to 64 bit systems or vice versa
storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.cpp:
change MaxNoOfOpenFiles's default value to 0, that means no max openning files limitation
in ndbfs when user doesnot set explicitly the value in config.ini;
Meanwhile, if user set a specific value of MaxNoOfOpenFile and hit the max limiation, he
deserves the result.
storage/ndb/src/mgmsrv/ConfigInfo.cpp:
change default to 0
storage/ndb/src/mgmsrv/ParamInfo.cpp:
change default to 0
into dev3-240.dev.cn.tlan:/home/justin.he/mysql/mysql-5.1/bug24568-5.1-new-ndb-bj
storage/ndb/src/mgmclient/CommandInterpreter.cpp:
Auto merged
storage/ndb/src/mgmsrv/ConfigInfo.cpp:
Auto merged
storage/ndb/src/ndbapi/NdbScanFilter.cpp:
Auto merged
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
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.1-single-user
sql/ha_ndbcluster.cc:
Auto merged
storage/ndb/src/kernel/blocks/dbtc/Dbtc.hpp:
Auto merged
storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
Auto merged
Turns out I broke it.
Index: ndb-work/storage/ndb/src/mgmsrv/MgmtSrvr.cpp
===================================================================
storage/ndb/src/mgmsrv/MgmtSrvr.cpp:
WL#3704 mgmapi timeouts: Fix error insert to NOT_STARTED nodes
Turns out they can be useful in working out what's going wrong.
Index: ndb-work/storage/ndb/test/src/NdbRestarter.cpp
===================================================================
storage/ndb/test/src/NdbRestarter.cpp:
WL#3704 mgmapi timeouts: Print full error from mgmd in NdbRestarter errors
for TransporterRegistry, keep connection to management server alive.
Index: ndb-work/storage/ndb/include/util/InputStream.hpp
===================================================================
storage/ndb/include/util/InputStream.hpp:
WL#3704 mgmapi timeouts: For mgm server, have timeout per operation, not for entire connection (i.e. fix the bug)
storage/ndb/include/util/OutputStream.hpp:
WL#3704 mgmapi timeouts: For mgm server, have timeout per operation, not for entire connection (i.e. fix the bug)
storage/ndb/src/common/transporter/TransporterRegistry.cpp:
WL#3704 mgmapi timeouts: For mgm server, have timeout per operation, not for entire connection (i.e. fix the bug)
storage/ndb/src/mgmsrv/Services.cpp:
WL#3704 mgmapi timeouts: For mgm server, have timeout per operation, not for entire connection (i.e. fix the bug)
Default timout of 30secs for ConfigRetriever
Default timout of 5sec for use by Transporter (ports etc).
And Ndb_cluster_connection::set_timeout() api for setting timeout from
NDBAPI applications. Should be called before connect. e.g.
c.set_timeout(4200);
c.connect();
Index: ndb-work/storage/ndb/include/mgmcommon/ConfigRetriever.hpp
===================================================================
storage/ndb/include/mgmcommon/ConfigRetriever.hpp:
WL#3704 mgmapi timeouts: update NDBAPI usage of mgmapi for timeouts
storage/ndb/include/ndbapi/ndb_cluster_connection.hpp:
WL#3704 mgmapi timeouts: update NDBAPI usage of mgmapi for timeouts
storage/ndb/src/common/mgmcommon/ConfigRetriever.cpp:
WL#3704 mgmapi timeouts: update NDBAPI usage of mgmapi for timeouts
storage/ndb/src/common/transporter/TransporterRegistry.cpp:
WL#3704 mgmapi timeouts: update NDBAPI usage of mgmapi for timeouts
storage/ndb/src/ndbapi/ndb_cluster_connection.cpp:
WL#3704 mgmapi timeouts: update NDBAPI usage of mgmapi for timeouts
as side effect - turbo accellerator patch for ndb_mgm - sholud make it quicker... so that 4mhz cpu will seem even faster.
Index: ndb-work/storage/ndb/src/mgmclient/CommandInterpreter.cpp
===================================================================
storage/ndb/src/mgmclient/CommandInterpreter.cpp:
WL#3704 mgmapi timeouts: use timeouts in mgm client
use portable method, getting milliseconds between calls - Linux would
let us do funky stuff by getting the timeout from select(2). Everywhere
else sucks and doesn't let us do that :(
Index: ndb-work/storage/ndb/include/util/InputStream.hpp
===================================================================
storage/ndb/include/util/InputStream.hpp:
WL#3704 mgmapi timeouts: Change to have total timeout for call, not per request
storage/ndb/include/util/OutputStream.hpp:
WL#3704 mgmapi timeouts: Change to have total timeout for call, not per request
storage/ndb/include/util/socket_io.h:
WL#3704 mgmapi timeouts: Change to have total timeout for call, not per request
storage/ndb/src/common/util/InputStream.cpp:
WL#3704 mgmapi timeouts: Change to have total timeout for call, not per request
storage/ndb/src/common/util/OutputStream.cpp:
WL#3704 mgmapi timeouts: Change to have total timeout for call, not per request
storage/ndb/src/common/util/socket_io.cpp:
WL#3704 mgmapi timeouts: Change to have total timeout for call, not per request
storage/ndb/src/mgmsrv/Services.cpp:
WL#3704 mgmapi timeouts: Change to have total timeout for call, not per request
Only one timeout value is needed. Also saves 8bytes per NdbMgmHandle :)
Index: ndb-work/storage/ndb/include/mgmapi/mgmapi.h
===================================================================
storage/ndb/include/mgmapi/mgmapi.h:
WL#3704 mgmapi timeouts: consolidate NdbMgmHandle timeouts into one
storage/ndb/src/mgmapi/mgmapi.cpp:
WL#3704 mgmapi timeouts: consolidate NdbMgmHandle timeouts into one
Index: ndb-work/storage/ndb/src/mgmsrv/MgmtSrvr.cpp
===================================================================
storage/ndb/src/mgmsrv/ERROR_codes.txt:
WL#3704 mgmapi timeouts: manipulate some things to get infrastructure for event timeouts
storage/ndb/src/mgmsrv/MgmtSrvr.cpp:
WL#3704 mgmapi timeouts: manipulate some things to get infrastructure for event timeouts
storage/ndb/src/mgmsrv/Services.cpp:
WL#3704 mgmapi timeouts: manipulate some things to get infrastructure for event timeouts
storage/ndb/test/ndbapi/testMgm.cpp:
WL#3704 mgmapi timeouts: manipulate some things to get infrastructure for event timeouts
Also add an ERROR_codes.txt file for mgmd
Index: ndb-work/storage/ndb/src/mgmsrv/ERROR_codes.txt
===================================================================
storage/ndb/src/mgmsrv/Services.cpp:
WL#3704 mgmapi timeouts: renumber mgmd err insert to not have duplicates.
storage/ndb/test/ndbapi/testMgm.cpp:
WL#3704 mgmapi timeouts: renumber mgmd err insert to not have duplicates.
storage/ndb/src/mgmsrv/ERROR_codes.txt:
WL#3704 mgmapi timeouts: renumber mgmd err insert to not have duplicates.
In ndb_mgm_call, add checks for expired timeout in (Input|Output)Stream.
In case of timeout, we set NdbMgmHandle->last_error and return NULL.
In api calls not using ndb_mgm_call (or using it in conjunction with
own IO), they'll need to check for timeouts manually. Macros are provided
to do this.
Add ndb_mgm_disconnect_quiet(h) to disconnect without checking errors
(so we don't clobber NdbMgmHandle->last_error). This helps us provide
the *consistent* semantic that on timeout we leave the NdbMgmHandle
*disconnected*. We check for this in testMgm.
Change CHECK_REPLY in mgmapi to also check for set error in handle->last_error
This will pick up the ETIMEDOUT errors and return them to client (through
returning correct failure code for API call and setting NdbMgmHandle error).
Applications written to MGMAPI before this patch will behave as before,
and even hopefully check get_last_error and report the error back to the
end user!
Adding the last CHECK_TIMEDOUT_RET and delete in ndb_mgm_call() we
slightly change behaviour of mgmapi. Previously, if disconnect
midway through a reply, where there were only optional parameters left,
we'd get a Properties object from ndb_mgm_call() containing NULLs for
the optional parameters, leading to interesting error messages. This
enables the returning of the *real* message and actually improves the API
without breaking compatibility.
ndb_mgm_start_signallog
ndb_mgm_stop_signallog
ndb_mgm_log_signals
ndb_mgm_set_trace
ndb_mgm_insert_error
ndb_mgm_set_int64_parameter [1]
ndb_mgm_set_string_parameter [1]
ndb_mgm_purge_stale_sessions [2]
- return error code on error during ndb_mgm_call
TODO:
ndb_mgm_report_event [2]
[1] marked for removal, unused.
[2] return codes incorrect in CHECK_HANDLE/CONNECTED. undocumented.
Server side:
in Services (per session) add macro for injecting timeout error
(just waiting 10 seconds before continuing... it does work!)
We inject these errors in a number of critical places - including
the tricky api functions that don't just use ndb_mgm_call but do
their own thing (get_config, get_status and friends)
ATRT:
Expand testMgm to add timout tests for API. Fully automated.
*THEORETICALLY* timing dependent - an ultra-slow network will
cause problems and "fake" failures... I welcome other solutions.
Tests aren't exhaustive, but cover the generics and the tricky bits.
Also test some calling semantics (incl disconnected on error).
It is encouraged to add *more* mgmapi tests, not less :)
InputStream:
Fix where timedout error is set
Index: ndb-work/storage/ndb/src/mgmapi/mgmapi.cpp
===================================================================
storage/ndb/src/common/util/InputStream.cpp:
WL#3704 mgmapi timeouts: Return sane errors for timeout in mgmapi
storage/ndb/src/mgmapi/mgmapi.cpp:
WL#3704 mgmapi timeouts: Return sane errors for timeout in mgmapi
storage/ndb/src/mgmapi/mgmapi_internal.h:
WL#3704 mgmapi timeouts: Return sane errors for timeout in mgmapi
storage/ndb/src/mgmsrv/Services.cpp:
WL#3704 mgmapi timeouts: Return sane errors for timeout in mgmapi
storage/ndb/test/ndbapi/testMgm.cpp:
WL#3704 mgmapi timeouts: Return sane errors for timeout in mgmapi
Add error injection either for this connection or for whole server.
Currently nothing for injecting errors into *another* connection... but that's
perhaps getting tricky-dicky for this point in time. Perhaps needed for events
if we don't do anything fancy.
Index: ndb-work/storage/ndb/src/mgmsrv/MgmtSrvr.cpp
===================================================================
storage/ndb/src/mgmsrv/MgmtSrvr.cpp:
WL#3704 mgmapi timeouts: Add ndb_mgmd error injection
storage/ndb/src/mgmsrv/MgmtSrvr.hpp:
WL#3704 mgmapi timeouts: Add ndb_mgmd error injection
storage/ndb/src/mgmsrv/Services.cpp:
WL#3704 mgmapi timeouts: Add ndb_mgmd error injection
storage/ndb/src/mgmsrv/Services.hpp:
WL#3704 mgmapi timeouts: Add ndb_mgmd error injection
storage/ndb/test/ndbapi/testMgm.cpp:
WL#3704 mgmapi timeouts: Add ndb_mgmd error injection
Start using the write_timeout we already have in NdbMgmHandle
Index: ndb-work/storage/ndb/src/mgmapi/mgmapi.cpp
===================================================================
storage/ndb/src/mgmapi/mgmapi.cpp:
WL#3704 mgmapi timeouts: use NdbMgmHandle write_timeout