Linus Torvalds äußert seine Frustration über den Entwicklungsprozess von Bcachefs
Am 5. Oktober 2024 entbrannte ein heftiger Streit zwischen Linus Torvalds, dem Schöpfer des Linux-Kernels, und Kent Overstreet, dem leitenden Entwickler des Bcachefs-Dateisystems. Torvalds äußert seine Frustration über Overstreets Herangehensweise an die Entwicklung von Bcachefs, insbesondere über den Mangel an Tests und Zusammenarbeit vor dem Einreichen von Patches.
Kent Overstreet verteidigt seine Praktiken und hebt das schnelle Entwicklungstempo sowie die Notwendigkeit hervor, schnell zu iterieren. Die Diskussion eskaliert, wobei Torvalds damit droht, bcachefs aus dem Mainline-Kernel zu entfernen, was Overstreet dazu bringt, sein Engagement für Linux zu verteidigen.
In diesem Blogbeitrag geben wir eine kurze Zusammenfassung der laufenden Situation zwischen Linus Torvalds und Kent Overstreet in Bezug auf das Bcachefs-Dateisystem.
Linus Torvalds kritisiert Bcachefs-Entwickler wegen mangelnder Tests und Zusammenarbeit
In einem kürzlichen Gespräch auf der Linux-Kernel-Mailingliste äußerte Linus Torvalds, der Schöpfer und leitende Entwickler des Linux-Kernels, seine Frustration über Kent Overstreets Umgang mit dem bcachefs-Dateisystem.
Ich habe hier wirklich genug, Kent.
Diese haben Commit-Zeiten von letzter Nacht. Was mich fragen lässt, wie viel Testing sie bekommen haben.
Und bevor du wieder anfängst zu jammern - erneut - darüber, wie du Fehler behebst,
erinnere ich dich daran, dass es auf Big-Endian-Maschinen Build-Fehler gab,
weil deine Patches außerhalb deines eigenen Trees überhaupt nicht getestet wurden.
Schrieb Linus in der Mailingliste.
Linus Torvalds vs. Kent Overstreet: Bcachefs-Entwicklung im Aufruhr
Der Austausch begann damit, dass Kent Overstreet eine Reihe von Korrekturen für bcachefs für die bevorstehende Linux 6.12-rc2-Version einreichte. Diese Korrekturen behandelten eine Reihe von Problemen, einschließlich Fragmentierungs-LRU-Problemen, Fehlerbehandlung bei protokollierten Operationen und Reparaturen der Dateisystemkonnektivität. Bemerkenswerterweise wurden diese Korrekturen in Overstreets persönliches Repository übernommen, ohne dass zuvor eine öffentliche Überprüfung oder Diskussion auf der Mailingliste stattfand.
Dieser Mangel an Transparenz zog scharfe Kritik von Torvalds auf sich, der seine Besorgnis über die begrenzten Tests dieser Fehlerbehebungen äußerte, bevor sie zur Aufnahme in den Mainline-Kernel eingereicht wurden. Er verwies auf einen kürzlichen Vorfall, bei dem ein bcachefs-Patch auf Big-Endian-Maschinen Build-Fehler verursachte, und betonte die Notwendigkeit gründlicher Tests außerhalb der eigenen Entwicklerumgebung.
Torvalds fuhr fort, Overstreets allgemeines Entwicklungsmodell zu kritisieren, beklagte den Mangel an bedeutenden Beiträgen anderer Entwickler und die scheinbar hastige Art und Weise, wie Fehlerbehebungen kurz vor den Veröffentlichungsterminen eingereicht wurden.
Linus veröffentlichte diese Antwort als Reaktion auf Kents Antwort:
Ich hatte gehofft und erwartet, dass das Mainstreaming von bcachefs die Entwicklung tatsächlich unterstützen würde. Das hat es nicht. Du bist immer noch im Grunde der
einzige Entwickler, es gibt kein wirkliches Anzeichen dafür, dass sich das ändern wird, und es scheint dir egal zu sein, mir ungeprüfte Dinge zu schicken, die noch nie jemand anderes gesehen hat, am Tag vor der nächsten RC-Version.
Er drängte Overstreet auch dazu, sich stärker in der Gemeinschaft zu engagieren, bewährte Entwicklungspraktiken zu befolgen und die kollaborative Entwicklung über einen einsamen Ansatz zu stellen.
Antwort des Entwicklers von Bacachefs
Kent Overstreet konterte, indem er argumentierte, dass die Commits, obwohl sie kürzlich datiert sind, Korrekturen darstellen, die in den letzten zwei Wochen entwickelt wurden. Er verteidigte seinen Ansatz, indem er die aktive Rückkopplungsschleife betonte, die er mit den Nutzern pflegt, und das schnelle Tempo der Fehlerbehebung, das von dieser direkten Interaktion profitiert.
Die /commit/-Daten stammen von letzter Nacht, weil ich die Commit-Nachrichten überarbeite und umsortiere bis zur letzten Nacht (ich schiebe immer kleinere Korrekturen nach vorne und Korrekturen, die wahrscheinlich überarbeitet werden müssen, nach hinten).
Die überwiegende Mehrheit dieser Korrekturen ist alle etwa 2 Wochen alt.
Sagt Kent.
Er zog auch Parallelen zu den frühen Tagen der Entwicklung des Linux-Kernels und deutete darauf hin, dass in den frühen Phasen des Lebenszyklus eines Projekts ein flexiblerer Ansatz notwendig sei.
Torvalds weist Kents Argumente zurück
Aber Torvalds wies diese Argumente zurück und hielt daran fest, dass etablierte Prozesse aus einem bestimmten Grund existieren und dass deren Einhaltung allen Beteiligten zugutekommt.
Er wies Overstreets Versuch zurück, die aktuelle Situation mit den frühen Tagen von Linux zu vergleichen, und betonte, dass das Projekt aus seinen bisherigen Erfahrungen gelernt und seine Entwicklungsmethoden entsprechend weiterentwickelt habe.
Das Argument vorzubringen, dass wir diese Regeln vor zwanzig Jahren nicht hatten, ist einfach dumm. Wir haben sie JETZT, weil wir klüger geworden sind.
-- Linus Torvalds.
Kent Overstreet fordert Torvalds heraus, sein eigenes Dateisystem zu schreiben
Das Gespräch eskalierte, wobei beide Parteien ihren Frust über den Kommunikationsstil des anderen und die Unwilligkeit zu Kompromissen zum Ausdruck brachten.
Overstreet verteidigte sein Engagement für die Entwicklung eines robusten und zuverlässigen Dateisystems für Linux, stellte jedoch den Wert der „Upstream-Regeln“ in Frage, als seine Argumentation und Prozesse scheinbar ignoriert wurden. In einer frustrierten Antwort forderte Overstreet Torvalds heraus, sein eigenes Dateisystem zu schreiben, wenn er von seinem Ansatz so überzeugt war.
Wenn du so überzeugt bist, dass du am besten weißt, lade ich dich ein, dein eigenes Dateisystem zu schreiben. Nur zu.
-- Kent Overstreet.
Torvalds droht damit, Bcachefs aus dem Mainline zu entfernen
Torvalds entgegnete, indem er seine Absicht erklärte, möglicherweise bcachefs vollständig aus dem Mainline-Kernel zu entfernen, falls Overstreet weiterhin den etablierten Entwicklungsprozess und die Beteiligung der Gemeinschaft ignorieren sollte.
Ich überlege, bcachefs vollständig aus dem Mainline-Baum zu entfernen. Weil du immer wieder zeigst, dass du kein Interesse daran hast, zu versuchen, Mainline zum Laufen zu bringen.
-- Linus Torvalds.
Er stellte den Zweck von bcachefs im Mainline-Tree in Frage, wenn es ein Einzelprojekt bleiben sollte, bei dem Integration und Zusammenarbeit kaum berücksichtigt werden.
Die Zukunft von Bcachefs im Linux-Kernel nach Streit über Verhaltenskodex unsicher
Wesentliche Meinungsverschiedenheiten über die Entwicklung von Bcachefs
Der Hauptstreitpunkt zwischen Linus Torvalds und Kent Overstreet dreht sich um den Entwicklungsprozess des bcachefs-Dateisystems, insbesondere in Bezug auf Tests, die Einbindung der Community und die Einhaltung der Praktiken der Mainline-Kernel-Entwicklung.
Linus' Kritiken:
- Unzureichende Tests: Linus äußert seine Frustration über Kents vermeintlichen Mangel an Tests für seine Codeänderungen und hebt insbesondere einen kürzlichen Build-Fehler auf Big-Endian-Maschinen hervor, der es in eine rc-Version geschafft hat. Er glaubt, dass Kent ungetestete Patches ohne angemessene Überprüfung durch andere einreicht.
- Mangel an Gemeinschaftsbeteiligung: Linus kritisiert Kents Entwicklungsstil als zu isoliert und nicht einbeziehend für die breitere Kernel-Entwicklungsgemeinschaft. Er weist darauf hin, dass Kent weiterhin der Hauptentwickler ist, mit begrenzter Beteiligung anderer. Er ist auch unzufrieden damit, dass Kents Patches oft ohne öffentliche Diskussion vor der Einreichung auskommen.
Kents Verteidigung:
- Rasche Iteration und Benutzerfeedback: Kent argumentiert, dass bcachefs sich noch in einem frühen Entwicklungsstadium befindet und einen raschen Iterationszyklus erfordert, bei dem der Schwerpunkt auf der Behebung von Fehlern und der Einbindung von Benutzerfeedback liegt. Er priorisiert die Behebung von Fehlern gegenüber einem langsameren, vorsichtigeren Ansatz, der stark auf die Vermeidung von Regressionen fokussiert ist.
- Bestehende Tests und Community-Engagement: Kent verteidigt seine Testpraktiken und erklärt, dass er sich auf eine Benutzerbasis verlässt, die zeitnahes Feedback liefert und oft Probleme am Morgen nach der Veröffentlichung von Änderungen identifiziert. Er behauptet, aktiv mit Benutzern und Entwicklern auf IRC und durch direkte Kommunikation zu interagieren. Er ist der Meinung, dass die Einbeziehung anderer Entwickler bei der Überprüfung kleiner Fehlerbehebungen unproduktiv wäre und in der Vergangenheit zu unproduktiven Ergebnissen geführt hat.
- Fortschritte und Stabilität von bcachefs: Kent hebt die erheblichen Fortschritte bei bcachefs hervor und deutet an, dass es zunehmend stabiler wird und bereits robuster ist als das langjährige btrfs-Dateisystem. Er argumentiert, dass sein Entwicklungsansatz, obwohl er von den etablierten Kernel-Normen abweicht, effektiv war, um diesen Fortschritt zu erreichen.
Antwort anderer Benutzer
Ein Benutzer, Carl E. Thompson, bot eine Perspektive zur Situation an und schlug vor, dass bcachefs vorerst auf ein Out-of-Tree-Entwicklungsmodell umgestellt werden sollte. Dies würde, so argumentierte er, Overstreet ermöglichen, sein gewünschtes Entwicklungstempo beizubehalten, während es den Benutzern mehr Flexibilität bei der Wahl von Kernel- und Dateisystem-Kombinationen bietet.
Thompson bemerkte auch Fälle, in denen bcachefs-Updates Regressionen einführten, die seine Fähigkeit beeinträchtigten, Release-Candidate-Kernel zu verwenden. Er wies auf ein konkretes Beispiel hin, bei dem gemeldete Probleme mit bcachefs in den 6.12-rc-Kerneln ihn zögerten ließen, einen neuen Laptop zu kaufen, der diese Kernel-Version erforderte.
Er stellte außerdem Overstreets Haltung zur Stabilität von Release-Kandidat-Kerneln in Frage und deutete auf eine Diskrepanz in ihrem Verständnis dessen hin, was „Release-Kandidat“ bedeutet.
Overstreet erkannte Thompsons Feedback an, insbesondere in Bezug auf die aufgetretenen Regressionen. Er zeigte sich überrascht über das Ausmaß dieser Probleme und bat um detaillierte Informationen, um die Regressionstests für bcachefs zu verbessern.
Theodore Ts'o, ein weiterer prominenter Linux-Kernel-Entwickler, beteiligte sich an der Diskussion, um Overstreets Behauptung über die begrenzte Beteiligung der Gemeinschaft an automatisierten Tests für Dateisysteme zu widerlegen.
Er hob bestehende Testframeworks wie {kvm,gce,android}-xfstests und kdevops hervor, die für andere Entwickler verfügbar sind und Beiträge von verschiedenen Personen erhalten haben.
Overstreet antwortete, indem er erklärte, dass Ts'os Testsysteme der breiten Öffentlichkeit nicht zugänglich seien und weder ein zentrales Dashboard noch eine Continuous-Integration-Umgebung besäßen. Er wiederholte seinen Glauben an die Notwendigkeit einer standardisierten Testlösung, die von allen genutzt werden könne, und betonte seine Bemühungen, ein solches System zu schaffen.
Wir wissen nicht, wie dieser Konflikt enden wird
Der hitzige Austausch zwischen Torvalds und Overstreet beleuchtet die Komplexitäten der Verwaltung großer Open-Source-Projekte und das empfindliche Gleichgewicht zwischen individuellen Beiträgen und gemeinschaftlicher Zusammenarbeit.
Es bleibt abzuwarten, wie dieser Konflikt gelöst wird und welche Auswirkungen er auf die zukünftige Entwicklung und Aufnahme von bcachefs in den Mainline-Linux-Kernel haben wird.
Hoffen wir, dass am Ende alles besser wird!
Sie können das vollständige Gespräch zwischen Linus und Kent sowie anderen Entwicklern unter folgendem Link lesen:
- https://lore.kernel.org/all/172816780614.3194359.10913571563159868953.pr-tracker-bot@kernel.org/T/#t