- 02 Jun, 2010 2 commits
-
-
Marko Mäkelä authored
In semi-consistent read, only unlock freshly locked non-matching records. Define DB_SUCCESS_LOCKED_REC for indicating a successful operation where a record lock was created. lock_rec_lock_fast(): Return LOCK_REC_SUCCESS, LOCK_REC_SUCCESS_CREATED, or LOCK_REC_FAIL instead of TRUE/FALSE. lock_sec_rec_read_check_and_lock(), lock_clust_rec_read_check_and_lock(), lock_rec_enqueue_waiting(), lock_rec_lock_slow(), lock_rec_lock(), row_ins_set_shared_rec_lock(), row_ins_set_exclusive_rec_lock(), sel_set_rec_lock(), row_sel_get_clust_rec_for_mysql(): Return DB_SUCCESS_LOCKED_REC if a new record lock was created. Adjust callers. row_unlock_for_mysql(): Correct the function documentation. row_prebuilt_t::new_rec_locks: Correct the documentation.
-
Marko Mäkelä authored
-
- 01 Jun, 2010 5 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
rw_lock_t: Remove magic_n unless UNIV_DEBUG is defined. rw_lock_free(): Invalidate magic_n only after removing from rw_lock_list.
-
Marko Mäkelä authored
lock_rec_unlock(): Cache first_lock and rewrite while() loops as for(). btr_cur_optimistic_update(): Use common error handling return. row_create_prebuilt(): Add Valgrind instrumentation.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
row_undo_mod_upd_exist_sec(): Tolerate a failure to build the index entry for a DYNAMIC or COMPRESSED table during crash recovery.
-
- 31 May, 2010 1 commit
-
-
Vasil Dimov authored
------------------------------------------------------------ revno: 3127 revision-id: vasil.dimov@oracle.com-20100531152341-x2d4hma644icamh1 parent: vasil.dimov@oracle.com-20100531105923-kpjwl4rbgfpfj13c committer: Vasil Dimov <vasil.dimov@oracle.com> branch nick: mysql-trunk-innodb timestamp: Mon 2010-05-31 18:23:41 +0300 message: Fix Bug #53947 InnoDB: Assertion failure in thread 4224 in file .\sync\sync0sync.c line 324 Destroy the rw-lock object before freeing the memory it is occupying. If we do not do this, then the mutex that is contained in the rw-lock object btr_search_latch_temp->mutex gets "freed" and subsequently mutex_free() from sync_close() hits a mutex whose memory has been freed and crashes. Approved by: Heikki (via IRC) Discussed with: Calvin
-
- 28 May, 2010 1 commit
-
-
Jimmy Yang authored
err_index could be not a member of the share structure or prebuilt structure passed from MySQL. For now, we resort to the traditional way of scanning index->table for the index number.
-
- 27 May, 2010 1 commit
-
-
Inaam Rana authored
list a thread doing a wait_ex as an s-lock waiter.
-
- 26 May, 2010 2 commits
-
-
Jimmy Yang authored
-
Jimmy Yang authored
after fast alter table added unique key". Look up MySQL index number should go through index translation table. rb://347, approved by Marko
-
- 25 May, 2010 6 commits
-
-
Vasil Dimov authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
accessing uninitialized memory in Valgrind-instrumented builds.
-
Vasil Dimov authored
(this changeset does not introduce any changes)
-
Vasil Dimov authored
-
Vasil Dimov authored
This is a port of vasil.dimov@oracle.com-20100521175337-c1b1lqxgizqegb0w and vasil.dimov@oracle.com-20100521180951-mef23h24k023xuwq from mysql-trunk-innodb
-
- 24 May, 2010 2 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Store the max_space_id in the data dictionary header in order to avoid space_id reuse. DICT_HDR_MIX_ID: Renamed to DICT_HDR_MAX_SPACE_ID, DICT_HDR_MIX_ID_LOW. dict_hdr_get_new_id(): Return table_id, index_id, space_id or a subset of them. fil_system_t: Add ibool space_id_reuse_warned. fil_create_new_single_table_tablespace(): Get the space_id from the caller. fil_space_create(): Issue a warning if the fil_system->max_assigned_id is exceeded. fil_assign_new_space_id(): Return TRUE/FALSE and take a pointer to the space_id as a parameter. Make the function public. fil_init(): Initialize all fil_system fields by mem_zalloc(). Remove explicit initializations of certain fields to 0 or NULL.
-
- 20 May, 2010 7 commits
-
-
Vasil Dimov authored
-
Vasil Dimov authored
failures, that are described in Bug#38999 valgrind warnings for update statement in function compare_record() At the time I am adding this the failures are: main.ps_3innodb [ fail ] Found warnings/errors in server log file! Test ended at 2010-05-20 01:17:34 line ==31559== Thread 11: ==31559== Conditional jump or move depends on uninitialised value(s) ==31559== at 0x75C5BD: compare_record(st_table*) (sql_update.cc:35) ==31559== by 0x744732: write_record(THD*, st_table*, st_copy_info*) (sql_insert.cc:1486) ==31559== by 0x74A0D7: mysql_insert(THD*, TABLE_LIST*, List<Item>&, List<List<Item> >&, List<Item>&, List<Item>&, enum_duplicates, bool) (sql_insert.cc:835) ==31559== by 0x6A79B4: mysql_execute_command(THD*) (sql_parse.cc:3198) ==31559== by 0x754998: Prepared_statement::execute(String*, bool) (sql_prepare.cc:3583) ==31559== by 0x754C4F: Prepared_statement::execute_loop(String*, bool, unsigned char*, unsigned char*) (sql_prepare.cc:3258) ==31559== by 0x754F33: mysql_sql_stmt_execute(THD*) (sql_prepare.cc:2529) ==31559== by 0x6A5028: mysql_execute_command(THD*) (sql_parse.cc:2272) ==31559== by 0x6ADAE8: mysql_parse(THD*, char const*, unsigned, char const**) (sql_parse.cc:5986) ==31559== by 0x6AF3A4: dispatch_command(enum_server_command, THD*, char*, unsigned) (sql_parse.cc:1233) ==31559== by 0x6B0800: do_command(THD*) (sql_parse.cc:874) ==31559== by 0x69CB46: handle_one_connection (sql_connect.cc:1134) ==31559== by 0x33EDA062F6: start_thread (in /lib64/libpthread-2.5.so) ==31559== by 0x33ECED1B6C: clone (in /lib64/libc-2.5.so) ==31559== Conditional jump or move depends on uninitialised value(s) ==31559== at 0x75C5D0: compare_record(st_table*) (sql_update.cc:35) ==31559== by 0x744732: write_record(THD*, st_table*, st_copy_info*) (sql_insert.cc:1486) ==31559== by 0x74A0D7: mysql_insert(THD*, TABLE_LIST*, List<Item>&, List<List<Item> >&, List<Item>&, List<Item>&, enum_duplicates, bool) (sql_insert.cc:835) ==31559== by 0x6A79B4: mysql_execute_command(THD*) (sql_parse.cc:3198) ==31559== by 0x754998: Prepared_statement::execute(String*, bool) (sql_prepare.cc:3583) ==31559== by 0x754C4F: Prepared_statement::execute_loop(String*, bool, unsigned char*, unsigned char*) (sql_prepare.cc:3258) ==31559== by 0x754F33: mysql_sql_stmt_execute(THD*) (sql_prepare.cc:2529) ==31559== by 0x6A5028: mysql_execute_command(THD*) (sql_parse.cc:2272) ==31559== by 0x6ADAE8: mysql_parse(THD*, char const*, unsigned, char const**) (sql_parse.cc:5986) ==31559== by 0x6AF3A4: dispatch_command(enum_server_command, THD*, char*, unsigned) (sql_parse.cc:1233) ==31559== by 0x6B0800: do_command(THD*) (sql_parse.cc:874) ==31559== by 0x69CB46: handle_one_connection (sql_connect.cc:1134) ==31559== by 0x33EDA062F6: start_thread (in /lib64/libpthread-2.5.so) ==31559== by 0x33ECED1B6C: clone (in /lib64/libc-2.5.so) ^ Found warnings in /export/home4/pb2/test/sb_3-1827397-1274300957.87/mysql-5.1.48-linux-x86_64-test/mysql-test/var-n_mix/log/mysqld.1.err
-
Marko Mäkelä authored
-
Vasil Dimov authored
-
Marko Mäkelä authored
BUILD/*: Add valgrind_configs=--with-valgrind. BUILD/*: Remove -USAFEMALLOC from valgrind_flags. configure.in: Add AC_ARG_WITH(valgrind) and HAVE_VALGRIND. include/my_sys.h: Define a number of MEM_ wrappers for VALGRIND_ functions. include/my_sys.h: Make TRASH do MEM_UNDEFINED(). include/m_string.h: Remove unused macro bzero_if_purify(A,B). _mymalloc(): Declare MEM_UNDEFINED() on the allocated memory. _myfree(): Declare MEM_NOACCESS() on the freed memory. storage/innobase/include/univ.i: Enable UNIV_DEBUG_VALGRIND based on HAVE_VALGRIND rather than HAVE_purify. Possible things to do: * In my_global.h, remove the defined(HAVE_purify) condition from the _WIN32 uint3korr(). * In my_global.h *int*korr(), use | instead of + in order to keep the Valgrind V bits accurate * Consider replacing HAVE_purify with HAVE_VALGRIND * Use VALGRIND_CREATE_BLOCK, VALGRIND_DISCARD in mem_root and similar places
-
Vasil Dimov authored
------------------------------------------------------------ revno: 3094 revision-id: vasil.dimov@oracle.com-20100513074652-0cvlhgkesgbb2bfh parent: vasil.dimov@oracle.com-20100512173700-byf8xntxjur1hqov committer: Vasil Dimov <vasil.dimov@oracle.com> branch nick: mysql-trunk-innodb timestamp: Thu 2010-05-13 10:46:52 +0300 message: Followup to Bug#51920, fix binlog.binlog_killed This is a followup to the fix of Bug#51920 Innodb connections in row lock wait ignore KILL until lock wait timeout in that fix (rb://279) the behavior was changed to honor when a trx is interrupted during lock wait, but the returned error code was still "lock wait timeout" when it should be "interrupted". This change fixes the non-deterministically failing test binlog.binlog_killed, that failed like this: binlog.binlog_killed 'stmt' [ fail ] Test ended at 2010-05-12 11:39:08 CURRENT_TEST: binlog.binlog_killed mysqltest: At line 208: query 'reap' failed with wrong errno 1205: 'Lock wait timeout exceeded; try restarting transaction', instead of 0... Approved by: Sunny Bains (rb://344) ------------------------------------------------------------
-
Vasil Dimov authored
------------------------------------------------------------ revno: 3094 revision-id: vasil.dimov@oracle.com-20100513074652-0cvlhgkesgbb2bfh parent: vasil.dimov@oracle.com-20100512173700-byf8xntxjur1hqov committer: Vasil Dimov <vasil.dimov@oracle.com> branch nick: mysql-trunk-innodb timestamp: Thu 2010-05-13 10:46:52 +0300 message: Followup to Bug#51920, fix binlog.binlog_killed This is a followup to the fix of Bug#51920 Innodb connections in row lock wait ignore KILL until lock wait timeout in that fix (rb://279) the behavior was changed to honor when a trx is interrupted during lock wait, but the returned error code was still "lock wait timeout" when it should be "interrupted". This change fixes the non-deterministically failing test binlog.binlog_killed, that failed like this: binlog.binlog_killed 'stmt' [ fail ] Test ended at 2010-05-12 11:39:08 CURRENT_TEST: binlog.binlog_killed mysqltest: At line 208: query 'reap' failed with wrong errno 1205: 'Lock wait timeout exceeded; try restarting transaction', instead of 0... Approved by: Sunny Bains (rb://344) ------------------------------------------------------------ This merge is non-trivial since it has to introduce the DB_INTERRUPTED error code. Also revert vasil.dimov@oracle.com-20100408165555-9rpjh24o0sa9ad5y which adjusted the binlog.binlog_killed test to the new (wrong) behavior
-
- 19 May, 2010 6 commits
-
-
hery.ramilison@oracle.com authored
-
Marko Mäkelä authored
Use | instead of +, and mask out the dont-care bits in debug assertions.
-
Marko Mäkelä authored
and mask out the dont-care bits in debug assertions.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
- 18 May, 2010 1 commit
-
-
Marko Mäkelä authored
-
- 14 May, 2010 4 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Also make InnoDB thinks that /*/ only starts a comment. (Bug #53644). This fixes the bugs in the InnoDB Plugin. ha_innodb.h: Use trx_query_string() instead of trx_query() when available (MySQL 5.1.42 or later). innobase_get_stmt(): New function, to retrieve the currently running SQL statement. struct trx_struct: Remove mysql_query_str. Use innobase_get_stmt() instead. dict_strip_comments(): Add and observe the parameter sql_length. Treat /*/ as the start of a comment. dict_create_foreign_constraints(), row_table_add_foreign_constraints(): Add the parameter sql_length.
-
Marko Mäkelä authored
Also make InnoDB thinks that /*/ only starts a comment. (Bug #53644). struct trx_struct: Add mysql_query_len. ha_innodb.cc: Use trx_query_string() instead of trx_query() and initialize trx->mysql_query_len. INNOBASE_COPY_STMT(thd, trx): New macro, to initialize trx->mysql_query_str and trx->mysql_query_len. dict_strip_comments(): Add and observe the parameter sql_length. Treat /*/ as the start of a comment. dict_create_foreign_constraints(), row_table_add_foreign_constraints(): Add the parameter sql_length.
-
Marko Mäkelä authored
-
- 12 May, 2010 2 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
(Bug #53591)
-