Closed Bug 1392580 Opened 4 years ago Closed 4 years ago

File Upload Regression in Firefox 55 (bisected to 2017-04-25)

Categories

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

55 Branch
defect
Not set
normal

Tracking

()

RESOLVED DUPLICATE of bug 1383518

People

(Reporter: steffen.weber, Unassigned)

Details

(Keywords: regression, site-compat)

Attachments

(1 file)

User Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36

Steps to reproduce:

Our users have reported problems with file uploads in our forum. The issue only exists in Firefox 55-57. It does not exist in Firefox 54- or in any other browser. I've created a reduced test-case to demonstrate the issue:

1. Open https://www.computerbase.de/firefox-upload-bug.php
2. Open the "Network" tab of the Developer Tools
3. Select a file and submit the form


Actual results:

The server responds with an error: "400 Bad Request". According to nginx, the "client prematurely closed stream":

2017/08/22 13:26:13 [info] 28904#0: *63488914 client prematurely closed stream: only 157 out of 1452 bytes of request body received, client: ::ffff:123.123.123.123, server: www.computerbase.de, request: "POST /firefox-upload-bug.php HTTP/2.0", host: "www.computerbase.de", referrer: "https://www.computerbase.de/firefox-upload-bug.php"


Expected results:

Firefox should not prematurely close the stream and the file upload should finish.

I know that this sounds like a server-side issue at first and maybe there is something special about our configuration that contributes to this issue. But this issue only exists in Firefox 55+, not in Firefox 54 and in no other browser. I therefore assume that our configuration may only be the trigger and the real issue is a bug in Firefox.

Using the "mozregression" tool, I've narrowed the issue to the following range:

10:22.04 INFO: Last good revision: c35f0ad34397990adec0612015eb1a2a566434da
10:22.04 INFO: First bad revision: cf6065f64f9a8aef42144e7938c9c1aec92d8677
10:22.04 INFO: Pushlog:
https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=c35f0ad34397990adec0612015eb1a2a566434da&tochange=cf6065f64f9a8aef42144e7938c9c1aec92d8677

And indeed, those commits seem to have touched code related to file uploads.

I'm not sure what could be special about our setup. We use nginx 1.12.1 with HTTPS and HTTP/2. Please just ask if you need more data.
Blocks: 1358115
Has Regression Range: --- → yes
Has STR: --- → yes
Component: Untriaged → DOM
Flags: needinfo?(amarchesini)
Product: Firefox → Core
See Also: → 1383518
Ah, I guess it's just a dup of Bug 1383518 caused by Bug 1359172.
Blocks: 1383518
No longer blocks: 1358115
Flags: needinfo?(amarchesini)
No, I meant...
No longer blocks: 1383518
Status: UNCONFIRMED → RESOLVED
Closed: 4 years ago
Resolution: --- → DUPLICATE
Duplicate of bug: 1383518
Thank you for pointing me to Bug 1383518.

So the trigger of this problem seems to be the existence of a service worker. Our service worker does not even have a 'fetch' event handler. Adding a no-op fetch event handler did not help in our case. I've therefore decided to disable our service worker (and hence push notifications) for users of Firefox 55. I hope that Mozilla can provide a hotfix for this issue.
Can you please mention that in Bug 1383518? I'll update my site compatibility doc to describe "the existence of a service worker."
The idea that a service worker could trigger this bug was mentioned by Andrew Sutherland in comments 19 and 20 of Bug 1383518. But sure, I'll mention that we have been able to workaround this issue by unregister()ing our service worker in Firefox 55.
Component: DOM → DOM: Core & HTML
You need to log in before you can comment on or make changes to this bug.