title: why the event is 'wait/io/table/sql/handler' when waiting for a row lock?
body: <p>I made session B waiting  for row  lock hold by session A , however I saw the waiting is  'wait/io/table/sql/handler'  instead  of I expected  row lock  such  as 'wait/lock .....',the following  are  the  steps to duplicate the  issue .</p>
  
  <p>MySQL version  is '5.7.18-debug';</p>
  
  <p>step 1),enable  the  performance schema </p>
  
  <pre><code>UPDATE performance_schema.setup_instruments
         SET ENABLED = 'YES', TIMED = 'YES'
  UPDATE performance_schema.setup_consumers
         SET ENABLED = 'YES'
  </code></pre>
  
  <p>step 2 ,create the table and insert a row .</p>
  
  <pre><code>CREATE TABLE t (i INT) ENGINE = InnoDB;
  INSERT INTO t (i) VALUES(1);
  </code></pre>
  
  <p>step 3, start a new session A  hold a row lock ,and doesn't  release it .</p>
  
  <pre><code> SELECT connection_id() ;
   START TRANSACTION;
   DELETE FROM t WHERE i = 1;
  </code></pre>
  
  <p>step 4, start a new session B  and try to get a  row lock, however  blocked by session A </p>
  
  <pre><code> SELECT connection_id() ;
   START TRANSACTION;
   SELECT * FROM t  WHERE i = 1 LOCK IN SHARE MODE;
  </code></pre>
  
  <p>step 5, then query the performance schema below , however from the PS tables  I saw the 'wait/io/table/sql/handler' for session B from table events_waits_current , which is meaning waiting for the  IO operation , doesn't it should be wait for a row  lock ?</p>
  
  <pre><code>SELECT * FROM performance_schema.events_waits_current;
  SELECT * FROM performance_schema.events_stages_current;
  SELECT * FROM performance_schema.events_statements_current;
  </code></pre>