mariadb/storage/innobase/trx
Marko Mäkelä 8cf8ad86d4 MDEV-23547 InnoDB: Failing assertion: *len in row_upd_ext_fetch
This bug was originally repeated on 10.4 after defining a UNIQUE KEY
on a TEXT column, which is implemented by MDEV-371 by creating the
index on a hidden virtual column.

While row_vers_vc_matches_cluster() is executing in a purge thread
to find out if an index entry may be removed in a secondary index
that comprises a virtual column, another purge thread may process
the undo log record that this check is interested in, and write
a null BLOB pointer in that record. This would trip the assertion.

To prevent this from occurring, we must propagate the 'missing BLOB'
error up the call stack.

row_upd_ext_fetch(): Return NULL when the error occurs.

row_upd_index_replace_new_col_val(): Return whether the previous
version was built successfully.

row_upd_index_replace_new_col_vals_index_pos(): Check the error
result. Yes, we would intentionally crash on this error if it
occurs outside the purge thread.

row_upd_index_replace_new_col_vals(): Check for the error condition,
and simplify the logic.

trx_undo_prev_version_build(): Check for the error condition.
2020-08-25 15:32:15 +03:00
..
trx0i_s.cc Cleanup: Remove InnoDB wrappers of thd_charset(), thd_query_safe() 2020-05-12 10:15:44 +03:00
trx0purge.cc Merge 10.1 into 10.2 2020-07-20 14:53:24 +03:00
trx0rec.cc MDEV-23547 InnoDB: Failing assertion: *len in row_upd_ext_fetch 2020-08-25 15:32:15 +03:00
trx0roll.cc MDEV-23475 InnoDB performance regression for write-heavy workloads 2020-08-19 11:18:56 +03:00
trx0rseg.cc Merge 10.1 into 10.2 2020-07-20 14:53:24 +03:00
trx0sys.cc Merge 10.1 into 10.2 2020-07-20 14:53:24 +03:00
trx0trx.cc MDEV-22782 AddressSanitizer race condition in trx_free() 2020-08-21 18:23:28 +03:00
trx0undo.cc MDEV-22456 Dropping the adaptive hash index may cause DDL to lock up InnoDB 2020-05-15 17:23:08 +03:00