2012-10-18 17 views
5

Ok, quindi avere un sistema interno abbastanza grande. Abbiamo un ospite gentile che generalmente lavora con noi mantenendo le cose funzionanti se qualcosa va storto, o almeno ci indirizza nella giusta direzione.Rilevamento di un errore di segmentazione da 11 a codice base PHP largo

Qualche tempo fa abbiamo dovuto prendere una copia del codice e ospitarla su un server dedicato esterno dei client, ospitato con Rackspace. Considerando tutto stava funzionando benissimo per un certo numero di mesi, tutto ad un tratto il server mantenuto gettando sibilante-fits e difetti di segmentazione ad esempio

[Avviso] bambino pid 8628 difetto del segnale di uscita Segmentation (11)

Anche se non è stato modificato alcun codice, gli host hanno detto che probabilmente è un problema di PHP e gli sviluppatori (noi) dovrebbero esaminarlo. Non ho nemmeno visto un problema, solo che in certi momenti in cui i registri Apache ruotano (a tarda notte) questo sta causando la caduta.

Li ho abilitati per abilitare i core dump e sono armati con un gruppo di essi e Fixing Apache Segmentation Faults Caused by PHP, ma lo spazio su racks sembra aver spostato tutte le directory di origine di php e apache a chissà dove, non riesco a trovare .gdbinit ovunque su il server utilizzando 'trovare', e tutto quello che posso uscire da gdb è

Program terminated with signal 11, Segmentation fault. 
#0 0x00002b8d6fc36c60 in ??() 

... che non poteva essere meno utile se provato !!!

Qualche idea su dove iniziare a rintracciare questo presunto problema nel mio codice?

+1

Abbiamo avuto lo stesso problema. Apache tenta di eseguire un riavvio regolare durante la rotazione dei registri. Non sempre torna pulito. Ho installato cronolog in modo tale che Apache non debba arrestarsi solo per ruotare i log. Questo potrebbe essere un problema PHP, ma funziona fino a quando Apache non si riavvia ... quindi ... – tubaguy50035

+1

Dai un'occhiata a questa risposta: http://stackoverflow.com/questions/7745578/notice-child-pid-3580- exit-signal-segmentation-fault-11-in-apache-error-l – Udan

+0

@ tubaguy50035 ... soooo il suo problema di rackspaces intendi? – Horse

risposta

1

Si può iniziare aggiungendo PID ai log di apache e vedere quale muore dopo cosa ... Vedrete se è la stessa richiesta atleast.

E forse è possibile visualizzare ciò che è stato aggiornato appena prima dell'arresto anomalo e forse è possibile eseguire il rollback alla configurazione precedente se alcuni moduli sono aggiornati e non possono essere utilizzati senza di essi.

+0

Bene, ho notato che hanno aggiornato PHP circa una settimana prima che iniziassimo a notare problemi, cosa che ho fatto notare loro! Ma hanno appena risposto con "Un aggiornamento PHP che fa sì che Segfaults sia più immediato di una settimana dopo il fatto. Purtroppo non c'è modo di confermare se non si dispone di un caso di test in grado di replicare il problema. " :(sospiro – Horse

1

Se si conosce come eseguire il debug dei core dell'applicazione mediante GDB, here sono gli RPM di origine e gli RPM.

Vorrei anche suggerire di eseguire "stringhe" sul core dell'applicazione. Questo non ti darà il problema esatto, ma in molti casi dà qualcosa di utile.

HTH

Problemi correlati