← Back to team overview

maria-developers team mailing list archive

Re: [Merge] lp:~paul-mccullagh/maria/maria-pbxt-rc2 into lp:maria

 

Paul McCullagh <paul.mccullagh@xxxxxxxxxxxxx> writes:

> Paul McCullagh has proposed merging lp:~paul-mccullagh/maria/maria-pbxt-rc2 into lp:maria.
>
> Requested reviews:
>     Maria-captains (maria-captains)
>
> Updated the PBXT engine to RC2 (lp:pbxt/rc2), version 1.0.08c. All tests in the PBXT suite pass.
>
> Note that this branch does not yet include the entire history of PBXT because attempts to do this have failed so far due to problems with bzr.

Thanks a lot Paul for preparing this.

I tried building your tree and running the test suite. I have a question, as I
got some build and test failures. I suspect that perhaps your tree is missing
a commit, or maybe has one too many.

Your tree has the following 3 commits in addition to lp:maria:

 2722 Paul McCullagh    2009-08-18
      Merged changes for bug fix update 1.0.08c RC2

 2721 Paul McCullagh    2009-08-17
      Updated all tests for RC2

 2720 Paul McCullagh    2009-08-17
      Updated PBXT to version 1.0.08 RC2

If I build revision 2721 (drop the last commit), things look good. I even have
zero failures in the test suite with a simple patch (attached), mostly some
simple fixes for case-sensitive file system.

But if I try the current tree, revision 2722, I get both build and test
failures, as detailed below.

So the basic question is, should I merge just revision 2721, or should I merge
2722 with some additional build (and test?) fixes?

-----------------------------------------------------------------------

So some more details.

First, I fixed all of the test failures in revision 2721 with a simple patch
(attached). The only problem was the *-master.opt files were not copied along
with test .test files from the main suite. This caused failures on
case-sensitive file systems (and also failure in udf.test due to wrong search
path for .so). You should of course check the patch, but I think it should be
ok.

Now, for the problems in revision 2722:

They might be related to the replacement of stream_xt with pbms_enabled. To
even build, I need this patch:

--- storage/pbxt/src/Makefile.am	2009-05-09 04:01:53 +0000
+++ storage/pbxt/src/Makefile.am	2009-08-28 10:11:41 +0000
@@ -19,7 +19,7 @@ noinst_HEADERS =		bsearch_xt.h cache_xt.
       datadic_xt.h datalog_xt.h filesys_xt.h hashtab_xt.h \
       ha_pbxt.h heap_xt.h index_xt.h linklist_xt.h \
       memory_xt.h myxt_xt.h pthread_xt.h restart_xt.h \
-      streaming_xt.h sortedlist_xt.h strutil_xt.h \
+      pbms_enabled.h sortedlist_xt.h strutil_xt.h \
       tabcache_xt.h table_xt.h trace_xt.h thread_xt.h \
       util_xt.h xaction_xt.h xactlog_xt.h lock_xt.h \
       systab_xt.h ha_xtsys.h discover_xt.h \
@@ -30,7 +30,7 @@ libpbxt_la_SOURCES =	bsearch_xt.cc cache
       datadic_xt.cc datalog_xt.cc filesys_xt.cc hashtab_xt.cc \
       ha_pbxt.cc heap_xt.cc index_xt.cc linklist_xt.cc \
       memory_xt.cc myxt_xt.cc pthread_xt.cc restart_xt.cc \
-      streaming_xt.cc sortedlist_xt.cc strutil_xt.cc \
+      pbms_enabled.cc sortedlist_xt.cc strutil_xt.cc \
       tabcache_xt.cc table_xt.cc trace_xt.cc thread_xt.cc \
       systab_xt.cc ha_xtsys.cc discover_xt.cc \
       util_xt.cc xaction_xt.cc xactlog_xt.cc lock_xt.cc locklist_xt.cc

I assume you must have something similar, maybe you forgot to push it?

And in the test suite, I get some failures. For example, the following:

    create database mysqltest;
    create table t1 (c1 int);
    alter table t1 rename mysqltest.t1;

mysqltest: At line 3: query 'alter table t1 rename mysqltest.t1' failed: 1025: Error on rename of './test/t1' to './mysqltest/t1' (errno: 16)

