[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



Heiko Schlittermann - 28.06.17, 21:50:
> Martin Steigerwald <martin@lichtvoll.de> (Mi 28 Jun 2017 21:14:45 CEST): 
> > 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.

Falls das mit strace nicht geht, wäre eine Möglichkeit auch sysdig. Das 
kompiliert mit sysdig-dkms aber auch ein eigenes Kernel-Modul durch und ich 
würde es nur einsetzen, wenn ich anders nicht weiterkomme.

Performance Events / ftrace usw. könnten ähnliche Funktionalität bieten, aber 
möglicherweise nicht so leicht zugänglich. Das gefiel mir halt mit sysdig – es 
ist fast erschreckend, wie einfach ich da in meinem System alles beobachten 
kann.

Ich hab das heute im Performance-Kurs nicht hinbekommen, aber es ist 
prinzipiell möglich mit csysdig einfach Verbindungen im laufenden System 
mitsamt der Daten, die über die Verbindung gehen, zu beobachten. Da gibts auf 
deren Webseite einen Verweis auf ein Youtube-Video, denke ich.

> Mysterios ist das ganze schon.

Das sicherlich. Nach Hardware-Problemen hört sich das alles aber an sich nicht 
an. Bereits ausschließen würde ich die aber nicht.

Adios,
-- 
Martin


Reply to: