3976 Marko Mäkelä 2012-06-13
row_log_table_delete(): Check errors from row_log_table_get_pk().
modified:
storage/innobase/row/row0log.cc
3975 Marko MAdd ut_ad(trx_id),
in an attemp to track down why there was a secondary index with
only one record in the only (root) page, with PAGE_MAX_TRX_ID=0.
modified:
storage/innobase/row/row0merge.cc
3974 Marko Mäkelä 2012-06-13
WL#6255 race condition fix.
rollback_inplace_alter_table(): Free the online log before
dropping the table that was being rebuilt. Otherwise, DML threads
could access the freed table object in row_log_table_get_pk()
and possibly elsewhere.
modified:
storage/innobase/handler/handler0alter.cc
=== modified file 'storage/innobase/row/row0log.cc'
--- a/storage/innobase/row/row0log.cc revid:marko.makela@stripped
+++ b/storage/innobase/row/row0log.cc revid:marko.makela@oracle.com-20120613200521-bj3t3tgtz1qfb7d5
@@ -457,6 +457,12 @@ row_log_table_delete(
dfield_t* dfield;
old_pk = row_log_table_get_pk(rec, index, offsets, &heap);
+
+ if (!old_pk) {
+ ut_ad(index->online_log->error != DB_SUCCESS);
+ return;
+ }
+
/* Remove DB_ROLL_PTR. */
ut_ad(dtuple_get_n_fields_cmp(old_pk)
== dict_index_get_n_unique(new_index));
=== modified file 'storage/innobase/row/row0merge.cc'
--- a/storage/innobase/row/row0merge.cc revid:marko.makela@stripped413-i8u79j92g7b7p8yt
+++ b/storage/innobase/row/row0merge.cc revid:marko.makela@strippedz1qfb7d5
@@ -2240,6 +2240,7 @@ row_merge_insert_index_tuples(
ut_ad(!(index->type & DICT_FTS));
ut_ad(del_marks == (dict_index_get_online_status(index)
!= ONLINE_INDEX_COMPLETE));
+ ut_ad(trx_id);
tuple_heap = mem_heap_create(1000);
No bundle (reason: useless for push emails).| Thread |
|---|
| • bzr push into mysql-trunk-wl6255 branch (marko.makela:3974 to 3976) | marko.makela | 14 Jun |