Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
31df5d1d
Commit
31df5d1d
authored
Aug 31, 2006
by
msvensson@shellback.(none)
Browse files
Options
Browse Files
Download
Plain Diff
Merge bk-internal:/home/bk/mysql-5.1-new-maint
into shellback.(none):/home/msvensson/mysql/mysql-5.1-new-maint
parents
d575196c
71450a86
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
100 additions
and
69 deletions
+100
-69
mysql-test/lib/mtr_process.pl
mysql-test/lib/mtr_process.pl
+2
-0
mysql-test/mysql-test-run.pl
mysql-test/mysql-test-run.pl
+97
-68
sql/handler.cc
sql/handler.cc
+1
-1
No files found.
mysql-test/lib/mtr_process.pl
View file @
31df5d1d
...
@@ -94,6 +94,8 @@ sub spawn_impl ($$$$$$$$) {
...
@@ -94,6 +94,8 @@ sub spawn_impl ($$$$$$$$) {
my
$pid_file
=
shift
;
# FIXME
my
$pid_file
=
shift
;
# FIXME
my
$spawn_opts
=
shift
;
my
$spawn_opts
=
shift
;
mtr_error
("
Can't spawn with empty
\"
path
\"
")
unless
defined
$path
;
if
(
$::opt_script_debug
)
if
(
$::opt_script_debug
)
{
{
print
STDERR
"
\n
";
print
STDERR
"
\n
";
...
...
mysql-test/mysql-test-run.pl
View file @
31df5d1d
...
@@ -216,7 +216,7 @@ our $opt_embedded_server;
...
@@ -216,7 +216,7 @@ our $opt_embedded_server;
our
$opt_extern
;
our
$opt_extern
;
our
$opt_fast
;
our
$opt_fast
;
our
$opt_force
;
our
$opt_force
;
our
$opt_reorder
;
our
$opt_reorder
=
1
;
our
$opt_enable_disabled
;
our
$opt_enable_disabled
;
our
$opt_gcov
;
our
$opt_gcov
;
...
@@ -360,6 +360,7 @@ sub install_db ($$);
...
@@ -360,6 +360,7 @@ sub install_db ($$);
sub
run_testcase
($);
sub
run_testcase
($);
sub
run_testcase_stop_servers
($$$);
sub
run_testcase_stop_servers
($$$);
sub
run_testcase_start_servers
($);
sub
run_testcase_start_servers
($);
sub
run_testcase_check_skip_test
($);
sub
report_failure_and_restart
($);
sub
report_failure_and_restart
($);
sub
do_before_start_master
($$);
sub
do_before_start_master
($$);
sub
do_before_start_slave
($$);
sub
do_before_start_slave
($$);
...
@@ -1954,6 +1955,23 @@ sub mysqld_wait_started($){
...
@@ -1954,6 +1955,23 @@ sub mysqld_wait_started($){
}
}
sub
ndb_mgmd_wait_started
($)
{
my
(
$cluster
)
=
@_
;
my
$retries
=
100
;
while
(
ndbcluster_wait_started
(
$cluster
,
"
--no-contact
")
and
$retries
)
{
# Millisceond sleep emulated with select
select
(
undef
,
undef
,
undef
,
(
0.1
));
$retries
--
;
}
return
$retries
==
0
;
}
sub
ndb_mgmd_start
($)
{
sub
ndb_mgmd_start
($)
{
my
$cluster
=
shift
;
my
$cluster
=
shift
;
...
@@ -1974,13 +1992,12 @@ sub ndb_mgmd_start ($) {
...
@@ -1974,13 +1992,12 @@ sub ndb_mgmd_start ($) {
"",
"",
{
append_log_file
=>
1
});
{
append_log_file
=>
1
});
# FIXME Should not be needed
# FIXME Should not be needed
# Unfortunately the cluster nodes will fail to start
# Unfortunately the cluster nodes will fail to start
# if ndb_mgmd has not started properly
# if ndb_mgmd has not started properly
while
(
ndbcluster_wait_started
(
$cluster
,
"
--no-contact
"
))
if
(
ndb_mgmd_wait_started
(
$cluster
))
{
{
select
(
undef
,
undef
,
undef
,
0.1
);
mtr_error
("
Failed to wait for start of ndb_mgmd
"
);
}
}
# Remember pid of ndb_mgmd
# Remember pid of ndb_mgmd
...
@@ -2045,7 +2062,7 @@ sub ndbcluster_start ($$) {
...
@@ -2045,7 +2062,7 @@ sub ndbcluster_start ($$) {
mtr_error
("
Cluster '
$cluster
->{'name'}' already started
");
mtr_error
("
Cluster '
$cluster
->{'name'}' already started
");
}
}
my
$pid
=
ndb_mgmd_start
(
$cluster
);
ndb_mgmd_start
(
$cluster
);
for
(
my
$idx
=
0
;
$idx
<
$cluster
->
{'
nodes
'};
$idx
++
)
for
(
my
$idx
=
0
;
$idx
<
$cluster
->
{'
nodes
'};
$idx
++
)
{
{
...
@@ -2156,6 +2173,11 @@ sub run_suite () {
...
@@ -2156,6 +2173,11 @@ sub run_suite () {
foreach
my
$tinfo
(
@$tests
)
foreach
my
$tinfo
(
@$tests
)
{
{
if
(
run_testcase_check_skip_test
(
$tinfo
))
{
next
;
}
mtr_timer_start
(
$glob_timers
,"
testcase
",
60
*
$opt_testcase_timeout
);
mtr_timer_start
(
$glob_timers
,"
testcase
",
60
*
$opt_testcase_timeout
);
run_testcase
(
$tinfo
);
run_testcase
(
$tinfo
);
mtr_timer_stop
(
$glob_timers
,"
testcase
");
mtr_timer_stop
(
$glob_timers
,"
testcase
");
...
@@ -2440,32 +2462,9 @@ sub im_prepare_data_dir($) {
...
@@ -2440,32 +2462,9 @@ sub im_prepare_data_dir($) {
}
}
}
}
sub
run_testcase_check_skip_test
($)
##############################################################################
{
#
my
(
$tinfo
)
=
@_
;
# Run a single test case
#
##############################################################################
# When we get here, we have already filtered out test cases that doesn't
# apply to the current setup, for example if we use a running server, test
# cases that restart the server are dropped. So this function should mostly
# be about doing things, not a lot of logic.
# We don't start and kill the servers for each testcase. But some
# testcases needs a restart, because they specify options to start
# mysqld with. After that testcase, we need to restart again, to set
# back the normal options.
sub
run_testcase
($)
{
my
$tinfo
=
shift
;
my
$tname
=
$tinfo
->
{'
name
'};
mtr_tonewfile
(
$path_current_test_log
,"
$tname
\n
");
# Always tell where we are
# output current test to ndbcluster log file to enable diagnostics
mtr_tofile
(
$file_ndb_testrun_log
,"
CURRENT TEST
$tname
\n
");
# ----------------------------------------------------------------------
# ----------------------------------------------------------------------
# If marked to skip, just print out and return.
# If marked to skip, just print out and return.
...
@@ -2478,7 +2477,7 @@ sub run_testcase ($) {
...
@@ -2478,7 +2477,7 @@ sub run_testcase ($) {
{
{
mtr_report_test_name
(
$tinfo
);
mtr_report_test_name
(
$tinfo
);
mtr_report_test_skipped
(
$tinfo
);
mtr_report_test_skipped
(
$tinfo
);
return
;
return
1
;
}
}
# If test needs cluster, check that master installed ok
# If test needs cluster, check that master installed ok
...
@@ -2486,7 +2485,7 @@ sub run_testcase ($) {
...
@@ -2486,7 +2485,7 @@ sub run_testcase ($) {
{
{
mtr_report_test_name
(
$tinfo
);
mtr_report_test_name
(
$tinfo
);
mtr_report_test_failed
(
$tinfo
);
mtr_report_test_failed
(
$tinfo
);
return
;
return
1
;
}
}
# If test needs slave cluster, check that it installed ok
# If test needs slave cluster, check that it installed ok
...
@@ -2495,37 +2494,83 @@ sub run_testcase ($) {
...
@@ -2495,37 +2494,83 @@ sub run_testcase ($) {
{
{
mtr_report_test_name
(
$tinfo
);
mtr_report_test_name
(
$tinfo
);
mtr_report_test_failed
(
$tinfo
);
mtr_report_test_failed
(
$tinfo
);
return
;
return
1
;
}
}
my
$master_restart
=
run_testcase_need_master_restart
(
$tinfo
)
;
return
0
;
my
$slave_restart
=
run_testcase_need_slave_restart
(
$tinfo
);
}
if
(
$master_restart
or
$slave_restart
)
sub
do_before_run_mysqltest
($)
{
my
$tinfo
=
shift
;
my
$tname
=
$tinfo
->
{'
name
'};
# Remove old reject file
if
(
$opt_suite
eq
"
main
"
)
{
{
run_testcase_stop_servers
(
$tinfo
,
$master_restart
,
$slave_restart
);
unlink
("
r/
$tname
.reject
");
}
else
{
unlink
("
suite/
$opt_suite
/r/
$tname
.reject
");
}
}
# ----------------------------------------------------------------------
# Prepare to start masters. Even if we use embedded, we want to run
# MASV cleanup...
# the preparation.
mtr_tonewfile
(
$path_current_test_log
,"
$tname
\n
");
# Always tell where we are
# ----------------------------------------------------------------------
# output current test to ndbcluster log file to enable diagnostics
mtr_tofile
(
$file_ndb_testrun_log
,"
CURRENT TEST
$tname
\n
");
mtr_tofile
(
$master
->
[
0
]
->
{'
path_myerr
'},"
CURRENT_TEST:
$tname
\n
");
mtr_tofile
(
$master
->
[
0
]
->
{'
path_myerr
'},"
CURRENT_TEST:
$tname
\n
");
if
(
$master
->
[
1
]
->
{'
pid
'}
)
if
(
$master
->
[
1
]
->
{'
pid
'}
)
{
{
mtr_tofile
(
$master
->
[
1
]
->
{'
path_myerr
'},"
CURRENT_TEST:
$tname
\n
");
mtr_tofile
(
$master
->
[
1
]
->
{'
path_myerr
'},"
CURRENT_TEST:
$tname
\n
");
}
}
}
# ----------------------------------------------------------------------
sub
do_after_run_mysqltest
($)
# If any mysqld servers running died, we have to know
{
# ----------------------------------------------------------------------
my
$tinfo
=
shift
;
my
$tname
=
$tinfo
->
{'
name
'};
my
$died
=
mtr_record_dead_children
();
#MASV cleanup
# Save info from this testcase run to mysqltest.log
my
$testcase_log
=
mtr_fromfile
(
$path_timefile
)
if
-
f
$path_timefile
;
mtr_tofile
(
$path_mysqltest_log
,"
CURRENT TEST
$tname
\n
");
mtr_tofile
(
$path_mysqltest_log
,
$testcase_log
);
}
# ----------------------------------------------------------------------
# Start masters needed by the testcase
##############################################################################
# ----------------------------------------------------------------------
#
# Run a single test case
#
##############################################################################
# When we get here, we have already filtered out test cases that doesn't
# apply to the current setup, for example if we use a running server, test
# cases that restart the server are dropped. So this function should mostly
# be about doing things, not a lot of logic.
# We don't start and kill the servers for each testcase. But some
# testcases needs a restart, because they specify options to start
# mysqld with. After that testcase, we need to restart again, to set
# back the normal options.
sub
run_testcase
($)
{
my
$tinfo
=
shift
;
my
$master_restart
=
run_testcase_need_master_restart
(
$tinfo
);
my
$slave_restart
=
run_testcase_need_slave_restart
(
$tinfo
);
if
(
$master_restart
or
$slave_restart
)
{
run_testcase_stop_servers
(
$tinfo
,
$master_restart
,
$slave_restart
);
}
my
$died
=
mtr_record_dead_children
();
if
(
$died
or
$master_restart
or
$slave_restart
)
if
(
$died
or
$master_restart
or
$slave_restart
)
{
{
run_testcase_start_servers
(
$tinfo
);
run_testcase_start_servers
(
$tinfo
);
...
@@ -2535,28 +2580,14 @@ sub run_testcase ($) {
...
@@ -2535,28 +2580,14 @@ sub run_testcase ($) {
# If --start-and-exit or --start-dirty given, stop here to let user manually
# If --start-and-exit or --start-dirty given, stop here to let user manually
# run tests
# run tests
# ----------------------------------------------------------------------
# ----------------------------------------------------------------------
if
(
$opt_start_and_exit
or
$opt_start_dirty
)
if
(
$opt_start_and_exit
or
$opt_start_dirty
)
{
{
mtr_report
("
\n
Servers started, exiting
");
mtr_report
("
\n
Servers started, exiting
");
exit
(
0
);
exit
(
0
);
}
}
# ----------------------------------------------------------------------
# Run the test case
# ----------------------------------------------------------------------
{
# remove the old reject file
if
(
$opt_suite
eq
"
main
"
)
{
unlink
("
r/
$tname
.reject
");
}
else
{
{
unlink
("
suite/
$opt_suite
/r/
$tname
.reject
");
do_before_run_mysqltest
(
$tinfo
);
}
unlink
(
$path_timefile
);
my
$res
=
run_mysqltest
(
$tinfo
);
my
$res
=
run_mysqltest
(
$tinfo
);
mtr_report_test_name
(
$tinfo
);
mtr_report_test_name
(
$tinfo
);
...
@@ -2592,10 +2623,8 @@ sub run_testcase ($) {
...
@@ -2592,10 +2623,8 @@ sub run_testcase ($) {
report_failure_and_restart
(
$tinfo
);
report_failure_and_restart
(
$tinfo
);
}
}
# Save info from this testcase run to mysqltest.log
my
$testcase_log
=
mtr_fromfile
(
$path_timefile
)
if
-
f
$path_timefile
;
do_after_run_mysqltest
(
$tinfo
);
mtr_tofile
(
$path_mysqltest_log
,"
CURRENT TEST
$tname
\n
");
mtr_tofile
(
$path_mysqltest_log
,
$testcase_log
);
}
}
# ----------------------------------------------------------------------
# ----------------------------------------------------------------------
...
...
sql/handler.cc
View file @
31df5d1d
...
@@ -3535,7 +3535,7 @@ int handler::ha_external_lock(THD *thd, int lock_type)
...
@@ -3535,7 +3535,7 @@ int handler::ha_external_lock(THD *thd, int lock_type)
int
handler
::
ha_reset
()
int
handler
::
ha_reset
()
{
{
DBUG_ENTER
(
"ha_reset"
);
DBUG_ENTER
(
"ha_reset"
);
/* Check that we have called all proper de
l
allocation functions */
/* Check that we have called all proper deallocation functions */
DBUG_ASSERT
((
byte
*
)
table
->
def_read_set
.
bitmap
+
DBUG_ASSERT
((
byte
*
)
table
->
def_read_set
.
bitmap
+
table
->
s
->
column_bitmap_size
==
table
->
s
->
column_bitmap_size
==
(
byte
*
)
table
->
def_write_set
.
bitmap
);
(
byte
*
)
table
->
def_write_set
.
bitmap
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment