Open Bug 1692231 Opened 4 years ago Updated 3 years ago

Pressing command + , several times (continuously reloading the preferences) will trigger an error

Categories

(Core :: DOM: HTML Parser, defect)

Firefox 86
defect

Tracking

()

ASSIGNED

People

(Reporter: edmorales.97, Assigned: zbraniecki)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:86.0) Gecko/20100101 Firefox/86.0

Steps to reproduce:

Press "command + ," several times really fast to open the Preferences page.

Actual results:

It will trigger an error. See screenshot.

Expected results:

It should take you to the Preferences page.

The Bugbug bot thinks this bug should belong to the 'Firefox::Preferences' component, and is moving the bug to that component. Please revert this change in case you think the bot is wrong.

Component: Untriaged → Preferences

Zibi or Olli, do you know what's happening here? Seems like a DOM / HTML parsing issue given the error. I can trivially reproduce by holding down cmd+, on my mac.

Blocks: 1675823
Status: UNCONFIRMED → NEW
Component: Preferences → DOM: HTML Parser
Ever confirmed: true
Flags: needinfo?(zbraniecki)
Flags: needinfo?(bugs)
Product: Firefox → Core
Summary: Pressing command + , several times will trigger an error → Pressing command + , several times (continuously reloading the preferences) will trigger an error

Eduardo, thank you for your submission!

I am able to reproduce this bug using your STR but the page never "settles" on the error page. In other words, if I keep pressing cmd+, I will trigger the error and it'll flash, but only as it starts loading the next reload of about:preferences which this time loads correctly.

Are you able to "settle" your load on an error page?

I'm going to investigate in context of clue for solving bug 1675823.

Assignee: nobody → zbraniecki
Status: NEW → ASSIGNED
Flags: needinfo?(zbraniecki) → needinfo?(edmorales.97)

Stacktrace:

Thread 1 "firefox" hit Breakpoint 1, nsExpatDriver::HandleError (
    this=this@entry=0x7fffc02fbbb0)
    at /projects/mozilla-unified/parser/htmlparser/nsExpatDriver.cpp:752
752	  int32_t code = XML_GetErrorCode(mExpatParser);
(gdb) bt
#0  nsExpatDriver::HandleError() (this=this@entry=0x7fffc02fbbb0)
    at /projects/mozilla-unified/parser/htmlparser/nsExpatDriver.cpp:752
#1  0x00007fffecf8f7de in nsExpatDriver::ConsumeToken(nsScanner&, bool&)
    (this=0x7fffc02fbbb0, aScanner=..., aFlushTokens=<optimized out>)
    at /projects/mozilla-unified/parser/htmlparser/nsExpatDriver.cpp:1070
#2  0x00007fffecf9484c in nsParser::Tokenize(bool) (this=this@entry=
    0x7fffbcf6b3e0, aIsFinalChunk=<optimized out>)
    at /projects/mozilla-unified/parser/htmlparser/nsParser.cpp:1410
#3  0x00007fffecf933cc in nsParser::ResumeParse(bool, bool, bool)
    (this=this@entry=0x7fffbcf6b3e0, allowIteration=false, aIsFinalChunk=true, aCanInterrupt=<optimized out>) at /projects/mozilla-unified/parser/htmlparser/nsParser.cpp:961
#4  0x00007fffecf9565d in nsParser::OnStopRequest(nsIRequest*, nsresult)
    (this=0x7fffbcf6b3e0, request=0x7fffbcc4de48, status=nsresult::NS_BINDING_ABORTED)
    at /projects/mozilla-unified/parser/htmlparser/nsParser.cpp:1352
#5  0x00007fffecf891b6 in mozilla::parser::PrototypeDocumentParser::OnStopRequest(nsIRequest*, nsresult) (this=<optimized out>, request=0x0, aStatus=nsresult::NS_OK)
    at /projects/mozilla-unified/parser/prototype/PrototypeDocumentParser.cpp:141
#6  0x00007fffeceebb8c in nsDocumentOpenInfo::OnStopRequest(nsIRequest*, nsresult)
    (this=0x7fffbdea2400, request=0x7fffbcc4de48, aStatus=nsresult::NS_BINDING_ABORTED)
    at /projects/mozilla-unified/uriloader/base/nsURILoader.cpp:215
