一昨日の話。
午後に突然、dumpが舞い降りてきた。
なんか10台くらい同時に落ちたらしく、緊急度超大。
あやうく徹夜になりかけるところだった。
帰ったの3時だったからほぼ徹夜みたいなもんだが。
見る。
ロックが2重に獲得される寸前にassertで落ちてる。
・・・なんでロック獲得したスレッドが
もう一回ロック獲得しようとしてるんだ?
上長と一緒に3、4時間悩む。
・・・わからん。
そして別件を片付けおわったっぽい課長登場。
課長 「おい、なんか途中で割り込みレベル変わってるぞ」
課長神!
つまり詳細はこうだ。
割り込み禁止の状態でロックを獲得する
→ 想定外の場所でページフォルトが起きる(スタックオーバーフローしてた)
→ ページインするために割り込みレベルが下がる
→ 新しく入ってきた割り込み処理の中でロックを確保しようとする
→ すでにロックを持ってるからassert
解析はほぼ終了。
あとはパッチを提供するだけである。
だいたい日々こんな感じでdumpは解析されている。
blog comments powered by