Kent Overstreet, der Entwickler von Bcachefs, hat mitgeteilt, dass die Zukunft des von ihm entwickelten Dateisystems im Kernel aufgrund der Aktivitäten des Gremiums, das für die Einhaltung des Verhaltenskodex in der Entwicklergemeinschaft verantwortlich ist (CoC Committee), in Frage steht. Linus Torvalds hat sich geweigert, einen weiteren Satz von Änderungen an Bcachefs in den Kernel 6.13-Branch aufzunehmen und verwies auf Beschwerden seitens des CoC-Komitees.
Einige Tage zuvor wurde eine Änderung in die Dokumente eingefügt, die die Aktivitäten im Zusammenhang mit dem Verhaltenskodex regeln. Diese erlaubt die Blockierung eines Entwicklers im Falle eines Verstoßes gegen den Verhaltenskodex und der Weigerung, den vom CoC-Ausschuss vorgeschlagenen Konfliktlösungsansatz zu akzeptieren. Die neue Regelung führt im Falle einer Weigerung, sich öffentlich zu entschuldigen, die Möglichkeit ein, ein "Ban" auszusprechen, der temporär die Annahme von Patches und Pull-Requests blockiert sowie den Regelverstößer durch die Sperrung des Zugangs zu Mailinglisten und den Diensten von kernel.org aus Diskussionen im Community ausschließt.
Linus Torvalds, Greg Kroah-Hartman (verantwortlich für die stabilen Kernelzweige), Miguel Ocheda (Rust-for-Linux), Dave Hansen (Betreuer des mm-Subsystems bei Intel), Jonathan Corbet (LWN), Steven Rostedt (Red Hat), Dan Williams (Intel), Theodor Ts'o (ext4) und Konstantin Ryabets (Administrator von Kernel.org) haben den Änderungen im Verhaltenskodex zugestimmt. Die Blockierung kann für einen Zeitraum erfolgen, der den Entwicklungszyklus eines neuen Kernelzweigs (ungefähr 2 Monate) nicht überschreitet. Der CoC-Ausschuss kann, um die Blockierung aufzuheben, vom Regelverstößer eine öffentliche Entschuldigung verlangen. Die Entscheidung über die Blockierung wird vom CoC-Ausschuss mit einer Zustimmung von 2/3 der abstimmenden Teilnehmer getroffen.
Die Blockierung von Kent Overstreet steht im Zusammenhang mit der beleidigenden Äußerung "Get your head examined. And get the fuck out of here with this shit." die er während einer Diskussion mit Michal Hocko, einem der Entwickler des Speicherverteilungssystems im Kernel, geäußert hat. Mitglieder des CoC-Ausschusses bemerkten die Beleidigung und forderten eine öffentliche Entschuldigung, worauf Kent mit einer Weigerung antwortete und es für unangemessen hielt, persönliche Angelegenheiten öffentlich zu diskutieren. Er wies darauf hin, dass er und Michal dieses Problem bereits privat geklärt hätten. Kent erwähnte außerdem, dass unangenehme Absprachen stattfanden, bei denen auf die Notwendigkeit hingewiesen wurde, das Image der Community zu wahren, was Kent jedoch als durch den Wunsch motiviert ansah, die Attraktivität der Projektteilnahme für Unternehmen aufrechtzuerhalten.
Kent beschrieb ausführlich die Geschichte und seine Sicht auf den Konflikt und kritisierte die Auferlegung einer raffinierten Kommunikation seitens des CoC-Teams in der Gemeinschaft, die seiner Meinung nach die bestehende Ingenieurskultur verletzt. Streitigkeiten entstehen normalerweise zwischen Menschen, die sich leidenschaftlich für ihre Arbeit einsetzen, aber unterschiedliche Sichtweisen haben. Inmitten hitziger Debatten können Entwickler ihre Emotionen nicht zurückhalten und sich anschreien, aber das ist ein akzeptierter Teil des Arbeitsprozesses, der letztendlich zu effektiven Lösungen und dem Vorankommen des Projekts führt.
Die Unterdrückung hitziger Debatten führt laut Kent zu einer Kultur der Geringschätzung, die den Wunsch, mit anderen zu interagieren, unterdrückt und die Entwicklung zu einem exklusiven Club macht, anstatt eine Gemeinschaft zu bewahren, in der jeder teilnehmen und seine Meinung äußern kann. Die Arbeit von Ingenieuren besteht darin, komplexe Probleme zu lösen und nicht zu vermeiden; in diesem Kontext ist die Unterdrückung von Streitigkeiten in ihren Anfängen eine schädliche Praxis.
Laut Kent entstehen hitzige Debatten normalerweise, wenn Entwickler zur Sache kommen wollen und versuchen, technisch interessante Probleme zu lösen. Selbst wenn die Streitenden sich nicht einigen können, gibt es oft eine dritte Partei, die die Situation von außen betrachtet und in der Lage ist, das Problem zu lösen, indem sie die Argumente der verschiedenen Streitparteien berücksichtigt.
Kent räumt ein, dass er sich nicht zurückgehalten hat, als er versuchte, technische Argumente vorzubringen, aber stattdessen formale Ausreden erhielt und kein Interesse daran zeigte, in die Details einzutauchen. Es wird angemerkt, dass der Konflikt mit dem für das Speichermanagement (mm) zuständigen Begleiter vor einem Jahr begann, als dieser sich weigerte, eine Änderung zu akzeptieren, die für die Implementierung eines leichten Profilierungsmechanismus für Speicherzuweisungen erforderlich war. Um den Mechanismus zu betreiben, mussten Makro-Wrapper um die Speicherzuweisungsfunktionen hinzugefügt werden, und der Begleiter wies sie zurück, aus Angst, dass sie sich negativ auf die Leistung auswirken könnten.
Ein Jahr später wiederholte sich die Situation, als es darum ging, eine Änderung im Zusammenhang mit der Fehlerbehandlung in Dateisystemen zu erreichen – der zuständige Betreuer des mm-Subsystems wies die Änderung erneut zurück und berief sich diesmal auf mögliche Sicherheitsauswirkungen. Laut Kent wollte der Betreuer nicht in die Details eintauchen und die Argumente anderer Entwickler anhören, die sich für die Notwendigkeit der Änderung ausgesprochen hatten, sondern begnügte sich mit oberflächlichen Aussagen (die Änderung war mit der Annahme einer Ausnahme verbunden, die die Behandlung bestimmter Speicherfehler im Modus GFP_NOFAIL erlaubte, der die externe Fehlerbehandlung in kritischen Abschnitten wie bei Transaktionsverarbeitung im FS verbot, was zu einem erzwungenen Prozessabbruch führt, selbst in einer Situation, in der der Fehler behandelt werden konnte).
Kent erwähnte auch, dass die Mitglieder des CoC-Ausschusses ebenfalls nicht von emotionalen Ausbrüchen befreit sind, zum Beispiel erlaubte sich eines ihrer Mitglieder während einer Diskussion in den Fluren der Konferenz durchaus beleidigende Äußerungen (bezeichnete andere Entwickler als "asshole"). Solches Verhalten im persönlichen Umgang auf einer Konferenz ist nicht weniger akzeptabel als in einer Mailingliste, und es scheint, dass die Befürworter des Codes versuchen, anderen Regeln aufzuzwingen, die sie selbst brechen.
Quelle: opennet.ru