#7  0x00007fffec638763 in mozilla::net::ParentChannelWrapper::OnStopRequest(nsIRequest*, nsresult) (this=<optimized out>, aRequest=0x0, aStatusCode=nsresult::NS_OK)
    at /projects/mozilla-unified/obj-x86_64-pc-linux-gnu-dbg/dist/include/mozilla/net/ParentChannelWrapper.h:28
#8  0x00007fffec50697c in mozilla::net::ParentChannelListener::OnStopRequest(nsIRequest*, nsresult) (this=0x7fffbdea2c40, aRequest=0x7fffbcc4de48, aStatusCode=nsresult::NS_BINDING_ABORTED)
    at /projects/mozilla-unified/netwerk/protocol/http/ParentChannelListener.cpp:101
#9  0x00007fffeceebb8c in nsDocumentOpenInfo::OnStopRequest(nsIRequest*, nsresult)
    (this=0x7fffbdea1400, request=0x7fffbcc4de48, aStatus=nsresult::NS_BINDING_ABORTED)
    at /projects/mozilla-unified/uriloader/base/nsURILoader.cpp:215
#10 0x00007fffebfdedd2 in nsBaseChannel::OnStopRequest(nsIRequest*, nsresult) (this=
    0x7fffbcc4de00, request=<optimized out>, status=<optimized out>)
    at /projects/mozilla-unified/netwerk/base/nsBaseChannel.cpp:853
#11 0x00007fffebfdeeb0 in non-virtual thunk to nsBaseChannel::OnStopRequest(nsIRequest*, nsresult) () at /projects/mozilla-unified/netwerk/base/nsBaseChannel.cpp:865
#12 0x00007fffec008d70 in nsInputStreamPump::OnStateStop() (this=this@entry=0x7fffbd0be900)
    at /projects/mozilla-unified/netwerk/base/nsInputStreamPump.cpp:649
#13 0x00007fffec00835f in nsInputStreamPump::OnInputStreamReady(nsIAsyncInputStream*)
    (this=0x7fffbd0be900, stream=<optimized out>)
    at /projects/mozilla-unified/netwerk/base/nsInputStreamPump.cpp:397
#14 0x00007fffec00913d in non-virtual thunk to nsInputStreamPump::OnInputStreamReady(nsIAsyncInputStream*) () at /projects/mozilla-unified/netwerk/base/nsInputStreamPump.cpp:146
#15 0x00007fffebe2a166 in nsInputStreamReadyEvent::Run() (this=<optimized out>)
    at /projects/mozilla-unified/xpcom/io/nsStreamUtils.cpp:94
#16 0x00007fffebe6c420 in mozilla::RunnableTask::Run() (this=0x7fffba9e5080)
    at /projects/mozilla-unified/xpcom/threads/TaskController.cpp:472
--Type <RET> for more, q to quit, c to continue without paging--
#17 0x00007fffebe67139 in mozilla::TaskController::DoExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex&> const&) (this=<optimized out>, 
    this@entry=0x7fffe641f800, aProofOfLock=<optimized out>)
    at /projects/mozilla-unified/xpcom/threads/TaskController.cpp:753
#18 0x00007fffebe65f95 in mozilla::TaskController::ExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex&> const&)
    (this=this@entry=0x7fffe641f800, aProofOfLock=...)
    at /projects/mozilla-unified/xpcom/threads/TaskController.cpp:611
#19 0x00007fffebe66149 in mozilla::TaskController::ProcessPendingMTTask(bool)
    (this=0x7fffe641f800, aMayWait=false)
    at /projects/mozilla-unified/xpcom/threads/TaskController.cpp:395
#20 0x00007fffebe67b17 in mozilla::TaskController::InitializeInternal()::$_3::operator()() const (this=<optimized out>) at /projects/mozilla-unified/xpcom/threads/TaskController.cpp:133
#21 mozilla::detail::RunnableFunction<mozilla::TaskController::InitializeInternal()::$_3>::Run() (this=<optimized out>)
    at /projects/mozilla-unified/obj-x86_64-pc-linux-gnu-dbg/dist/include/nsThreadUtils.h:534
#22 0x00007fffebe7fafc in nsThread::ProcessNextEvent(bool, bool*)
    (this=0x7ffff78b5310, aMayWait=false, aResult=0x7fffffffcd3f)
    at /projects/mozilla-unified/xpcom/threads/nsThread.cpp:1158
