[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Korrupte Files vom Apachen bei Kernel 4.9.0-0.bpo.3-amd64



Martin Steigerwald <martin@lichtvoll.de> (Mi 28 Jun 2017 21:14:45 CEST):
> Hallo Heiko.
> 
> Heiko Schlittermann - 28.06.17, 19:34:
> > große Hoffnung habe ich nicht… aber hier mal eine Beschreibung des
> > Symptoms, vielleicht hat jemand schon was ähnliches gesehen:
> 
> Bislang nicht.
> 
> Ich hab diesen Kernel auf verschiedenen Jessie-VMs und auch Workstations und 
> hab da noch keine Probleme gesehen. Allerdings hatten einige bis vor kurzem 
> noch die bpo.2-Variante.
> 
> > Mit wget hole ich von einem Apachen (lokaler Host) eine PNG-Datei.
> > Diese Datei unterscheidet sich anschließend vom Original. Das ist
> > reproduzierbar, mit großer Wahrscheinlichkeit. Manchmal funktioniert es
> > auch.
> […]
> > In einem kleinen primitiven C-Programm, welches open/mmap/writev macht
> > wie der Apache, gibt es auch (in diesem Fall leider) keine Probleme.
> 
> Irgendein Unterschied in der Strace-Ausgabe für das Test-Programm versus der 
> für Apache? Falls es genau das Gleiche macht, ist mir nicht schlüssig, warum 
> es dann plötzlich geht.

Strace auf mein eigenes Programm:

open("/var/www/hosts/…/Zitrone_Detailansicht.png", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0755, st_size=169065, ...}) = 0
mmap(NULL, 169065, PROT_READ, MAP_SHARED, 3, 0) = 0x7fd2b44ff000
writev(1, [{"HTTP/1.1 200 OK\r\nDate: Wed, 28 J"..., 333}, {"\211PNG\r\n\32\n\0\0\0\rIHDR\0\0\1^\0\0\1\316\10\6\0\0\0\320Ma"..., 169065}], 2) = 169398
exit_group(0)                           = ?

Strace auf den Apachen:
open("/var/www/osts/…/Zitrone_Detailansicht.png", O_RDONLY|O_CLOEXEC) = 40
mmap(NULL, 169065, PROT_READ, MAP_SHARED, 40, 0) = 0x7fa668a6d000
writev(20, [...], 2) = 169398
munmap(0x7fa668a6d000, 169065) = 0

Die Unterchiede in der Darstellung sollten sein, weil das strace beim
Apachen mit -s0 lief.  Andere Unterschiede sehe ich nicht.

Ein anderer Unterschied ist der verwendete Filedescriptor: wenn ich das
File öffne, bin ich erst bei 3, der Apache bereits bei 40. Und bei mir
geht die Ausgabe auf STDOUT, beim Apachen auf fd 20 (was die
Netzwerkverbindung sein dürfte.)

Mir fällt gerade auf, vielleicht können wir das strace beim Apachen
überreden, den kompletten Buffer mit zu loggen.

Mysterios ist das ganze schon.

-- 
Heiko

Attachment: signature.asc
Description: PGP signature


Reply to: