LINUX.ORG.RU

Воткни флешку, делай на неё в цикле open/fsync/read, внезапно выдерни флешку.

DELIRIUM ☆☆☆☆☆
()

Что ты имеешь в виду? Что будет с программой? Она повиснет пока ядро не поймёт что диску копетц. Потом ядро вернёт ошибку. На сколько быстро это произойдёт зависит от того как именно диск отваливается и на каком интерфейсе он висел. Для ata/sata/sas/usb через таймаут комманда будет послана повторно и будет попытка послать комманду reset на накопитель. Через несколько попыток оно будет признано дохлым.

Вот что будет если своп отвалится я не знаю, но, думаю, segfault т.к. страница памяти окажется недоступной.

true_admin ★★★★★
()

Ну а если выдернуть флешку из usb то ось сразу поймёт что флешки нет и программам вернётся ошибка.

true_admin ★★★★★
()

А что случиться, если в момент вызова open/fsync/read, диск (SSD в частности) отвалится? Зависнут? На сколько?

зависнут. Потом скажет «I/O error»

emulek
()
Ответ на: комментарий от placement_new

это сколько?

от многого зависит на самом деле. Обычно секунд 5. Может быть намного больше/меньше. Пробуй, там вроде как можно по горячему.

emulek
()
Ответ на: комментарий от placement_new
$ find /sys -name timeout
/sys/devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0/timeout
$ cat /sys/devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0/timeout
30

Рецепт подсмотрел вот здесь: https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/5...

Я как-то спрашивал а разрабов 3ware как они определяют что диск в рейде сдох. Если мне не изменяет мой склероз, то говорили 50 секунд, потом посылка reset, потом ещё 15 секунд ожидания и винт считается мёртвым.

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