diff --git a/storage/innobase/trx/trx0rseg.cc b/storage/innobase/trx/trx0rseg.cc index c96d66f4518..a08c6165ada 100644 --- a/storage/innobase/trx/trx0rseg.cc +++ b/storage/innobase/trx/trx0rseg.cc @@ -430,8 +430,7 @@ trx_rseg_t *trx_rseg_mem_create(ulint id, space_id_t space_id, rseg->last_del_marks = mtr_read_ulint(undo_log_hdr + TRX_UNDO_DEL_MARKS, MLOG_2BYTES, mtr); - TrxUndoRsegs elem(rseg->last_trx_no); - elem.insert(rseg); + if (rseg->last_page_no != FIL_NULL) { /* The only time an rseg is added that has existing @@ -442,6 +441,8 @@ trx_rseg_t *trx_rseg_mem_create(ulint id, space_id_t space_id, ut_ad(space_id == TRX_SYS_SPACE || (srv_is_upgrade_mode != undo::is_reserved(space_id))); + TrxUndoRsegs elem(rseg->last_trx_no); + elem.insert(rseg); purge_queue->push(elem); } } else {