In the mysqld.1.err log I have this:

    090828 16:19:14 [Error] pbms_rename_table_with_blobs() Error: PBMS does not support renaming tables across databases.

Which is a bit strange since table t1 has only an int?

There are 3 other test failures, which from a quick look might be related to
blob. I attached the full mysql-test-run output, maybe you can take a look?

Please let me know if you know what the issue is, or what more I can do to
help.

 - Kristian.

=== modified file 'mysql-test/suite/pbxt/r/lowercase_view.result'
--- mysql-test/suite/pbxt/r/lowercase_view.result	2009-04-02 20:36:52 +0000
+++ mysql-test/suite/pbxt/r/lowercase_view.result	2009-08-28 11:19:59 +0000
@@ -119,7 +119,7 @@ create table t1Aa (col1 int);
 create view v1Aa as select col1 from t1Aa as AaA;
 show create view v1AA;
 View	Create View	character_set_client	collation_connection
-v1aa	CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1aa` AS select `AaA`.`col1` AS `col1` from `t1aa` `AaA`	latin1	latin1_swedish_ci
+v1aa	CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1aa` AS select `aaa`.`col1` AS `col1` from `t1aa` `aaa`	latin1	latin1_swedish_ci
 drop view v1AA;
 select Aaa.col1 from t1Aa as AaA;
 col1
@@ -128,7 +128,7 @@ drop view v1AA;
 create view v1Aa as select AaA.col1 from t1Aa as AaA;
 show create view v1AA;
 View	Create View	character_set_client	collation_connection
-v1aa	CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1aa` AS select `AaA`.`col1` AS `col1` from `t1aa` `AaA`	latin1	latin1_swedish_ci
+v1aa	CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1aa` AS select `aaa`.`col1` AS `col1` from `t1aa` `aaa`	latin1	latin1_swedish_ci
 drop view v1AA;
 drop table t1Aa;
 CREATE TABLE  t1 (a int, b int);
@@ -142,7 +142,7 @@ CREATE OR REPLACE VIEW v1 AS
 select X.a from t1 AS X group by X.b having (X.a = 1);
 SHOW CREATE VIEW v1;
 View	Create View	character_set_client	collation_connection
-v1	CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `X`.`a` AS `a` from `t1` `X` group by `X`.`b` having (`X`.`a` = 1)	latin1	latin1_swedish_ci
+v1	CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `x`.`a` AS `a` from `t1` `x` group by `x`.`b` having (`x`.`a` = 1)	latin1	latin1_swedish_ci
 SELECT * FROM v1;
 a
 DROP VIEW v1;

=== added file 'mysql-test/suite/pbxt/t/lowercase_table_grant-master.opt'
--- mysql-test/suite/pbxt/t/lowercase_table_grant-master.opt	1970-01-01 00:00:00 +0000
+++ mysql-test/suite/pbxt/t/lowercase_table_grant-master.opt	2009-08-28 11:13:02 +0000
@@ -0,0 +1 @@
+--lower_case_table_names

=== added file 'mysql-test/suite/pbxt/t/lowercase_table_qcache-master.opt'
--- mysql-test/suite/pbxt/t/lowercase_table_qcache-master.opt	1970-01-01 00:00:00 +0000
+++ mysql-test/suite/pbxt/t/lowercase_table_qcache-master.opt	2009-08-28 11:22:29 +0000
@@ -0,0 +1 @@
+--lower_case_table_names

=== added file 'mysql-test/suite/pbxt/t/lowercase_view-master.opt'
--- mysql-test/suite/pbxt/t/lowercase_view-master.opt	1970-01-01 00:00:00 +0000
+++ mysql-test/suite/pbxt/t/lowercase_view-master.opt	2009-08-28 11:10:22 +0000
@@ -0,0 +1 @@
+--lower_case_table_names=1

=== added file 'mysql-test/suite/pbxt/t/udf-master.opt'
--- mysql-test/suite/pbxt/t/udf-master.opt	1970-01-01 00:00:00 +0000
+++ mysql-test/suite/pbxt/t/udf-master.opt	2009-08-28 11:24:08 +0000
@@ -0,0 +1 @@
+$UDF_EXAMPLE_LIB_OPT

