| Bug #43015 | main.lock_multi: Weak code (sleeps etc.) | ||
|---|---|---|---|
| Submitted: | 19 Feb 2009 11:41 | Modified: | 13 Apr 2009 15:19 |
| Reporter: | Matthias Leich | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: Tests | Severity: | S3 (Non-critical) |
| Version: | 5.0 | OS: | Any |
| Assigned to: | Matthias Leich | CPU Architecture: | Any |
| Tags: | sporadic failures | ||
[19 Feb 2009 11:43]
Matthias Leich
I already have a poll routine which could be used for a SHOW PROCESSLIST result set. It will be pushed within this bug fix.
[10 Mar 2009 20:59]
Matthias Leich
The fix for Bug#42003 tests missing the disconnect of connections <> default Patch is pushed to bugteam trees 2009-03-10 removed a lot of the sleeps in t/lock_multi.test. The 5.1 and 6.0 version of this test does no more contain sleeps of several seconds. I detected during the merge 5.0 - 5.1 - 6.0 of this fix that the 5.0 version of this test contains most probably more sleeps than most probably needed. So the fix for the current bug shrinks to - backport improvements existing in 5.1 - check the remaining sleeps in 5.0.
[17 Mar 2009 14:22]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/69426 2773 Matthias Leich 2009-03-16 Fix for Bug#43015 and Bug#43065 Details for Bug#43015 main.lock_multi: Weak code (sleeps etc.) ------------------------------------------------------------- - The fix for bug 42003 already removed a lot of the weaknesses mentioned. - Tests showed that there are unfortunately no improvements of this tests in MySQL 5.1 which could be ported back to 5.0. - Remove a superfluous "--sleep 1" around line 195 Details for Bug#43065 main.lock_multi: This test is too big if the disk is slow ------------------------------------------------------------------------------- - move the subtests for the bugs 38499 and 36691 into separate scripts - runtime under excessive parallel I/O load after applying the fix lock_multi [ pass ] 22887 lock_multi_bug38499 [ pass ] 536926 lock_multi_bug38691 [ pass ] 258498
[23 Mar 2009 13:57]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/70058 2741 Matthias Leich 2009-03-23 Fix for Bug#43015 and Bug#43065 Details for Bug#43015 main.lock_multi: Weak code (sleeps etc.) ------------------------------------------------------------- - The fix for bug 42003 already removed a lot of the weaknesses mentioned. - Tests showed that there are unfortunately no improvements of this tests in MySQL 5.1 which could be ported back to 5.0. - Remove a superfluous "--sleep 1" around line 195 Details for Bug#43065 main.lock_multi: This test is too big if the disk is slow ------------------------------------------------------------------------------- - move the subtests for the bugs 38499 and 36691 into separate scripts - runtime under excessive parallel I/O load after applying the fix lock_multi [ pass ] 22887 lock_multi_bug38499 [ pass ] 536926 lock_multi_bug38691 [ pass ] 258498
[23 Mar 2009 14:21]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/70066 2741 Matthias Leich 2009-03-23 Fix for Bug#43015 and Bug#43065 Details for Bug#43015 main.lock_multi: Weak code (sleeps etc.) ------------------------------------------------------------- - The fix for bug 42003 already removed a lot of the weaknesses mentioned. - Tests showed that there are unfortunately no improvements of this tests in MySQL 5.1 which could be ported back to 5.0. - Remove a superfluous "--sleep 1" around line 195 Details for Bug#43065 main.lock_multi: This test is too big if the disk is slow ------------------------------------------------------------------------------- - move the subtests for the bugs 38499 and 36691 into separate scripts - runtime under excessive parallel I/O load after applying the fix lock_multi [ pass ] 22887 lock_multi_bug38499 [ pass ] 536926 lock_multi_bug38691 [ pass ] 258498
[24 Mar 2009 13:31]
Matthias Leich
Pushed to mysql-bugteam-6.0 mysql-bugteam-5.1 mysql-bugteam-5.0
[27 Mar 2009 14:31]
Bugs System
Pushed into 5.0.80 (revid:joro@sun.com-20090327142516-55gumdxj39z6eijj) (version source revid:leonard@mysql.com-20090324072904-7w2lxdxzw8hx1rnm) (merge vers: 5.0.80) (pib:6)
[27 Mar 2009 14:56]
Bugs System
Pushed into 5.1.34 (revid:joro@sun.com-20090327143448-wuuuycetc562ty6o) (version source revid:matthias.leich@sun.com-20090323160848-a4gtbtwqnl7bdx2e) (merge vers: 5.1.34) (pib:6)
[27 Mar 2009 15:19]
Paul DuBois
Test case changes. No changelog entry needed. Setting report to NDI pending push into 6.0.x.
[13 Apr 2009 9:21]
Bugs System
Pushed into 6.0.11-alpha (revid:alik@sun.com-20090413084402-snnrocwzktcl88ny) (version source revid:matthias.leich@sun.com-20090323185831-13boe36lf6c7pagg) (merge vers: 6.0.11-alpha) (pib:6)
[13 Apr 2009 15:19]
Paul DuBois
Test case changes. No changelog entry needed.
[9 May 2009 16:46]
Bugs System
Pushed into 5.1.34-ndb-6.2.18 (revid:jonas@mysql.com-20090508185236-p9b3as7qyauybefl) (version source revid:jonas@mysql.com-20090508185236-p9b3as7qyauybefl) (merge vers: 5.1.34-ndb-6.2.18) (pib:6)
[9 May 2009 17:43]
Bugs System
Pushed into 5.1.34-ndb-6.3.25 (revid:jonas@mysql.com-20090509063138-1u3q3v09wnn2txyt) (version source revid:jonas@mysql.com-20090509063138-1u3q3v09wnn2txyt) (merge vers: 5.1.34-ndb-6.3.25) (pib:6)
[9 May 2009 18:40]
Bugs System
Pushed into 5.1.34-ndb-7.0.6 (revid:jonas@mysql.com-20090509154927-im9a7g846c6u1hzc) (version source revid:jonas@mysql.com-20090509154927-im9a7g846c6u1hzc) (merge vers: 5.1.34-ndb-7.0.6) (pib:6)

Description: Observations in main.lock_multi based on mysql-5.0-bugteam: -------------------------------------- 1. grep -n sleep t/lock_multi.test 19:--sleep 2 22:--sleep 2 37:--sleep 2 ... 243:--sleep 2 Some sleeps last 1 second which is known to be too short on overloaded testing boxes. The sleeps are used because there is in the moment no poll routine which is able to process the result set of a SHOW PROCESSLIST. But this could be implemented. The 5.1 version of this test uses poll routines based on SELECT ... FROM information_schema.PROCESSLIST 2. line 38 send select n from t1; whereas the corresponding code piece within the MySQL version 5.1 does not use sleep I guess the 5.1 version is improved. 3. Based on my current experiences with tests using multiple sessions I must say that I fear this test tends to random errors and needs a critical revision. I would not say this bug is a duplicate of Bug#31760 "lock_multi" test failed randomly but a fix for the current bug removes most probably the reason for Bug#31760 and several non reported test failures which already occured or may show up in future. How to repeat: Just have a look into the code in MySQL 5.0. Suggested fix: - Replace all sleeps with poll routines - Check all multi session scenarios if a poll routine or send/reap or similar is missing + fix