При попытке получить блокировку записи некоторой таблицы с помощью:
LOCK TABLE infoTable write;
Мой сценарий Python3 заблокирован, а show processlist указывает, что сценарий заблокирован в ожидании получения блокировки записи:
Waiting for table metadata lock
Тем не менее, целевая таблица infoTable не заблокирована ни одним сеансом, в результате show open table говорит:
mysql> show open tables where In_use > 0;
Empty set (0.00 sec)
Так почему же блокировка записи блокируется, когда таблица не блокируется другим сеансом?
Follow up1:
Как следует из комментария, я попытался получить статус блокировки транзакции, ни одна транзакция не блокирует целевую таблицу.
mysql> SELECT * FROM INNODB_LOCK_WAITS;
Empty set, 1 warning (0.00 sec)
Дополнительная информация для вашей справки:
версия mysql: mysql Ver 14.14 Distrib 5.7.24, для Linux (x86_64) с использованием оболочки EditLine
Информация об ОС: Linux 4.15.0-42-generic # 45-Ubuntu SMP, четверг 15 ноября 19:32:57 UTC 2018 x86_64 x86_64 x86_64 GNU / Linux