Logging: mysql-test-run.pl  --force --max-test-fail=0 --retry-failure=1 --mysqld=--default-storage-engine=pbxt --suite=pbxt pbxt.alter_table pbxt.create pbxt.lowercase_table_grant pbxt.lowercase_table_qcache pbxt.lowercase_view pbxt.ps_1general pbxt.type_ranges pbxt.udf
MySQL Version 5.1.35
Using default engine 'pbxt'
Checking supported features...
 - skipping ndbcluster, mysqld not compiled with ndbcluster
 - SSL connections supported
 - binaries are debug compiled
Collecting tests...
vardir: /home/knielsen/devel/maria/my/maria-pbxt-rc2/mysql-test/var
Checking leftover processes...
Removing old var directory...
Creating var directory '/home/knielsen/devel/maria/my/maria-pbxt-rc2/mysql-test/var'...
Installing system database...
Using server port 43066

==============================================================================

TEST                                      RESULT   TIME (ms)
------------------------------------------------------------

worker[1] Using MTR_BUILD_THREAD 250, with reserved ports 12500..12509
pbxt.udf                                 [ pass ]   6146
pbxt.lowercase_view                      [ pass ]    914
pbxt.lowercase_table_grant               [ pass ]      5
pbxt.lowercase_table_qcache              [ pass ]    827
pbxt.alter_table                         [ fail ]
        Test ended at 2009-08-28 13:25:27

CURRENT_TEST: pbxt.alter_table
mysqltest: At line 530: query 'alter table t1 rename mysqltest.t1' failed: 1025: Error on rename of './test/t1' to './mysqltest/t1' (errno: 16)

The result from queries just before the failure was:
< snip >
alter table t1 modify a bigint, disable keys;
show indexes from t1;
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment
t1	0	a	1	a	A	0	NULL	NULL	YES	BTREE	
t1	1	b	1	b	A	0	NULL	NULL	YES	BTREE	
"Change again the type, but leave the indexes as_is"
alter table t1 modify a int;
show indexes from t1;
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment
t1	0	a	1	a	A	0	NULL	NULL	YES	BTREE	
t1	1	b	1	b	A	0	NULL	NULL	YES	BTREE	
"Try the same. When data is no copied on similar tables, this is noop"
alter table t1 modify a int;
show indexes from t1;
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment
t1	0	a	1	a	A	0	NULL	NULL	YES	BTREE	
t1	1	b	1	b	A	0	NULL	NULL	YES	BTREE	
drop table t1;
create database mysqltest;
create table t1 (c1 int);

More results from queries before failure can be found in /home/knielsen/devel/maria/my/maria-pbxt-rc2/mysql-test/var/log/alter_table.log

 - saving '/home/knielsen/devel/maria/my/maria-pbxt-rc2/mysql-test/var/log/pbxt.alter_table/' to '/home/knielsen/devel/maria/my/maria-pbxt-rc2/mysql-test/var/log/pbxt.alter_table/'

Test has failed 1 times, no more retries!

pbxt.create                              [ fail ]
        Test ended at 2009-08-28 13:25:29

CURRENT_TEST: pbxt.create
--- /home/knielsen/devel/maria/my/maria-pbxt-rc2/mysql-test/suite/pbxt/r/create.result	2009-08-28 12:41:10.000000000 +0300
+++ /home/knielsen/devel/maria/my/maria-pbxt-rc2/mysql-test/suite/pbxt/r/create.reject	2009-08-28 14:25:29.000000000 +0300
@@ -448,8 +448,8 @@
 dd	time	YES		NULL	
 select * from t2;
 a	b	c	d	e	f	g	h	dd
-1	-7	7	2000-01-01	b	2000-01-01 00:00:00	05:04:03	yet another binary data	02:00:00
-2	-2	2	1825-12-14	a	2003-01-01 03:02:01	04:03:02	binary data	02:00:00
+1	-7	7	2000-01-01	b	2000-01-01 00:00:00	05:04:03	+2	-2	2	1825-12-14	a	2003-01-01 03:02:01	04:03:02	 drop table t1, t2;
 create table t1 (a tinyint, b smallint, c mediumint, d int, e bigint, f float(3,2), g double(4,3), h decimal(5,4), i year, j date, k timestamp, l datetime, m enum('a','b'), n set('a','b'), o char(10));
 create table t2 select ifnull(a,a), ifnull(b,b), ifnull(c,c), ifnull(d,d), ifnull(e,e), ifnull(f,f), ifnull(g,g), ifnull(h,h), ifnull(i,i), ifnull(j,j), ifnull(k,k), ifnull(l,l), ifnull(m,m), ifnull(n,n), ifnull(o,o) from t1;

