Hallo Ralph,
Am 04.07.2010 um 16:44 schrieb Ralph Ballier:
> Hallo ihr alle,
>
> ich betreibe schon seit einigen Jahren mehrere Server, auf denen der Apache
> problemlos läuft, aber vor zwei Wochen hat sich auf einem der Server mit
> apache 2.2.12 unter Linux (genau so wie mit Version 2.2.15) von heute auf
> morgen etwas ereignet, was für mich bisher völlig unerklärlich ist.
>
> Es passiert folgendes: Fordert ein Klient eine Datei an, so werden nach
> exakt 2^16=65536 korrekt übertragener Zeichen eine Vielzahl von
> ASCII-Nullen in den Datenfluss eingebaut. Dann geht die Datei normal weiter,
> bis dann wieder einige tausend ASCII-Nullen erscheinen. Aufgefallen ist es
> zunächst dadurch, dass PDF-Dateien nicht dargestellt werden konnten, dann
> auch Bilddateien nicht. Kürzere HTML-Seiten sind nicht betroffen.
>
> Ich habe diesen Sachverhalt getestet, indem ich eine Datei mit dem vi
> erzeugt habe, die nur die Ziffernfolge 01234567890123456789... enthielt
> (natürlich mit Zeilenstruktur). Nach "lynx localhost/datei.pdf" (.pds,
> damit lynx fragt, ob ein Download stattfinden soll) sieht die
> heruntergeladene Datei wie folgt aus: Von Zeile 1 bis Zeile 407 wie im
> Original, die Zeile 408 beginnt noch mit 012345678 und dann kommen
> vielleicht 20000 ASCII-Nullen (^@ im vi, \0 im od). Dann geht es regulär
> weiter bis zur Zeile 865, dann kommen wieder viele Nullen, dann geht es
> wieder regulär weiter, ab Zeile 2341 wieder Nullen usw. Interessant ist,
> dass sich die Nullen *dazwischen* schieben. Hört die Zahlenfolge also z.B.
> bei 7 auf, dann geht sie nach den Nullen bei 8 weiter.
>
> Lädt man die Datei mehrmals herunter, so hat sie stets eine andere Länge.
> Nur der Beginn des ersten Nullenblocks ist reproduzierbar.
>
> Da ich die Datei zu Testzwecken auf dem lokalen Rechner herunterlade, Server
> und Klient also derselbe Rechner sind, scheiden Probleme mit Netzwerkkarte,
> Router oder Switch aus.
>
> Und noch eine Beobachtung: Stelle ich den httpd in httpd.conf mit "Listen
> 81" auf Port 81 ein, so ist der Datenverkehr völlig problemlos. Die dann
> mit "lynx localhost:81/datei.pdf" heruntergeladene Datei ist völlig
> fehlerfrei.
>
> Ich habe schon mit chkrootkit und anderen Tools gesucht. chkproc meldet zwei
> Prozesse:
>
> $ ./chkproc -v
> PID 1033(/proc/1033): not in getpriority readdir output
> PID 1117(/proc/1117): not in getpriority readdir output
> You have 2 process hidden for readdir command
>
> aber weder unter /proc noch nach "ps ax" gibt es Prozesse mit den Nummern
> 1033 oder 1117.
>
> Die Datei httpd.conf habe ich schon auf das absolute Minimum reduziert (5
> Zeilen). Keine Veränderung.
>
> Hat jemand einen Hinweis?
>
> Ralph
Ich wuerde zwecks Eingrenzung des Fehlers zunaechst einmal ueberpruefen, ob die
Nullen auf jeden Fall vom Apache kommen. Dafuer wuerde ich strace verwenden,
mit einer genuegend grossen String Groesse (-s Option). Ich gehe davon aus,
dass sich das bestaetigt. Als naechstes wuerde ich mir Gedanken machen, warum
der Fehler nur in dem Setup auftritt, und nicht auf anderen Servern. Wuerde er
woanders auftreten, waere das wohl recht bekannt. Ich wuerde also schauen, ob
bei der Kompilation der Software Murks passiert sein koennte. Das kann im
Zweifelsfall auch einem "Vendor" (Linux-Distributor) passieren, insbesondere
wenn mit experimentellen Features hantiert wird.
Darueberhinaus wuerde ich an Stelle von lynx einen weiteren Client testen (curl
-sv oder sogar per Hand mit telnet), um das Problem genau nachzuvollziehen, das
von bestimmten Headern abhaengig sein kann, die der Client beim Request
mitsendet. Und ich wuerde ueberpruefen, dass sicher kein Proxy involviert ist,
der die Kommunikation "abfaengt".
Viel Glueck
Peter
--------------------------------------------------------------------------
Apache HTTP Server Mailing List "users-de"
unsubscribe-Anfragen an [email protected]
sonstige Anfragen an [email protected]
--------------------------------------------------------------------------