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

Bug#639825: Apache2 seek broken

My previous reply (including the strace info) seems to have been lost,
so I have trimmed the strace output some more, hoping that it will get
through this time.

2011/8/30 Stefan Fritsch <sf@sfritsch.de>:
> On Tuesday 30 August 2011, Takis Issaris wrote:
>> Package: apache2.2-common
>> Version: 2.2.9-10+lenny10
>> Yesterday evenings update broke our Apache server setup, which is
>> serving video files. Our application uses partial GET's (Range:
>> byte=...) to implement seeking in the video. Seeking stopped
>> working this morning, I haven't figured out yet what exactly is
>> going wrong, but reverting to 2.2.9-10+lenny9 fixed the issue for
>> me.
>> The patch fixing CVE-2011-3192 involves ranges, which gave me the
>> impression that this might have caused our seeking issues:
> Yes, that seems very likely.
> What would be most interesting to me is the complete Range header your
> application sends to the server when seeking. Also, the HTTP status
> code returned for the requests both with 2.2.9-10+lenny9 and
> 2.2.9-10+lenny10 (probably either 200 or 206). Are the video files
> static files or are they generated by some application?

This is a part of the strace:
sendto(37, "GET /takis/ffmpeg-ultrafast-s3840x2160-1024_0-4_0.ts
HTTP/1.1\r\nUser-Agent: Lavf53.9.0\r\nAccept: */*\r\nRange:
bytes=0-\r\nConnection: close\r\nHost:
somehost.edm.uhasselt.be\r\n\r\n", 216, 0, NULL, 0) = 216
recvfrom(37, "HTTP/1.1 200 OK\r\nDate: Tue, 30 Aug 2011 09:38:48
GMT\r\nServer: Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny13 with
Suhosin-Patch\r\nLast-Modified: Wed, 01 Jun 2011 12:12:27 GMT\r\nETag:
bytes\r\nContent-Length: 5243132\r\nConnection: close\r\nContent-Type:
text/texmacs\r\n\r\nG...............H.264/MPEG-4 AVC codec - Copyle",
1024, 0, NULL, NULL) = 1024

This is followed by a lot (2842) of recvfrom/poll pairs, each recvfrom
actually receiving several kilobytes of data.

Then the log shows these syscalls happening over and over again and it
doesn't stop until I kill the client.
poll([{fd=37, events=POLLIN}], 1, 100)  = 1 ([{fd=37, revents=POLLIN}])
recvfrom(37, "", 32516, 0, NULL, NULL)  = 0

The 2.2.9-10+lenny9 seems to return 206 while the 2.2.9-10+lenny10 returns 200:
recvfrom(49, "HTTP/1.1 206 Partial Content\r\nDate: Wed, 31 Aug 2011
14:00:26 GMT\r\nServer: Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny13 with
Suhosin-Patch\r\nLast-Modified: Tue, 30 Aug 2011 15:57:18 GMT\r\nETag:
bytes\r\nContent-Length: 14993762\r\nContent-Range: bytes
176832-15170593/15170594\r\nConnection: close\r\nContent-Type:
text/plain\r\\n\r\n2\260.........;BS", 1024, 0, NULL, NULL) = 1024

All video files are all static.

> Thanks for your help.
Glad to help!

> Cheers,
> Stefan

With friendly regards,

Reply to: