Description:
5.0 tree, at ChangeSet@1.1820, 2005-01-25 20:08:16+02:00, jani@ua141d10.elisa.omakaista.fi.
The commands in help.test are processed differently, depending on whether --ps-protocol is used or not.
This was the cause for BUG#8129. The fix "bk commit - 5.0 tree (ram:1.1825)" eliminates the crash but still the difference between command execution with and without --ps-protocol should be figured out and eliminated.
How to repeat:
Apply the printouts.patch (I'll attach the tarball)
Do this:
./mysql-test --debug t/help.test
cp var/log/master.trace t1
./mysql-test --debug --ps-protocol t/help.test
cp var/log/master.trace t2
awk '/dream/{s=1;} /<mysql_parse/{if (s==1) {exit(0);}} //{ if (s==1) print $0} ' t1> x1
awk '/dream/{s=1;} /<mysql_parse/{if (s==1) {exit(0);}} //{ if (s==1) print $0} ' t2> x2
# my x1 and x2 files are provided tarball.
diff -c t1 t2
And among normal differences see:
T@147466: | | | | | >find_field_in_table
T@147466: | | | | | | enter: table: 'help_topic' name: 'help_topic_id' item name: 'help_topic_id' ref 0x0
+ T@147466: | | | | | | info: used_keys.intersect(1)
T@147466: | | | | | <find_field_in_table
T@147466: | | | | | >find_field_in_table
T@147466: | | | | | | enter: table: 'help_topic' name: 'name' item name: 'name' ref 0x0
+ T@147466: | | | | | | info: used_keys.intersect(2)
T@147466: | | | | | <find_field_in_table
T@147466: | | | | | >find_field_in_table
SergeyP: ^^ so we have table->used_keys.intersect called in one case and not called in the other. There is no reason for using PS protocol to cause this difference ? (1)
...
T@147466: | | | | >SQL_SELECT::test_quick_select
...
! T@147466: | | | | | info: head->used_keys= 3
...
--- 198,208 ----
...
! T@147466: | | | | | info: head->used_keys= 0
...
SergeyP: even if (1) had some explanation, we get different head->used_keys in test_quick_select(). One of the values is definitely wrong.
Suggested fix:
The fix for BUG#8129 does table->used_keys.clear_all() to make the test deterministic. Figure out why this is necessary, check if there are other dangerous differences.