Bug #14100254 65389: MVCC IS BROKEN WITH IMPLICIT LOCK
rb://1088 approved by: Marko Makela This bug was introduced in early stages of plugin. We were not checking for an implicit lock on sec index rec for trx_id that is stamped on current version of the clust_index in case where the clust_index has a previous delete marked version.
This commit is contained in:
parent
e979417c06
commit
01748ce128
@ -208,18 +208,6 @@ row_vers_impl_x_locked_off_kernel(
|
|||||||
vers_del = rec_get_deleted_flag(prev_version, comp);
|
vers_del = rec_get_deleted_flag(prev_version, comp);
|
||||||
prev_trx_id = row_get_rec_trx_id(prev_version, clust_index,
|
prev_trx_id = row_get_rec_trx_id(prev_version, clust_index,
|
||||||
clust_offsets);
|
clust_offsets);
|
||||||
|
|
||||||
/* If the trx_id and prev_trx_id are different and if
|
|
||||||
the prev_version is marked deleted then the
|
|
||||||
prev_trx_id must have already committed for the trx_id
|
|
||||||
to be able to modify the row. Therefore, prev_trx_id
|
|
||||||
cannot hold any implicit lock. */
|
|
||||||
if (vers_del && 0 != ut_dulint_cmp(trx_id, prev_trx_id)) {
|
|
||||||
|
|
||||||
mutex_enter(&kernel_mutex);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* The stack of versions is locked by mtr. Thus, it
|
/* The stack of versions is locked by mtr. Thus, it
|
||||||
is safe to fetch the prefixes for externally stored
|
is safe to fetch the prefixes for externally stored
|
||||||
columns. */
|
columns. */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user