Hi!
"Kristian" == Kristian Nielsen <knielsen@knielsen-hq.org> writes:
Kristian> Hi Monty, Kristian> I was asked to prepare MDEV-4506, parallel replication, for release of 10.0.5 Kristian> on Monday. Kristian> For this, I did merge to 10.0-base and then to 10.0. I have pushed the results Kristian> here: Kristian> lp:~maria-captains/maria/mdev-4506-base # for 10.0-base merge Kristian> lp:~maria-captains/maria/mdev-4506 # for 10.0 merge Kristian> However, I had problems with a couple of your changes, to temporary tables and Kristian> innodb log file size. The code that you modified in 10.0-base does not seem to Kristian> exist in 10.0 (or at least I couldn't find it easily). Kristian> Can you take a look at this and see if you can complete the merge? The missing Kristian> bits are just the few hunks appended at the end of this mail, so I assume it Kristian> should be easy for someone who knows what the patches are supposed to do. IKristian> The tree lp:~maria-captains/maria/mdev-4506 currently has a lot of test Kristian> failures, but it looks like most of them will be fixed by completing the last Kristian> bits of the merge. ok. What kind of errors ? (I assume I will notice these when I start testing this). I will fix mdev-4506 and push this into mdev-4506 and in 10.0 if I can get things to run without errors. I assume we can then push mdev-4506-base to 10.0-base. Kristian> sql/sql_base.cc: Kristian> <<<<<<< TREE Kristian> if (table_list->mdl_request.type >= MDL_SHARED_WRITE && Kristian> thd->tx_read_only && Kristian> !(flags & (MYSQL_LOCK_LOG_TABLE | MYSQL_OPEN_HAS_MDL_LOCK))) Kristian> ||||||| BASE-REVISION Kristian> if (table_list->open_type != OT_BASE_ONLY && Kristian> ! (flags & MYSQL_OPEN_SKIP_TEMPORARY)) Kristian> ======= Kristian> if (table_list->open_type != OT_BASE_ONLY && Kristian> ! (flags & MYSQL_OPEN_SKIP_TEMPORARY) && thd->have_temporary_tables()) The reason for the merge failure is that in 5.6 they now open temporary tables in a total manner and in a different place than before. Fixed. (This code was now in open_temporary_table()). Kristian> sql/slave.cc: Kristian> <<<<<<< TREE Kristian> static void set_thd_in_use_temporary_tables(Relay_log_info *rli) Kristian> { Kristian> TABLE *table; Kristian> for (table= rli->save_temporary_tables ; table ; table= table->next) Kristian> { Kristian> table->in_use= rli->sql_thd; Kristian> if (table->file != NULL) Kristian> { Kristian> /* Kristian> Since we are stealing opened temporary tables from one thread to another, Kristian> we need to let the performance schema know that, Kristian> for aggregates per thread to work properly. Kristian> */ Kristian> table->file->unbind_psi(); Kristian> table->file->rebind_psi(); Kristian> } Kristian> } Kristian> } Kristian> ||||||| BASE-REVISION Kristian> static void set_thd_in_use_temporary_tables(Relay_log_info *rli) Kristian> { Kristian> TABLE *table; Kristian> for (table= rli->save_temporary_tables ; table ; table= table->next) Kristian> table->in_use= rli->sql_thd; Kristian> } Kristian> ======= We don't need the function set_thd_in_use_for_temporary_tables() anymore, so there was nothing to merge. Kristian> === modified file 'storage/innobase/srv/srv0start.c' Kristian> --- storage/innobase/srv/srv0start.c 2013-09-06 20:31:30 +0000 Kristian> +++ storage/innobase/srv/srv0start.c 2013-11-01 08:17:06 +0000 Kristian> @@ -621,7 +621,7 @@ open_or_create_log_file( Kristian> || size_high != srv_calc_high32(srv_log_file_size)) { Kristian> fprintf(stderr, Kristian> - "InnoDB: Error: log file %s is" Kristian> + "InnoDB: Warning: log file %s is" Kristian> " of different size %lu %lu bytes\n" Kristian> "InnoDB: than specified in the .cnf" Kristian> " file %lu %lu bytes!\n", Kristian> @@ -629,7 +629,8 @@ open_or_create_log_file( Kristian> (ulong) srv_calc_high32(srv_log_file_size), Kristian> (ulong) srv_calc_low32(srv_log_file_size)); Kristian> - return(DB_ERROR); Kristian> + srv_log_file_size= size + Kristian> + (((longlong) size_high) << 32); The last patch was not needed anymore. Will now start building and testing my changes. Will push to mdev-4506 before going to bed. The main thing to fix was to change sql_base.cc::find_temporary_table(THD *thd, const TABLE_LIST *tl) to use the same find_temporary_table() function as the rest of the code. Regards, Monty