Apache si arresta involontariamente

Devo dire che non sono il ragazzo che ha installato il server, ma i poveri si impegnano a scoprire cosa sta succedendo per il momento. Ho solo una conoscenza approssimativa di Apache e Linux, perciò vi prego di portrmi con me …

Il problema

Un nostro server Apache si spegne (per lo più durante la notte) e non riesce a recuperare e riprenderà nuovamente, senza che qualcuno lo indichi.

Da ciò che posso raccogliere, la cosa interessante è la seguente row nei log degli errori apache;

[Wed Apr 15 03:43:02.114879 2015] [mpm_prefork:notice] [pid 25778] AH00171: Graceful restart requested, doing restart 

Dopo di che viene una stacktrace molto lunga, ecco le prime righe:

 *** Error in `/usr/sbin/httpd': free(): invalid pointer: 0x00007f581d5c13c0 *** ======= Backtrace: ========= /lib64/libc.so.6(+0x7d19d)[0x7f583b69519d] /etc/httpd/modules/libphp5.so(php_module_shutdown+0x2b)[0x7f58301d255b] /etc/httpd/modules/libphp5.so(php_module_shutdown_wrapper+0x9)[0x7f58301d2619] [...] 

La backtrace continua per un po ', ma la cosa interessante è che tra l'altro l' Error in /usr/sbin/httpd [...] ripete 5 volte, finché l'ultimo messaggio

 [Wed Apr 15 03:43:02.269626 2015] [core:notice] [pid 25778] AH00060: seg fault or similar nasty error detected in the parent process 

Il prossimo messaggio è il giorno successivo che mi avvia il server di nuovo;

 [Wed Apr 15 08:14:46.200884 2015] [core:notice] [pid 30326] SELinux policy enabled; httpd running as context system_u:system_r:httpd_t:s0 [Wed Apr 15 08:14:46.215410 2015] [suexec:notice] [pid 30326] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec) [Wed Apr 15 08:14:46.235346 2015] [auth_digest:notice] [pid 30326] AH01757: generating secret for digest authentication ... [Wed Apr 15 08:14:46.236045 2015] [lbmethod_heartbeat:notice] [pid 30326] AH02282: No slotmem from mod_heartmonitor [Wed Apr 15 08:14:46.280992 2015] [core:warn] [pid 30326] AH00098: pid file /run/httpd/httpd.pid overwritten -- Unclean shutdown of previous Apache run? [Wed Apr 15 08:14:46.284919 2015] [mpm_prefork:notice] [pid 30326] AH00163: Apache/2.4.6 (CentOS) PHP/5.4.16 configured -- resuming normal operations [Wed Apr 15 08:14:46.284939 2015] [core:notice] [pid 30326] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND' 

Pensieri

Come lo vedo, il module prefork richiede in qualche modo che il process apache (o uno di essi?) Si chiude. Questo non riesce, e in cambio tutte le cose si bloccano solo orribilmente.

Le domande

Innanzitutto: è la mia analisi – che il problema che interrompe il server è il module prefork – corret?

Dovrei solo distriggersre il module prefork? Non vedo come posso eseguire il debug / aiuto di un errore di memory all'interno del software stesso.

Quali implicazioni ha quando disattivo questo module?

Informazioni sulla versione

 Linux version 3.10.0-123.13.2.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.2 20140120 (Red Hat 4.8.2-16) (GCC) ) Server version: Apache/2.4.6 (CentOS) Server built: Jan 12 2015 13:22:31 Server's Module Magic Number: 20120211:23 Server loaded: APR 1.4.8, APR-UTIL 1.5.2 Compiled using: APR 1.4.8, APR-UTIL 1.5.2 Architecture: 64-bit Server MPM: prefork threaded: no forked: yes (variable process count) Server compiled with.... -D APR_HAS_SENDFILE -D APR_HAS_MMAP -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled) -D APR_USE_SYSVSEM_SERIALIZE -D APR_USE_PTHREAD_SERIALIZE -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT -D APR_HAS_OTHER_CHILD -D AP_HAVE_RELIABLE_PIPED_LOGS -D DYNAMIC_MODULE_LIMIT=256 -D HTTPD_ROOT="/etc/httpd" -D SUEXEC_BIN="/usr/sbin/suexec" -D DEFAULT_PIDLOG="/run/httpd/httpd.pid" -D DEFAULT_SCOREBOARD="logs/apache_runtime_status" -D DEFAULT_ERRORLOG="logs/error_log" -D AP_TYPES_CONFIG_FILE="conf/mime.types" -D SERVER_CONFIG_FILE="conf/httpd.conf" 

Risposte ai commenti

cron

Non esiste nessun /etc/cron.d/dailyjobs , ma solo uno script 0hourly che esegue gli script orari 0anacron , 0yum-hourly.cron e dellrda.cron – Nessuno dei quali sembra fare nulla in relazione all'appache (IMHO)

/etc/logrotate.d/httpd

 /var/log/httpd/*log { missingok notifempty sharedscripts delaycompress postrotate /bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true endscript } 

Ricarica manuale

 /bin/systemctl reload httpd.service 

Porta il seguente risultato

 Job for httpd.service failed. See 'systemctl status httpd.service' and 'journalctl -xn' for details. 

E nel file error_log vengono visualizzati gli stessi messaggi come sopra.

Un systemctl status httpd.service rapido di systemctl status httpd.service rivela:

 httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled) Active: failed (Result: signal) since Fri 2015-04-17 12:26:36 CEST; 8s ago Process: 8828 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS) Process: 8826 ExecReload=/usr/sbin/httpd $OPTIONS -k graceful (code=exited, status=0/SUCCESS) Process: 8767 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=killed, signal=ABRT) Main PID: 8767 (code=killed, signal=ABRT) Status: "Total requests: 0; Current requests/sec: 0; Current traffic: 0 B/sec" 

apachectl -M

 Loaded Modules: core_module (static) so_module (static) http_module (static) access_compat_module (shared) actions_module (shared) alias_module (shared) allowmethods_module (shared) auth_basic_module (shared) auth_digest_module (shared) authn_anon_module (shared) authn_core_module (shared) authn_dbd_module (shared) authn_dbm_module (shared) authn_file_module (shared) authn_socache_module (shared) authz_core_module (shared) authz_dbd_module (shared) authz_dbm_module (shared) authz_groupfile_module (shared) authz_host_module (shared) authz_owner_module (shared) authz_user_module (shared) autoindex_module (shared) cache_module (shared) cache_disk_module (shared) data_module (shared) dbd_module (shared) deflate_module (shared) dir_module (shared) dumpio_module (shared) echo_module (shared) env_module (shared) expires_module (shared) ext_filter_module (shared) filter_module (shared) headers_module (shared) include_module (shared) info_module (shared) log_config_module (shared) logio_module (shared) mime_magic_module (shared) mime_module (shared) negotiation_module (shared) remoteip_module (shared) reqtimeout_module (shared) rewrite_module (shared) setenvif_module (shared) slotmem_plain_module (shared) slotmem_shm_module (shared) socache_dbm_module (shared) socache_memcache_module (shared) socache_shmcb_module (shared) status_module (shared) substitute_module (shared) suexec_module (shared) unique_id_module (shared) unixd_module (shared) userdir_module (shared) version_module (shared) vhost_alias_module (shared) dav_module (shared) dav_fs_module (shared) dav_lock_module (shared) lua_module (shared) mpm_prefork_module (shared) proxy_module (shared) lbmethod_bybusyness_module (shared) lbmethod_byrequests_module (shared) lbmethod_bytraffic_module (shared) lbmethod_heartbeat_module (shared) proxy_ajp_module (shared) proxy_balancer_module (shared) proxy_connect_module (shared) proxy_express_module (shared) proxy_fcgi_module (shared) proxy_fdpass_module (shared) proxy_ftp_module (shared) proxy_http_module (shared) proxy_scgi_module (shared) systemd_module (shared) cgi_module (shared) php5_module (shared) 

  • PHP-FPM e APC per hosting condiviso?
  • Apache "httpd", utilizzando tutti i miei server di memory
  • HTTPD ascolto in IPv6, secondo netstat, ma reachable in IPv4
  • differenza tra _default _: * e *: * in Context VirtualHost
  • Apache httpd permessi
  • Apache 1 definizione host virtuale ascolta su 2 ips - come?
  • Apache: Accesso negato a /
  • Apache httpd processi e PHP fuori memory
  • One Solution collect form web for “Apache si arresta involontariamente”

    La mia ipotesi era che hai colpito questo bug: http://bugs.centos.org/view.php?id=7669 , ma non vedo mod_gnutls nei moduli caricati. Tuttavia, a me sembra che tu abbia colpito qualche sorta di bug. Come posso vedere, non si utilizza l'ultima versione di httpd, quindi si dovrebbe prima tentare di aggiornare il pacchetto httpd:

     yum update 

    Riavvia nuovamente il tuo httpd, quindi provate se il problema di ricarica persiste. Se è ancora lì, suggerirei di aprire un rapporto di bug a CentOS per questo. Nel frattempo, per evitare il crollo nel mezzo della notte, suggerirei di modificare lo script logrotate da utilizzare

     /bin/systemctl restart httpd.service 

    invece di reload controparte fino a quando il problema è risolto.

    EDIT:

    Prima di aprire un report di bug a CentOS, è necessario assicurarsi di utilizzare solo pacchetti e moduli Apache standard di CentOS. Se si utilizzano moduli apache che sono compilati o installati da repository di terze parti, probabilmente non lo accettano.

    Per visualizzare tutti i pacchetti installati con il repo da cui provengono, è ansible utilizzare il command

     rpm -qa --qf '%{NAME} %{VENDOR}\n' 
    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.