When plaintext log size exceeds 2GB, ulogd may crash on certain systems, because it uses fopen (3) to open files. (I had troubles after trying to DoS my own machine. ) The solution can be to use fopen64 instead of fopen, or to use compiler flag to force using large files everywhere (I haven't found out which yet). I think the latter is the best idea. Steps to Reproduce: 1. Create a large enough "log" file (via dd for exapmle) 2. Start ulogd (so that it appends to the file) 3. Send intensive traffic. Ulogd will crash at some point, leaving an orphan pid file.
Кстати, как обрабатывается ошибка записи в файл в последних версиях, я не знаю. Проверялось только на ulogd из 3.0 -- ulogd-1.02-alt0.1 Что-то могло и измениться. И еще, если система 64-битная, это, видимо, не должно воспроизводиться.
На какой версии ядра воспроизводилось?
Альтовское 2.6.12, моя сборка (патчей не накладывал). Linux khedin.starlink.ru 2.6.12-alt-lodin #1 Sun Oct 15 12:54:44 MSD 2006 i686 unknown unknown GNU/Linux ulogd-1.02-alt0.1 -- древний, так что может это и починили.
Действительно воспроизводилось в последнем релизе. Переписка на эту тема шла аж в 2004-ом, но в апстрим патч так и не вошел: https://lists.gnumonks.org/pipermail/ulogd/2004-May/000591.html Fixed in 1.24-alt4 - только что отправил в Сизиф.