Closed Bug 1371967 Opened 7 years ago Closed 1 year ago

Content process hangs in mozilla::a11y::Accessible::HasGenericType

Categories

(Core :: Disability Access APIs, defect, P3)

53 Branch
defect

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: mar.kolya, Unassigned)

References

(Depends on 1 open bug, Blocks 1 open bug)

Details

User Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:53.0) Gecko/20100101 Firefox/53.0
Build ID: 20170524174214

Steps to reproduce:

Tried to open this page: https://www.kaggle.com/c/titanic/data
(free registration may be required)


Actual results:

Content process hangs consuming 100% CPU.
Here is backtrace:

#0  0x00007fa7ec513f09 in mozilla::a11y::Accessible::HasGenericType(mozilla::a11y::AccGenericType) const (this=0x7fa7c0d121d0, aType=mozilla::a11y::eDocument) at /build/firefox-6VXDIK/firefox-53.0.3+build1/accessible/generic/Accessible-inl.h:85
#1  0x00007fa7ec522e8a in mozilla::a11y::Accessible::IsDoc() const (this=0x7fa7c0d121d0) at /build/firefox-6VXDIK/firefox-53.0.3+build1/obj-x86_64-linux-gnu/dist/include/mozilla/a11y/Accessible.h:579
#2  0x00007fa7ec522e8a in mozilla::a11y::NotificationController::CoalesceMutationEvents() (this=this@entry=0x7fa7b8ee9bc0) at /build/firefox-6VXDIK/firefox-53.0.3+build1/accessible/base/NotificationController.cpp:382
#3  0x00007fa7ec524362 in mozilla::a11y::NotificationController::QueueMutationEvent(mozilla::a11y::AccTreeMutationEvent*) (this=0x7fa7b8ee9bc0, aEvent=0x7fa7c8f257b0) at /build/firefox-6VXDIK/firefox-53.0.3+build1/accessible/base/NotificationController.cpp:152
#4  0x00007fa7ec5248d8 in mozilla::a11y::TreeMutation::BeforeRemoval(mozilla::a11y::Accessible*, bool) (this=this@entry=0x7ffd5a5b7438, aChild=aChild@entry=0x7fa7c0d121d0, aNoShutdown=aNoShutdown@entry=false)
    at /build/firefox-6VXDIK/firefox-53.0.3+build1/accessible/base/EventTree.cpp:89
#5  0x00007fa7ec542ce2 in mozilla::a11y::DocAccessible::UpdateTreeOnRemoval(mozilla::a11y::Accessible*, nsIContent*) (this=this@entry=0x7fa7bfe13940, aContainer=0x7fa7c0ab3ac0, aChildNode=0x7fa7ccf81c00)
    at /build/firefox-6VXDIK/firefox-53.0.3+build1/accessible/generic/DocAccessible.cpp:1976
#6  0x00007fa7ec54307f in mozilla::a11y::DocAccessible::ValidateARIAOwned() (this=0x7fa7bfe13940) at /build/firefox-6VXDIK/firefox-53.0.3+build1/accessible/generic/DocAccessible.cpp:2044
#7  0x00007fa7ec526145 in mozilla::a11y::NotificationController::WillRefresh(mozilla::TimeStamp) (this=0x7fa7b8ee9bc0, aTime=...) at /build/firefox-6VXDIK/firefox-53.0.3+build1/accessible/base/NotificationController.cpp:797
#8  0x00007fa7ec1bea7a in nsRefreshDriver::Tick(long, mozilla::TimeStamp) (this=this@entry=0x7fa7b90d4c00, aNowEpoch=aNowEpoch@entry=1497127079597900, aNowTime=...) at /build/firefox-6VXDIK/firefox-53.0.3+build1/layout/base/nsRefreshDriver.cpp:1800
#9  0x00007fa7ec1bf7a0 in mozilla::RefreshDriverTimer::TickDriver(nsRefreshDriver*, long, mozilla::TimeStamp) (driver=driver@entry=0x7fa7b90d4c00, jsnow=jsnow@entry=1497127079597900, now=..., now@entry=...)
    at /build/firefox-6VXDIK/firefox-53.0.3+build1/layout/base/nsRefreshDriver.cpp:329
#10 0x00007fa7ec1bf90d in mozilla::RefreshDriverTimer::TickRefreshDrivers(long, mozilla::TimeStamp, nsTArray<RefPtr<nsRefreshDriver> >&) (this=this@entry=0x7fa7cf4c3220, aJsNow=aJsNow@entry=1497127079597900, aNow=aNow@entry=..., aDrivers=...)
    at /build/firefox-6VXDIK/firefox-53.0.3+build1/layout/base/nsRefreshDriver.cpp:299
#11 0x00007fa7ec1bfa0e in mozilla::RefreshDriverTimer::Tick(long, mozilla::TimeStamp) (this=this@entry=0x7fa7cf4c3220, jsnow=1497127079597900, now=...) at /build/firefox-6VXDIK/firefox-53.0.3+build1/layout/base/nsRefreshDriver.cpp:321
#12 0x00007fa7ec1bfc25 in mozilla::VsyncRefreshDriverTimer::RunRefreshDrivers(mozilla::TimeStamp) (aTimeStamp=..., this=0x7fa7cf4c3220) at /build/firefox-6VXDIK/firefox-53.0.3+build1/layout/base/nsRefreshDriver.cpp:672
#13 0x00007fa7ec1bfc25 in mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::TickRefreshDriver(mozilla::TimeStamp) (this=this@entry=0x7fa7cf2751f0, aVsyncTimestamp=aVsyncTimestamp@entry=...)
    at /build/firefox-6VXDIK/firefox-53.0.3+build1/layout/base/nsRefreshDriver.cpp:592
#14 0x00007fa7ec1bfd12 in mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::NotifyVsync(mozilla::TimeStamp) (this=0x7fa7cf2751f0, aVsyncTimestamp=...) at /build/firefox-6VXDIK/firefox-53.0.3+build1/layout/base/nsRefreshDriver.cpp:510
#15 0x00007fa7ec35973d in mozilla::layout::VsyncChild::RecvNotify(mozilla::TimeStamp const&) (this=<optimized out>, aVsyncTimestamp=...) at /build/firefox-6VXDIK/firefox-53.0.3+build1/layout/ipc/VsyncChild.cpp:64
#16 0x00007fa7eb12f723 in mozilla::layout::PVsyncChild::OnMessageReceived(IPC::Message const&) (this=0x7fa7cf2751a0, msg__=...) at /build/firefox-6VXDIK/firefox-53.0.3+build1/obj-x86_64-linux-gnu/ipc/ipdl/PVsyncChild.cpp:160
#17 0x00007fa7eb07c15d in mozilla::ipc::PBackgroundChild::OnMessageReceived(IPC::Message const&) (this=0x7fa7cf37c800, msg__=...) at /build/firefox-6VXDIK/firefox-53.0.3+build1/obj-x86_64-linux-gnu/ipc/ipdl/PBackgroundChild.cpp:1425
#18 0x00007fa7eb04de3c in mozilla::ipc::MessageChannel::DispatchAsyncMessage(IPC::Message const&) (this=0x7fa7cf37c8e0, aMsg=...) at /build/firefox-6VXDIK/firefox-53.0.3+build1/ipc/glue/MessageChannel.cpp:1804
#19 0x00007fa7eb056478 in mozilla::ipc::MessageChannel::DispatchMessage(IPC::Message&&) (this=this@entry=0x7fa7cf37c8e0, aMsg=aMsg@entry=<unknown type in /usr/lib/debug/usr/lib/firefox/libxul.so, CU 0x27db897, DIE 0x283f270>)
    at /build/firefox-6VXDIK/firefox-53.0.3+build1/ipc/glue/MessageChannel.cpp:1739