#23 0x00007fffebe85d8b in NS_ProcessNextEvent(nsIThread*, bool) (aThread=0x7fffc02fbbb0, 
    aThread@entry=0x7ffff78b5310, aMayWait=false)
    at /projects/mozilla-unified/xpcom/threads/nsThreadUtils.cpp:548
#24 0x00007fffec794dcb in mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*)
    (this=0x7fffe64061c0, aDelegate=0x7fffe6e933e0)
    at /projects/mozilla-unified/ipc/glue/MessagePump.cpp:87
#25 0x00007fffec6ed654 in MessageLoop::RunInternal() (this=0x7fffe6e933e0)
    at /projects/mozilla-unified/ipc/chromium/src/base/message_loop.cc:335
#26 0x00007fffec6ed560 in MessageLoop::RunHandler() (this=0x7fffc02fbbb0)
    at /projects/mozilla-unified/ipc/chromium/src/base/message_loop.cc:328
#27 MessageLoop::Run() (this=0x7fffc02fbbb0)
    at /projects/mozilla-unified/ipc/chromium/src/base/message_loop.cc:310
#28 0x00007ffff0255ec9 in nsBaseAppShell::Run() (this=0x7fffe6e88b30)
    at /projects/mozilla-unified/widget/nsBaseAppShell.cpp:137
#29 0x00007ffff1b8dfb7 in nsAppStartup::Run() (this=0x7fffe6eaf2e0)
    at /projects/mozilla-unified/toolkit/components/startup/nsAppStartup.cpp:271
#30 0x00007ffff1cdd479 in XREMain::XRE_mainRun() (this=<optimized out>, this@entry=
    0x7fffffffd110) at /projects/mozilla-unified/toolkit/xre/nsAppRunner.cpp:5246
#31 0x00007ffff1cde69a in XREMain::XRE_main(int, char**, mozilla::BootstrapConfig const&)
    (this=this@entry=0x7fffffffd110, argc=argc@entry=4, argv=argv@entry=0x7fffffffe3c8, aConfig=<optimized out>) at /projects/mozilla-unified/toolkit/xre/nsAppRunner.cpp:5438
#32 0x00007ffff1cdef52 in XRE_main(int, char**, mozilla::BootstrapConfig const&)
    (argc=0, argv=0x0, aConfig=...)
    at /projects/mozilla-unified/toolkit/xre/nsAppRunner.cpp:5501
#33 0x00007ffff1cec941 in mozilla::BootstrapImpl::XRE_main(int, char**, mozilla::BootstrapConfig const&) (this=<optimized out>, argc=-1070613584, argv=0x0, aConfig=...)
    at /projects/mozilla-unified/toolkit/xre/Bootstrap.cpp:45
--Type <RET> for more, q to quit, c to continue without paging--
#34 0x000055555558cf3b in do_main(int, char**, char**)
    (argc=0, argv=0x7fffffffe3c8, envp=0x7fffffffe3f0)
    at /projects/mozilla-unified/browser/app/nsBrowserApp.cpp:220
#35 main(int, char**, char**)
    (argc=<optimized out>, argv=<optimized out>, envp=0x7fffffffe3f0)
    at /projects/mozilla-unified/browser/app/nsBrowserApp.cpp:344

(In reply to Zibi Braniecki [:zbraniecki][:gandalf] from comment #3)

Eduardo, thank you for your submission!

I am able to reproduce this bug using your STR but the page never "settles" on the error page. In other words, if I keep pressing cmd+, I will trigger the error and it'll flash, but only as it starts loading the next reload of about:preferences which this time loads correctly.

Are you able to "settle" your load on an error page?

I'm going to investigate in context of clue for solving bug 1675823.

Hi Zibi, I cannot settle on the error page either. It's a quick flashing screen so I had to be quick when taking the screenshot.
about:preferences loads fine after flashing the error.

Thanks!

Flags: needinfo?(edmorales.97)

Thank you for confirming! This in itself is therefore not a major problem, but I think your report will unblock a very long standing hunt for the source of a bug we have been seeing in the wild for years and weren't able to reproduce - bug 1675823.

I'll keep this bug open, but shift to that bug to document the new findings.

Thank you again for reporting it!

Flags: needinfo?(bugs)

FWIW I can still reproduce this. If I press and hold Cmd and , to rapidly/repeatedly load about:preferences, my tab eventually turns yellow (like the screenshot except I don't actually see any error text). But then when I release the keys, about:preferences does load properly.

You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: