Bug #28733170 PERFORMANCE_SCHEMA.DATA_LOCKS DOES NOT HANDLE JOINS CORRECTLY CREATE TABLE t1( id INT PRIMARY KEY ) Engine=InnoDB; INSERT INTO t1 VALUES (1); BEGIN; SELECT * FROM t1 WHERE id=1 FOR SHARE; id 1 SELECT * FROM t1 WHERE id=1 FOR UPDATE; id 1 CREATE TABLE t2 ( id INT PRIMARY KEY AUTO_INCREMENT, lock_id VARCHAR(200) NOT NULL ) Engine=InnoDB; INSERT INTO t2 (lock_id) SELECT engine_lock_id FROM performance_schema.data_locks WHERE object_name='t1'; SELECT COUNT(*) FROM t2; COUNT(*) 4 SELECT COUNT(t2.id) FROM t2 JOIN performance_schema.data_locks dl ON(dl.engine_lock_id = t2.lock_id) ORDER BY t2.id; COUNT(t2.id) 4 DROP TABLE t2; ROLLBACK; DROP TABLE t1;