Jagd auf einen Higgs-Bugson: Debugging eines Kernel-Level-Problems mit NFS/Kerberos
Ingenieure stießen auf einen schwer reproduzierbaren Bug, der zu Fehlern beim Kopieren von Dateien (-EACCES) in Gord, einem kritischen System für Handelsdaten, führte. Das Deaktivieren von Kerberos behob das Problem, was auf Authentifizierungsprobleme hinwies. Untersuchungen ergaben, dass der Kernel Kerberos-Anmeldeinformationen über den rpc_gssd-Daemon erhält, die Logs jedoch keine Anomalien zeigten. Umfangreiche Tests, einschließlich der Erstellung eines Fake-Dateisystems im Speicher und der Verwendung von bpftrace zur Kernel-Tracing, führten schließlich zur Identifizierung des Problems: Hohe Last auf dem NFS-Server führte zu erneuten Übertragungen von Anfragen. Der Kernel verarbeitete Anfragen/Antworten mit identischen XIDs, aber unterschiedlichen GSS-Sequenznummern falsch, was zu Prüfsummenfehlern und Fehlern führte. Der Ingenieur korrigierte den Kernel, um sofortige erneute Übertragungen aufgrund von Sequenznummern-Diskrepanzen zu verhindern.