Closed Bug 957498 Opened 10 years ago Closed 3 years ago

e10s: High heap-unclassified in parent process due to IPC strings

Categories

(Core :: DOM: Content Processes, defect, P5)

x86_64
Linux
defect

Tracking

()

RESOLVED WONTFIX
Tracking Status
e10s later ---

People

(Reporter: n.nethercote, Unassigned)

References

(Blocks 1 open bug)

Details

(Whiteboard: [MemShrink:P3])

Steps:
- Start an e10s-enabled profile.
- Open about:memory in a new tab.
- Trigger DMD via the signal-based mechanism.

The parent has a huge chunk of unreported memory due to IPC strings:

> Unreported: 226 blocks in stack trace record 1 of 1,833
>  43,008,000 bytes (42,186,524 requested / 821,476 slop)
>  39.25% of the heap (39.25% cumulative);  72.85% of unreported (72.85% cumulative)
>  Allocated at
>    replace_malloc (/home/njn/moz/mi5/co64dmd/memory/replace/dmd/../../../../memory/replace/dmd/DMD.cpp:1246) 0xa54446b1
>    nsStringBuffer::Alloc(unsigned long) (/home/njn/moz/mi5/co64dmd/xpcom/string/src/../../../../xpcom/string/src/nsSubstring.cpp:195) 0x9e48d6d0
>    nsAString_internal::MutatePrep(unsigned int, char16_t**, unsigned int*) (/home/njn/moz/mi5/co64dmd/xpcom/string/src/../../../../xpcom/string/src/nsTSubstring.cpp:133) 0x9e48d949
>    nsAString_internal::ReplacePrepInternal(unsigned int, unsigned int, unsigned int, unsigned int) (/home/njn/moz/mi5/co64dmd/xpcom/string/src/../../../../xpcom/string/src/nsTSubstring.cpp:169) 0x9e48da4b
>    nsAString_internal::ReplacePrep(unsigned int, unsigned int, unsigned int) (/home/njn/moz/mi5/co64dmd/xpcom/string/src/../../../dist/include/nsTSubstring.h:800) 0x9e491b37
>    nsAString_internal::Assign(char16_t const*, unsigned int, mozilla::fallible_t const&) (/home/njn/moz/mi5/co64dmd/xpcom/string/src/../../../../xpcom/string/src/nsTSubstring.cpp:321) 0x9e48dc03
>    nsAString_internal::Assign(char16_t const*, unsigned int) (/home/njn/moz/mi5/co64dmd/xpcom/string/src/../../../../xpcom/string/src/nsTSubstring.cpp:300) 0x9e48dc38
>    IPC::ParamTraits<nsAString_internal>::Read(IPC::Message const*, void**, nsAString_internal*) (/home/njn/moz/mi5/co64dmd/ipc/ipdl/../../dist/include/ipc/IPCMessageUtils.h:287) 0x9e7633d9
>    bool IPC::ReadParam<nsString>(IPC::Message const*, void**, nsString*) (/home/njn/moz/mi5/co64dmd/ipc/ipdl/../../../ipc/chromium/src/chrome/common/ipc_message_utils.h:121) 0x9e7c79c6
>    bool mozilla::dom::PContentParent::Read<nsString>(nsString*, IPC::Message const*, void**) (/home/njn/moz/mi5/co64dmd/ipc/ipdl/../../ipc/ipdl/_ipdlheaders/mozilla/dom/PContentParent.h:1274) 0x9e7d0ba2
>    mozilla::dom::PContentParent::OnMessageReceived(IPC::Message const&) (/home/njn/moz/mi5/co64dmd/ipc/ipdl/./PContentParent.cpp:2989) 0x9e7b99f8
>    mozilla::ipc::MessageChannel::DispatchAsyncMessage(IPC::Message const&) (/home/njn/moz/mi5/co64dmd/ipc/glue/../../../ipc/glue/MessageChannel.cpp:992) 0x9e73ebed
>    mozilla::ipc::MessageChannel::OnMaybeDequeueOne() (/home/njn/moz/mi5/co64dmd/ipc/glue/../../../ipc/glue/MessageChannel.cpp:890) 0x9e73c458
>    MessageLoop::RunTask(Task*) (/home/njn/moz/mi5/co64dmd/ipc/chromium/../../../ipc/chromium/src/base/message_loop.cc:344) 0x9e70682b
>    MessageLoop::DeferOrRunPendingTask(MessageLoop::PendingTask const&) (/home/njn/moz/mi5/co64dmd/ipc/chromium/../../../ipc/chromium/src/base/message_loop.cc:352) 0x9e706aad
>    MessageLoop::DoWork() (/home/njn/moz/mi5/co64dmd/ipc/chromium/../../../ipc/chromium/src/base/message_loop.cc:452) 0x9e706ba0
>    mozilla::ipc::DoWorkRunnable::Run() (/home/njn/moz/mi5/co64dmd/ipc/glue/../../../ipc/glue/MessagePump.cpp:227) 0x9e74003c
>    nsThread::ProcessNextEvent(bool, bool*) (/home/njn/moz/mi5/co64dmd/xpcom/threads/../../../xpcom/threads/nsThread.cpp:634) 0x9e4e131b
>    NS_ProcessNextEvent(nsIThread*, bool) (/home/njn/moz/mi5/xpcom/glue/nsThreadUtils.cpp:263) 0x9e47e9f9
>    mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) (/home/njn/moz/mi5/co64dmd/ipc/glue/../../../ipc/glue/MessagePump.cpp:95) 0x9e73fd6c
>    MessageLoop::Run() (/home/njn/moz/mi5/co64dmd/ipc/chromium/../../../ipc/chromium/src/base/message_loop.cc:194) 0x9e706721
>    nsBaseAppShell::Run() (/home/njn/moz/mi5/co64dmd/widget/xpwidgets/../../../widget/xpwidgets/nsBaseAppShell.cpp:163) 0x9f0fdc4b
>    nsAppStartup::Run() (/home/njn/moz/mi5/co64dmd/toolkit/components/startup/../../../../toolkit/components/startup/nsAppStartup.cpp:276) 0x9fd7b548
>    XREMain::XRE_mainRun() (/home/njn/moz/mi5/co64dmd/toolkit/xre/../../../toolkit/xre/nsAppRunner.cpp:4023) 0x9fcda9d1

This seems to go away after not too long, but it would be nice to have a reporter for it anyway, just to make sure it doesn't come back.
Whiteboard: [MemShrink] → [MemShrink:P3]
It'd be nice if we could somehow record what IPC message is involved for these.  Might be worth a look at the IPDL processor to see if there's a way to make that visible.
Component: IPC → DOM: Content Processes
https://bugzilla.mozilla.org/show_bug.cgi?id=1472046

Move all DOM bugs that haven’t been updated in more than 3 years and has no one currently assigned to P5.

If you have questions, please contact :mdaly.
Priority: -- → P5

No meaningful action in 7 years, closing.

Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.