#At file:///work2/5.1/mysql-5.1-bugteam-work/
2673 Matthias Leich 2008-10-17
- Fix for Bug #39848, #39863, #39978, #39569
Bug#39848 events_bugs fails sporadically on pushbuild
(missing rows in table event_log)
Details: Reimplement the subtest for BUG 28924
- check if the number of rows within the table
event_log changes but don't print rows
because the number varies depending on
load on testing box
- shift DROP USER befor DROP EVENT
= Subtest fits again to old bug
- remove no more needed comments + variables
Bug#39863 events_bugs fails sporadically on pushbuild (extra processes
in I_S.PROCESSLIST)
Details: Abort with appropriate message to the protocol if
release_lock() does not has the intended effect.
This cannot prevent problems caused by the probably
buggy release_lock() but it reveals if we had a problem
in this area.
Bug#39978 main.events_bugs does not clean up
Detail: Restore global.event_scheduler = ON at end of test
Bug#39569 events_bugs fails sporadically on pushbuild (should have
failed with errno 1539)
Detail: Set $wait_timeout to 4 instead of 2
- Fix two instabilities (result sets pulled from processlist in subtest
for bug 16407) which were found during tests with high parallel
I/O load
- Minor improvements of formatting
Details:
- Add comments
- Remove tabs and trailing blanks
- Add line breaks for better readability
modified:
mysql-test/r/events_bugs.result
mysql-test/t/disabled.def
mysql-test/t/events_bugs.test
=== modified file 'mysql-test/r/events_bugs.result'
--- a/mysql-test/r/events_bugs.result 2008-10-16 19:45:38 +0000
+++ b/mysql-test/r/events_bugs.result 2008-10-17 12:54:57 +0000
@@ -60,8 +60,7 @@ select get_lock('test_bug16407', 60);
end|
"Now if everything is fine the event has compiled and is locked"
select /*1*/ user, host, db, info from information_schema.processlist
-where command!='Daemon' and (info is null or info not like '%processlist%')
-order by info;
+where info = 'select get_lock(\'test_bug16407\', 60)';
user host db info
root localhost events_test select get_lock('test_bug16407', 60)
select release_lock('test_bug16407');
@@ -117,10 +116,8 @@ events_test ee_16407_2 STRICT_TRANS_TABL
events_test ee_16407_3 STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER
events_test ee_16407_4
select /*2*/ user, host, db, info from information_schema.processlist
-where (command!='Daemon' || user='event_scheduler') and (info is null or info not like
'%processlist%')
-order by info;
+where info = 'select get_lock(\'ee_16407_2\', 60)';
user host db info
-event_scheduler localhost NULL NULL
root localhost events_test select get_lock('ee_16407_2', 60)
root localhost events_test select get_lock('ee_16407_2', 60)
root localhost events_test select get_lock('ee_16407_2', 60)
@@ -128,10 +125,8 @@ select release_lock('ee_16407_2');
release_lock('ee_16407_2')
1
select /*3*/ user, host, db, info from information_schema.processlist
-where (command!='Daemon' || user='event_scheduler') and (info is null or info not like
'%processlist%')
-order by info;
+where info = 'select get_lock(\'ee_16407_2\', 60)';
user host db info
-event_scheduler localhost NULL NULL
set global event_scheduler= off;
select * from events_smode_test order by ev_name, a;
ev_name a
=== modified file 'mysql-test/t/disabled.def'
--- a/mysql-test/t/disabled.def 2008-10-15 18:58:53 +0000
+++ b/mysql-test/t/disabled.def 2008-10-17 12:54:57 +0000
@@ -13,4 +13,4 @@ federated_transactions : Bug#29523 Tra
csv_alter_table : Bug#33696 2008-01-21 pcrews no .result file - bug allows NULL
columns in CSV tables
log_tables.test : Bug #37798: main.log_tables fails randomly on
powermacg5 and windows
slow_query_log_func.test : Bug #37962: *_func tests containing sleeps/race
conditions
-events-bugs.test : Bug #39848, Bug #39863, Bug #39569, Bug #37774
+# events-bugs.test : Bug #39848, Bug #39863, Bug #39569, Bug #37774
=== modified file 'mysql-test/t/events_bugs.test'
--- a/mysql-test/t/events_bugs.test 2008-10-16 19:45:38 +0000
+++ b/mysql-test/t/events_bugs.test 2008-10-17 12:54:57 +0000
@@ -145,17 +145,16 @@ end|
delimiter ;|
# The default session has the user lock.
-# We wait till the event runs and hangs when trying to get the user lock.
+# We wait till one event runs and hangs when trying to get the user lock.
let $wait_condition=
- select count(*) = 1 from information_schema.processlist
+ select count(*) > 0 from information_schema.processlist
where info = 'select get_lock(\'test_bug16407\', 60)';
--source include/wait_condition.inc
--echo "Now if everything is fine the event has compiled and is locked"
# Expect to see one session in events_test waiting for the user lock.
select /*1*/ user, host, db, info from information_schema.processlist
-where command!='Daemon' and (info is null or info not like '%processlist%')
-order by info;
+where info = 'select get_lock(\'test_bug16407\', 60)';
select release_lock('test_bug16407');
# Try to avoid
# Bug#39863 events_bugs fails sporadically on pushbuild (extra processes in
I_S.PROCESSLIST)
@@ -163,7 +162,7 @@ select release_lock('test_bug16407');
# Bug#32782 User lock hash fails to find lock
# "various issues related to missing or incorrect return results
# from release_lock()."
-# Therefore we check here if the session of the event executor disappeared or
+# Therefore we check here if the event executing session disappeared or
# we waited >= 5 seconds for this to happen.
let $wait_timeout= 5;
let $wait_condition=
@@ -230,20 +229,26 @@ let $wait_condition=
--source include/wait_condition.inc
select /*2*/ user, host, db, info from information_schema.processlist
-where (command!='Daemon' || user='event_scheduler') and (info is null or info not like
'%processlist%')
-order by info;
+where info = 'select get_lock(\'ee_16407_2\', 60)';
select release_lock('ee_16407_2');
+# Try to avoid
+# Bug#39863 events_bugs fails sporadically on pushbuild (extra processes in
I_S.PROCESSLIST)
+# which is most probably caused by
+# Bug#32782 User lock hash fails to find lock
+# "various issues related to missing or incorrect return results
+# from release_lock()."
+# Therefore we check here if the event executing sessions disappeared or
+# we waited >= 5 seconds for this to happen.
+let $wait_timeout= 5;
let $wait_condition=
- select count(*) = 1 and user = 'event_scheduler' and info is null
+ select count(*) = 0
from information_schema.processlist
- where (command!='Daemon' || user='event_scheduler')
- and (info is null or info not like '%processlist%');
+ where info = 'select get_lock(\'ee_16407_2\', 60)';
--source include/wait_condition.inc
select /*3*/ user, host, db, info from information_schema.processlist
-where (command!='Daemon' || user='event_scheduler') and (info is null or info not like
'%processlist%')
-order by info;
+where info = 'select get_lock(\'ee_16407_2\', 60)';
set global event_scheduler= off;
select * from events_smode_test order by ev_name, a;
--echo "OK, last check before we drop them"
| Thread |
|---|
| • bzr commit into mysql-5.1 branch (Matthias.Leich:2673) Bug#39569 Bug#39848Bug#39863 Bug#39978 | Matthias Leich | 17 Oct |