| Bug #13384 | mysqltest, no protocol when script contains only lines with eval | ||
|---|---|---|---|
| Submitted: | 21 Sep 2005 17:00 | Modified: | 22 Sep 2005 19:53 |
| Reporter: | Matthias Leich | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: Command-line Clients | Severity: | S1 (Critical) |
| Version: | 4.1 | OS: | |
| Assigned to: | Magnus Blåudd | CPU Architecture: | Any |
[22 Sep 2005 15:08]
Matthias Leich
The impact of this bug is bigger.
Top level script with SELECT 1;
--source sublevel.inc
sublevel.inc contains many statements, but all with eval
I get a protocol file with SELECT 1 and his result. NOTHING more.
So I cannot trust any protocols and any [passed|failed] messages.
[22 Sep 2005 15:27]
Carsten Segieth
The bug also breaks the funcs_1 suite! Here the 2 tests 'memory__load' and 'myisam__load' now fails (but 'innodb__load' passes). The only difference between them is that the first 'non comment' statement in the successful 'innodb__load' is '--source include/have_innodb.inc'. In the 2 other tests (memory + myisam) the first statement is 'let $engine= ...'. To reproduce and / or test this use get a clone of mysql-test-extra-5.0 cd .../mysql-test mkdir suite ln -s .../mysql-test-extra-5.0/mysql-test/suite suite ./mysql-test-run.pl --suite=funcs_1
[22 Sep 2005 15:53]
Matthias Leich
Please ignore the bug description within my comment [22 Sep 17:08] Matthias Leich . The problem was caused by a scripting bug (open of one, but close of two while loops) within my script sublevel.inc. I do not know why I didn't got an error message by mysqltest, but I am no more able to reproduce this situation. But the first bug description of the report remains valid.
[22 Sep 2005 19:25]
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/internals/30234
[22 Sep 2005 19:52]
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/internals/30236
[22 Sep 2005 19:53]
Magnus Blåudd
Pushed to 4.1 and 5.0
[22 Sep 2005 20:00]
Magnus Blåudd
Run the funcs_1 test suite successfully

Description: When contains only statements with an leading eval Example: eval SELECT 'ABC'; eval SELECT 'DEF'; eval .... I never get a protocol. Unfortunately this harms the Upgrade/Downgrade testsuite. I am nearly 100 % sure, that this bug was introduced by a push within the last 2-5 days. MySQL 5.0.13-rc does not show this bug. I guess the current MySQL 4.0 contains the same bug, but I could not check it. Workaround: Write a SQL statement without eval into the script. My environment: - Intel PC with Linux(SuSE 9.3) - MySQL compiled from source Version 4.1 ChangeSet@1.2452, 2005-09-21 Version 5.0 ChangeSet@1.1980.1.2, 2005-09-21 How to repeat: echo "Dummy" > r/my.result # produce a fake result file echo "eval SELECT 'ABC';" > t/my.test ./mysql-test-run --skip-ndb my ls -l r/my.reject <--- There will be no reject file echo "SELECT 1;" >> t/my.test ./mysql-test-run --skip-ndb my ls -l r/my.reject <--- There will be a reject file because of the workaround.