1. 10 Feb, 2011 6 commits
    • Marko Mäkelä's avatar
    • Vasil Dimov's avatar
      bdb8ae50
    • Vasil Dimov's avatar
      Extend the valgrind suppression to cover one more code path: · 798293bc
      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)
      798293bc
    • Vasil Dimov's avatar
      Increment InnoDB version from 1.1.5 to 1.1.6 · 398ec964
      Vasil Dimov authored
      InnoDB 1.1.5 was released with MySQL 5.5.9
      398ec964
    • Vasil Dimov's avatar
      Increment InnoDB Plugin version from 1.0.15 to 1.0.16. · 7fe25798
      Vasil Dimov authored
      InnoDB Plugin 1.0.15 has been released with MySQL 5.1.55.
      7fe25798
    • Jimmy Yang's avatar
      Merge a fix for Bug #53756 ALTER TABLE ADD PRIMARY KEY affects crash recovery · b8a1c1da
      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.
      b8a1c1da
  2. 09 Feb, 2011 1 commit
  3. 08 Feb, 2011 3 commits
    • Marko Mäkelä's avatar
      7b2e579a
    • Marko Mäkelä's avatar
      Implement UNIV_BLOB_DEBUG. An early version of this caught Bug #55284. · dab6c9b2
      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
      dab6c9b2
    • Vasil Dimov's avatar
      bb9e5718
  4. 07 Feb, 2011 6 commits
  5. 04 Feb, 2011 4 commits
  6. 02 Feb, 2011 5 commits
  7. 01 Feb, 2011 1 commit
  8. 31 Jan, 2011 2 commits
    • Marko Mäkelä's avatar
      edbd2c8c
    • Marko Mäkelä's avatar
      Bug#59230 assert 0 row_upd_changes_ord_field_binary() in post-crash · 2370dca5
      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
      2370dca5
  9. 30 Jan, 2011 7 commits
  10. 29 Jan, 2011 5 commits