トップ 最新

かってきままな日々

2020-01-20 (Mo) [長年日記]

_ Emacs freeze

PR をマージした直後から、私の手元では 100% フリーズしてたんだよね。

で、それを伝えて、とりあえず revert する PR を上げてくれたから、 それをマージ。症状は起きなくなった。

んで、症状をデバッグしてみようかと、100% フリーズした commit を git clone して、 ビルドしてみたんだけど、さっぱり症状が起きない。

おかしいなぁ... ネットワークの調子がたまたま悪かった?

このまま数日間使ってみよう。起きなければ、revert を revert しよう。

で、今日 revert した。そうすると、何故か再現する freeze… orz

その後いろいろ調査したところ、

フリーズしなくなった時は、ビルドにミスったのではないかと。

フリーズするバージョンは、./src/emacs < /dev/null で起動すると、 必ず (フリーズしてない時も) CPU 100% になってる。 ./src/emacs で起動すると問題ない。

CPU 100% になるバージョンとならないバージョンの違いは、

  add_keyboard_wait_descriptor (0);

をしてるかどうか。これをすると cpu 100% になる。 0 って stdin だから、< /dev/null を付けた時と付けない時とで 症状が違うって点に、すごく関係がありそう。

とりあえず、PR くれた人にも、同様の症状が起きるか確認依頼を投げた。 こっちはこっちでデバッグしてみないと。