Commit 6736ce56 authored by unknown's avatar unknown
Browse files

trx0trx.c:

  Do not assert, but print diagnostics if MySQL tries to free a trx where n_mysql_tables_in_use > 0


innobase/trx/trx0trx.c:
  Do not assert, but print diagnostics if MySQL tries to free a trx where n_mysql_tables_in_use > 0
parent 8ef8cd76
Loading
Loading
Loading
Loading
+14 −3
Original line number Diff line number Diff line
@@ -256,6 +256,20 @@ trx_free(
		putc('\n', stderr);
	}

	if (trx->n_mysql_tables_in_use != 0
	    || trx->mysql_n_tables_locked != 0) {

		ut_print_timestamp(stderr);
		fprintf(stderr,
"  InnoDB: Error: MySQL is freeing a thd\n"
"InnoDB: though trx->n_mysql_tables_in_use is %lu\n"
"InnoDB: and trx->mysql_n_tables_locked is %lu.\n",
			(ulong)trx->n_mysql_tables_in_use,
			(ulong)trx->mysql_n_tables_locked);

		trx_print(stderr, trx);		
	}

	ut_a(trx->magic_n == TRX_MAGIC_N);

	trx->magic_n = 11112222;
@@ -267,9 +281,6 @@ trx_free(
	ut_a(trx->insert_undo == NULL); 
	ut_a(trx->update_undo == NULL); 
	
	ut_a(trx->n_mysql_tables_in_use == 0);
	ut_a(trx->mysql_n_tables_locked == 0);
	
	if (trx->undo_no_arr) {
		trx_undo_arr_free(trx->undo_no_arr);
	}