Merge lp:~tsarev/percona-server/5.1_bug_838725_fix into lp:percona-server/5.1

Proposed by Oleg Tsarev
Status: Superseded
Proposed branch: lp:~tsarev/percona-server/5.1_bug_838725_fix
Merge into: lp:percona-server/5.1
Diff against target: 296 lines (+154/-21)
13 files modified
mysql-test/innodb_deadlock_count.patch/percona_innodb_deadlock_count.test (+1/-1)
mysql-test/innodb_fix_misc_bug51325.test (+1/-1)
mysql-test/percona_innodb_buffer_pool_shm.test (+1/-1)
mysql-test/percona_innodb_doublewrite_file.test (+1/-1)
mysql-test/percona_innodb_use_sys_stats_table.test (+1/-1)
mysql-test/percona_server_variables.inc (+1/-1)
mysql-test/percona_xtradb_admin_command.test (+1/-1)
mysql-test/percona_xtradb_bug317074.test (+1/-1)
mysql-test/userstat_bug602047.test (+1/-1)
patches/innodb_bug47167_test_fix.patch (+0/-8)
patches/innodb_swap_builtin_plugin.patch (+81/-0)
patches/mysql-test.diff (+61/-1)
patches/slow_extended.patch (+3/-3)
To merge this branch: bzr merge lp:~tsarev/percona-server/5.1_bug_838725_fix
Reviewer Review Type Date Requested Status
Alexey Kopytov (community) Needs Fixing
Oleg Tsarev (community) Needs Resubmitting
Review via email: mp+73939@code.launchpad.net

This proposal supersedes a proposal from 2011-09-03.

This proposal has been superseded by a proposal from 2011-09-29.

Description of the change

1. Fixed bug #838725 - some percona's tests doesn't run after commit number 266 (patch patches/innodb_bug47167_test_fix.patch)
2. Remove "innodb" suite from default suites list (mysql-test-run.pl, mysql-test-run, mtr)
3. Add "Running suites: ..." and "Running test cases: ..." output (mysql-test-run.pl, mysql-test-run, mtr)
4. Fixed tests main.index_merge_innodb, main.rowid_order_innodb, main.type_bit_innodb
5. Fixed test main.endspace - http://bugs.mysql.com/bug.php?id=62340

To post a comment you must log in.
Revision history for this message
Oleg Tsarev (tsarev) wrote : Posted in a previous version of this proposal
Revision history for this message
Oleg Tsarev (tsarev) wrote : Posted in a previous version of this proposal
Revision history for this message
Oleg Tsarev (tsarev) wrote :
Revision history for this message
Alexey Kopytov (akopytov) wrote :

** after your changes have_innodb_plugin.inc is functionally identical to have_innodb.inc. Which means there's no need for s/have_innodb/have_innodb_plugin/ in percona tests
** mtr is just a symlink to mysql-test-run.pl, there's no need to duplicate diff changes
** please revert the "Running test cases" changes. they might be good for debugging, but they don't carry any functional changes, so they can only increase maintenance cost.
** MySQL bug #62340 reported by you is invalid. The difference in results has been introduced by your changes in Percona Server, it has nothing to do with upstream.
** main.index_merge_innodb, main.rowid_order_innodb, main.type_bit_innodb and main.endspace result differences look fishy. I understand that there may be a difference in results between builtin InnoDb and plugin/XtraDB. But those tests used to pass with XtraDB in older Percona Server releases. Isn't it something we should look into instead of just updating .result files? In other words, what's changed in those tests or XtraDB between Percona Server 5.1.55 and 5.1.58 that leads to results being different?
** I would like a link to a Jenkins build on all slaves, not just the centos ones.

review: Needs Fixing
Revision history for this message
Oleg Tsarev (tsarev) wrote :

 > ** after your changes have_innodb_plugin.inc is functionally identical to have_innodb.inc. Which means there's no need for s/have_innodb/have_innodb_plugin/ in percona tests

