polardbxengine/mysql-test/suite/ndb/t/ndb_mgm.test

264 lines
7.4 KiB
Plaintext

-- source include/have_ndb.inc
-- source suite/ndb/include/backup_restore_setup.inc
# Build the standard command used for running "ndb_mgm"
let $mgm_cmd = $NDB_MGM;
let $mgm_cmd = $mgm_cmd --no-defaults;
let $mgm_cmd = $mgm_cmd --ndb-connectstring="$NDB_CONNECTSTRING";
let $mgm_cmd = $mgm_cmd --verbose=0;
#
# Build strings for masking ndb_mgm output
#
#echo MYSQL_SERVER_VERSION: $MYSQL_SERVER_VERSION;
# extract X.X.X for MySQL
let $mysql_version=
`select SUBSTRING_INDEX('$MYSQL_SERVER_VERSION','-', 1)`;
# Remove any trailing a in the X.X.X string(ugly but works)
let $mysql_version=
`select TRIM(TRAILING 'a' FROM '$mysql_version')`;
let $mysql_version = mysql-$mysql_version;
# echo mysql_version: $mysql_version;
# load ndb-X.X.X from the "ndb_version_string" variable, trim off
# the version status indicator i.e -dmr etc.
let $ndb_version=
`select REGEXP_SUBSTR(@@ndb_version_string, "^ndb-[0-9]*[.][0-9]*[.][0-9]*")`;
# echo ndb_version: $ndb_version;
#
# Test the SHOW command
# - make output stable by using a temporary
# table for the output
#
--disable_query_log
let $dump_file = $MYSQLTEST_VARDIR/tmp/ndb_mgm_show.txt;
# Dump the output of ndb_mgm to file
exec $mgm_cmd -e "show" > $dump_file;
# Load the file into a temporary table
CREATE TEMPORARY TABLE ndb_mgm_show (a varchar(512)) ENGINE = HEAP;
eval LOAD DATA INFILE '$dump_file' INTO TABLE ndb_mgm_show
FIELDS TERMINATED BY '\n';
--remove_file $dump_file
# Remove Windows line feeds
UPDATE ndb_mgm_show SET a = TRIM(TRAILING "\r" FROM a);
# Show the two data nodes
--replace_result $mysql_version MYSQL_VERSION $ndb_version NDB_VERSION
SELECT a as 'ndbd(s)' FROM ndb_mgm_show
WHERE SUBSTR(a, 4, 3) IN (1, 2);
# Show the mgm node
--replace_result $mysql_version MYSQL_VERSION $ndb_version NDB_VERSION
SELECT a as 'ndb_mgmd(s)' FROM ndb_mgm_show
WHERE SUBSTR(a, 4, 3) IN (3);
# Show the two mysqld nodes which are using three nodeids each
# as well as the 8 free slots, mask out the nodeid since those are
# not deterministic, order the connected nodes first
--replace_regex /id=[0-9]+/id=X/
--replace_result $mysql_version MYSQL_VERSION $ndb_version NDB_VERSION
SELECT a as 'mysqld(s)' FROM ndb_mgm_show
WHERE SUBSTR(a, 4, 3)
IN (16,32,48,49,63,127,192,228,229,230,231,232,233,255)
ORDER BY LOCATE("accepting", a);
DROP TABLE ndb_mgm_show;
--enable_query_log
echo ; # newline for nicer .result file
#
# Test the [ALL|<nodeid>] REPORT [MEMORYUSAGE|BACKUPSTATUS]
#
echo Missing report type specifier;
--error 255
exec $mgm_cmd -e "ALL REPORT ";
echo Unknown report type specifier;
--error 255
exec $mgm_cmd -e "ALL REPORT something";
echo ALL REPORT MEMORYUSAGE;
--replace_regex /[0-9]+\%\([0-9]+ [0-9]+K pages of total [0-9]+/X%(X XK pages of total X/
exec $mgm_cmd -e "ALL REPORT MEMORYUSAGE";
echo 1 REPORT MEMORYUSAGE;
--replace_regex /[0-9]+\%\([0-9]+ [0-9]+K pages of total [0-9]+/X%(X XK pages of total X/
exec $mgm_cmd -e "1 REPORT MEMORYUSAGE";
echo 2 REPORT MEMORYUSAGE;
--replace_regex /[0-9]+\%\([0-9]+ [0-9]+K pages of total [0-9]+/X%(X XK pages of total X/
exec $mgm_cmd -e "2 REPORT MEMORYUSAGE";
echo Testing abbreviated form;
--replace_regex /[0-9]+\%\([0-9]+ [0-9]+K pages of total [0-9]+/X%(X XK pages of total X/
exec $mgm_cmd -e "2 REPORT Mem";
echo Request memoryusage from non NDB node 3;
--error 255
exec $mgm_cmd -e "3 REPORT MEMORYUSAGE";
echo Request memoryusage from non existing node 17;
--error 255
exec $mgm_cmd -e "17 REPORT MEMORYUSAGE";
echo Request memoryusage from illegal nodeid 145;
--error 255
exec $mgm_cmd -e "145 REPORT MEMORYUSAGE";
--echo For the following, we want to be running ndbmtd with multiple
--echo LQH threads
--echo NDBD (1 instance) is ok, but 2 instances indicates ndbmtd
--echo with proxy and only 1 real instance, not interesting.
--echo cnf file should make this impossible
--echo Following query should have no results
select node_id, count(1) as instances
from ndbinfo.threadblocks
where block_name="BACKUP"
group by node_id
having instances=2;
echo ALL REPORT BACKUPSTATUS;
exec $mgm_cmd -e "ALL REPORT BACKUPSTATUS";
echo 1 REPORT BACKUPSTATUS;
exec $mgm_cmd -e "1 REPORT BACKUPSTATUS";
echo 2 REPORT BACKUPSTATUS;
exec $mgm_cmd -e "2 REPORT BACKUPSTATUS";
echo Testing HELP for REPORT;
exec $mgm_cmd -e "HELP REPORT";
#
# Test <ALL|nodeid> DUMP <arg>[ <argN>]
#
echo Missing dump arg;
--error 255
exec $mgm_cmd -e "ALL DUMP ";
echo Illegal argument 4294967300;
--error 255
exec $mgm_cmd -e "1 DUMP 4294967300";
echo Illegal argument -1;
--error 255
exec $mgm_cmd -e "1 DUMP -1";
echo Robustness issue with bug#14537622;
echo Data node must not crash here;
exec $mgm_cmd -e "ALL DUMP 1000 1000";
echo ALL DUMP 1;
exec $mgm_cmd -e "ALL DUMP 1 ";
echo 1 DUMP 1 2;
exec $mgm_cmd -e "1 DUMP 1 2";
echo max DUMP args;
exec $mgm_cmd -e "1 DUMP 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25";
echo more than max DUMP args;
--error 255
exec $mgm_cmd -e "1 DUMP 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26";
--echo test all report eventlog
--echo note: test within quotes...
--exec $mgm_cmd -e "1 report eventlog" >> $NDB_TOOLS_OUTPUT
--exec $mgm_cmd -e "2 report eventlog" >> $NDB_TOOLS_OUTPUT
--exec $mgm_cmd -e "all report eventlog" >> $NDB_TOOLS_OUTPUT
#
# Test CLUSTERLOG command
#
echo Missing argument;
--error 255
exec $mgm_cmd -e "CLUSTERLOG";
echo # Unknown argument;
--error 255
exec $mgm_cmd -e "CLUSTERLOG unknown_argument";
echo # CLUSTERLOG INFO;
exec $mgm_cmd -e "CLUSTERLOG INFO";
echo # CLUSTERLOG OFF;
exec $mgm_cmd -e "CLUSTERLOG OFF";
echo # Should be OFF now;
exec $mgm_cmd -e "CLUSTERLOG INFO";
echo # CLUSTERLOG ON;
exec $mgm_cmd -e "CLUSTERLOG ON";
echo # Should be ON now;
exec $mgm_cmd -e "CLUSTERLOG INFO";
echo # CLUSTERLOG TOGGLE;
exec $mgm_cmd -e "CLUSTERLOG TOGGLE";
echo # Should be OFF now;
exec $mgm_cmd -e "CLUSTERLOG INFO";
echo # CLUSTERLOG TOGGLE;
exec $mgm_cmd -e "CLUSTERLOG TOGGLE";
echo # Should be ON now;
exec $mgm_cmd -e "CLUSTERLOG INFO";
echo # Turn off severity INFO, ERROR and ALERT;
exec $mgm_cmd -e "CLUSTERLOG FILTER ALERT INFO ERROR";
echo # Should not list ALERT, INFO or ERROR;
exec $mgm_cmd -e "CLUSTERLOG INFO";
echo # Turn off reaining severities;
exec $mgm_cmd -e "CLUSTERLOG FILTER WARNING CRITICAL";
echo # Should not list anything;
exec $mgm_cmd -e "CLUSTERLOG INFO";
echo # Back to default severity;
exec $mgm_cmd -e "CLUSTERLOG FILTER WARNING CRITICAL ALERT INFO ERROR";
echo # Should list default;
exec $mgm_cmd -e "CLUSTERLOG INFO";
echo # Bogus severity;
--error 255
exec $mgm_cmd -e "CLUSTERLOG FILTER bogus1";
echo # Should list default;
exec $mgm_cmd -e "CLUSTERLOG INFO";
echo # Bug 11752837: start backup wait started should not print completion logs;
exec $mgm_cmd -e "START BACKUP WAIT STARTED";
echo # Bug 16585455: start backup with backup ID out of range;
--error 255
exec $mgm_cmd -e "START BACKUP 201303271430 WAIT COMPLETED";
echo # Test 1/2 for Bug#16585497: abort backup with backup ID > 2^31;
exec $mgm_cmd -e "ABORT BACKUP 2147483648";
echo # Test 2/2 for Bug#16585497: abort backup with backup ID out of range;
--error 255
exec $mgm_cmd -e "ABORT BACKUP 1000000000000000000";
--echo
--echo # Bug #22328426: NEW TEST NDB_MGM_PROMPT FAILS WITH VALGRIND
--echo # Test for Bug #18421338: SUPPORT SETTING THE PROMPT IN NDB_MGM
--exec $mgm_cmd -e "prompt test-prompt>";
--exec $mgm_cmd -e "prompt"
-- source suite/ndb/include/backup_restore_cleanup.inc
--remove_file $NDB_TOOLS_OUTPUT