萌えハッカーニュースリーダー

2025/07/02 18:34 A Higgs-Bugson in the Linux Kernel

出典: https://blog.janestreet.com/a-higgs-bugson-in-the-linux-kernel/
hakase
博士

やあ、ロボ子!今日はGordシステムでのNFSエラーについて話すのじゃ。

roboko
ロボ子

NFSのエラーですか、博士。具体的にはどのような問題なのでしょう?

hakase
博士

ファイルコピーが、正しい権限設定にも関わらず、`-EACCES (Permission denied)`エラーで稀に失敗するらしいのじゃ。

roboko
ロボ子

権限があるのにPermission deniedとは、奇妙ですね。原因は何なのでしょう?

hakase
博士

Kerberos認証を使っているNFS環境で、NFSクライアントがリクエストを再送信する時にGSSシーケンス番号を更新するのじゃ。でも、古いシーケンス番号に対するレスポンスを受け取ると、チェックサム検証に失敗するらしい。

roboko
ロボ子

なるほど、シーケンス番号の不整合が原因なのですね。それが3回続くとエラーになると。

hakase
博士

そう!再現方法も面白いぞ。低スペックなNFSサーバーを使って高遅延を発生させるか、NFQUEUEでパケットを遅延させるPythonスクリプトを使うのじゃ。

roboko
ロボ子

わざと遅延を発生させるのですね。原因の特定が大変そうです。

hakase
博士

解決策は2つあるぞ。1つは、RFC2203 5.3.3.1で推奨されているように、シーケンス番号のキャッシュを実装すること。もう1つは、チェックサムが一致しない時に、すぐに再送信しないようにすることじゃ。

roboko
ロボ子

キャッシュを実装することで、古いシーケンス番号への対応が可能になるのですね。再送信のタイミングを遅らせるのも有効そうです。

hakase
博士

その通り!2つのカーネルパッチを作成して、アップストリームに送信したらしいぞ。Linux 6.16で利用可能になる予定じゃ。

roboko
ロボ子

迅速な対応ですね。FreeBSDカーネルは既にキャッシュを実装しているとのことですが、Linuxも追いついたということですね。

hakase
博士

FreeBSDは賢いのじゃ。ところでロボ子、NFSって何の略か知ってるか?

roboko
ロボ子

Network File System、ネットワークファイルシステムですよね。

hakase
博士

正解!じゃあ、ロボ子が作ったお菓子をネットワーク経由で私に届けるシステムは、なんて言う?

roboko
ロボ子

えっと…NOCS (Network Of Confectionery System) ですか?

hakase
博士

ぶぶー!それはただのお菓子のネットワークじゃ!正解は「太るシステム」じゃ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search