okkyの日記: NFSを2度マウントすると2度目でSIGSEGV
日記 by
okky
OSDLのメアリーさんと、FedoraJP勉強会の両方で被害者を確認したので間違いなかろう。
Linuxは同じマウントポイントに、同じNFSサーバを2度マウントすると、2度目の mount の最中に SIGSEGV を出す。本来はマウントに失敗するべきなのに。
で、その後 shutdown をしようとすると、途中のどこかで止まったまま返ってこない。
2度目の mount の際に、kernel 内部、ロックを取得している最中のどこかで SIGSEGV を起こすような何かが生じていると思われる。
このせいで、lockを掴んだままプロセスが強制終了しているのではないかと。
shutdown の際に、umount しようとして lock を取得しに行って、そのままdead lockしているのだと思われる。
さっき見てみたが、IS_ERR()マクロで確認するべきポインタの妥当性確認が、途中からいい加減極まりないことに。 多分それらのどこかだろう。その判定では困るようなことになったのは、異常ポインタの定義を変えてしまったからだろう。
で、そこは具体的にどこか? だと? 知ったことか。
こんな馬鹿なミスはLinux以外看過されない、というレベルの話だ、とさえ判れば十分だよ。
どうしても、というなら Qemu 上にカーネル載せて、2度目の mount(2)を何度かステップトレースすれば、判るはずさ。
NFSを2度マウントすると2度目でSIGSEGV More ログイン