diff options
author | Inaam Rana <inaam.rana@oracle.com> | 2012-05-24 12:37:03 -0400 |
---|---|---|
committer | Inaam Rana <inaam.rana@oracle.com> | 2012-05-24 12:37:03 -0400 |
commit | 01748ce128ae4c29cfb63e88cd68918e7d48e946 (patch) | |
tree | 29a84d8d06b0fe9c4eb0d1545cf4e5eba20461bf /storage/innodb_plugin/row/row0vers.c | |
parent | e979417c06f98f8ca81a7442d93f53d9aec79446 (diff) | |
download | mariadb-git-01748ce128ae4c29cfb63e88cd68918e7d48e946.tar.gz |
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.
Diffstat (limited to 'storage/innodb_plugin/row/row0vers.c')
-rw-r--r-- | storage/innodb_plugin/row/row0vers.c | 12 |
1 files changed, 0 insertions, 12 deletions
diff --git a/storage/innodb_plugin/row/row0vers.c b/storage/innodb_plugin/row/row0vers.c index 8a7bb842293..9aeaa2db6c0 100644 --- a/storage/innodb_plugin/row/row0vers.c +++ b/storage/innodb_plugin/row/row0vers.c @@ -208,18 +208,6 @@ row_vers_impl_x_locked_off_kernel( vers_del = rec_get_deleted_flag(prev_version, comp); prev_trx_id = row_get_rec_trx_id(prev_version, clust_index, 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 is safe to fetch the prefixes for externally stored columns. */ |