FAT47の底辺インフラ議事録

学んだことのメモ帳です

FLUSH TABLES WITH READ LOCKが解除できなくて焦った話

とあるメンテ作業で、

FLUSH TABLES WITH READ LOCK;

を使って更新がかからないようにロックをかけた。
その後、使用してるWindowsがフリーズしてしまい、強制再起動をかけた。

別の端末から

UNLOCK TABLES

してみたけど、ロックが外れない。

とりあえずログインしてるユーザを確認してみる。

w
$ w
 02:06:46 up 7 days, 13:25,  4 users,  load average: 1.07, 0.86, 0.43
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
hoge_fuga pts/1    172.22.188.150   00:24   59:38   0.03s  0.01s sshd: hogehoge [priv]
hoge_fuga pts/2    172.22.188.150   01:06   59:50   0.01s  0.01s -bash
hoge_fuga pts/3    172.22.246.70    01:26   24:38   0.01s  0.00s mysql -uroot
hoge_fuga pts/4    172.22.188.150   02:06    0.00s  0.00s  0.00s w

やっぱりいっぱいいた。
プロセスIDを確認

ps ax | grep sshd
21591 ?        Ss     0:00 sshd: hoge_fuga [priv]
21593 ?        S      0:00 sshd: hoge_fuga@pts/1
21751 ?        Ss     0:00 sshd: hoge_fuga [priv]
21754 ?        S      0:00 sshd: hoge_fuga@pts/2
21790 ?        Ss     0:00 sshd: hoge_fuga [priv]
21792 ?        S      0:00 sshd: hoge_fuga@pts/3
21846 ?        Ss     0:00 sshd: hoge_fuga [priv]
21848 ?        S      0:00 sshd: hoge_fuga@pts/4

pts/4以外を全部killしていく。

kill 21593
kill 21754
kill 21792

これでDB側にcreate databaseしてみたら、更新できた。
いやー焦った。ありえないタイミングでフリーズしないでほしい。