[MDEV-6191] row_search_for_mysql comment and code consistency about isolation level and gap locks Created: 2014-04-30  Updated: 2014-07-04  Resolved: 2014-07-04

Status: Closed
Project: MariaDB Server
Component/s: None
Affects Version/s: 5.5.37
Fix Version/s: 5.5.39

Type: Bug Priority: Minor
Reporter: Daniel Black Assignee: Jan Lindström (Inactive)
Resolution: Fixed Votes: 0
Labels: None


 Description   

mariadb-5.5/storage/xtradb/row/row0sel.c line 4137

    if (set_also_gap_locks
        && !(srv_locks_unsafe_for_binlog
       || trx->isolation_level <= TRX_ISO_READ_COMMITTED)
        && prebuilt->select_lock_type != LOCK_NONE) {
 
      /* Try to place a lock on the index record */
 
      /* If innodb_locks_unsafe_for_binlog option is used
      or this session is using a READ COMMITTED isolation
      level we do not lock gaps. Supremum record is really
      a gap and therefore we do not set locks there. */

I was getting really confused about the comment and its relation to the code and I've come to the conclusion that the comment should say "this session is not using a REPEATABLE READ" and perhaps the condition could be isolation_level < TRX_ISO_REPEATABLE_READ to match.

Of course I've looked at this too long and just may be wrong.



 Comments   
Comment by Elena Stepanova [ 2014-04-30 ]

The comment looks okay to me... I mean, for total accuracy, it could have said "using a READ (UN)COMMITTED isolation level", but this "UN" is kind of obvious.
Although, I've looked at it too briefly, will assign to Jan for an expert look.

Comment by Jan Lindström (Inactive) [ 2014-05-10 ]

Idea with that code is that if innodb_locks_unsafe_for_binlog option is used or this session is using
READ_COMMITTED or lower isolation level we do not lock gaps. Supremum record is really a
gap and therefore we do not set locks there.

Comment by Jan Lindström (Inactive) [ 2014-07-04 ]

revno: 4223
committer: Jan Lindström <jplindst@mariadb.org>
branch nick: 5.5
timestamp: Fri 2014-07-04 08:42:59 +0300
message:
MDEV-6191: row_search_for_mysql comment and code consistency about isolation level
and gap locks

Generated at Thu Feb 08 07:10:02 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.