Regarding the XtraDB merge into MariaDB, I am now finally getting ready to push the merge, after lots of small fixes in different areas. The code is available in the mariadb-xtradb-merge2 branch: https://code.launchpad.net/~maria-captains/maria/mariadb-xtradb-merge2 The buildbot testing is here: https://askmonty.org/buildbot/waterfall?branch=mariadb-xtradb-merge2 Vadim, there is one remaining issue that I need Percona to look into. This is a hang in the innodb_xtradb_bug317074 test case on host hardy-amd64-dbg. Test output is included at the end of this mail, and full log is here: https://askmonty.org/buildbot/builders/hardy-amd64-dbg/builds/69/steps/test/... Please take a look and see what it could be. The failure seems to be repeatable on that host. If needed, we can probably talk to archivist (who runs that build slave) on getting access to debug etc. I would also like your opinion on whether this is something that should block pushing the merge into MariaDB, as it is the last remaining known issue. Also, I was wondering if there is some way that Percona and MariaDB engineers could be on the same IRC channel(s)? That might be useful for some of the discussions. MariaDB engineers already hang out in #maria on FreeNode. Vadim Tkachenko <vadim@percona.com> writes:
I will look how we can backport your changes. We need to have xtradb compiled against standard 5.1, if it is not broken - it should be not problem to include your fixes.
I am pretty sure there are no changes that would not work with 5.1. There are of course a number of changes that should _not_ go into the Percona XtraDB repository, like the replacing of innodb with xtradb etc. Here is an annotated list of the changes I think you should consider including upstream in XtraDB. If you choose to include any of them, it would be a help if you can do them in one (or a few) separate commits without any other changes. This will allow a simple null-merge to deal with merge conflits in any following xtradb->mariadb merges. Revision: 2716 http://bazaar.launchpad.net/~maria-captains/maria/mariadb-xtradb-merge2/revi... The fix in mysql-test/t/innodb_information_schema.test would be relevant to merge into XtraDB. Revision: 2714 http://bazaar.launchpad.net/~maria-captains/maria/mariadb-xtradb-merge2/revi... Here the test case fixes may be relevant. And there is a bug fix for ALTER TABLE in ha_innodb.cc ha_innobase::check_if_incompatible_data() that is needed to work with latest MySQL 5.1 sources (should also be ok with older 5.1 versions). There are also a few minor merges of changes from MySQL 5.1 to innodb not in the innodb plugin, which may or may not make sense for XtraDB to merge (probably doesn't matter). Revision: 2697.3.4 http://bazaar.launchpad.net/~maria-captains/maria/mariadb-xtradb-merge2/revi... This is fixes for test suite failures. I think most are not relevant, however changes to these files fixes a test failure: mysql-test/t/innodb-zip.test mysql-test/r/innodb-zip.result As far as I can tell, remaining changes are either outside the innobase storage engine code (so cannot be meaningfully merged into XtraDB), or fixes mainly relevant for the merge into MariaDB. - Kristian. ----------------------------------------------------------------------- main.innodb_xtradb_bug317074 [ fail ] timeout after 900 seconds Test ended at 2009-06-23 15:20:52 Test case timeout after 900 seconds == /home/archivist/archivist-amd64/archivist-amd64/build/mysql-test/var/1/log/innodb_xtradb_bug317074.log == SET @save_innodb_file_format=@@global.innodb_file_format; SET @save_innodb_file_format_check=@@global.innodb_file_format_check; SET @save_innodb_file_per_table=@@global.innodb_file_per_table; SET GLOBAL innodb_file_format='Barracuda'; SET GLOBAL innodb_file_per_table=ON; == /home/archivist/archivist-amd64/archivist-amd64/build/mysql-test/var/1/tmp/analyze-timeout-mysqld.1.err == mysqltest: Could not open connection 'default' after 500 attempts: 2002 Can't connect to local MySQL server through socket '/home/archivist/archivist-amd64/archivist-amd64/build/mysql-test/var/tmp/1/mysqld.1.sock' (111) - saving '/home/archivist/archivist-amd64/archivist-amd64/build/mysql-test/var/1/log/main.innodb_xtradb_bug317074/' to '/home/archivist/archivist-amd64/archivist-amd64/build/mysql-test/var/log/main.innodb_xtradb_bug317074/' - found 'core.21388' (0/5) Trying 'dbx' to get a backtrace Trying 'gdb' to get a backtrace Core generated by '/home/archivist/archivist-amd64/archivist-amd64/build/sql/mysqld' Output from gdb follows. The first stack trace is from the failing thread. The following stack traces are from all threads (so the failing one is duplicated). -------------------------- warning: Can't read pathname for load map: Input/output error. Core was generated by `/home/archivist/archivist-amd64/archivist-amd64/build/sql/mysqld --defaults-gro'. Program terminated with signal 6, Aborted. [New process 21388] [New process 24743] [New process 21619] [New process 21618] [New process 21600] [New process 21598] [New process 21535] [New process 21534] [New process 21533] [New process 21532] [New process 21520] [New process 21519] [New process 21518] [New process 21500] [New process 21483] [New process 21466] #0 0x00007fb3097939c2 in pthread_kill () from /lib/libpthread.so.0 #0 0x00007fb3097939c2 in pthread_kill () from /lib/libpthread.so.0 #1 0x0000000000b21d9f in my_write_core (sig=6) at stacktrace.c:310 #2 0x0000000000668653 in handle_segfault (sig=6) at mysqld.cc:2597 #3 <signal handler called> #4 0x00007fb308803db2 in select () from /lib/libc.so.6 #5 0x0000000000668f81 in handle_connections_sockets (arg=0x0) at mysqld.cc:5080 #6 0x000000000066c932 in main (argc=8, argv=0x7fff11dd9428) at mysqld.cc:4566 Thread 16 (process 21466): #0 0x00007fb309792e1d in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #1 0x0000000000b27e74 in safe_cond_timedwait (cond=0x198a0a0, mp=0x198a000, abstime=0x414ef0c0, file=0xcdbad6 "ma_checkpoint.c", line=715) at thr_mutex.c:549 #2 0x00000000009a1c9f in ma_checkpoint_background (arg=0x1e) at ma_checkpoint.c:715 #3 0x00007fb30978e3f7 in start_thread () from /lib/libpthread.so.0 #4 0x00007fb30880ab3d in clone () from /lib/libc.so.6 #5 0x0000000000000000 in ?? () Thread 15 (process 21483): #0 0x00007fb309792e1d in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #1 0x00000000009f2d3b in xt_timed_wait_cond (self=0x0, cond=0x198a6f8, mutex=0x198a6d0, milli_sec=500) at thread_xt.cc:1945 #2 0x00000000009ded3d in tabc_fr_wait_for_cache (self=0x1aaf930, msecs=500) at tabcache_xt.cc:818 #3 0x00000000009df89b in tabc_fr_main (self=0x1aaf930) at tabcache_xt.cc:1114 #4 0x00000000009dfa15 in tabc_fr_run_thread (self=0x1aaf930) at tabcache_xt.cc:1131 #5 0x00000000009f5436 in thr_main (data=0x7fff11dd8bc0) at thread_xt.cc:1005 #6 0x00007fb30978e3f7 in start_thread () from /lib/libpthread.so.0 #7 0x00007fb30880ab3d in clone () from /lib/libc.so.6 #8 0x0000000000000000 in ?? () Thread 14 (process 21500): #0 0x00007fb309792e1d in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #1 0x00000000009f2d3b in xt_timed_wait_cond (self=0x1f0d080, cond=0x1b22f38, mutex=0x1b22f10, milli_sec=100) at thread_xt.cc:1945 #2 0x00000000009fca42 in xn_sw_wait_for_xact (self=0x1f0d080, db=0x1ad24b0, hsecs=10) at xaction_xt.cc:2578 #3 0x00000000009ff328 in xn_sw_main (self=0x1f0d080) at xaction_xt.cc:2481 #4 0x00000000009ff4e1 in xn_sw_run_thread (self=0x1f0d080) at xaction_xt.cc:2525 #5 0x00000000009f5436 in thr_main (data=0x7fff11dd6a10) at thread_xt.cc:1005 #6 0x00007fb30978e3f7 in start_thread () from /lib/libpthread.so.0 #7 0x00007fb30880ab3d in clone () from /lib/libc.so.6 #8 0x0000000000000000 in ?? () Thread 13 (process 21518): #0 0x00007fb309792e1d in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #1 0x00000000009f2d3b in xt_timed_wait_cond (self=0x1f64820, cond=0x1b23040, mutex=0x1b23018, milli_sec=120000) at thread_xt.cc:1945 #2 0x0000000000a1b003 in dl_co_wait (self=0x1f64820, db=0x1ad24b0, secs=120) at datalog_xt.cc:1620 #3 0x0000000000a1f3a7 in dl_co_main (self=0x1f64820, once_off=0) at datalog_xt.cc:1919 #4 0x0000000000a1f4fa in dl_run_co_thread (self=0x1f64820) at datalog_xt.cc:1956 #5 0x00000000009f5436 in thr_main (data=0x7fff11dd6a10) at thread_xt.cc:1005 #6 0x00007fb30978e3f7 in start_thread () from /lib/libpthread.so.0 #7 0x00007fb30880ab3d in clone () from /lib/libc.so.6 #8 0x0000000000000000 in ?? () Thread 12 (process 21519): #0 0x00007fb309792e1d in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #1 0x00000000009f2d3b in xt_timed_wait_cond (self=0x1f7bfb0, cond=0x1b22fc0, mutex=0x1b22f98, milli_sec=500) at thread_xt.cc:1945 #2 0x0000000000a05683 in xlog_wr_wait_for_log_flush (self=0x1f7bfb0, db=0x1ad24b0) at xactlog_xt.cc:2260 #3 0x0000000000a05dca in xlog_wr_main (self=0x1f7bfb0) at xactlog_xt.cc:2451 #4 0x0000000000a05f59 in xlog_wr_run_thread (self=0x1f7bfb0) at xactlog_xt.cc:2476 #5 0x00000000009f5436 in thr_main (data=0x7fff11dd6a10) at thread_xt.cc:1005 #6 0x00007fb30978e3f7 in start_thread () from /lib/libpthread.so.0 #7 0x00007fb30880ab3d in clone () from /lib/libc.so.6 #8 0x0000000000000000 in ?? () Thread 11 (process 21520): #0 0x00007fb309792e1d in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #1 0x00000000009f2d3b in xt_timed_wait_cond (self=0x1fd3750, cond=0x1b36d28, mutex=0x1b36d00, milli_sec=400) at thread_xt.cc:1945 #2 0x00000000009d236b in xres_cp_wait_for_log_writer (self=0x1fd3750, db=0x1ad24b0, milli_secs=400) at restart_xt.cc:2491 #3 0x00000000009d3e6e in xres_cp_main (self=0x1fd3750) at restart_xt.cc:2567 #4 0x00000000009d3ffb in xres_cp_run_thread (self=0x1fd3750) at restart_xt.cc:2594 #5 0x00000000009f5436 in thr_main (data=0x7fff11dd6a10) at thread_xt.cc:1005 #6 0x00007fb30978e3f7 in start_thread () from /lib/libpthread.so.0 #7 0x00007fb30880ab3d in clone () from /lib/libc.so.6 #8 0x0000000000000000 in ?? () Thread 10 (process 21532): #0 0x00007fb309792b99 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #1 0x0000000000b27ba1 in safe_cond_wait (cond=0x29fb1d0, mp=0x29fb120, file=0xcfec48 "os/os0sync.c", line=438) at thr_mutex.c:495 #2 0x0000000000a8fa2f in os_event_wait_low (event=0x29fb120, reset_sig_count=0) at os/os0sync.c:438 #3 0x0000000000a8e6ca in os_aio_simulated_handle (global_segment=0, message1=0x444f50f8, message2=0x444f50f0, type=0x444f50e8) at os/os0file.c:3971 #4 0x0000000000a6ab2c in fil_aio_wait (segment=0) at fil/fil0fil.c:4472 #5 0x0000000000ac61ee in io_handler_thread (arg=0x198d720) at srv/srv0start.c:464 #6 0x00007fb30978e3f7 in start_thread () from /lib/libpthread.so.0 #7 0x00007fb30880ab3d in clone () from /lib/libc.so.6 #8 0x0000000000000000 in ?? () Thread 9 (process 21533): #0 0x00007fb309792b99 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #1 0x0000000000b27ba1 in safe_cond_wait (cond=0x29fb2d0, mp=0x29fb220, file=0xcfec48 "os/os0sync.c", line=438) at thr_mutex.c:495 #2 0x0000000000a8fa2f in os_event_wait_low (event=0x29fb220, reset_sig_count=0) at os/os0sync.c:438 #3 0x0000000000a8e6ca in os_aio_simulated_handle (global_segment=1, message1=0x44cf60f8, message2=0x44cf60f0, type=0x44cf60e8) at os/os0file.c:3971 #4 0x0000000000a6ab2c in fil_aio_wait (segment=1) at fil/fil0fil.c:4472 #5 0x0000000000ac61ee in io_handler_thread (arg=0x198d728) at srv/srv0start.c:464 #6 0x00007fb30978e3f7 in start_thread () from /lib/libpthread.so.0 #7 0x00007fb30880ab3d in clone () from /lib/libc.so.6 #8 0x0000000000000000 in ?? () Thread 8 (process 21534): #0 0x00007fb309792b99 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #1 0x0000000000b27ba1 in safe_cond_wait (cond=0x29fb3d0, mp=0x29fb320, file=0xcfec48 "os/os0sync.c", line=438) at thr_mutex.c:495 #2 0x0000000000a8fa2f in os_event_wait_low (event=0x29fb320, reset_sig_count=0) at os/os0sync.c:438 #3 0x0000000000a8e6ca in os_aio_simulated_handle (global_segment=2, message1=0x454f70f8, message2=0x454f70f0, type=0x454f70e8) at os/os0file.c:3971 #4 0x0000000000a6ab2c in fil_aio_wait (segment=2) at fil/fil0fil.c:4472 #5 0x0000000000ac61ee in io_handler_thread (arg=0x198d730) at srv/srv0start.c:464 #6 0x00007fb30978e3f7 in start_thread () from /lib/libpthread.so.0 #7 0x00007fb30880ab3d in clone () from /lib/libc.so.6 #8 0x0000000000000000 in ?? () Thread 7 (process 21535): #0 0x00007fb309792b99 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #1 0x0000000000b27ba1 in safe_cond_wait (cond=0x29fb4d0, mp=0x29fb420, file=0xcfec48 "os/os0sync.c", line=438) at thr_mutex.c:495 #2 0x0000000000a8fa2f in os_event_wait_low (event=0x29fb420, reset_sig_count=0) at os/os0sync.c:438 #3 0x0000000000a8e6ca in os_aio_simulated_handle (global_segment=3, message1=0x45cf80f8, message2=0x45cf80f0, type=0x45cf80e8) at os/os0file.c:3971 #4 0x0000000000a6ab2c in fil_aio_wait (segment=3) at fil/fil0fil.c:4472 #5 0x0000000000ac61ee in io_handler_thread (arg=0x198d738) at srv/srv0start.c:464 #6 0x00007fb30978e3f7 in start_thread () from /lib/libpthread.so.0 #7 0x00007fb30880ab3d in clone () from /lib/libc.so.6 #8 0x0000000000000000 in ?? () Thread 6 (process 21598): #0 0x00007fb308803db2 in select () from /lib/libc.so.6 #1 0x0000000000a9019e in os_thread_sleep (tm=1000000) at os/os0thread.c:288 #2 0x0000000000ac4071 in srv_lock_timeout_and_monitor_thread (arg=0x0) at srv/srv0srv.c:2035 #3 0x00007fb30978e3f7 in start_thread () from /lib/libpthread.so.0 #4 0x00007fb30880ab3d in clone () from /lib/libc.so.6 #5 0x0000000000000000 in ?? () Thread 5 (process 21600): #0 0x00007fb308803db2 in select () from /lib/libc.so.6 #1 0x0000000000a9019e in os_thread_sleep (tm=1000000) at os/os0thread.c:288 #2 0x0000000000ac4583 in srv_error_monitor_thread (arg=0x0) at srv/srv0srv.c:2268 #3 0x00007fb30978e3f7 in start_thread () from /lib/libpthread.so.0 #4 0x00007fb30880ab3d in clone () from /lib/libc.so.6 #5 0x0000000000000000 in ?? () Thread 4 (process 21618): #0 0x00007fb308803db2 in select () from /lib/libc.so.6 #1 0x0000000000a9019e in os_thread_sleep (tm=1000000) at os/os0thread.c:288 #2 0x0000000000ac47a8 in srv_master_thread (arg=0x0) at srv/srv0srv.c:2401 #3 0x00007fb30978e3f7 in start_thread () from /lib/libpthread.so.0 #4 0x00007fb30880ab3d in clone () from /lib/libc.so.6 #5 0x0000000000000000 in ?? () Thread 3 (process 21619): #0 0x00007fb3097964f9 in do_sigwait () from /lib/libpthread.so.0 #1 0x00007fb30979659d in sigwait () from /lib/libpthread.so.0 #2 0x00000000006679c5 in signal_hand (arg=0x0) at mysqld.cc:2801 #3 0x00007fb30978e3f7 in start_thread () from /lib/libpthread.so.0 #4 0x00007fb30880ab3d in clone () from /lib/libc.so.6 #5 0x0000000000000000 in ?? () Thread 2 (process 24743): #0 0x00007fb309795d07 in fsync () from /lib/libpthread.so.0 #1 0x0000000000a8c6e3 in os_file_fsync (file=12) at os/os0file.c:1843 #2 0x0000000000a8c7a6 in os_file_flush (file=12) at os/os0file.c:1940 #3 0x0000000000a6ad9e in fil_flush (space_id=4294967280) at fil/fil0fil.c:4583 #4 0x0000000000a80eac in log_write_up_to (lsn=22725942, wait=92, flush_to_disk=1) at log/log0log.c:1468 #5 0x0000000000ad7ce1 in trx_commit_off_kernel (trx=0x2d52150) at trx/trx0trx.c:935 #6 0x0000000000ad8de5 in trx_commit_for_mysql (trx=0x2d52150) at trx/trx0trx.c:1582 #7 0x0000000000a2b9b3 in innobase_commit_low (trx=0x2d52150) at handler/ha_innodb.cc:2463 #8 0x0000000000a2f627 in innobase_commit (hton=0x1ac7168, thd=0x2f60ff8, all=false) at handler/ha_innodb.cc:2592 #9 0x00000000007ae3c7 in ha_commit_one_phase (thd=0x2f60ff8, all=false) at handler.cc:1214 #10 0x00000000007ae8d1 in ha_commit_trans (thd=0x2f60ff8, all=false) at handler.cc:1183 #11 0x00000000007aea99 in ha_autocommit_or_rollback (thd=0x2f60ff8, error=0) at handler.cc:1345 #12 0x00000000006cbb28 in close_thread_tables (thd=0x2f60ff8) at sql_base.cc:1284 #13 0x000000000083bb39 in sp_lex_keeper::reset_lex_and_exec_core ( this=0x3113838, thd=0x2f60ff8, nextp=0x40c1ef88, open_tables=false, instr=0x31137f8) at sp_head.cc:2740 #14 0x0000000000841bad in sp_instr_stmt::execute (this=0x31137f8, thd=0x2f60ff8, nextp=0x40c1ef88) at sp_head.cc:2846 #15 0x000000000083dcd0 in sp_head::execute (this=0x2c6f780, thd=0x2f60ff8) at sp_head.cc:1252 #16 0x000000000083ea74 in sp_head::execute_procedure (this=0x2c6f780, thd=0x2f60ff8, args=0x2f63550) at sp_head.cc:1981 #17 0x00000000006818e2 in mysql_execute_command (thd=0x2f60ff8) at sql_parse.cc:4345 #18 0x0000000000683a99 in mysql_parse (thd=0x2f60ff8, inBuf=0x2db5590 "call insert_many(100000)", length=24, found_semicolon=0x40c20c30) at sql_parse.cc:5924 #19 0x000000000068477b in dispatch_command (command=COM_QUERY, thd=0x2f60ff8, packet=0x2f58ba9 "call insert_many(100000)", packet_length=24) at sql_parse.cc:1224 #20 0x0000000000685bd0 in do_command (thd=0x2f60ff8) at sql_parse.cc:865 #21 0x0000000000671c68 in handle_one_connection (arg=0x2f60ff8) at sql_connect.cc:1118 #22 0x00007fb30978e3f7 in start_thread () from /lib/libpthread.so.0 #23 0x00007fb30880ab3d in clone () from /lib/libc.so.6 #24 0x0000000000000000 in ?? () Thread 1 (process 21388): #0 0x00007fb3097939c2 in pthread_kill () from /lib/libpthread.so.0 #1 0x0000000000b21d9f in my_write_core (sig=6) at stacktrace.c:310 #2 0x0000000000668653 in handle_segfault (sig=6) at mysqld.cc:2597 #3 <signal handler called> #4 0x00007fb308803db2 in select () from /lib/libc.so.6 #5 0x0000000000668f81 in handle_connections_sockets (arg=0x0) at mysqld.cc:5080 #6 0x000000000066c932 in main (argc=8, argv=0x7fff11dd9428) at mysqld.cc:4566