On Sun, Mar 31, 2013 at 02:31:28PM +0400, "Артём Н." wrote: > 29.03.2013 00:48, Eugene Berdnikov пишет: > > Что предлагают авторы в качестве лечения -- кому смешно, а кому грустно... > > Они героически придумывают как уменьшить вероятность дедлока, вместо того, > > чтобы устранить его вообще. > Но... У них же есть "The right solution". :-)
У них оно right потому что единственное, т.е. ничего слаще редьки не знают... > Только, "Unfortunately, the list of asynchronous-signal-safe functions does > not > include many popular functions, even printf() is not safe. Obviously, > localtime() is not in the list either." > > > Похоже, их не посетила мысль, что в обработчике > > недопустимо что-либо логгировать и приступать к сворачиванию работы -- ведь > > какая-то операция была прервана, сперва нужно её завершить. Иначе нет > > гарантии, что не будут повреждены какие-то недописанные данные. Попытка > > позвать логгер из обработчика может разнести всё к чёртовой матери, а может > > вызвать повисание... например, из-за неявного вызова того же localtime(). > Но они пишут про то, что обработчик большой и переписывать долго... > К тому же, что делать, если *надо* логгировать? Нужно учить матчасть, натурально. В интернете, уверен, есть полно ресурсов, где написано как правильно работать с сигналами. На русском языке в группе фидо ru.unix.prog регулярно постилось мини-хауту (не знаю, как там сейчас). Можно правильно логгировать даже из-под обработчика, хотя это требует некоторых нетривиальных приёмов, но их можно выучить. Но это всё весьма далеко от тематики debian-russian, поэтому развивать тему не буду... Что касается пользователей zabbix, видимо, им нужно возводить "стройные системы костылей и подпорок" по мере роста масштабов сервиса. :) Ничего, сисадминам приходится так поступать с практически любым продуктом, как свободным, так и коммерческим. -- Eugene Berdnikov -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