#20 0x00007fa7eb05747c in mozilla::ipc::MessageChannel::RunMessage(mozilla::ipc::MessageChannel::MessageTask&) (this=0x7fa7cf37c8e0, aTask=...) at /build/firefox-6VXDIK/firefox-53.0.3+build1/ipc/glue/MessageChannel.cpp:1620
#21 0x00007fa7eb0575cd in mozilla::ipc::MessageChannel::MessageTask::Run() (this=0x7fa7c388b870) at /build/firefox-6VXDIK/firefox-53.0.3+build1/ipc/glue/MessageChannel.cpp:1645
#22 0x00007fa7ead6b98a in nsThread::ProcessNextEvent(bool, bool*) (this=0x7fa7fa44f360, aMayWait=<optimized out>, aResult=0x7ffd5a5b8367) at /build/firefox-6VXDIK/firefox-53.0.3+build1/xpcom/threads/nsThread.cpp:1240
#23 0x00007fa7ead87011 in NS_ProcessNextEvent(nsIThread*, bool) (aThread=<optimized out>, aThread@entry=0x7fa7fa44f360, aMayWait=aMayWait@entry=false) at /build/firefox-6VXDIK/firefox-53.0.3+build1/xpcom/glue/nsThreadUtils.cpp:390
#24 0x00007fa7eb04add2 in mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) (this=0x7fa7fa4cec90, aDelegate=0x7ffd5a5b8578) at /build/firefox-6VXDIK/firefox-53.0.3+build1/ipc/glue/MessagePump.cpp:96
#25 0x00007fa7eb035ca6 in MessageLoop::RunHandler() (this=<optimized out>) at /build/firefox-6VXDIK/firefox-53.0.3+build1/ipc/chromium/src/base/message_loop.cc:231
#26 0x00007fa7eb035ca6 in MessageLoop::Run() (this=<optimized out>) at /build/firefox-6VXDIK/firefox-53.0.3+build1/ipc/chromium/src/base/message_loop.cc:211
#27 0x00007fa7ec05163e in nsBaseAppShell::Run() (this=0x7fa7d9204dc0) at /build/firefox-6VXDIK/firefox-53.0.3+build1/widget/nsBaseAppShell.cpp:156
#28 0x00007fa7ec700802 in XRE_RunAppShell() () at /build/firefox-6VXDIK/firefox-53.0.3+build1/toolkit/xre/nsEmbedFunctions.cpp:924
#29 0x00007fa7eb035ca6 in MessageLoop::RunHandler() (this=0x7fa7cf37c8e0) at /build/firefox-6VXDIK/firefox-53.0.3+build1/ipc/chromium/src/base/message_loop.cc:231
#30 0x00007fa7eb035ca6 in MessageLoop::Run() (this=this@entry=0x7ffd5a5b8578) at /build/firefox-6VXDIK/firefox-53.0.3+build1/ipc/chromium/src/base/message_loop.cc:211
#31 0x00007fa7ec701007 in XRE_InitChildProcess(int, char**, XREChildData const*) (aArgc=<optimized out>, aArgv=<optimized out>, aChildData=<optimized out>) at /build/firefox-6VXDIK/firefox-53.0.3+build1/toolkit/xre/nsEmbedFunctions.cpp:756
#32 0x000055b3927f3d43 in content_process_main(mozilla::Bootstrap*, int, char**) (bootstrap=0x7fa7fa4bc0a0, argc=11, argv=0x7ffd5a5b88b8) at /build/firefox-6VXDIK/firefox-53.0.3+build1/browser/app/../../ipc/contentproc/plugin-container.cpp:115
#33 0x000055b3927f3644 in main(int, char**, char**) (argc=11, argv=0x7ffd5a5b88b8, envp=0x7ffd5a5b8918) at /build/firefox-6VXDIK/firefox-53.0.3+build1/browser/app/nsBrowserApp.cpp:284

Looks like process is stuck in mozilla::a11y::Accessible::HasGenericType


Expected results:

Page should open, FF should not hang.
Component: Untriaged → IPC
Product: Firefox → Core
Component: IPC → Disability Access APIs
Alex, any idea why that could hang?
Flags: needinfo?(surkov.alexander)
my educated guess would be this is a perf problem and should be solved by bug 1368784
Blocks: a11yperf
Depends on: 1368784
Flags: needinfo?(surkov.alexander)
I would like to clarify: it looks like that some times page opens just fine. And sometimes it totally hangs - I've given it fair amount of time (10s of minutes) to unhang and it didn't do so. Page itself doesn't seem to contain anything too hard - no large large tables or chunks of data (despite what url may suggest).
Moving to p3 because no activity for at least 1 year(s).
See https://github.com/mozilla/bug-handling/blob/master/policy/triage-bugzilla.md#how-do-you-triage for more information
Priority: P2 → P3
Severity: normal → S3

I can't reproduce this. Please reopen if the problem persists.

Status: UNCONFIRMED → RESOLVED
Closed: 1 year ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.