Return-Path: X-Original-To: apmail-apr-bugs-archive@www.apache.org Delivered-To: apmail-apr-bugs-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 831A5178C9 for ; Wed, 18 Feb 2015 07:24:58 +0000 (UTC) Received: (qmail 48265 invoked by uid 500); 18 Feb 2015 07:24:58 -0000 Delivered-To: apmail-apr-bugs-archive@apr.apache.org Received: (qmail 48233 invoked by uid 500); 18 Feb 2015 07:24:58 -0000 Mailing-List: contact bugs-help@apr.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@apr.apache.org Delivered-To: mailing list bugs@apr.apache.org Received: (qmail 48223 invoked by uid 99); 18 Feb 2015 07:24:58 -0000 Received: from mail-relay.apache.org (HELO mail-relay.apache.org) (140.211.11.15) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 18 Feb 2015 07:24:58 +0000 Received: from asf-bz1-us-mid.apache.org (nat1-us-mid.apache.org [23.253.172.122]) by mail-relay.apache.org (ASF Mail Server at mail-relay.apache.org) with ESMTPS id F12C81A0292 for ; Wed, 18 Feb 2015 07:24:57 +0000 (UTC) Received: by asf-bz1-us-mid.apache.org (ASF Mail Server at asf-bz1-us-mid.apache.org, from userid 33) id 105DD617CF; Wed, 18 Feb 2015 07:24:57 +0000 (UTC) From: bugzilla@apache.org To: bugs@apr.apache.org Subject: [Bug 57589] New: "If-Modified-Since" header detected in HTTP unconditional GET request Date: Wed, 18 Feb 2015 07:24:56 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: APR X-Bugzilla-Component: APR X-Bugzilla-Version: HEAD X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: bala@adobe.com X-Bugzilla-Status: NEW X-Bugzilla-Priority: P5 X-Bugzilla-Assigned-To: bugs@apr.apache.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version rep_platform bug_status bug_severity priority component assigned_to reporter Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bz.apache.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 https://bz.apache.org/bugzilla/show_bug.cgi?id=3D57589 Bug ID: 57589 Summary: "If-Modified-Since" header detected in HTTP unconditional GET request Product: APR Version: HEAD Hardware: PC Status: NEW Severity: normal Priority: P5 Component: APR Assignee: bugs@apr.apache.org Reporter: bala@adobe.com Our product is Adobe Media Server (AMS). It uses the Apache web server for streaming multimedia over HTTP. There are 4 Apache httpd modules developed = by us that are included in our Apache build. One of these modules =E2=80=93 mo= d_f4fhttp.so is concerned with live streaming of multimedia using the HDS standard. Issue: For some unconditional GET requests, querying the Apache APR API apr_table_get for =E2=80=9CIf-Modified-Since=E2=80=9D header field returns = a valid value. This issue is observed only in the release build of Apache web server. The setup consists of Flash Media Live Encoder (FMLE) as the live video publish= er and 3 video subscribers (OSMF Player 2.0 instances embedded in web browsers= ). With Apache httpd release build, the issue crops up within 10 minutes of li= ve streaming. When the debug build is used, the issue does not appear even aft= er 2 hours of streaming. The mod_f4fhttp.so module uses the Apache API function apr_table_get to que= ry the request object for the presence of =E2=80=9CIf-Modified-Since=E2=80=9D = header field. The problem arises when this API returns a valid non-null value for the =E2=80=9CIf-Modified-Since=E2=80=9D header field even when it is not presen= t (i.e. it=E2=80=99s an unconditional GET) in the HTTP request. This can be confirmed by the logs (attached) of packet capture tools. This behavior causes the mod_f4fhttp.so module to think that the HTTP reque= st is a conditional one and so it returns a 304 response code. This is a probl= em for the client since it had generated an unconditional GET request. This (querying the =E2=80=9CIf-Modified-Since=E2=80=9D header) was done at = the entry point of the module mod_f4fhttp.so, so this eliminates the possibility of the module itself inserting this field in the request. It does not matter whether the debug or release version of mod_f4fhttp.so module is used =E2=80=93 regardless of that, the issue can be seen in the A= pache httpd release build only. The issue cannot be reproduced in the debug build of Ap= ache httpd. Three different network packet capture tools were used =E2=80=93 Wireshark,= Windump and HTTPDebugger. There are no differences between their capture logs i.e. 304 responses for unconditional GET requests can be seen in all of them. The lo= gs are attached here. Steps to reproduce the issue: 1. Install Adobe Media Player (AMS) 5.0.7. During installation, when it asks for a serial number, leave it blank =E2=80=93 this will install the =E2=80= =9CStarter Edition=E2=80=9D. Leave all other options unchanged during installation. The limitation of =E2=80=9CStarter Edition=E2=80=9D is that it allows 10 minutes of streaming= , which is enough to reproduce this issue.=20 2. Copy crossdomain.xml to =E2=80=9Cwebroot=E2=80=9D folder in the AMS inst= allation. 3. Install Flash Media Live Encoder (FMLE) 3.2. 4. Launch FMLE.=20 o Ensure the following settings in the presets Video: Format: H.264 Profile: Main Level: 3.1 Keyframe Frequency: 4 seconds Frame Rate: 30.00 fps Input Size: 320x240 Bit Rate: 200 Kbps Output Size: 320x240 Audio: Format: Mp3 Channels: Stereo Sample Rate: 44100 Hz Bit Rate: 96 Kbps o Set the following fields in the Output box =EF=82=A7 Check =E2=80=9CStream to Flash Media Player=E2=80=9D =EF=82=A7 FMS URL: rtmp://localhost/livepkgr =EF=82=A7 Stream: livestream?adbe-live-event=3Dliveevent o Click on Connect. [The button=E2=80=99s caption should now change to =E2=80=9CDisconnect=E2=80=9D]. o Click on Start (the green button at the bottom of the window). This w= ill start the publishing stream from FMLE to AMS. 5. Launch OSMF Player instances. The player has to be hosted on an http ser= ver. A second machine can be used for this. In a web browser, open the OSMF Play= er web page. E.g. http://localhost/OSMFP/OSMFPlayer.html. The attached OSMFPla= yer build can be used. Two more instances of the player can launched =E2=80=93 = either in the same browser or different ones. If the player launches successfully, a control console will be visible in a smaller window on the web page. Click = on the =E2=80=9CEject=E2=80=9D button to open the =E2=80=9CMedia URL=E2=80=9D = textbox. Enter the URL of the live stream manifest in this box =E2=80=93 http:///hds-live/livepkgr/_definst_/liveevent/livestream.f4m - and press Enter. The live stream should now start playing in the window. Notes =E2=80=A2 When caching is disabled (by commenting out "CacheEnable disk /hd= s-live" in httpd.conf), this issue does not arise.=20 =E2=80=A2 The same issue is also confirmed to be present in Apache httpd v2= .2.21 Download links: Adobe Media Server (AMS) - http://www.adobe.com/in/products/adobe-media-server-standard.html Flash Media Live Encode (FMLE) - http://www.adobe.com/in/products/flash-media-encoder.html OSMF Player 2.0 source - http://sourceforge.net/projects/osmf.adobe/files/OSMF%202.0%20Release%20%28= final%20source%2C%20ASDocs%2C%20pdf%20guides%20and%20release%20notes%29/ Attachments =E2=80=A2 Packet capture logs o Wireshark =E2=80=93 =E2=80=9Cwireshark-s.pcapng=E2=80=9D. Frame 297 i= s the HTTP request for a video fragment. Its response is in Frame 298. o Windump =E2=80=93 =E2=80=9Cwindump.log=E2=80=9D. Check the end of the= log for the 304 response. o HTTPDebugger =E2=80=93 =E2=80=9Chttp debugger - headers.txt=E2=80=9D =E2=80=A2 crossdomain.xml =E2=80=A2 OSMF Player --=20 You are receiving this mail because: You are the assignee for the bug.= --------------------------------------------------------------------- To unsubscribe, e-mail: bugs-unsubscribe@apr.apache.org For additional commands, e-mail: bugs-help@apr.apache.org