httpd-users-de mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Peter Pöml <Pe...@poeml.de>
Subject Re: Fehlerhafte Dateiübertragung
Date Thu, 15 Jul 2010 16:11:54 GMT
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 users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


Mime
View raw message