LINUX.ORG.RU
ФорумAdmin

slackware-14.2, ext4, странный баг, потеря/порча ссылок.

 , , ,


2

3

день добрый!

прим. 3 года назад на раб. станции перешел на slackware-14.2.
пока раб.станция была на «старых версиях слаки» - ни каких потерь данных не было.

с 2000 года менялись диски, железо, все было ок.
после перехода на sl14.2 столкнулся с «непонятным багом / потерями ссылок» (возможно потери данных/файлов как таковых)

на sl12.2 - работал больше всего, с самого момента выхода 12 слаки и до «последнего».

slackware 12.2 (диски на reiserfs, системный стек/ядро - обновлялись, патчились итд)
slackware 14.2 (ядро, диски на ext4, системный стек - стоковый)
везде использовалась tde/trinity

железо - в идеальном состоянии, мать/видео отличные/безглючные, apc smart ups, температурный режим - щадящий (продувается как из форточки)

по поводу бага:
- проявился 2 раза (за 3е года) (до этого никаких предпосылок, потерь напряжений, мощных эми, землетрясений)
- потери всех ссылок на примонтированной партишн (в обоих случаях home)
- дотошно потерю данных не выяснял (не было времени)

последний раз ссылки посыпали «особенным образом»:
- в корне дом. каталога было свалено около тысячи битых ссылок, указывающих на корень установленной tde

+ сопутствующие публикации
https://www.linux.org.ru/forum/talks/17447408
2023.12.10 / Ext4 гробит данные (в том числе в Debian Stable)

https://www.linux.org.ru/news/linux-general/17448413
2023.12.11 / Повреждение данных в Ext4 под ядрами в ветке LTS-версий 6.1.X.

подробности:

-------------------------------------------------------------------------------
/dev/sda, 1.00   TB, Hitachi HDS721010CLA332 / Hitachi Deskstar 7K1000.C       / SMART: Reallocated Sector 5
/dev/sdb, 160.04 GB, INTEL SSDSA2M160G2GC    / Intel X18-M/X25-M/X25-V G2 SSDs / SMART: Reallocated Sector 4
/dev/sdc, 2.00   TB, TOSHIBA DT01ACA200      / Toshiba 3.5" DT01ACA Desktop HDD
/dev/sdd, 500.11 GB, ST500DM002-1BD142       / Seagate Barracuda 7200.14 (AF)
/dev/sde, 1.00   TB, WDC WD10EZRX-00A8LB0    / Western Digital Green
-------------------------------------------------------------------------------
Filesystem      Size  Used Avail Use% Mounted on
-------------------------------------------------------------------------------
/dev/sda1       105G   72G   34G  69% /mnt/main  sl12.2 /
/dev/sda3       896G  635G  262G  71% /mnt/home  sl12.2 /home
/dev/sdc1       529G  117G  385G  24% /          sl14.2 /
/dev/sdc2       1.5T  1.1T  276G  80% /home      sl14.2 /home <-- наш проблемный диск
/dev/sdd1       501G  361G  141G  72% /mnt/add   common
-------------------------------------------------------------------------------
/dev/sda1 /mnt/main reiserfs (rw,noatime,nodiratime,notail)
/dev/sda3 /mnt/home reiserfs (rw,noatime,nodiratime,notail)
/dev/sdb            osx
/dev/sdc1 /         ext4     (rw,noatime,nodiratime)
/dev/sdc2 /home     ext4     (rw,noatime,nodiratime) 
/dev/sdd1 /mnt/add  reiserfs (rw,noatime,nodiratime,notail,data=writeback)
/dev/sde            osx
-------------------------------------------------------------------------------
- slackware 14.2
- kernel-4.4.301
- e2fsprogs-1.43.1-x86_64
- tde-14.0.11 (рабочий стол, если это имеет значение)

посыпались все ссылки на диске

/dev/sdc2 - /home
!!! уточняю !!! - были «убиты/уничтожены/затерты/обнулены» все ссылки на диске & в корень дом.каталога была навалено кучу «битых ссылок»

