Re: Виртуализация
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
Reply to: