Die Apache Webserver Version 2.4.41 hat einen defekten PIPE Support, was die Ausführung von CGI Scripten wie PHP Prozessen behindert. Abhilfe schafft nur ein Downgrade auf die vorherige Version.
Voraussetzungen für den Fehler
Als Voraussetzungen für den Fehler braucht man lange Ausgaben und die Ausführung von PHP als CGI, aber das ist natürlich nicht auf PHP begrenzt, es darf auf ein eigenes C Exe oder Perl sein. Bei uns war es ein PDF erzeugendes Script.
- httpd 2.4.41
- Das Script wird per CGI ausgeführt
- Das Script erzeugt lange Ausgaben von ~500kb
Die Symptome
Die Symptome an denen Ihr erkennen könnt, daß Ihr betroffen seid:
- Der Aufruf eines PHP Scripts per Browser timed aus.
- es stappeln sich die PHP Prozesse auf dem Server
- ein „strace -f -p ..hier_php_pid_angeben..“ zeigt nur eine Zeile an:
… write( ………………….. ) = xXxXxx , wobei die Xxx eine 6-x stellige Anzahl haben wird - kurze Ausgaben, wie bei WordPresswebseiten üblich, werden normal abgearbeitet
Die Lösung
Für Fedora 29 lautet die Lösung einfach Downgraden:
dnf -y downgrade https://kojipkgs.fedoraproject.org//packages/httpd/2.4.39/3.fc29/x86_64/httpd-2.4.39-3.fc29.x86_64.rpm https://kojipkgs.fedoraproject.org//packages/httpd/2.4.39/3.fc29/x86_64/mod_ssl-2.4.39-3.fc29.x86_64.rpm https://kojipkgs.fedoraproject.org//packages/httpd/2.4.39/3.fc29/x86_64/httpd-tools-2.4.39-3.fc29.x86_64.rpm https://kojipkgs.fedoraproject.org//packages/httpd/2.4.39/3.fc29/noarch/httpd-filesystem-2.4.39-3.fc29.noarch.rpm
systemctl restart httpd
Das war es dann auch schon. GGf. müßt Ihr noch liegen gebliebene Prozesse killen, aber die sollten beim httpd restart eigentlich von alleine terminieren, weil die PIPE endlich beendet wird.
Bugreport an Fedora ist raus, hat aber unverständlicherweise noch keine Reaktion hervorgerufen.