Discutendo l'ultima serie di correzioni proposte per l'inclusione nel kernel 6.11-rc5, Linus Torvalds ha scritto che inizia a pentirsi di aver accettato il file system Bcachefs nel kernel. Il malcontento di Torvalds è dovuto al fatto che Kent Overstreet, l'autore di Bcachefs, invia correzioni troppo voluminose nella fase dei candidati finali per le release, che in realtà non solo risolvono errori, ma continuano lo sviluppo delle funzionalità. Questo perché le modifiche funzionali sono ammesse solo nella fase iniziale dello sviluppo di un nuovo ramo, mentre nella fase rc5 vengono accettate soltanto piccole correzioni, il cui numero di righe di codice ideale non dovrebbe superare 100.
È stato inviato un patch per Bcachefs che ha aggiunto 1309 righe e rimosso 671 righe in 39 file; oltre a risolvere errori, include due cambiamenti significativi: supporto per una nuova struttura dati per la gestione della lista degli elementi liberi nella cache e la possibilità di trasformare le tabelle hash per la cache. È stata aggiunta una nuova struttura per eliminare i blocchi superflui della cache e prevenire situazioni che possono portare a conflitti di blocco sotto carichi multithread.
Non è il primo caso in cui significative correzioni per Bcachefs vengono inviate dopo la finestra di accettazione delle modifiche, né è il primo caso in cui, anziché semplici correzioni di bug, vengono promosse funzionalità più pesanti attraverso richieste di modifica nelle fasi finali dello sviluppo di un nuovo ramo. Linus Torvalds ha risposto alla pull request inviata:
«Basta. L'ultimo pull request era già grande. Anche questo pull request è troppo voluminoso, riguarda cose non relative a Bcachefs e non rappresenta nemmeno lontanamente una regressione. A un certo punto, 'riparare qualcosa' si trasforma semplicemente in sviluppo, e questo è quel punto. Nessuno in buona fede utilizza Bcachefs e si aspetta stabilità, quindi ogni utente è un'area di esperimenti. Le patch di Bcachefs sono diventate una sorta di 'grande sviluppo durante il ciclo di preparazione del rilascio, e non prima', a tal punto che inizio a rimpiangere di aver accettato Bcachefs. Se Bcachefs non può funzionare correttamente secondo il programma di sviluppo del kernel upstream, forse non dovrebbe essere nel kernel principale. Questo va oltre il ridicolo.»
Kent Overstreet ha risposto che Bcachefs è sicuramente più affidabile di Btrfs e sta lavorando per renderlo più robusto e sicuro di XFS ed EXT4, grazie all'implementazione di un meccanismo di integrità dei dati end-to-end. Kent ha anche sottolineato che le modifiche proposte riguardano direttamente il miglioramento dell'affidabilità e che, se un errore in altre sottosistemi del kernel può limitarsi a un crash e a un riavvio, nei filesystem il costo dell'errore è molto alto e può portare a danni dati nascosti, che possono essere notati solo settimane dopo.
Torvalds ha controbattuto che finora non esistono grandi distribuzioni di Linux che utilizzano Bcachefs, e ha sottolineato la necessità di seguire le regole di sviluppo dei rilasci del kernel Linux, poiché esiste il rischio di nuovi errori a causa di patch di grandi dimensioni contenenti più di 1000 righe di codice. Attualmente, le correzioni discusse per Bcachefs non sono state integrate nel kernel Linux, e lo sviluppatore di Bcachefs non ha ancora preparato una versione aggiornata della pull request, priva dell'aggiunta di nuove funzionalità e concentrata solo sulla correzione dei bug.
Fonte: opennet.ru
