- 15 Feb, 2011 2 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
rw_lock_create_func(): Initialize lock->writer_thread, so that Valgrind will not complain even when Valgrind instrumentation is not enabled. Flag lock->writer_thread uninitialized, so that Valgrind can complain when it is used uninitialized. rw_lock_set_writer_id_and_recursion_flag(): Revert the bogus Valgrind instrumentation that was pushed in the first attempt to fix this bug.
-
- 14 Feb, 2011 2 commits
-
-
Jimmy Yang authored
-
Jimmy Yang authored
index gives failures. Approved by Marko
-
- 10 Feb, 2011 8 commits
-
-
Vasil Dimov authored
-
Vasil Dimov authored
by silencing a bogus Valgrind warning: ==4392== Conditional jump or move depends on uninitialised value(s) ==4392== at 0x5A18416: rw_lock_set_writer_id_and_recursion_flag (sync0rw.ic:283) ==4392== by 0x5A1865C: rw_lock_x_lock_low (sync0rw.c:558) ==4392== by 0x5A18481: rw_lock_x_lock_func (sync0rw.c:617) ==4392== by 0x597EEE6: mtr_x_lock_func (mtr0mtr.ic:271) ==4392== by 0x597EBBD: fsp_header_init (fsp0fsp.c:970) ==4392== by 0x5A15E78: innobase_start_or_create_for_mysql (srv0start.c:1508) ==4392== by 0x598B789: innobase_init(void*) (ha_innodb.cc:2282) os_compare_and_swap_thread_id() is defined as __sync_bool_compare_and_swap(). From the GCC doc: `bool __sync_bool_compare_and_swap (TYPE *ptr, TYPE oldval TYPE newval, ...)' ... The "bool" version returns true if the comparison is successful and NEWVAL was written. So it is not possible that the return value is uninitialized, no matter what the arguments to os_compare_and_swap_thread_id() are. Probably Valgrind gets confused by the implementation of the GCC internal function __sync_bool_compare_and_swap().
-
Marko Mäkelä authored
-
Vasil Dimov authored
-
Vasil Dimov authored
==3307== Invalid read of size 1 ==3307== at 0xA8389A: mach_read_from_4 (mach0data.ic:182) ==3307== by 0xA833E3: buf_buddy_relocate (buf0buddy.c:450) ==3307== by 0xA8451E: buf_buddy_free_low (buf0buddy.c:619) ==3307== by 0x999326: buf_buddy_free (buf0buddy.ic:131) ==3307== by 0x998B66: buf_page_get_gen (buf0buf.c:2968) ==3307== by 0x9765D4: btr_cur_open_at_rnd_pos_func (btr0cur.c:985) ==3307== by 0x97F5EB: btr_estimate_number_of_different_key_vals (btr0cur.c:3621) ==3307== by 0x9C8694: dict_update_statistics (dict0dict.c:4312) ==3307== by 0x8FCF85: row_update_statistics_if_needed (row0mysql.c:933) ==3307== by 0x8FCEF8: row_insert_for_mysql (row0mysql.c:1240) ==3307== by 0x8E8134: ha_innobase::write_row(unsigned char*) (ha_innodb.cc:4988) ==3307== by 0x73CE6D: handler::ha_write_row(unsigned char*) (handler.cc:4776) ==3307== by 0x6512DC: copy_data_between_tables(TABLE*, TABLE*, List<Create_field>&, bool, unsigned int, st_order*, unsigned long long*, unsigned long long*, enum_enable_or_disable, bool) (sql_table.cc:7017) ==3307== by 0x65E1E1: mysql_alter_table(THD*, char*, char*, st_ha_create_information*, TABLE_LIST*, Alter_info*, unsigned int, st_order*, bool) (sql_table.cc:6416) ==3307== by 0x893920: Alter_table_statement::execute(THD*) (sql_alter.cc:106) ==3307== by 0x5DDB3B: mysql_execute_command(THD*) (sql_parse.cc:4321)
-
Vasil Dimov authored
InnoDB 1.1.5 was released with MySQL 5.5.9
-
Vasil Dimov authored
InnoDB Plugin 1.0.15 has been released with MySQL 5.1.55.
-
Jimmy Yang authored
This was already pushed to mysql-5.1-innodb some time ago (revision id jimmy.yang@oracle.com-20100907054137-tpuior7hez4f5ghl) but it was not merged to the 5.5 trees.
-
- 09 Feb, 2011 1 commit
-
-
Jimmy Yang authored
to be FIL_NULL rb://545 approved by Sunny Bains
-
- 08 Feb, 2011 3 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
This option is known to be broken when tablespaces contain off-page columns after crash recovery. It has only been tested when creating the data files from the scratch. btr_blob_dbg_t: A map from page_no:heap_no:field_no to first_blob_page_no. This map is instantiated for every clustered index in index->blobs. It is protected by index->blobs_mutex. btr_blob_dbg_msg_issue(): Issue a diagnostic message. Invoked when btr_blob_dbg_msg is set. btr_blob_dbg_rbt_insert(): Insert a btr_blob_dbg_t into index->blobs. btr_blob_dbg_rbt_delete(): Remove a btr_blob_dbg_t from index->blobs. btr_blob_dbg_cmp(): Comparator for btr_blob_dbg_t. btr_blob_dbg_add_blob(): Add a BLOB reference to the map. btr_blob_dbg_add_rec(): Add all BLOB references from a record to the map. btr_blob_dbg_print(): Display the map of BLOB references in an index. btr_blob_dbg_remove_rec(): Remove all BLOB references of a record from the map. btr_blob_dbg_is_empty(): Check that no BLOB references exist to or from a page. Disowned references from delete-marked records are tolerated. btr_blob_dbg_op(): Perform an operation on all BLOB references on a B-tree page. btr_blob_dbg_add(): Add all BLOB references from a B-tree page to the map. btr_blob_dbg_remove(): Remove all BLOB references from a B-tree page from the map. btr_blob_dbg_restore(): Restore the BLOB references after a failed page reorganize. btr_blob_dbg_set_deleted_flag(): Modify the 'deleted' flag in the BLOB references of a record. btr_blob_dbg_owner(): Own or disown a BLOB reference. btr_page_create(), btr_page_free_low(): Assert that no BLOB references exist. btr_create(): Create index->blobs for clustered indexes. btr_page_reorganize_low(): Invoke btr_blob_dbg_remove() before copying the records. Invoke btr_blob_dbg_restore() if the operation fails. btr_page_empty(), btr_lift_page_up(), btr_compress(), btr_discard_page(): Invoke btr_blob_dbg_remove(). btr_cur_del_mark_set_clust_rec(): Invoke btr_blob_dbg_set_deleted_flag(). Other cases of modifying the delete mark are either in the secondary index or during crash recovery, which we do not promise to support. btr_cur_set_ownership_of_extern_field(): Invoke btr_blob_dbg_owner(). btr_store_big_rec_extern_fields(): Invoke btr_blob_dbg_add_blob(). btr_free_externally_stored_field(): Invoke btr_blob_dbg_assert_empty() on the first BLOB page. page_cur_insert_rec_low(), page_cur_insert_rec_zip(), page_copy_rec_list_end_to_created_page(): Invoke btr_blob_dbg_add_rec(). page_cur_insert_rec_zip_reorg(), page_copy_rec_list_end(), page_copy_rec_list_start(): After failure, invoke btr_blob_dbg_remove() and btr_blob_dbg_add(). page_cur_delete_rec(): Invoke btr_blob_dbg_remove_rec(). page_delete_rec_list_end(): Invoke btr_blob_dbg_op(btr_blob_dbg_remove_rec). page_zip_reorganize(): Invoke btr_blob_dbg_remove() before copying the records. page_zip_copy_recs(): Invoke btr_blob_dbg_add(). row_upd_rec_in_place(): Invoke btr_blob_dbg_rbt_delete() and btr_blob_dbg_rbt_insert(). innobase_start_or_create_for_mysql(): Warn when UNIV_BLOB_DEBUG is enabled. rb://550 approved by Jimmy Yang
-
Vasil Dimov authored
-
- 07 Feb, 2011 6 commits
-
-
Inaam Rana authored
rb://566 approved by: Sunny When using native aio on linux each IO helper thread should be able to handle upto 256 IO requests. The number 256 is the same which is used for simulated aio as well. In case of windows where we also use native aio this limit is 32 because of OS constraints. It seems that we are using the limit of 32 for all the platforms where we are using native aio. The fix is to use 256 on all platforms except windows (when native aio is enabled on windows)
-
Vasil Dimov authored
-
Vasil Dimov authored
This change was backported from 5.5.
-
Vasil Dimov authored
This warning also happens in 5.1 with a slightly different codepath.
-
Vasil Dimov authored
-
Vasil Dimov authored
used (--with-zlib-dir=bundled) then there is no libz.so involved.
-
- 04 Feb, 2011 4 commits
-
-
Vasil Dimov authored
Suppress a bogus valgrind warning.
-
Vasil Dimov authored
-
unknown authored
The bug would cause a crash of InnoDB if a non-standard or unknown table flags existed in a SYS_TABLES record. This is important because the next file version, Cheetah, will identify itself by expanding this field. So unless this is fixed, an older engine that tries to open a table in a tablespace with a newer file version will crash instead of report an error and refuse to open the table, as it should do. Reviewed at RB://583. Approved by Marko.
-
Vasil Dimov authored
Add suppressions for a bogus valgrind warnings.
-
- 02 Feb, 2011 5 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
btr_rec_get_field_ref_offs(), btr_rec_get_field_ref(): New functions. Get the pointer to an externally stored field. btr_cur_set_ownership_of_extern_field(): Assert that the BLOB has not already been disowned. btr_store_big_rec_extern_fields(): Rename to btr_store_big_rec_extern_fields_func() and add the debug parameter update_in_place. All pointers to externally stored columns in the record must either be zero or they must be pointers to inherited columns, owned by this record or an earlier record version. For any BLOB that is stored, the BLOB pointer must previously have been zero. When the function completes, all BLOB pointers must be nonzero and owned by the record. rb://549 approved by Jimmy Yang
-
Marko Mäkelä authored
row_purge(): Change the return type to void. (The return value always was DB_SUCCESS.) Remove some local variables. row_undo_mod_remove_clust_low(): Remove some local variables. rb://547 approved by Jimmy Yang
-
Marko Mäkelä authored
Antelope files in btr_check_blob_fil_page_type(). Unfortunately, we must keep the check in production builds, because InnoDB wrote uninitialized garbage to FIL_PAGE_TYPE until fairly recently (5.1.x). rb://546 approved by Jimmy Yang
-
Marko Mäkelä authored
It was the enabling of UNIV_DEBUG_FILE_ACCESSES that caught Bug #55284 in the first place. This is a very light piece of of debug code, and there really is no reason why it is not enabled in all debug builds. rb://551 approved by Jimmy Yang
-
- 01 Feb, 2011 1 commit
-
-
Vasil Dimov authored
This change was originally done in marko.makela@oracle.com-20101011085943-50pskvsbbsujbukg but was later lost during the merge process.
-
- 31 Jan, 2011 2 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
trx rollback or purge This patch does not relax the failing debug assertion during purge. That will be revisited once we have managed to repeat the assertion failure. row_upd_changes_ord_field_binary_func(): Renamed from row_upd_changes_ord_field_binary(). Add the parameter que_thr_t* in UNIV_DEBUG builds. When the off-page column cannot be retrieved, assert that the current transaction is a recovered one and that it is the one that is currently being rolled back. row_upd_changes_ord_field_binary(): A wrapper macro for row_upd_changes_ord_field_binary_func() that discards the que_thr_t* parameter unless UNIV_DEBUG is defined. row_purge_upd_exist_or_extern_func(): Renamed from row_purge_upd_exist_or_extern(). Add the parameter que_thr_t* in UNIV_DEBUG builds. row_purge_upd_exist_or_extern(): A wrapper macro for row_purge_upd_exist_or_extern_func() that discards the que_thr_t* parameter unless UNIV_DEBUG is defined. Make trx_roll_crash_recv_trx const. If there were a 'do not dereference' attribute, it would be appropriate as well. rb://588 approved by Jimmy Yang
-
- 30 Jan, 2011 6 commits
-
-
Vasil Dimov authored
-
Vasil Dimov authored
-
Vasil Dimov authored
-
Vasil Dimov authored
-
Vasil Dimov authored
-
Vasil Dimov authored
-