> вот не надо ерунду нести. Если на винте непорядок, то и статус должен быть у него соответствующий.С винтами-то физически как раз порядок, и со статусом винтов порядок соответственно. А вот с метаданными - непорядок, а установить, из-за какого винта - нет возможности, так как рэйд уже деградирован из-за одного винта в состоянии OFFLINE.
Про чужой монастырь пословицу помните? И про ерунду тоже осторожнее, а то в чужом глазу соринку видите, в своем бревна не замечаете.
> и уж тем более не сегфолтится, а выдавать вменяемую ошибку.
Где там сударь сегфолт углядел? Там корка в результате вызова abort() (a не ASSERT(), как я написал ранее). Хотите, чтоб выдавал вменяемую ошибку - попросите у товарища корку, проанализируйте, что за код ошибки там не обработан и нарисуйте патч. Не хотите? Все равно? Ну так и нечего тогда тут истерики устраивать.
> >Только диски не целиком гавкнулись, а, скажем, cache flush проигнорировали или еще какой интеллект проявили. Да мало ли что там их микрокоду в голову может придти.
> угу. с таким подходом в серверной обязан закупаться шаманский бубен.
> потому что только с его помощью видимо и можно определить какой "гавкнулся" и почему.
Видно вы никогда не читали примечаний к релизам микрокода дисков с краткими описаниями исправленных ошибок. Впрочем, у вас и в линуксе программы корки никогда не генерят :)
> "обычный" ASSERT создан исключительно для отладочных целей - "Этот макрос не будет работать, если отладка DEBUG не определена".
Верно. Но помимо ASSERT()'а в коде из Solaris еще бывает VERIFY(), который там остается всегда.
> тем более что в никсах не ASSERT, а assert
Ничто не мешает сделать макрос, ведь правда? В команде zpool действительно assert()'ы, но в коде драйвера ZFS - сплошные ASSERT, ASSERT3U, VERIFY, VERIFY3U. Так что это говорит о том, что в код вы никогда даже не заглядывали.
> который тоже показывает, что на этом месте должен быть нормальный обработчик ошибки, но его туда пока не впихнули - характерно для альфа-версии и не выше.
Про design by contract что-нибудь слышали, знаток?