mysqltest: Result length mismatch

 - saving '/home/knielsen/devel/maria/my/maria-pbxt-rc2/mysql-test/var/log/pbxt.create/' to '/home/knielsen/devel/maria/my/maria-pbxt-rc2/mysql-test/var/log/pbxt.create/'

Test has failed 1 times, no more retries!

pbxt.ps_1general                         [ fail ]
        Test ended at 2009-08-28 13:25:32

CURRENT_TEST: pbxt.ps_1general
--- /home/knielsen/devel/maria/my/maria-pbxt-rc2/mysql-test/suite/pbxt/r/ps_1general.result	2009-08-28 12:41:03.000000000 +0300
+++ /home/knielsen/devel/maria/my/maria-pbxt-rc2/mysql-test/suite/pbxt/r/ps_1general.reject	2009-08-28 14:25:32.000000000 +0300
@@ -293,7 +293,7 @@
 prepare stmt4 from ' show table status from test like ''t2%'' ';
 execute stmt4;
 Name	Engine	Version	Row_format	Rows	Avg_row_length	Data_length	Max_data_length	Index_length	Data_free	Auto_increment	Create_time	Update_time	Check_time	Collation	Checksum	Create_options	Comment
-t2	PBXT	10	Fixed	0	29	1	#	4096	0	NULL	#	#	#	latin1_swedish_ci	NULL		
+t2	PBXT	10	Fixed	0	29	1024	#	4096	0	NULL	#	#	#	latin1_swedish_ci	NULL		
 prepare stmt4 from ' show table status from test like ''t9%'' ';
 execute stmt4;
 Name	Engine	Version	Row_format	Rows	Avg_row_length	Data_length	Max_data_length	Index_length	Data_free	Auto_increment	Create_time	Update_time	Check_time	Collation	Checksum	Create_options	Comment

mysqltest: Result length mismatch

 - saving '/home/knielsen/devel/maria/my/maria-pbxt-rc2/mysql-test/var/log/pbxt.ps_1general/' to '/home/knielsen/devel/maria/my/maria-pbxt-rc2/mysql-test/var/log/pbxt.ps_1general/'

Test has failed 1 times, no more retries!

pbxt.type_ranges                         [ fail ]
        Test ended at 2009-08-28 13:25:33

CURRENT_TEST: pbxt.type_ranges
--- /home/knielsen/devel/maria/my/maria-pbxt-rc2/mysql-test/suite/pbxt/r/type_ranges.result	2009-08-28 12:41:10.000000000 +0300
+++ /home/knielsen/devel/maria/my/maria-pbxt-rc2/mysql-test/suite/pbxt/r/type_ranges.reject	2009-08-28 14:25:33.000000000 +0300
@@ -127,13 +127,13 @@
 insert into t1 (tiny) values (1);
 select auto,string,tiny,short,medium,long_int,longlong,real_float,real_double,utiny,ushort,umedium,ulong,ulonglong,mod(floor(time_stamp/1000000),1000000)-mod(curdate(),1000000),date_field,time_field,date_time,blob_col,tinyblob_col,mediumblob_col,longblob_col from t1;
 auto	string	tiny	short	medium	long_int	longlong	real_float	real_double	utiny	ushort	umedium	ulong	ulonglong	mod(floor(time_stamp/1000000),1000000)-mod(curdate(),1000000)	date_field	time_field	date_time	blob_col	tinyblob_col	mediumblob_col	longblob_col