ACK

 > ** mtr is just a symlink to mysql-test-run.pl, there's no need to duplicate diff changes

Unfortunatelly - not a symlink. You can check this by call "make all" and see to the Percona_Server-*-*/mysql-test/".

 > ** please revert the "Running test cases" changes. they might be good for debugging, but they don't carry any functional changes, so they can only increase maintenance cost.

This output very good for analyzing Jenkins logs. I don't see the big increase of maintenance time.
This is useful for me at least. Can we save this?

> ** MySQL bug #62340 reported by you is invalid. The difference in results has been introduced by your changes in Percona Server, it has nothing to do with upstream.

1) Bug #62340 is open yet. Where did you see this bug as "Invalid"?
2) Query " select text1, length(text1) from t1 where text1='teststring' or text1 like
'teststring_%';" has no guarantees for output order. I fix upstream test by "order by"
3) This changes to Percona-Server not is "my". This test doesn't work long time according to bug #838725, and right now start work again.

> ** main.index_merge_innodb, main.rowid_order_innodb, main.type_bit_innodb and main.endspace result differences look fishy. I understand that there may be a difference in results between builtin InnoDb and plugin/XtraDB. But those tests used to pass with XtraDB in older Percona Server releases. Isn't it something we should look into instead of just updating .result files? In other words, what's changed in those tests or XtraDB between Percona Server 5.1.55 and 5.1.58 that leads to results being different?

This is a good question, but I hasn't answer to it. May be ask Yasufumi for that? I will write letter to him.

> ** I would like a link to a Jenkins build on all slaves, not just the centos ones.

When all slaves will work fine, I will run tests on all platforms.

review: Needs Resubmitting
Revision history for this message
Alexey Kopytov (akopytov) wrote :

On 05.09.11 19:13, Oleg Tsarev wrote:
> > ** mtr is just a symlink to mysql-test-run.pl, there's no need to duplicate diff changes
>
> Unfortunatelly - not a symlink. You can check this by call "make all" and see to the Percona_Server-*-*/mysql-test/".
>

It is created as a symlink when building from a Bazaar tree. Anyway,
both mtr and mysql-test-run are essentially autogenerated files created
from mysql-test-run.pl (it's just that in tarballs they are copied
rather than symlinked).

So what we should do instead is to remove them when applying the patches
to the tarball. Then they will be created as symlinks to
mysql-test-run.pl when building. It is better than replicating changes
in 3 different files.

Can you report a separate bug for that and submit a separate fix?

> > ** please revert the "Running test cases" changes. they might be good for debugging, but they don't carry any functional changes, so they can only increase maintenance cost.
>
> This output very good for analyzing Jenkins logs. I don't see the big increase of maintenance time.
> This is useful for me at least. Can we save this?
>

You can see the suite names from the logs themselves. Each test is
prefixed with the suite name.

Revision history for this message
Alexey Kopytov (akopytov) wrote :

main.index_merge_innodb, main.rowid_order_innodb, main.type_bit_innodb and main.endspace result differences are due to bug53761.patch. So the related changes should be moved to bug53761.patch rather than mysql-test.diff.

review: Needs Fixing
Revision history for this message
Oleg Tsarev (tsarev) wrote :

> main.index_merge_innodb, main.rowid_order_innodb, main.type_bit_innodb and
> main.endspace result differences are due to bug53761.patch. So the related
> changes should be moved to bug53761.patch rather than mysql-test.diff.

ACK

Unmerged revisions

283. By Oleg Tsarev

update from lp:percona-server/5.1

282. By Oleg Tsarev

fix fails for tests main.index_merge_innodb, main.rowid_order_innodb, main.type_bit_innodb

281. By Oleg Tsarev

fix main.endspace fails
http://bugs.mysql.com/bug.php?id=62340

280. By Oleg Tsarev

