Линус Торвалдс започна да съжалява, че е одобрил добавянето на Bcachefs в ядрото на Linux

При обсъждане на поредната партида корекции, предложени за включване в ядрото 6.11-rc5 от автора на Bcachefs, Линус Торвалдс написа, че започва да съжалява, че е приел файловата система Bcachefs в ядрото. Неприязънта на Торвалдс е свързана с това, че Кент Овърстрийт, авторът на Bcachefs, на етапа на финалните кандидати за версии изпраща прекалено обширни корекции, които по същество не само поправят грешки, но и продължават развитието на функционалността, при положение че функционалните промени са допустими само на ранния етап на разработка на нова версия, а на етап rc5 се приемат само отделни малки корекции, чиито обем не трябва да надвишава 100 реда код.

Изпратеният за Bcachefs патч, в който бяха добавени 1309 реда и изтрити 671 реда в 39 файла, освен че коригира грешки, включваше две значителни изменения: поддръжка на нова структура от данни за управление на списъка с налични елементи в кеша и възможност за преобразуване на хеш-таблици за кеша. Новата структура беше добавена, за да се премахнат излишните заключвания на кеша и да се избегнат ситуации, които могат да доведат до конфликти на заключванията при многопоточни натоварвания.

Не е първият случай, в който големи корекции за Bcachefs се изпращат след прозореца за приемане на промени, и не е първият случай, когато вместо прости корекции на грешки се прокарват по-тежки функционални допълнения, въвеждани чрез искания за корекции на финалните етапи на разработка на нова версия. Линус Торвалдс отговори на изпратения pull-заявка:

«Стига. Последният pull-запрос също беше голям. Този pull-запрос също е твърде обемен, засяга неща, които не са свързани с Bcachefs и дори отдалеч не представлява някаква регресия. В някакъв момент „поправянето на нещо“ просто се превръща в разработка, и това е моментът. Никой в здрав разум не използва Bcachefs и не очаква от него стабилност, затова всеки потребител е поле за експерименти. Патчовете на Bcachefs се превърнаха в нещо като „голяма разработка по време на цикъла на подготовка на релиза, а не преди него“, до такава степен, че започвам да съжалявам за прилагането на Bcachefs. Ако Bcachefs не може да работи нормално съгласно графика на развитието на основното (upstream) ядро, може би не трябва да бъде в основното ядро. Това вече надхвърля пределите на смешното».

Кент Оверстрит отговори, че Bcachefs определено е по-надежден от Btrfs и работи, за да я направи по-устойчива и надеждна от XFS и EXT4, благодарение на реализирането на механизма за цялостност на данните от край до край (end to end data Integrity). Кент също подчерта, че предложените промени директно засягат повишаването на надеждността, и ако грешка в други подсистеми на ядрото може да се ограничи до срив и рестартиране, то в файловите системи цената на грешката е много висока и може да доведе до скрито повреждане на данните, което може да бъде забелязано само седмици по-късно.

Торвальдс възрази, че все още не съществуват големи дистрибуции на Linux, които използват Bcachefs, и посочи, че трябва да се спазват правилата за разработка на релизите на ядрото на Linux, тъй като съществува вероятност за появата на нови грешки поради подобни големи патчове, съдържащи повече от 1000 реда код. В момента обсъжданите поправки за Bcachefs не са приети в ядрото на Linux, а разработчикът на Bcachefs все още не е подготвил обновен вариант на pull-запроса, освободен от добавянето на нови функционалности и фокусиран само върху поправката на грешки.

Източник: opennet.ru

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster