Open Bug 1622455 Opened 5 years ago Updated 8 months ago

Firefox tab freezes when a huge log is displayed on Github Actions

Categories

(Core :: Performance: Responsiveness, defect, P2)

74 Branch
defect

Tracking

()

UNCONFIRMED
Performance Impact medium

People

(Reporter: mathieu.tarral, Unassigned)

Details

(Keywords: hang, perf:responsiveness)

Attachments

(1 file)

Attached video firefox_tab_freeze.webm

User Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:74.0) Gecko/20100101 Firefox/74.0

Steps to reproduce:

I went to a job I configured on Github Actions, involving download a qcow image via wget, which puts a lot of log lines to display.

Actual results:

The tab just freezes (even though the progress indicators in Github Actions are still running).
I can't click on refresh, the interface won't respond.
I can't click enter in the address bar, it won't respond either.

The only solution is to close the tab and open the link again.

Expected results:

The tab and the UI should not have been frozen.

see the video I attached for the demo.
100% reproducible.

Keywords: hang

Mathieu, could you please try to reproduce the issue on the latest Nightly? You can download it from https://nightly.mozilla.org/

If the issue is reproducible also on the latest Nightly, could you please try to capture a performance profile using the Cleopatra add-on? You can get more info on how to install and use the Cleopatra add-on (that helps you get the performance profile) by going to:

https://developer.mozilla.org/en-US/docs/Mozilla/Performance/Profiling_with_the_Built-in_Profiler
https://perf-html.io/
Please also note that this add-on works only on FF Nightly, so that means you need to be able to reproduce the issue on Nightly first.

Mike, Eric, could you please take a look over?

Flags: needinfo?(mconley)
Flags: needinfo?(erahm)

There's nothing actionable on my side at this point.

Flags: needinfo?(erahm)

Clearing needinfo while we wait to get that profile from the reporter.

Flags: needinfo?(mconley)

Hi and thank you for the quick feedback.

I downloaded the latest nightly, which already included the profiler. (76.0a1 (2020-03-22) (64 bits))

I ran the test on Github Actions while downloading a Windows 7 image via wget (3,23 Go)

What I noticed was that there was no complete freeze of the interface, as I was expecting.
However, when I tried to expand or collapse the current task which was downloading the file, my action would have no effect whatsoever.

Only at the end of the Github Actions workflow my action were taken into account, and all the tasks would receive the expand/collapse clicks at the same time.

This does seem like a performance issue, so I recorded a profile, that you can find here:
https://perfht.ml/2WzsWnj

I also created a Github repo dedicated to this issue:
https://github.com/Wenzel/test_bug_actions

You can fork this repo and make PRs, the Github Actions will trigger automatically, and experiment the issue by yourself.

Thank you !

Additional note: I created a separate profile for nightly:

  • mkdir ~/nightly_profile
  • ./firefox --profile ~/nightly_profile

Mike, Eric, could you please take a look over?

Flags: needinfo?(mconley)
Flags: needinfo?(erahm)

(In reply to Simona Badau from comment #6)

Mike, Eric, could you please take a look over?

Happy to help triage memory reports (when a user pastes output from about:memory or attaches a memory report), in this case we're looking at a perf profile (via perf.html) so I'm not the right person to ask.

Flags: needinfo?(erahm)

This looks to me like the important part of the profile: https://perfht.ml/2x5dsgN

It looks like a bunch of expensive Promises / callbacks / MutationCallbacks are executing in a row, and they're running JS and doing DOM operations.

Going to move this into Core::Performance and tag with [qf] so that hopefully some of our JS or DOM folks can find a more appropriate component.

Component: Untriaged → Performance
Flags: needinfo?(mconley)
Product: Firefox → Core
Whiteboard: [qf]
Priority: -- → P2
Whiteboard: [qf] → [qf:p2:responsiveness]
Performance Impact: --- → P2
Whiteboard: [qf:p2:responsiveness]
Severity: normal → S3
Component: Performance: General → Performance: Responsiveness
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: