Getting connection timeouts after downloading some Blobs and switching tab

REOPENED
Assigned to

Status

()

P2
normal
REOPENED
a year ago
2 months ago

People

(Reporter: vobruba.martin, Assigned: kershaw, NeedInfo)

Tracking

55 Branch
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

(Whiteboard: [necko-next])

Attachments

(1 attachment)

(Reporter)

Description

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

Steps to reproduce:

1) Go to https://stat-info.cz/firefox.html
2) Select 2MB Blob size and 8000+ Blobs
3) Wait for downloading of ~1000 Blobs at least
4) Try to open new tab and navigate to some URL


Actual results:

I was doing some tests because of bug #1373222 on Mac OSX 10.12.6 and I recorder this weird behavior: https://youtu.be/daUd3NKAm5g

In time ~20:30 I tried to open new tab, navigated to amazon website and suddenly my internet connection stopped working in Firefox (watch the connection speed meter) and I get connection timeout for every website I try (see ~23:40).

At the end of the video ~25:00 Firefox tries to check for updates but it seems not working either.


Expected results:

No connection problems
(Reporter)

Comment 1

a year ago
Reproduced also in Firefox 56.0b1 on Mac OSX 10.12.6
Component: Untriaged → Networking: HTTP
Product: Firefox → Core
ni? Jason to find someone who can look at this
Flags: needinfo?(jduell.mcbugs)
Whiteboard: [necko-next]
swu: any chance you can find someone to try to duplicate this?  If this is common we'll need to fix soon.
Flags: needinfo?(jduell.mcbugs) → needinfo?(swu)
Kershaw can take a look at it.
Assignee: nobody → kechang
Flags: needinfo?(swu)
(Assignee)

Comment 6

a year ago
I've tried several times, but without luck to reproduce this.

Hi Martin,

Could you try to reproduce this again and also get the http log? It'd be great if we can have the log to take a look.
https://developer.mozilla.org/en-US/docs/Mozilla/Debugging/HTTP_logging

Thanks.
Flags: needinfo?(vobruba.martin)
(Reporter)

Comment 7

11 months ago
Created attachment 8921406 [details]
HTTP log (zipped)

Is this the log you need?
Flags: needinfo?(vobruba.martin) → needinfo?(kechang)
(Assignee)

Comment 8

11 months ago
I saw a lot of "PR_Poll error [-5987] os error [22]" in the http log, and it looks like there is no new http request being created.

Dragana, do you have any idea?
Flags: needinfo?(kechang) → needinfo?(dd.mozilla)
code 22 is is:

#define EINVAL          22      /* Invalid argument */

for some reason the poll argument is not correct.

It would be good to capture when this occurs for the first time and to see why poll parameters are wrong.

Can you also urn on nspr io logging:

export NSPR_LOG_MODULES=timestamp,io:5
export NSPR_LOG_FILE=/tmp/nspr_log.txt

The nspr does not log a lot, so it may be that I do not see anything :(. But if will be a good next step to take a look at this log.

Martin, can you reproduce the issue with nspr logging as well? Thank you!
Flags: needinfo?(dd.mozilla) → needinfo?(vobruba.martin)
(Reporter)

Comment 10

10 months ago
I've reproduced it again, nspr log file was created but nothing was written to it.

Commands I used:

export MOZ_LOG=timestamp,rotate:200,nsHttp:5,nsSocketTransport:5,nsStreamPump:5,nsHostResolver:5
export MOZ_LOG_FILE=~/Desktop/FF/log.txt
export NSPR_LOG_MODULES=timestamp,io:5
export NSPR_LOG_FILE=~/Desktop/FF/nspr_log.txt
cd /Applications/Firefox.app/Contents/MacOS
./firefox-bin
Flags: needinfo?(vobruba.martin) → needinfo?(dd.mozilla)
My apologies I forgot that that nspr logging only works on debug build.

Do you mind downloading debug build from:
https://queue.taskcluster.net/v1/task/Y992JAGOQUG_tFjW--dssg/runs/0/artifacts/public/build/target.dmg

you can also start it with '-P' to create a new profile so that it is not using your old profile.
Flags: needinfo?(dd.mozilla)
(Reporter)

Comment 12

10 months ago
Reproduced with the nightly debug build but nspr log is still empty.

export MOZ_LOG=timestamp,rotate:200,nsHttp:5,nsSocketTransport:5,nsStreamPump:5,nsHostResolver:5
export MOZ_LOG_FILE=~/Desktop/FF/log.txt
export NSPR_LOG_MODULES=timestamp,io:5
export NSPR_LOG_FILE=~/Desktop/FF/nspr_log.txt
cd /Applications/NightlyDebug.app/Contents/MacOS/
./firefox-bin -P

Am I doing something wrong?

Here you can download log files from my test: https://mab.to/GvqkQjf5H
Flags: needinfo?(dd.mozilla)
(Reporter)

Comment 13

10 months ago
Looks like I can't reproduce the issue anymore after upgrading macOS to 10.13.1.
I cannot conclude anything from the log and the issue is not reproducible.
Status: UNCONFIRMED → RESOLVED
Last Resolved: 5 months ago
Flags: needinfo?(dd.mozilla)
Resolution: --- → FIXED
(Reporter)

Comment 15

4 months ago
Hi, I can reproduce the issue again (FF 60.0.1, macOS 10.13.4). This time I can reproduce it not even on a real Mac but also using macOS installed in VirtualBox.

Steps to reproduce:

1) Open tab #1 and navigate to https://stat-info.cz/firefox.html
2) Configure the test:
 - Blob URL: leave unchanged (I use URL from local network for higher download speed)
 - Blob size: 2 MB
 - Count: 5 000 Blobs
3) Start test!
4) Open tab #2 and navigate to some random URL (I use https://www.wikipedia.org )
5) Switch to tab #1 and wait until you download 1000-1500 Blobs
6) Switch to tab #2 and reload it. FF is from now unable to create any connection for some period of time. Tab #2 will end with timeout and after that the download will continue until another reload.
Flags: needinfo?(dd.mozilla)
Martin, do you happen to know if you're downloading all those blobs over HTTP/2?
Status: RESOLVED → REOPENED
Ever confirmed: true
Resolution: FIXED → ---
(Reporter)

Comment 17

4 months ago
My test from local network is over HTTP/1.1
https://stat-info.cz is h2.
(Reporter)

Comment 19

4 months ago
Just to clarify. Blobs will be downloaded over HTTP/2 if you leave Blob URL unchanged. My tests on local network were over HTTP/1. In both cases I can reproduce the issue.
I can reproduce this. I will try to debug it.
You need to log in before you can comment on or make changes to this bug.