История изменений
Исправление Stanson, (текущая версия) :
Ситуация реально экзотическая и должно произойти что-то серьезно ненормальное, чтобы с ней столкнуться. Поэтому нет смысла что-то выдумывать по поводу ее обработки и преодоления.
Вот я и не выдумывал.
Что-нибудь про risk management слышали?
В таком случае очевидный выход – это тупо позвать abort после неудачного read.
Одна такая хрень крутится у меня на подвальном серваке. В том числе её задача - отправлять мне сообщения в жаббер, если вдруг датчик летучих углеводородов на первом этаже унюхает пропан-бутан. При замене баллона, например, оно успешно рапортует о том, что газом завоняло. Допустим, что именно в этот момент замены баллона (ну а фигли, фантазировать, так фантазировать) случается это самое крайне маловероятное событие, происходит та самая ошибка и демон кончается по abort(). Через пару дней, когда я где-нибудь по делам мотаюсь, отключают электричество, упс выедает батарейки, а запустить генератор некому. Электричество включают, сервак поднимается, запускает фитюльку, которая внезапно обнаруживает сообщение которое надо отправить. Я получаю сообщение, что у меня утечка газа, бросаю свои дела и еду домой. А по приезду оказывается, что это так и надо, так и должно быть, главное ведь это «безопасное» «программирование», а не какие-то там задачи дурацкие, дела и всё такое.
Возможно, с предварительной руганью в stderr.
Основной режим работы фитюльки - демон, тащемта, у него stderr нету. :)
Нет, вываливаться из программы в этом случае ни в коем случае нельзя. Как минимум, надо попробовать закрыть этот файл, потом попробовать перекинуть этот файл из спула в архив, и может быть попутно попытаться отправить сообщение о том, что произошло немыслимое последнему адресату.
Сейчас оно так и работает, разве что сообщение не отправляет. Но что-то никто из любителей безопасного программирования даже близко не допёр до того, что даже если отвалился диск, то имеет смысл хотя бы попытаться отправить сообщение в реальный мир, которое кто-то сможет прочесть, вместо того, чтобы пытаться что-то там в лог на отвалившемся диске писать. Ну вот как так-то? Вообще никто из набижавших безопаснофилов даже не попытался сложить 2 и 2, и допереть, что это же, сцуко, мессенджер и что, скорее всего, сеть при этих гипотетических проблемах с диском будет вполне жива. Не, return, abort, всё такое….
Исправление Stanson, :
Ситуация реально экзотическая и должно произойти что-то серьезно ненормальное, чтобы с ней столкнуться. Поэтому нет смысла что-то выдумывать по поводу ее обработки и преодоления.
Вот я и не выдумывал.
Что-нибудь про risk management слышали?
В таком случае очевидный выход – это тупо позвать abort после неудачного read.
Одна такая хрень крутится у меня на подвальном серваке. В том числе её задача - отправлять мне сообщения в жаббер, если вдруг датчик летучих углеводородов на первом этаже унюхает пропан-бутан. При замене баллона, например, оно успешно рапортует о том, что газом завоняло. Допустим, что именно в этот момент замены баллона (ну а фигли, фантазировать, так фантазировать) случается это самое крайне маловероятное событие, происходит та самая ошибка и демон кончается по abort(). Через пару дней, когда я где-нибудь по делам мотаюсь, отключают электричество, упс выедает батарейки, а запустить генератор некому. Электричество включают, сервак поднимается, запускает фитюльку, которая внезапно обнаруживает сообщение которое надо отправить. Я получаю сообщение, что у меня утечка газа, бросаю свои дела и еду домой. А по приезду оказывается, что это так и надо, так и должно быть, главное ведь это «безопасное» «программирование», а не какие-то там задачи дурацкие, дела и всё такое.
Возможно, с предварительной руганью в stderr.
Основной режим работы фитюльки - демон, тащемта, у него stderr нету. :)
Нет, вываливаться из программы в этом случае ни в коем случае нельзя. Как минимум, надо попробовать закрыть этот файл, потом попробовать перекинуть этот файл из спула в архив, и может быть попутно попытаться отправить сообщение о том, что произошло немыслимое последнему адресату.
Сейчас оно так и работает, разве что сообщение не отправляет. Но что-то никто из любителей безопасного программирования даже близко не допёр до того, что даже если отвалился диск, то имеет смысл хотя бы попытаться отправить сообщение в реальный мир, которое кто-то сможет прочесть, вместо того, чтобы пытаться что-то там в лог писать. Ну вот как так-то? Вообще никто из набижавших безопаснофилов даже не попытался сложить 2 и 2, и допереть, что это же, сцуко, мессенджер и что, скорее всего, сеть при этих гипотетических проблемах с диском будет вполне жива. Не, return, abort, всё такое….
Исходная версия Stanson, :
Ситуация реально экзотическая и должно произойти что-то серьезно ненормальное, чтобы с ней столкнуться. Поэтому нет смысла что-то выдумывать по поводу ее обработки и преодоления.
Вот я и не выдумывал.
Что-нибудь про risk management слышали?
В таком случае очевидный выход – это тупо позвать abort после неудачного read.
Одна такая хрень крутится у меня на подвальном серваке. В том числе её задача - отправлять мне сообщения в жаббер, если вдруг датчик летучих углеводородов на первом этаже унюхает пропан-бутан. При замене баллона, например, оно успешно рапортует о том, что газом завоняло. Допустим, что именно в этот момент замены баллона (ну а фигли, фантазировать, так фантазировать) случается это самое крайне маловероятное событие, происходит та самая ошибка и демон кончается по abort(). Через пару дней, когда я где-нибудь по делам мотаюсь, отключают электричество, упс выедает батарейки, а запустить генератор некому. Электричество включают, сервак поднимается, запускает фитюльку, которая внезапно обнаруживает сообщение которое надо отправить. Я получаю сообщение, что у меня утечка газа, бросаю свои дела и еду домой. А по приезду оказывается, что это так и надо, так и должно быть, главное ведь это «безопасное» «программирование», а не какие-то там задачи дурацкие, дела и всё такое.
Возможно, с предварительной руганью в stderr.
Основной режим работы фитюльки - демон, тащемта, у него stderr нету. :)
Нет, вываливаться из программы в этом случае ни в коем случае нельзя. Как минимум, надо попробовать закрыть этот файл, потом попробовать перекинуть этот файл из спула в архив, и может быть попутно попытаться отправить сообщение о том, что произошло немыслимое последнему адресату.
Сейчас оно так и работает, разве что сообщение не отправляет. Но что-то никто из любителей безопасного программирования даже близко не допёр до того, что даже если отвалился диск, то имеет смысл хотя бы попытаться отправить сообщение в реальный мир, которое кто-то сможет прочесть, вместо того, чтобы пытаться что-то там в лог писать. Ну вот как так-то? Никто из набижавших безопаснофилов даже не попытался сложить 2 и 2, и допереть, что это же, сцуко, мессенджер и что, возможно, сеть при проблемах с диском будет вполне жива. Не, return, abort, всё такое….