Co się stało apache'owi?
Jakub Bogusz
qboosh at pld-linux.org
Wed Jun 22 16:45:51 CEST 2011
On Wed, Jun 22, 2011 at 08:17:37AM +0200, Jacek Osiecki wrote:
> On Thu, 16 Jun 2011, Jacek Osiecki wrote:
>
> > On Mon, 13 Jun 2011, Arkadiusz Miskiewicz wrote:
> >> > > > Już drugi raz widzę coś takiego:
> >> > > > Rano, najprawdopodobniej tuż po logrotate, apache zgłupiał i nagle
> >> > > > zaczął siać do error_log milionami komunikatów:
> >> > > >
> >> > > > select() error: Invalid argument
>
> >> Zrób strace, poznasz deskryptor na którym ten select() się odbywa, zobacz
> >> lsof czy czymś podobnym czego dotyczy ów deskryptor - może tą drogą dojdziesz
> >> do sedna (to może być którykolwiek moduł apacza).
>
> No dobra, znowu się stało. Tak samo jak ostatnio, czyli w logu apache'a
> jest info o restarcie a potem już tylko cała seria:
>
> select() error: Invalid argument
>
> Nie wiem czy apache działał, bo jak się obudziłem to już nie miał szans
> działać - powyższy komunikat zajął pozostałe 36GB /var i wszystko leżało.
>
> Wszystkie procesy apache'a poza jednym były <defunct>
>
> Po zrobieniu na nim strace zobaczyłem generowane xset linii na sekundę:
> select(1088, [1024 1025 1087], NULL, NULL, {9223372036854775811, 0}) = -1
> EINVAL (Invalid argument)
timeout jest błędny i to jest przyczyna EINVAL, ale kto tak skrzywdził
tę wersję Apache'a (która to w ogóle)?
Dlaczego używany jest select(), a nie epoll (lub przynajmniej poll)
i dlaczego numery deskryptorów przekraczają standardowe FD_SETSIZE?
--
Jakub Bogusz http://qboosh.pl/
More information about the pld-devel-pl
mailing list