1. Fixed bug #838725 - some percona's tests doesn't run after commit number 266 (patch patches/innodb_bug47167_test_fix.patch)
2. Remove "innodb" suite from default suites list (mysql-test-run.pl, mysql-test-run, mtr)
3. Add "Running suites: ..." and "Running test cases: ..." output (mysql-test-run.pl, mysql-test-run, mtr)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'mysql-test/innodb_deadlock_count.patch/percona_innodb_deadlock_count.test'
2--- mysql-test/innodb_deadlock_count.patch/percona_innodb_deadlock_count.test 2011-06-22 10:21:58 +0000
3+++ mysql-test/innodb_deadlock_count.patch/percona_innodb_deadlock_count.test 2011-09-03 12:26:24 +0000
4@@ -1,4 +1,4 @@
5---source include/have_innodb.inc
6+--source include/have_innodb_plugin.inc
7 --echo # Establish connection con1 (user=root)
8 connect (con1,localhost,root,,);
9 --echo # Establish connection con2 (user=root)
10
11=== modified file 'mysql-test/innodb_fix_misc_bug51325.test'
12--- mysql-test/innodb_fix_misc_bug51325.test 2011-03-09 21:00:46 +0000
13+++ mysql-test/innodb_fix_misc_bug51325.test 2011-09-03 12:26:24 +0000
14@@ -1,5 +1,5 @@
15 # Test for 'innodb_lazy_drop_table' variable
16---source include/have_innodb.inc
17+--source include/have_innodb_plugin.inc
18 --disable_warnings
19 DROP TABLE IF EXISTS t1;
20 --enable_warnings
21
22=== modified file 'mysql-test/percona_innodb_buffer_pool_shm.test'
23--- mysql-test/percona_innodb_buffer_pool_shm.test 2011-06-22 02:53:48 +0000
24+++ mysql-test/percona_innodb_buffer_pool_shm.test 2011-09-03 12:26:24 +0000
25@@ -1,3 +1,3 @@
26---source include/have_innodb.inc
27+--source include/have_innodb_plugin.inc
28 show variables like 'innodb_buffer_pool_shm%';
29
30
31=== modified file 'mysql-test/percona_innodb_doublewrite_file.test'
32--- mysql-test/percona_innodb_doublewrite_file.test 2010-05-26 10:15:29 +0000
33+++ mysql-test/percona_innodb_doublewrite_file.test 2011-09-03 12:26:24 +0000
34@@ -1,2 +1,2 @@
35---source include/have_innodb.inc
36+--source include/have_innodb_plugin.inc
37 show variables like 'innodb_doublewrite%';
38
39=== modified file 'mysql-test/percona_innodb_use_sys_stats_table.test'
40--- mysql-test/percona_innodb_use_sys_stats_table.test 2010-07-06 08:20:44 +0000
41+++ mysql-test/percona_innodb_use_sys_stats_table.test 2011-09-03 12:26:24 +0000
42@@ -1,2 +1,2 @@
43---source include/have_innodb.inc
44+--source include/have_innodb_plugin.inc
45 show variables like 'innodb_use_sys_stats%';
46
47=== modified file 'mysql-test/percona_server_variables.inc'
48--- mysql-test/percona_server_variables.inc 2011-06-23 02:21:00 +0000
49+++ mysql-test/percona_server_variables.inc 2011-09-03 12:26:24 +0000
50@@ -1,3 +1,3 @@
51 --source include/have_response_time_distribution.inc
52---source include/have_innodb.inc
53+--source include/have_innodb_plugin.inc
54 SELECT Variable_name FROM INFORMATION_SCHEMA.SESSION_VARIABLES ORDER BY 1;
55
56=== modified file 'mysql-test/percona_xtradb_admin_command.test'
57--- mysql-test/percona_xtradb_admin_command.test 2010-05-20 10:47:38 +0000
58+++ mysql-test/percona_xtradb_admin_command.test 2011-09-03 12:26:24 +0000
59@@ -1,3 +1,3 @@
60---source include/have_innodb.inc
61+--source include/have_innodb_plugin.inc
62 select * from information_schema.XTRADB_ADMIN_COMMAND;
63 select * from information_schema.XTRADB_ADMIN_COMMAND /*!XTRA_HELLO*/;
64
65=== modified file 'mysql-test/percona_xtradb_bug317074.test'
66--- mysql-test/percona_xtradb_bug317074.test 2010-06-16 09:40:57 +0000
67+++ mysql-test/percona_xtradb_bug317074.test 2011-09-03 12:26:24 +0000
68@@ -1,4 +1,4 @@
69--- source include/have_innodb.inc
70+-- source include/have_innodb_plugin.inc
71
72 SET @old_innodb_file_format=@@innodb_file_format;
73 SET @old_innodb_file_per_table=@@innodb_file_per_table;
74
75=== modified file 'mysql-test/userstat_bug602047.test'
76--- mysql-test/userstat_bug602047.test 2011-02-26 09:03:28 +0000
77+++ mysql-test/userstat_bug602047.test 2011-09-03 12:26:24 +0000
78@@ -1,4 +1,4 @@
79---source include/have_innodb.inc
80+--source include/have_innodb_plugin.inc
81 --disable_warnings
82 DROP TABLE IF EXISTS t1;
83 --enable_warnings
84
85=== modified file 'patches/innodb_bug47167_test_fix.patch'
86--- patches/innodb_bug47167_test_fix.patch 2011-08-01 17:56:34 +0000
87+++ patches/innodb_bug47167_test_fix.patch 2011-09-03 12:26:24 +0000
88@@ -42,11 +42,3 @@
89
90 # Following are negative tests, all should fail.
91 --disable_warnings
92---- a/mysql-test/include/have_innodb.inc
93-+++ b/mysql-test/include/have_innodb.inc
94-@@ -1,4 +1,4 @@
95--if (`SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.ENGINES WHERE engine = 'innodb' AND support IN ('YES', 'DEFAULT', 'ENABLED')`)
96-+if (`select count(*)>0 from information_schema.plugins where plugin_name like 'xtradb%'`)
97- {
98- --skip Test requires InnoDB.
99- }
100
101=== modified file 'patches/innodb_swap_builtin_plugin.patch'
102--- patches/innodb_swap_builtin_plugin.patch 2011-08-09 13:35:34 +0000
103+++ patches/innodb_swap_builtin_plugin.patch 2011-09-03 12:26:24 +0000
104@@ -198,3 +198,84 @@
105 MYSQL_PLUGIN_DYNAMIC(innodb_plugin, [ha_innodb_plugin.la])
106 MYSQL_PLUGIN_ACTIONS(innodb_plugin, [
107 AC_CHECK_HEADERS(sched.h)
108+--- a/mysql-test/mysql-test-run.pl
109++++ b/mysql-test/mysql-test-run.pl
110+@@ -157,7 +157,7 @@
111+ # executables will be used by the test suite.
112+ our $opt_vs_config = $ENV{'MTR_VS_CONFIG'};
113+
114+-my $DEFAULT_SUITES= "main,binlog,federated,rpl,rpl_ndb,ndb,innodb,innodb_plugin";
115++my $DEFAULT_SUITES= "main,binlog,federated,rpl,rpl_ndb,ndb,innodb_plugin";
116+ my $opt_suites;
117+
118+ our $opt_verbose= 0; # Verbose output, enable with --verbose
119+@@ -345,7 +345,14 @@
120+ }
121+ }
122+ }
123+-
124++ if ( @opt_cases )
125++ {
126++ mtr_report("Running test cases: @opt_cases");
127++ }
128++ elsif ( $opt_suites )
129++ {
130++ mtr_report("Running suites: $opt_suites");
131++ }
132+ mtr_report("Collecting tests...");
133+ my $tests= collect_test_cases($opt_reorder, $opt_suites, \@opt_cases);
134+
135+--- a/mysql-test/mtr
136++++ b/mysql-test/mtr
137+@@ -157,7 +157,7 @@
138+ # executables will be used by the test suite.
139+ our $opt_vs_config = $ENV{'MTR_VS_CONFIG'};
140+
141+-my $DEFAULT_SUITES= "main,binlog,federated,rpl,rpl_ndb,ndb,innodb,innodb_plugin";
142++my $DEFAULT_SUITES= "main,binlog,federated,rpl,rpl_ndb,ndb,innodb_plugin";
143+ my $opt_suites;
144+
145+ our $opt_verbose= 0; # Verbose output, enable with --verbose
146+@@ -345,7 +345,14 @@
147+ }
148+ }
149+ }
150+-
151++ if ( @opt_cases )
152++ {
153++ mtr_report("Running test cases: @opt_cases");
154++ }
155++ elsif ( $opt_suites )
156++ {
157++ mtr_report("Running suites: $opt_suites");
158++ }
159+ mtr_report("Collecting tests...");
160+ my $tests= collect_test_cases($opt_reorder, $opt_suites, \@opt_cases);
161+
162+--- a/mysql-test/mysql-test-run
163++++ b/mysql-test/mysql-test-run
164+@@ -157,7 +157,7 @@
165+ # executables will be used by the test suite.
166+ our $opt_vs_config = $ENV{'MTR_VS_CONFIG'};
167+
168+-my $DEFAULT_SUITES= "main,binlog,federated,rpl,rpl_ndb,ndb,innodb,innodb_plugin";
169++my $DEFAULT_SUITES= "main,binlog,federated,rpl,rpl_ndb,ndb,innodb_plugin";
170+ my $opt_suites;
171+
172+ our $opt_verbose= 0; # Verbose output, enable with --verbose
173+@@ -345,7 +345,14 @@
174+ }
175+ }
176+ }
177+-
178++ if ( @opt_cases )
179++ {
180++ mtr_report("Running test cases: @opt_cases");
181++ }
182++ elsif ( $opt_suites )
183++ {
184++ mtr_report("Running suites: $opt_suites");
185++ }
186+ mtr_report("Collecting tests...");
187+ my $tests= collect_test_cases($opt_reorder, $opt_suites, \@opt_cases);
188+
189
190=== modified file 'patches/mysql-test.diff'
191--- patches/mysql-test.diff 2011-08-13 01:47:38 +0000
192+++ patches/mysql-test.diff 2011-09-03 12:26:24 +0000
193@@ -57,6 +57,15 @@
194 select count(*) from t1 where
195 key1a = 2 and key1b is null and key3a = 2 and key3b is null;
196 count(*)
197+@@ -346,7 +346,7 @@
198+ FROM t1
199+ WHERE c = 1 AND b = 1 AND d = 1;
200+ id select_type table type possible_keys key key_len ref rows Extra
201+-1 SIMPLE t1 index_merge c,bd c,bd 5,10 NULL 1 Using intersect(c,bd); Using where; Using index
202++1 SIMPLE t1 ref c,bd bd 10 const,const 2 Using where
203+ CREATE TABLE t2 ( a INT )
204+ SELECT a
205+ FROM t1
206 --- a/mysql-test/r/index_merge_myisam.result
207 +++ b/mysql-test/r/index_merge_myisam.result
208 @@ -945,7 +945,7 @@
209@@ -3989,4 +3998,55 @@
210
211 connection slave;
212 drop table first_db.t1;
213-
214+--- a/mysql-test/r/endspace.result
215++++ b/mysql-test/r/endspace.result
216+@@ -201,12 +201,12 @@
217+ text1
218+ teststring
219+ teststring
220+-select text1, length(text1) from t1 where text1='teststring' or text1 like 'teststring_%';
221++select text1, length(text1) from t1 where text1='teststring' or text1 like 'teststring_%' order by 1,2;
222+ text1 length(text1)
223+ teststring 11
224+ teststring 10
225+ teststring 11
226+-select text1, length(text1) from t1 where text1='teststring' or text1 >= 'teststring\t';
227++select text1, length(text1) from t1 where text1='teststring' or text1 >= 'teststring\t' order by 1,2;
228+ text1 length(text1)
229+ teststring 11
230+ teststring 10
231+--- a/mysql-test/t/endspace.test
232++++ b/mysql-test/t/endspace.test
233+@@ -93,8 +93,8 @@
234+ select * from t1 where text1 like 'teststring_%';
235+
236+ # The following gives wrong result in InnoDB
237+-select text1, length(text1) from t1 where text1='teststring' or text1 like 'teststring_%';
238+-select text1, length(text1) from t1 where text1='teststring' or text1 >= 'teststring\t';
239++select text1, length(text1) from t1 where text1='teststring' or text1 like 'teststring_%' order by 1,2;
240++select text1, length(text1) from t1 where text1='teststring' or text1 >= 'teststring\t' order by 1,2;
241+ select concat('|', text1, '|') from t1 order by text1;
242+ drop table t1;
243+
244+--- a/mysql-test/r/rowid_order_innodb.result
245++++ b/mysql-test/r/rowid_order_innodb.result
246+@@ -15,7 +15,7 @@
247+ (10, 1, 1);
248+ explain select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
249+ id select_type table type possible_keys key key_len ref rows Extra
250+-1 SIMPLE t1 index_merge key1,key2 key1,key2 5,5 NULL 4 Using sort_union(key1,key2); Using where
251++1 SIMPLE t1 index_merge key1,key2 key1,key2 5,5 NULL 5 Using sort_union(key1,key2); Using where
252+ select * from t1 force index(key1, key2) where key1 < 3 or key2 < 3;
253+ pk1 key1 key2
254+ -100 1 1
255+--- a/mysql-test/r/type_bit_innodb.result
256++++ b/mysql-test/r/type_bit_innodb.result
257+@@ -233,7 +233,7 @@
258+ 127 403
259+ explain select a+0, b+0 from t1 where a > 40 and b > 200 order by 1;
260+ id select_type table type possible_keys key key_len ref rows Extra
261+-1 SIMPLE t1 range a a 2 NULL 19 Using where; Using index; Using filesort
262++1 SIMPLE t1 range a a 2 NULL 27 Using where; Using index; Using filesort
263+ select a+0, b+0 from t1 where a > 40 and b > 200 order by 1;
264+ a+0 b+0
265+ 44 307
266
267=== modified file 'patches/slow_extended.patch'
268--- patches/slow_extended.patch 2011-08-09 13:35:34 +0000
269+++ patches/slow_extended.patch 2011-09-03 12:26:24 +0000
270@@ -2098,7 +2098,7 @@
271 @@ -0,0 +1,48 @@
272 +--source include/have_binlog_format_statement.inc
273 +--source include/master-slave.inc
274-+--source include/have_innodb.inc
275++--source include/have_innodb_plugin.inc
276 +--let log_file=percona.slow_extended.log_slow_slave_statements-innodb
277 +
278 +connection master;
279@@ -2366,7 +2366,7 @@
280 --- /dev/null
281 +++ b/mysql-test/t/percona_log_slow_verbosity.test
282 @@ -0,0 +1,19 @@
283-+--source include/have_innodb.inc
284++--source include/have_innodb_plugin.inc
285 +--source include/have_debug.inc
286 +
287 +SET SESSION long_query_time=1;
288@@ -2505,7 +2505,7 @@
289 +++ b/mysql-test/t/percona_use_global_log_slow_control.test
290 @@ -0,0 +1,28 @@
291 +--source include/have_debug.inc
292-+--source include/have_innodb.inc
293++--source include/have_innodb_plugin.inc
294 +
295 +SET GLOBAL long_query_time=1;
296 +

Subscribers

People subscribed via source and target branches