Viewing source of discourse.mozilla.org hangs indefinitely
Categories
(Core :: Layout, defect)
Tracking
()
| Performance Impact | low |
People
(Reporter: lorem.daijoh, Unassigned)
References
Details
(Keywords: hang, perf:responsiveness, reproducible)
Attempting to view the source with view-source:https://discourse.mozilla.org/ causes the webcontent process to consume 100% of one cpu core without ever actually showing the source. The tab remains blank or only small part of the source is shown, but the process seemingly never ends or progresses.
Tested on Ubuntu 18.04 and 20.04 with Firefox 91, 101 and 102b
Comment 2•3 years ago
|
||
The severity field is not set for this bug.
:Honza, could you have a look please?
For more information, please visit auto_nag documentation.
Comment 3•3 years ago
|
||
I can reproduce the problem on Win10 too (Fix Nightly 104 and Fx Release 102). The view-source:https://discourse.mozilla.org/ never finishes loading and the CPU jumps to 20-25% in my case.
Gijs, any idea what could be wrong here?
Honza
Comment 4•3 years ago
|
||
Profile: https://share.firefox.dev/3uE2b1z
There's a big (at least 8s) jank marker in the web content process with this stack:
nsIFrame::MarkNeedsDisplayItemRebuild()
nsIFrame::SetParent(nsContainerFrame*)
nsFrameList::InsertFrames(nsContainerFrame*, nsIFrame*, nsFrameList&)
nsContainerFrame::InsertFrames(mozilla::layout::FrameChildListID, nsIFrame*, nsLineList_iterator const*, nsFrameList&)
SplitInlineAncestors(nsContainerFrame*, nsLineList_iterator, nsIFrame*)
nsBidiPresUtils::ResolveParagraph(BidiParagraphData*)
nsBidiPresUtils::Resolve(nsBlockFrame*)
nsBlockFrame::ReflowLine(mozilla::BlockReflowState&, nsLineList_iterator, bool*)
nsBlockFrame::ReflowLine(mozilla::BlockReflowState&, nsLineList_iterator, bool*)
nsBlockFrame::Reflow(nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&)
nsContainerFrame::ReflowChild(nsIFrame*, nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, mozilla::WritingMode const&, mozilla::LogicalPoint const&, nsSize const&, nsIFrame::ReflowChildFlags, nsReflowStatus&, nsOverflowContinuationTracker*)
nsCanvasFrame::Reflow(nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&)
nsContainerFrame::ReflowChild(nsIFrame*, nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, mozilla::WritingMode const&, mozilla::LogicalPoint const&, nsSize const&, nsIFrame::ReflowChildFlags, nsReflowStatus&, nsOverflowContinuationTracker*)
nsHTMLScrollFrame::ReflowScrolledFrame(mozilla::ScrollReflowInput&, bool, bool, mozilla::ReflowOutput*)
nsHTMLScrollFrame::Reflow(nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&)
nsContainerFrame::ReflowChild(nsIFrame*, nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, int, int, nsIFrame::ReflowChildFlags, nsReflowStatus&, nsOverflowContinuationTracker*)
mozilla::ViewportFrame::Reflow(nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&)
mozilla::PresShell::DoReflow(nsIFrame*, bool, mozilla::OverflowChangedTracker*)
Reflow view-source:https://discourse.mozilla.org/
mozilla::PresShell::ProcessReflowCommands(bool)
mozilla::PresShell::DoFlushPendingNotifications(mozilla::ChangesToFlush)
PresShell::DoFlushPendingNotifications InterruptibleLayout
nsRefreshDriver::Tick(mozilla::layers::BaseTransactionId<mozilla::VsyncIdType>, mozilla::TimeStamp, nsRefreshDriver::IsExtraTick)
RefreshDriver tick
mozilla::VsyncRefreshDriverTimer::TickRefreshDriver(mozilla::layers::BaseTransactionId<mozilla::VsyncIdType>, mozilla::TimeStamp)
mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::NotifyVsync(mozilla::VsyncEvent const&)
mozilla::dom::VsyncMainChild::RecvNotify(mozilla::VsyncEvent const&, float const&)
mozilla::dom::PVsyncChild::OnMessageReceived(IPC::Message const&)
PVsync::Msg_Notify
mozilla::ipc::PBackgroundChild::OnMessageReceived(IPC::Message const&)
mozilla::ipc::MessageChannel::RunMessage(mozilla::ipc::ActorLifecycleProxy*, mozilla::ipc::MessageChannel::MessageTask&)
mozilla::TaskController::DoExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex&> const&)
Task PVsync::Msg_Notify(unlabeled)
so over to layout land I guess.
Updated•3 years ago
|
Comment 5•3 years ago
|
||
The Performance Priority Calculator has determined this bug's performance priority to be P3. If you'd like to request re-triage, you can reset the Performance flag to "?" or needinfo the triage sheriff.
Platforms: [x] Windows [x] macOS [x] Linux [x] Android
Impact on browser UI: Causes noticeable jank
Configuration: Specific but common
Websites affected: Rare
[x] Able to reproduce locally
Comment 6•6 months ago
|
||
I still see this with 143.0 on macOS - view-source:https://discourse.mozilla.org/ has high CPU and a continuous "transferring data from discourse.mozilla.org" in the status area.
Description
•