HALLO,Mod_perl Segmentation fault
Ich bin ein Apache 2.2.3 auf einem Oracle64-Bit (Red Hat-Klon) ausgeführt wird, und ich bin eine Mauer mit einem Problem zu schlagen. Ich habe ein Programm, das MIME :: Lite verwendet, um Mail über sendmail zu senden (ich entschuldige mich, nicht sicher, welche Versionen von sendmail oder mod_perl ich ausführe, obwohl ich glaube, dass der sendmail-Teil irrelevant ist, wie Sie gleich sehen werden)
gelegentlich apache segfault (11), und tief in das MIME :: Lite-Modul zu graben, ich sehe es in der folgenden Zeile ist:
open SENDMAIL, "|$sendmailcmd" or Carp::croak "open |$sendmailcmd: $!\n"; (this is in MIME::Lite)
Nun würde man automatisch suspekt send~~POS=TRUNC, aber Wenn ich die gleiche Zeile verwendet habe, um/bin/cat (wie gezeigt) zu verwenden:
Apache noch segfaults.
ich eine strace an die Apache-Prozesse gebunden und sehen Sie die folgenden Schritte aus: (wenn es nicht abstürzt)
12907 write(2, "SENDMAIL send_by_sendmail 1\n", 28) = 28
12907 write(2, "SENDMAIL /usr/lib/sendmail -t -o"..., 40) = 40
12907 pipe([24, 26]) = 0
12907 pipe([28, 29]) = 0
12907 clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x2b4bcbbd75d0) = 13186
Beachten Sie die „SEND sent_by_sendmail“ sind meine Kommentare. Sie können klar sehen, Rohre öffnen. Wenn es zum Absturz kommt, sehen Sie folgendes:
10805 write(2, "SENDMAIL send_by_sendmail (for y"..., 40) = 40
10805 --- SIGSEGV (Segmentation fault) @ 0 (0) ---
Jetzt beachten Sie, dass es nie Rohre. Ich habe GDB versucht und es hat mir wirklich nichts gezeigt.
Schließlich schrieb ich ein einfaches Programm durch mod_perl und regelmäßigen cgi laufen:
print header();
print "test";
open SENDMAIL, "|/bin/cat" or Carp::croak "open |sendmailcmd: $!\n";
print SENDMAIL "foodaddy";
close SENDMAIL;
print "test done <br/>";
Unter mod_perl erfolgreich abgestürzt ist.
Meine Analyse sagt mir, dass es damit zu tun hat, ein Dateihandle zu öffnen, die Verrohrungsfunktion gibt entweder false oder ein beschädigtes Dateihandle zurück.
Ich erhöhte auch die Datei-Deskriptor-Grenze auf 2048, keine Würfel.
Hat jemand irgendwelche Gedanken, wo ich hinschauen sollte? Irgendwelche Gedanken?
Ich schätze die Hilfe