-10	1	1	1	1	1	1	1.0	1.0000	1	00001	1	1	1	0	0000-00-00	00:00:00	0000-00-00 00:00:00	1	1	1	1
-11	2	2	2	2	2	2	2.0	2.0000	2	00002	2	2	2	0	NULL	NULL	NULL	NULL	NULL	2	2
-12	0.33333333	3	3	3	3	3	3.0	3.0000	3	00003	3	3	3	0	1997-03-03	10:10:10	1997-03-03 10:10:10				3
-13	-1	-1	-1	-1	-1	-1	-1.0	-1.0000	0	00000	0	0	0	0	1997-08-07	08:07:06	1997-04-03 09:08:07	-1	-1	-1	-1
-14	-429496729	-128	-32768	-8388608	-2147483648	-4294967295	-4294967296.0	-4294967295.0000	0	00000	0	0	0	0	0000-00-00	00:00:00	0000-00-00 00:00:00	-4294967295	-4294967295	-4294967295	-4294967295
-15	4294967295	127	32767	8388607	2147483647	4294967295	4294967296.0	4294967295.0000	255	65535	16777215	4294967295	4294967295	0	0000-00-00	00:00:00	0000-00-00 00:00:00	4294967295	4294967295	4294967295	4294967295
-16	hello	1	1	0	0	0	0.0	NULL	0	00000	0	0	0	0	NULL	NULL	NULL	NULL	NULL		
+10	1	1	1	1	1	1	1.0	1.0000	1	00001	1	1	1	0	0000-00-00	00:00:00	0000-00-00 00:00:00	1	1	1	+11	2	2	2	2	2	2	2.0	2.0000	2	00002	2	2	2	0	NULL	NULL	NULL	NULL	NULL	2	+12	0.33333333	3	3	3	3	3	3.0	3.0000	3	00003	3	3	3	0	1997-03-03	10:10:10	1997-03-03 10:10:10				+13	-1	-1	-1	-1	-1	-1	-1.0	-1.0000	0	00000	0	0	0	0	1997-08-07	08:07:06	1997-04-03 09:08:07	-1	-1	-1	+14	-429496729	-128	-32768	-8388608	-2147483648	-4294967295	-4294967296.0	-4294967295.0000	0	00000	0	0	0	0	0000-00-00	00:00:00	0000-00-00 00:00:00	-4294967295	-4294967295	-4294967295	+15	4294967295	127	32767	8388607	2147483647	4294967295	4294967296.0	4294967295.0000	255	65535	16777215	4294967295	4294967295	0	0000-00-00	00:00:00	0000-00-00 00:00:00	4294967295	4294967295	4294967295	+16	hello	1	1	0	0	0	0.0	NULL	0	00000	0	0	0	0	NULL	NULL	NULL	NULL	NULL		 ALTER TABLE t1
 add new_field char(10) default "new" not null,
 change blob_col new_blob_col varchar(20),
@@ -282,13 +282,13 @@
 t8	binary(0)	NULL	NO				#	
 select t1,t2,length(t3),length(t4),length(t5),length(t6),t7,t8 from t2;
 t1	t2	length(t3)	length(t4)	length(t5)	length(t6)	t7	t8
-1	a	256	256	4096	4096		
-1	a	256	256	4096	4096		
-1	a	256	256	4096	4096		
-1	a	256	256	4096	4096		
-1	a	256	256	4096	4096		
-1	a	256	256	4096	4096		
-1	a	256	256	4096	4096		
+1	a	256	256	4096	1		
+1	a	256	256	4096	1		
+1	a	256	256	4096	1		
+1	a	256	256	4096	1		
+1	a	256	256	4096	1		
+1	a	256	256	4096	1		
+1	a	256	256	4096	1		
 drop table t1,t2;
 create table t1 (c int);
 insert into t1 values(1),(2);

mysqltest: Result length mismatch

 - saving '/home/knielsen/devel/maria/my/maria-pbxt-rc2/mysql-test/var/log/pbxt.type_ranges/' to '/home/knielsen/devel/maria/my/maria-pbxt-rc2/mysql-test/var/log/pbxt.type_ranges/'

Test has failed 1 times, no more retries!

------------------------------------------------------------
The servers were restarted 6 times
Spent 7.892 of 21 seconds executing testcases

Failed 4/8 tests, 50.00% were successful.

Failing test(s): pbxt.alter_table pbxt.create pbxt.ps_1general pbxt.type_ranges

The log files in var/log may give you some hint of what went wrong.

If you want to report this error, please read first the documentation
at http://dev.mysql.com/doc/mysql/en/mysql-test-suite.html


Follow ups

References