Closed Bug 1764551 Opened 3 years ago Closed 3 years ago

Performance tab in Developer tools totally breaks the browser

Categories

(DevTools :: Performance Tools (Profiler/Timeline), defect, P2)

Firefox 99
defect

Tracking

(Not tracked)

RESOLVED DUPLICATE of bug 1759196

People

(Reporter: legoduke, Unassigned)

Details

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

Steps to reproduce:

I open the performance tab in Developer Tools, click start recording and the whole browser hangs up. I can't open another website. I can open tabs but nothing loads. The browser becomes unresponsive. I can't not exit it. I have to kiil it in task manager to make it able to restart itself.

Expected results:

Why did you roll out a not working feature and force my browser to update itself!? Instead of doing my job (web development), I am messing with its bugs.

The Bugbug bot thinks this bug should belong to the 'DevTools::General' component, and is moving the bug to that component. Please correct in case you think the bot is wrong.

Component: Untriaged → General
Product: Firefox → DevTools

Here is a video that demonstrates this embarrassment: https://www.youtube.com/watch?v=5oTko8xMVSo

Sorry about this, it might be the same issue as Bug 1759196, will need to check in details.

In the meantime, you can re-enable the previous performance panel in the DevTools settings.

Severity: -- → S3
Status: UNCONFIRMED → NEW
Ever confirmed: true
Flags: needinfo?(jdescottes)
Priority: -- → P2

According to the report in Bug 1759196, reverting to the old panel does not help, meaning that this issue is not related to the UI change.

Can you try to :

  • open DevTools Settings
  • uncheck "Enable new performance recorder"
  • close and re-open DevTools

And see if you still have the issue?

Flags: needinfo?(jdescottes) → needinfo?(legoduke)
Component: General → Performance Tools (Profiler/Timeline)

I double-checked with the old tool in my VM reproducing the issue. Here are my findings:

  1. The old panel in FF 98 and more breaks only the current page, but not new pages. It's still broken though.
  2. in FF97 and before though, the old panel works fine, but not the normal profiler.

I believe this is due to bug 1755055, which added a new place where the faulty syscall is called. This is unfortunate because the old panel doesn't use the marker that makes use of this faulty syscall.

Also the old panel's layout is somewhat broken in current versions of Firefox, I'm not sure what broke it: the record button seems to be displayed when it shouldn't, obscuring part of the analysis UI.

I'm gonna dupe to bug 1759196 for now. It would be good to have some fix in v100 at least. I'm so sorry about this bad issue.

TL;DR: it looks like Ubuntu updated something in how they build some packages (maybe a compiler change, maybe compiler option changes) that trigger a bug in our sandbox, when handling syscalls with 32 bits arguments and checking their values. We're calling such a syscall in the profiler.
This doesn't happen in all distributions, for example it doesn't seem to happen on Debian stable.

In the mean time there are 2 ways to make it work, both being imperfect:

  • you could allow this syscall unconditionally with a preference:
    Set security.sandbox.content.syscall_whitelist to 228, then restart Firefox.
    Upsides: the sandbox still works for other syscalls, so you don't decrease your security much
    Downsides: with a pref it's easy to set it and forget it, and then keep it even after the bug is fixed.
  • you could disable the complete sandbox temporary by launching Firefox with MOZ_DISABLE_CONTENT_SANDBOX=1.
    Downsides: the sandbox being completely disabled you're more vulnerable to security issues in websites resulting in bugs in Firefox.
    Upsides: this is temporary because this is an environment variable, so you're unlikely to keep it when the fix is in Firefox.
Status: NEW → RESOLVED
Closed: 3 years ago
Flags: needinfo?(legoduke)
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.