Nowe posty

Autor Wątek: Spotowanie Apacha o godzinie 14:30  (Przeczytany 2098 razy)

graby0

  • Gość
Spotowanie Apacha o godzinie 14:30
« dnia: 2014-11-23, 18:47:00 »
Cześć,
problem polega na tym że codziennie o godzinie 14:30 stopuje mi apacha. Niestety w godzinach 7:00 - 17:00 ciągłość pracy nie może być wstrzymywała ani na chwilę. Po zastopowaniu muszę go wystartować:
Cytuj
Checking for httpd2: dead
Tue Nov 18 14:30:13 CET 2014
edmundo:~ # rcapache2 restart
Syntax OK
Warning: found stale pidfile (unclean shutdown?)
Starting httpd2 (prefork) done
System to:
Cytuj
SUSE Linux Enterprise Server 11 (x86_64)
VERSION = 11
PATCHLEVEL = 3
LSB_VERSION="core-2.0-noarch:core-3.2-noarch:core-4.0-noarch:core-2.0-x86_64:core-3.2-x86_64:core-4.0-x86_64"
PHP:
Cytuj
PHP 5.3.17 (cli)
Copyright ˆ 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright ˆ 1998-2012 Zend Technologies
with Zend Guard Loader v3.3, Copyright ˆ 1998-2010, by Zend Technologies
Segmentation fault
apache2ctl -M
Cytuj
Loaded Modules:
core_module (static)
mpm_prefork_module (static)
http_module (static)
so_module (static)
actions_module (shared)
alias_module (shared)
auth_basic_module (shared)
authn_file_module (shared)
authz_host_module (shared)
authz_groupfile_module (shared)
authz_default_module (shared)
authz_user_module (shared)
authn_dbm_module (shared)
autoindex_module (shared)
cgi_module (shared)
dir_module (shared)
env_module (shared)
expires_module (shared)
include_module (shared)
log_config_module (shared)
mime_module (shared)
negotiation_module (shared)
setenvif_module (shared)
ssl_module (shared)
suexec_module (shared)
userdir_module (shared)
php5_module (shared)
reqtimeout_module (shared)
rewrite_module (shared)
authn_default_module (shared)
dav_module (shared)
dav_fs_module (shared)
headers_module (shared)
info_module (shared)
status_module (shared)
Syntax OK
Apache:
Cytuj
No update candidate for 'apache2-2.2.12-1.50.1.x86_64'. The highest available version is already installed.
W crobtabie nie mam żadnych informacji aby system robił coś w godzinach pracy.
Nie wiem jakie jeszcze informacje będą potrzebne ale ewentualnie coś jeszcze mogę dodać:
Na pewno pewnie logi z error.log się przydadzą. Końcówka wygląda tak:
[Thu Nov 20 14:30:02 2014] [notice] Graceful restart requested, doing restart
[Thu Nov 20 14:30:02 2014] [notice] seg fault or similar nasty error detected in the parent process
a początek
[Thu Nov 20 14:31:17 2014] [warn] pid file /var/run/httpd2.pid overwritten -- Unclean shutdown of previous Apache run?
[Thu Nov 20 14:31:17 2014] [notice] Apache/2.2.12 (Linux/SUSE) mod_ssl/2.2.12 OpenSSL/0.9.8j-fips PHP/5.3.17 DAV/2 configured -- resuming normal operations

Z góry dzięki za pomoc.

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3070
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
Spotowanie Apacha o godzinie 14:30
« Odpowiedź #1 dnia: 2014-11-24, 00:47:25 »
Masz "segmentation fault" w PHP.

1. SegFault jest spowodowany albo wadliwym sprzętem (procesor albo pamięć) albo błędem w programie. To pierwsze raczej nie objawia się o stałej godzinie (chyba, że o 14:30 włącza się u was jakiś jebitny silnik i jest skok napięcia przepuszczany przez zasilacz). Drugie widzę tylko w ten sposób, że coś cyklicznie odpytuje serwis (pośrednio PHP) i o 14:30 pojawia się zapytanie, które wywala serwer. Jest szansa, że w logu Apache będzie zapytanie wywołujące awarię.

* Masz włączone strasznie dużo modułów Apache. Wszystkich potrzebujesz?
* Czy serwer jest widoczny "ze świata"? (vide wkurzony były pracownik)
* Do czasu namierzenia błędu spróbuj odpalić PHP przez FastCGI. Wtedy pad PHP nie kładzie Apache'a a ty masz czas na znalezienie właściwej przyczyny,
* Daj więcej linijek z error.log przed błędem (tak z 1 minutę)
* Daj ogon access.log przed błędem (też tak z 1 minutę). Możesz wyciąć dane czułe (adresy, nazwy userów, loginy, itp).
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

graby0

  • Gość
Spotowanie Apacha o godzinie 14:30
« Odpowiedź #2 dnia: 2014-11-24, 08:07:08 »
Cytat: pkraszewski
Masz "segmentation fault" w PHP.

1. SegFault jest spowodowany albo wadliwym sprzętem (procesor albo pamięć) albo błędem w programie. To pierwsze raczej nie objawia się o stałej godzinie (chyba, że o 14:30 włącza się u was jakiś jebitny silnik i jest skok napięcia przepuszczany przez zasilacz). Drugie widzę tylko w ten sposób, że coś cyklicznie odpytuje serwis (pośrednio PHP) i o 14:30 pojawia się zapytanie, które wywala serwer. Jest szansa, że w logu Apache będzie zapytanie wywołujące awarię.
Około godziny 14:20 pojawia mi się jeszcze jakiś proces mandb chyba. Dziś zobaczę co to jest bo zostawił to mój poprzednik to zostawił.
Cytat: pkraszewski
* Masz włączone strasznie dużo modułów Apache. Wszystkich potrzebujesz?
No niestety tak, w dodatku jeszcze paru brakuje ale co zrobić.
Cytat: pkraszewski
* Czy serwer jest widoczny "ze świata"? (vide wkurzony były pracownik)
Tak, ale tylko po zalogowaniu do FortiClienta. Praktycznie nikt nie ma dostępu z zewnątrz. Do zalogowania się jeszcze potrzeba przenośnego tokena.
Cytat: pkraszewski
* Do czasu namierzenia błędu spróbuj odpalić PHP przez FastCGI. Wtedy pad PHP nie kładzie Apache'a a ty masz czas na znalezienie właściwej przyczyny
Ok, dziś zobacze co to za programik.
Cytat: pkraszewski
* Daj więcej linijek z error.log przed błędem (tak z 1 minutę)
Cytuj
[Thu Nov 20 14:25:01 2014] [notice] child pid 8820 exit signal Segmentation fault (11)
[Thu Nov 20 14:25:02 2014] [notice] child pid 25441 exit signal Segmentation fault (11)
[Thu Nov 20 14:25:03 2014] [notice] child pid 14328 exit signal Segmentation fault (11)
[Thu Nov 20 14:25:04 2014] [notice] child pid 18999 exit signal Segmentation fault (11)
[Thu Nov 20 14:25:05 2014] [notice] child pid 24777 exit signal Segmentation fault (11)
[Thu Nov 20 14:25:26 2014] [error] [client 10.1.2.192] PHP Notice:  Undefined index: 1960,14.doc in blad_naszej_aplikacji
[Thu Nov 20 14:26:23 2014] [notice] child pid 13583 exit signal Segmentation fault (11)
[Thu Nov 20 14:26:24 2014] [notice] child pid 5704 exit signal Segmentation fault (11)
[Thu Nov 20 14:26:24 2014] [error] [client 10.1.1.141] PHP Notice:  Undefined index: meta in blad_naszej_aplikacji
[Thu Nov 20 14:26:33 2014] [error] [client 10.1.10.4] PHP Notice:  Undefined index: projekt in blad_naszej_aplikacji
[Thu Nov 20 14:26:38 2014] [error] [client 10.1.2.192] PHP Notice:  Undefined index: 1935,14.doc in blad_naszej_aplikacji
[Thu Nov 20 14:26:54 2014] [error] [client 10.1.10.4] PHP Notice:  Undefined index: projekt in blad_naszej_aplikacji
[Thu Nov 20 14:27:48 2014] [error] [client 10.1.12.4] request failed: error reading the headers
[Thu Nov 20 14:28:57 2014] [error] [client 10.1.1.174] PHP Notice:  Undefined index: projekt in blad_naszej_aplikacji
[Thu Nov 20 14:29:17 2014] [error] [client 10.1.1.174] PHP Notice:  Undefined index: projekt in blad_naszej_aplikacji
[Thu Nov 20 14:29:18 2014] [error] [client 10.1.12.4] request failed: error reading the headers
[Thu Nov 20 14:29:48 2014] [error] [client 10.1.2.192] PHP Notice:  Undefined index: 1810,14.doc in blad_naszej_aplikacji
[Thu Nov 20 14:29:50 2014] [notice] child pid 9758 exit signal Segmentation fault (11)
[Thu Nov 20 14:29:51 2014] [notice] child pid 8093 exit signal Segmentation fault (11)
[Thu Nov 20 14:30:02 2014] [notice] Graceful restart requested, doing restart
[Thu Nov 20 14:30:02 2014] [notice] seg fault or similar nasty error detected in the parent process
Cytat: pkraszewski
* Daj ogon access.log przed błędem (też tak z 1 minutę). Możesz wyciąć dane czułe (adresy, nazwy userów, loginy, itp).
Cytuj
W access.logu jest kupę odnośników do naszej aplikacji. Niestety ale tego nie mogę podać. Po przefiltrowaniu mamy coś takiego:
10.1.1.173 - - [20/Nov/2014:14:27:26 +0100] "GET /favicon.ico HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0"
::1 - - [20/Nov/2014:14:29:49 +0100] "OPTIONS * HTTP/1.0" 200 - "-" "Apache/2.2.12 (Linux/SUSE) (internal dummy connection)"
::1 - - [20/Nov/2014:14:29:50 +0100] "OPTIONS * HTTP/1.0" 200 - "-" "Apache/2.2.12 (Linux/SUSE) (internal dummy connection)"
::1 - - [20/Nov/2014:14:30:02 +0100] "OPTIONS * HTTP/1.0" 200 - "-" "Apache/2.2.12 (Linux/SUSE) (internal dummy connection)"
Dzięki za pomoc pkraszewski.

płona

  • Gość
Spotowanie Apacha o godzinie 14:30
« Odpowiedź #3 dnia: 2014-11-24, 10:35:54 »
Ten "jebnięty silnik", o którym pisał pkraszewski, to bym na Twoim miejscu sprawdził. Kilka lat temu walczyłem z takim problemem ładnych parę dni - przechodziło nawet przez UPS-a (miałem wtedy back-a, a nie smart-a)