LINUX.ORG.RU
ФорумTalks

Линукс гробит данные на дисках

 , filesystems,


0

2

Привет, ЛОР.

В ядре 4.14 использование bcache приводит к потере данных. Опасайся!

Для !Ъ: https://bugs.gentoo.org/show_bug.cgi?id=638206

P.S. Я так понимаю, не терять данные в 2017 году для линукса всё является невыполнимой задачей, так?

★★★★★

Последнее исправление: hateyoufeel (всего исправлений: 2)
Ответ на: комментарий от I-Love-Microsoft

Только в гентяре?

Это в ванильном ядре.

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от MrClon

Более некрофильные версии заафекчены? Есть инфа?

Нет. Там по ссылке где-то есть ссылка на коммит, вошедший в 4.14, который породил эту шнягу. Хотя я не удивлюсь, если обезьяны из какого-нибудь редхата могли бэкпортировать этот баг в старые версии своих ядер.

hateyoufeel ★★★★★
() автор топика

У меня bcache в качестве системы кеширования вызывал проблемы, потерю данных, и просто падал ещё во времена ведра 4.4. Жаль, что он всё такой-же бажный остаётся до сих пор, я как раз хотел пересесть на него с древнего flashcache который я уже задолбался патчить под более новые вёдра. Хорошо, что не успел.

DawnCaster ★★
()
Последнее исправление: DawnCaster (всего исправлений: 2)
Ответ на: комментарий от MrClon

Более некрофильные версии заафекчены? Есть инфа?

23.08.2017 74d46992e0d9dee7f1f376de0d56d31614c8a17a

В нескольких местах пара из bi_disk & bi_partno:

-	bio->bi_bdev = bd->bi_bdev;
+	bio->bi_disk = bd->bi_disk;
+	bio->bi_partno = bd->bi_partno;

Да-с...

diff --git a/block/bio.c b/block/bio.c
index 101c2a9b5481..33fa6b4af312 100644
--- a/block/bio.c
+++ b/block/bio.c
@@ -597,6 +597,7 @@ void __bio_clone_fast(struct bio *bio, struct bio *bio_src)
 	 * so we don't set nor calculate new physical/hw segment counts here
 	 */
 	bio->bi_disk = bio_src->bi_disk;
+	bio->bi_partno = bio_src->bi_partno;
 	bio_set_flag(bio, BIO_CLONED);
 	bio->bi_opf = bio_src->bi_opf;
 	bio->bi_write_hint = bio_src->bi_write_hint;
-- 
2.14.1
Одну строчку забыли - и...

Using bcache can destroy the filesystem. Mine was gone after 3rd non sucesfull try to mount the rootfs. It was not possible to recover any file...

...можно забыть о содержимом всей ФС!?

gag ★★★★★
()
Ответ на: комментарий от gag

Кстати, у этого разрушительного патча нет «Reviewed-by». Тривиальный такой...

gag ★★★★★
()
Ответ на: комментарий от Harald

Это попытка из связки ssd+hdd сделать гибридный сторадж. Как и сама концепция гибридного стораджа, обладает 100-процентной ненужностью.

pekmop1024 ★★★★★
()
Ответ на: комментарий от Serg_HIS

гробов не напасёшься. закапывайте экскаватором.

Iron_Bug ★★★★★
()
Ответ на: комментарий от gag

Одну строчку забыли - и...

Получили говнокод.

Xellos ★★★★★
()

А я как раз хотел себе запилить сабж, а тут такое...

sehellion ★★★★★
()

bcache нужно, автор треда в итоге вроде восстановил фс; в 4.14.2 всё исправят; у меня за сутки ничего не сломалось, но откатился на 4.13.15 на всякий.

backbone ★★★★★
()
Ответ на: комментарий от pekmop1024

Почему же. Если оно умеет работать как write-back кэш а-ля ZIL — то очень даже нужно.

Хотя, конечно, bcachefs нужнее.

intelfx ★★★★★
()
Ответ на: комментарий от intelfx

Не обеспечивает нормальной производительности, и при малейшем сбое херит все данные. Потому что сама концепция придумана во времена, когда больших флэшек не было. Нынче, мягко говоря, не актуально.

pekmop1024 ★★★★★
()

bcache

живой пример того, что если старый код переписать, то вероятность, что получится точно лучше невелика.

Valeg ★★★
()

По факту данные потерялись только злобных буратин, которые ставят нестабильные ядра и не делают бекапов

Gary ★★★★★
()
Ответ на: комментарий от Gary

А один жирный швед сказал, что это стабильное ядро, и зарелизил его. Выходит, Линусу нельзя доверять теперь?

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от hateyoufeel

Ну у них там свои понятия о стабильности. Ясное дело что даунстрим должен протестировать сначала. Вот протестировали и поправили.

Gary ★★★★★
()

Будто новость, что Linux всегда плохо работал с новейшим железом. SSD и SHDD — это всё ещё новейшие технологии, апологеты стабильности используют HDD.

bodqhrohro_promo
()
Ответ на: комментарий от hateyoufeel

Надо пригласить лысого в тред, он бы тебе объяснил.

Он бы доказал, что тут происходит инициализация полей структуры, а не изменение нескольких полей?

andreyu ★★★★★
()
Ответ на: комментарий от backbone

в 4.14.2 всё исправят; у меня за сутки ничего не сломалось, но откатился на 4.13.15 на всякий.

Исправили. Но всё ли?..

Сейчас наткнулся на Linux 4.14.3:

fs: guard_bio_eod() needs to consider partitions

https://patchwork.kernel.org/patch/10023399/, https://patchwork.kernel.org/patch/10025117/

Fixes: 74d46992e0d9 («block: replace bi_bdev with a gendisk pointer and partitions index»)

Эх, сколько же ещё регрессий будет связано с тем патчем!

gag ★★★★★
()
Ответ на: комментарий от andreyu

Он бы доказал, что тебе нужно купить PVS Studio, иначе ты этого не узнаешь.

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от backbone

Если разделу не повезло быть последним на диске, то, похоже, да. И не смотря на такие опасные регрессии 4.13 уже всё:

4.13.16 [EOL] 2017-11-24

gag ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.