ссылки:
- либо «потерялись»
- либо стали указывать на «хрень» (-> /opt/tde/* , корневой каталог TDE/Trinity, мой DE.)
- и, дополнительно, свалились (были перенесены) в корень HOME-каталога.
(про осталные каталоги - не знаю, т.к. далее не капал)

все-ли ссылки, со всего-ли диска свалились в корень дом. каталог - не знаю, не стал выяснять.
в результате - в дом. каталоге оказалось около тысячи битых ссылок.

из назначения ссылок ясно, что пути, на которые они указывают есть «полные хрени», т.е. не имеющие смысла, как-то:

libcrypt.so.1       -> /opt/tde/share/fonts/TTF/libcrypt.so.1
УМ_Радиотехника_101 -> /opt/tde/УМ_Радиотехника_101
virtualbox.desktop  -> /opt/tde/share/apps/konqueror/virtualbox.desktop
qtcreator.desktop   -> /opt/tde/share/applications/qtcreator.desktop

одна из библиотек:
- libQtCore.so.4
- libQtCore.so.4.8
- libQtCore.so.4.8.7 -> /opt/tde/share/fonts/TTF/libQtCore.so.4.8.7

можно предположить что это ссылка на:
/usr/lib64/qt-4.8.7/lib/libQtCore.so.4.8.7
~/opt/stm/true_studio/9.3.0/Servers/J-Link_gdbserver/libQtCore.so.4.8.7
(т.е. реально сломаны пути)

если посмотреть на «типа, путь, на который ссылается» битая ссылка:
/opt/tde/share/fonts/TTF/libQtCore.so.4.8.7

по частям, существующие по отдельности каталоги:
- /opt/tde/share
- /usr/share/fonts/TTF
а сама библиотека libQtCore.so.4.8.7 - ну ясен пень, никаким боком не имеет отношение к «последним двум».

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

итак, к чему бы это я?!
как я перешел на «новую» slackware-14.2, со всем соотв. стоком ядер/библиотек и, самое главное сменил файловую систему ReserFS3 -> Ext4, за это время «данный армагидец» произошел дважды.
если-бы произошёл один раз, то можно было-бы свалить на «случай/кривые руки».

до этого, я всегда использовал:
- старую slackware 7.x->12.2
- tde/trinity 3.x (последняя совместимая с kde3.x)
- smart apc-ups (был всегда)
- весь этот стек работал с 2000 года и практически никогда не чихал, менялись только диски и железо, обновлялась ось, а все остальное - ни каких проблем (ни зависаний, ни перегрузов, ни чего такого), а тут такое!

как промежуточный итог:
- smart у дисков без ошибок (за исключение других, где есть «переназначения» блоков)
- в логах не было найдено ни ошибок, ни чего, что-бы «подсказало» откуда жопа растёт.

мое мнение (могу ошибаться): стечение обстоятельств, софта, версий, системного стека, ядер и файловой системы.

какие ваши идеи, мысли, предположения? высказывайтесь, пожалуйста.
спасибо
p.s. тачка рабочая, сильно экспериментировать не получится.

###!!! UPDATE !!!###
в процессе были найдены другие «битые» ссылки, перенесеные «непоподя куда».

★★★★

Последнее исправление: sunjob (всего исправлений: 6)
Ответ на: комментарий от bormant

похоже, да, т.е. нет! :о)

lrwxrwxrwx 1 sun users  23 Aug 21 06:50 step_motor -> /opt/tde/lib/step_motor
lrwxrwxrwx 1 sun users  18 Aug 21 06:50 stm -> /opt/tde/share/stm
lrwxrwxrwx 1 sun users  25 Aug 21 06:50 stm32-bsp-common -> /opt/tde/stm32-bsp-common
lrwxrwxrwx 1 sun users  30 Aug 21 06:50 stm32-external-loader -> /opt/tde/stm32-external-loader
lrwxrwxrwx 1 sun users  26 Aug 21 06:50 stm32-ring_buffer -> /opt/tde/stm32-ring_buffer
lrwxrwxrwx 1 sun users  38 Aug 21 06:50 stm32.wine -> /opt/tde/share/applications/stm32.wine
lrwxrwxrwx 1 sun users  22 Aug 21 06:50 stm32.x64 -> /opt/tde/lib/stm32.x64
lrwxrwxrwx 1 sun users  22 Aug 21 06:50 stm3210e-eval -> /opt/tde/stm3210e-eval
lrwxrwxrwx 1 sun users  28 Aug 21 06:50 stm32_mw_usb_device -> /opt/tde/stm32_mw_usb_device
lrwxrwxrwx 1 sun users  26 Aug 21 06:50 stm32_mw_usb_host -> /opt/tde/stm32_mw_usb_host
lrwxrwxrwx 1 sun users  27 Aug 21 06:50 stm32_mypractic.ru -> /opt/tde/stm32_mypractic.ru
lrwxrwxrwx 1 sun users  42 Aug 21 06:50 stm32f072_test -> /opt/tde/lib64/qt3/doc/html/stm32f072_test
lrwxrwxrwx 1 sun users  34 Aug 21 06:50 stm32f103_i2c_lcd1602_DMA -> /opt/tde/stm32f103_i2c_lcd1602_DMA
lrwxrwxrwx 1 sun users  35 Aug 21 06:50 stm32f103_ili9341_models3D -> /opt/tde/stm32f103_ili9341_models3D
lrwxrwxrwx 1 sun users  29 Aug 21 06:50 stm32f1xx_hal_driver -> /opt/tde/stm32f1xx_hal_driver
lrwxrwxrwx 1 sun users  35 Aug 21 06:50 stm32f1xx_hal_driver-1.1.9 -> /opt/tde/stm32f1xx_hal_driver-1.1.9
lrwxrwxrwx 1 sun users  34 Aug 21 06:50 stm32f4xx_I2C_LCD1602_SPL -> /opt/tde/stm32f4xx_I2C_LCD1602_SPL
lrwxrwxrwx 1 sun users  35 Aug 21 06:50 stm32f4xx_hal_driver-1.8.2 -> /opt/tde/stm32f4xx_hal_driver-1.8.2
а вот время очень странное в пределах одной минуты
06:50-06:51
только у одной-двух ссылок время отличается
предполагается результат кривого чека диска?
или кривой результат чека...
да думал на счет этого, собственно топик об этом-же :о(

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

Вот как раз 21.08.2024 6:50 что-то (сценарий или отдельно команда ln -s ...) отработало и навалило ссылок...

PS. У ln тут 2 подходящих случаю синтаксиса с множеством целей, куда можно прокинуть '*' одну или с путем вместо TARGET...:
ln -s TARGET... DIRECTORY
ln s -t DIRECTORY TARGET...

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

что-то (сценарий или отдельно команда ln -s ...) отработало и навалило ссылок...

почти 100% это был чекит диска (*), т.е. во время чекита ссылки «свалились» или не совсем верно восстановились, а вот следствием чего появились «битые ссылки» и/или потеря данных - я думаю это из-за «стечений обстоятельств» связанных с файловой системой etx4

(*) - я помню этот момент, когда после задержки во время загрузки (был запущен чек, как периодичный или еще как, не важно сейчас), а вот после этой загрузки и «все посыпалось»

(все имхо), а вы что имели в виду?!

!!! уточняю !!! - были «убиты/уничтожены/затерты/обнулены» все ссылки на диске & в корень дом.каталога была навалено кучу «битых ссылок»(сорри, возможно, обьснил не совсем точно :о)

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

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

Это не похоже на результат работы fsck, зато на результат работы говноскрипта похоже =)

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

я думаю это из-за «стечений обстоятельств» связанных с файловой системой etx4

А ты не думай!

обьснил не совсем точно :о)

Если на разных разделах, то ты что-то запустил…

Eulenspiegel
()
Ответ на: комментарий от sunjob

Это вряд ли =)

Чтобы fsck с такой удивительной избирательностью прошелся только по симлинкам, да еще и свалил их в домашний каталог? Ладно бы еще в lost+found, но в домашний каталог??? Ну бред же. Во время работы fsck ФС не смонтирована, и данный каталог ничем не отличался от других.

Это явно баг в скрипте, который плохо работает с симлинками.

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

Это вряд ли

я тоже в первый раз не верил, точнее даже не подозревал, что такое может быть, пока не случилось второго раза, потом начал «рыть», нашел подтверждение! так, что - ну вот как-то так! можете верить, можете нет! это ваше дело, я не же не застваляю :о)
и да, опять-таки «стечение обстоятельств» (тобишь, версий софта,ядра, возможно что-то еще, сам дистрибутив уже старый, и косяк старый, скорее подправлен в текущих версиях)

Чтобы fsck с такой удивительной избирательностью прошелся только по симлинкам

вот вы его поймайте за хвост и спросите, что-же он, негодник такой, посыпал линки?! :о)

произошло все в точности один в один
1. сначало «что-то происходит», что завешивает полностью систему
2. reboot
3. chkfs...
4. вуаля - получите, распишитесь

p.s. можете принимать, можете не принимать, в любом случае, выслушаю ваши идеи, мнения итд.
спасибо

ps. по поводу

Ладно бы еще в lost+found, но в домашний каталог??? Ну бред же.

в последствии нашлись и в других каталогах побитые ссылки «и к месту и не к месту», просто наибольшее их кол-во свалилось/оказалось в дом.каталоге и это бросилось в глаза. а так самой явной показательной реакцией - пропажа всех ссылок «как таковых»

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

Может ты юзаешь команды вида find / -type ... -exec ...? Это могло быть результатом одной из таких команд, либо введенных вручную, либо присутствующих в каком-то скрипте.

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

я много чего юзаю (*), но попробуйте представить то, что я говорил вам истиную причину (в данном случае)?! :о)
(*) в каталоге ~/bin - 1.5 тыс скриптов (не считая вложенных каталогов)

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

А что вы хотели от дистрибутива, выпускающего установочный оптический диск, на котором, помимо всего прочего, лежит патч к исходному тексту своего штатного ядра, включающий возможность использования -j MASQUERADE в IP-протоколе?

Infra_HDC ★★★★★
()
Последнее исправление: Infra_HDC (всего исправлений: 1)
Ответ на: комментарий от anc

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

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

но вы даже не можете мне сказать, что были бы благодарны за него?

За давностью лет уже конечно не интересно. Из «быстро подрукой», до 10-ой порылся и не обнаружил ничего.

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

значит... ведерко и вентилятор вам всЁ-таки понадобились?!
знаком со слакой с 7-й версии, а это 2000 год, и с подобным пачтем я лично не сталкивался. вы апеллируете «непонятно чем» 24х летней давности (это, когда, собственно, рабочий десктоп-линух еше только зарождался?!!!)
и потом, слака имеет иной статус/цели - а именно «просто, все руками и понятно», поэтому и наличие «чего-то подобного» вполне вписывается в данную парадигму.
и зачем набрасывать?! реально, было-бы лучше и правильней, если-бы ВЫ высказались по поводу и по теме, что думаете в связи со случившимся итд итп.
явно-же есть что сказать?! :о)
спасибо

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

по поводу «наличия патча»:
возможно, вы «имели в виду» папку с патчами?
sl15.0/patch
это стандартная папка/метод поддержки релиза (пока «собирается» новая версия)

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

возможно, вы «имели в виду» папку с патчами?

Какую мамку он имел ввиду не интересно. Гораздо интереснее пруф и реально без всяких подколов интересно.

anc ★★★★★
()

У ext4 включена опция inline_data?

Информацию по времени лучше смотреть командой stat, там ещё будет дата создания (рождения). Ну и e2fsck, по идее, на каждое изменение fs что-то пишет на экран. И может писать в лог, но, это, насколько я знаю, нигде не настроено, так что концов не найти.

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

У ext4 включена опция inline_data?

выкус fstab в топике
все остальное по дефолту (ни чего спецом не настраивал после создания тома ext4)

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

Не, я не про опцию монтирования, а про features. То, какие features будут включены по дефолту написано в файле /etc/mke2fs.conf и в разных дистрах содержимое файла может быть разным.

Ну и к прописаному в fstab всгда добавляются опции монтирования по умолчанию, хранимые, условно, в суперблоке ФС, а не в файле. Так что, если не сложно, покажите:

tune2fs -l /dev/sdc2 | grep -E 'features:| flags:|mount options:'

mky ★★★★★
()
Ответ на: комментарий от mky
main$ cat /etc/mke2fs.conf
[defaults]
        base_features = sparse_super,large_file,filetype,resize_inode,dir_index,ext_attr
        default_mntopts = acl,user_xattr
        enable_periodic_fsck = 0
        blocksize = 4096
        inode_size = 256
        inode_ratio = 16384

[fs_types]
        ext3 = {
                features = has_journal
        }
        ext4 = {
                features = has_journal,extent,huge_file,flex_bg,dir_nlink,extra_isize
                auto_64-bit_support = 1
                inode_size = 256
+
main$ sudo tune2fs -l /dev/sdc2 | grep -E 'features:| flags:|mount options:'
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash
Default mount options:    (none)

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

О, спасибо, вроде она и есть ))). Я к тому, что если в стабильных дистрибах, заточенных для продакшена, есть чудеса, то что же говорить о таких, как слака, культовых? И — то, что топикстартеру не стоит удивляться. У меня был случай со слакой, что я не смог собрать окружение для PXE, т.к. в слаковом комплекте была make версии, у которой была специфичный баг, и в процессе сборки мне это было прямо указано.

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

что топикстартеру не стоит удивляться

да уж действительно, чего удивляться?! слака у меня с 2000 года и показала себя практически идеальной и стабильной. за 24 года практически ни раз не чихнула! и только при переходе на, блин, новые версии ядер/библиотек - два раз сковырнулась (и это уж точно не проблема как такового дистрибутива)...
и данные, как таковые, не были потеряны, только ссылки посыпались. ну уж лучше так, чем ... как у других, разделами сыпятся... спасибо!

о чем это ВЫ вообще?! вы способны сапостовлять и аппроксимировать бесконечно большие величины?! :о)

У меня был случай со слакой, что я не смог

этот случай говорит только об одном:

не смог

не надо гнать на дистриб, кот. вам не подошел (надеюсь, вы нашли ваш любимый и надежный?! ну вот и славно :о)
а на слаку гнать не надо :о)

p.s. спецом добавил смайликов, что-бы не прочиталось вами как в том анекдоте:
- пивааа нееетууу!!!

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

не надо гнать на дистриб

Я предупреждаю, чтобы мои ошибки не повторил кто-то другой. То что «не надо гнать» — скорей слабая сторона дистрибутива, и по большей части удар в его культовую составляющую, а она у него весьма существенна.

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

нормальный дистр, просто вам не подошел.
есть плюсы/минусы и соответственно - золотая середина.
с ОГРОМНЫМ удовольтсвием-бы повесил все работы по поддержанию дистра на плечи «больших дядей», но практика показала что «ну их нафиг», мне «они» не подошли...

лучше по теме, что думаете, какие идеи?! (кроме тех, что уже озвучены)

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

ну... для дома, это понятно, там и остается slackware-12 (где-то 14я), а вот для «разработки» тут выбора-то и нет, нужны все само-последнее «погано-написанное», ни куда ни деться... хоть на arch-linux переводи рабочие тачки... :о)

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

Да, всё по дефолту. 64bit в слаке убрали, чтобы не пугать загрузчики (boot-loader). Может действительно в e2fsck бага, но версия 1.43.1 вышла ну очень давно. Я бы просто для интереса собрал свежие e2fsprogs (1.47), без установки в систему и проверил бы /home, можно в режиме ro, может там какая-то ошибка с файловыми структурами...

mky ★★★★★
()