Re: SIGSEGV z Apache, Debian Etch, VServer
On Mon, Apr 16, 2007 at 01:58:33PM +0200, Piotr Gasidlo wrote:
> On sob, 14/04, 13:10:44, Marcin Owsiany wrote:
> > [...]
> >
> > Jeśli ten stos zawiera choć trochę prawdy, to może to być konflikt
> > bibliotek, np. A zlinkowane z B w wersji X i C w wersji Z, a B
> > zlinkowane z C w wersji Y.
>
> Brałem wszystko z repozytorium Debiana.
To niestety niczego nie gwarantuje. Co prawda w stable jest mniejsza
szansa, że takie kwiatki się pojawią, ale nadal jest to możliwe.
> > Czy apache choć trochę działa, czy wszystkie requesty kończą się
> > SIGSEGVem?
>
> Działa bardzo dobrze. Tj. wszystkie requesty są poprawnie obsługiwane. Wygląda,
> że problem pojawia się dopiero jak Apache zabija nadmiarowe dzieci.
To by pasowało do tego, co ltrace mówi..
> > Jeśli nie wszystkie, to próbuj wyłączać różne funkcje, moduły
> > i patrzeć kiedy przestanie. Może ltrace też coś podpowie..
>
> Niewiele podpowiedział, przynajmniej mi to nic nie mówi.
>
> (...)
> strcmp("ssl", "ssl") = 0
Prawdopodobnie powyżej jest parę innych wywołań "strcmp()". Pokaż je? I
może jeszcze trochę więcej kontekstu?
> shutdown(3, 1, 1, 0x2ad6c0a36000, 0x79726f6765746143) = 0
> select(4, 0x7fffea08a9c0, 0, 0, 0x7fffea08aa40) = 1
> read(3, "", 512) = 0
> close(3) = 0
Tu chyba zamknął socket..
> __errno_location() = 0x2ad6c156ac40
To jest ciekawe.. wygląda, jakby chciał wypisać jakiś komunikat błędu,
który pewnie wydażył się nieco wcześniej..
> sigemptyset(0x7fffea08a6d8) = 0
> sigaction(10, 0x7fffea08a6d0, 0x7fffea08a630) = 0
> semop(0x138015, 0x54f2d8, 1, 186, 0x86c490 <unfinished ...>
Tutaj chyba wisi czekająć na semafor..
> --- SIGUSR1 (User defined signal 1) ---
.. aż dostaje sygnał.. od parenta, żeby się zakończyć?
> sigemptyset(0x7fffea08a228) = 0
> sigaction(1, 0x7fffea08a220, 0x7fffea08a180) = 0
> sigemptyset(0x7fffea08a228) = 0
> sigaction(10, 0x7fffea08a220, 0x7fffea08a180) = 0
> exit(0 <unfinished ...>
Tutaj wywołuje exit, czyli prawdopodobnie SIGSEGVa dostaje gdzieś w
funkcji zarejestrowanej wcześniej przez atexit(). Spróbuj pooglądać
wcześniej kontekst wywołań atexit(), może coś ciekawego tam będzie..
> --- SIGSEGV (Segmentation fault) ---
Tu już obsługa sygnału tylko ...
> chdir("/etc/apache") = 0
> sigemptyset(0x7fffea089b28) = 0
> sigaction(11, 0x7fffea089b20, 0x7fffea089a80) = 0
> getpid() = 27946
> kill(27946, 11) = 0
> --- SIGSEGV (Segmentation fault) ---
> +++ killed by SIGSEGV +++
--
Marcin Owsiany <porridge@debian.org> http://marcin.owsiany.pl/
GnuPG: 1024D/60F41216 FE67 DA2D 0ACA FC5E 3F75 D6F6 3A0D 8AA0 60F4 1216
Reply to: