Closed Bug 329681 Opened 18 years ago Closed 3 years ago

multipart/x-mixed-replace with 1ms intervals hangs Firefox

Categories

(Core :: DOM: Core & HTML, defect, P3)

x86
Windows XP
defect

Tracking

()

RESOLVED WORKSFORME
mozilla1.9alpha1

People

(Reporter: lars, Unassigned)

References

()

Details

(Keywords: hang, testcase)

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1

When loading a multipart/x-mixed-replace server method with quick refresh firefox stops responding.

Reproducible: Always

Steps to Reproduce:
1. Have firefox connect to a server with output similar to:
[HTTP HEADER]
Content-type: multipart/x-mixed-replace;boundary=438e635eab93d28d03183b7e8368da01

--438e635eab93d28d03183b7e8368da01
Content-type: text/plain

1 [WAIT 1 MS]

--438e635eab93d28d03183b7e8368da01
Content-type: text/plain 

2 [WAIT 1 MS]

--438e635eab93d28d03183b7e8368da01
Content-type: text/plain

3 [WAIT 1 MS]

...

Actual Results:  
Firefox does not respond properly and even after pressing the cancel button does not come back to normal state.

Expected Results:  
Firefox would respond again.

Php code to reproduce:
<?php

$random = md5 ( rand () . microtime () );


header( 'Content-type: multipart/x-mixed-replace;boundary=' . $random );

echo "\n--$random\n";

$i = 1;



while ( $i ++ ){
     usleep(1);
     echo "Content-type: text/plain\n\n";
     echo "$i";
     echo "--$random\n";
     do_output ();
  }

//  echo "Content-type: text/plain\n\n";
//  echo "The end\n";
//  echo "--$random--\n";


function do_output ()
{
	flush();
	ob_flush();
}

?>
Testcase from reporter available at: http://wargers.org/mozilla/329681_multi_replaced.php
Indeed, the testcase freezes Mozilla, this isn't the case with IE6.
Component: General → Networking: HTTP
Keywords: testcase
Product: Firefox → Core
QA Contact: general → networking.http
Version: unspecified → Trunk
Martijn, keep in mind that IE6 does not understand the multipart/x-mixed-replace mime type! ;)

-> me
Assignee: nobody → darin
Severity: normal → critical
Status: UNCONFIRMED → NEW
Ever confirmed: true
Keywords: crash
Priority: -- → P1
Target Milestone: --- → mozilla1.9alpha
Status: NEW → ASSIGNED
I can reproduce this using FF 1.5.0.1 under Windows XP.  Investigating...
I think the problem here is really just that the browser keeps rendering each document in the multipart payloads.  It never stops to "breathe" (to give the UI a chance to refresh).  I suspect that this happens in large part because of the DocShell's code that suppresses UI event prioritization during page load:
http://lxr.mozilla.org/mozilla/search?string=PL_FavorPerformanceHint

As a result, UI events starve.  My work on the Thread Manager should solve this class of bugs and others like it.
Depends on: nsIThreadManager
Priority: P1 → P2
I still get a freeze with the testcase, with the 2006-05-11 build (after the fix from bug 326273).
(In reply to comment #5)
> I still get a freeze with the testcase, with the 2006-05-11 build (after the
> fix from bug 326273).
> 

Confirmed
After testing with v2RC2 the problem has changed. Now the functionality (Count up) is actually given, although numbers are obviously omitted in the test case.

It is still impossible to cancel the loading process, with the browser rendered unresponsive to any user interaction.
-> reassign to default owner
Assignee: darin.moz → nobody
Status: ASSIGNED → NEW
Keywords: crashhang
Summary: multipart/x-mixed-replace with 1ms intervals crashes firefox → multipart/x-mixed-replace with 1ms intervals hangs Firefox
Component: Networking: HTTP → DOM
Moving to p3 because no activity for at least 1 year(s).
See https://github.com/mozilla/bug-handling/blob/master/policy/triage-bugzilla.md#how-do-you-triage for more information
Priority: P2 → P3
Component: DOM → DOM: Core & HTML

Following the reporter's steps I am able to confirm that the issues doesn't happen anymore on Windows 10 on any of the current versions of Firefox Nightly 87.0a1 (2021-02-16), beta 86.0 and release 85.0.2. The example url test case doesn't crash Firefox anymore.

Closing this issue as Resolved > Worksforme.
Feel free to re-open or file a new bug if this issue reoccurs again.

Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.