Bug 209575 - Mini browser immediately hit an assertion in debug build
Summary: Mini browser immediately hit an assertion in debug build
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKit Misc. (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Ryosuke Niwa
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2020-03-25 18:51 PDT by Ryosuke Niwa
Modified: 2020-03-25 19:11 PDT (History)
10 users (show)

See Also:


Attachments
Fixes the bug (1.87 KB, patch)
2020-03-25 18:58 PDT, Ryosuke Niwa
simon.fraser: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Ryosuke Niwa 2020-03-25 18:51:42 PDT
ASSERTION FAILED: destinationID
/Volumes/Data/webkit/Source/WebKit/Platform/IPC/MessageReceiverMap.cpp(52) : void IPC::MessageReceiverMap::addMessageReceiver(IPC::StringReference, uint64_t, IPC::MessageReceiver &)
1   0x244ef93c9 WTFCrash
2   0x106c70c6b WTFCrashWithInfo(int, char const*, char const*, int)
3   0x106d8462b IPC::MessageReceiverMap::addMessageReceiver(IPC::StringReference, unsigned long long, IPC::MessageReceiver&)
4   0x1080d55ad WebKit::RemoteAudioSession::RemoteAudioSession(WebKit::WebProcess&, WebKit::RemoteAudioSessionConfiguration&&)
5   0x1080d5615 WebKit::RemoteAudioSession::RemoteAudioSession(WebKit::WebProcess&, WebKit::RemoteAudioSessionConfiguration&&)
6   0x108101eb2 WTF::UniqueRef<WebKit::RemoteAudioSession> WTF::makeUniqueRefWithoutFastMallocCheck<WebKit::RemoteAudioSession, WebKit::WebProcess&, WebKit::RemoteAudioSessionConfiguration>(WebKit::WebProcess&, WebKit::RemoteAudioSessionConfiguration&&)
7   0x1080d54d4 WTF::UniqueRef<WebKit::RemoteAudioSession> WTF::makeUniqueRef<WebKit::RemoteAudioSession, WebKit::WebProcess&, WebKit::RemoteAudioSessionConfiguration>(WebKit::WebProcess&, WebKit::RemoteAudioSessionConfiguration&&)
8   0x1080d51b3 WebKit::RemoteAudioSession::create(WebKit::WebProcess&)
9   0x10804e70d WebKit::WebProcess::setUseGPUProcessForMedia(bool)
10  0x10852163d WebKit::WebPage::updatePreferences(WebKit::WebPreferencesStore const&)
11  0x10851e19b WebKit::WebPage::WebPage(WTF::ObjectIdentifier<WebCore::PageIdentifierType>, WebKit::WebPageCreationParameters&&)
12  0x10851cc65 WebKit::WebPage::WebPage(WTF::ObjectIdentifier<WebCore::PageIdentifierType>, WebKit::WebPageCreationParameters&&)
13  0x10851cb71 WebKit::WebPage::create(WTF::ObjectIdentifier<WebCore::PageIdentifierType>, WebKit::WebPageCreationParameters&&)
14  0x1080467a4 WebKit::WebProcess::createWebPage(WTF::ObjectIdentifier<WebCore::PageIdentifierType>, WebKit::WebPageCreationParameters&&)
15  0x1087d20bc void IPC::callMemberFunctionImpl<WebKit::WebProcess, void (WebKit::WebProcess::*)(WTF::ObjectIdentifier<WebCore::PageIdentifierType>, WebKit::WebPageCreationParameters&&), std::__1::tuple<WTF::ObjectIdentifier<WebCore::PageIdentifierType>, WebKit::WebPageCreationParameters>, 0ul, 1ul>(WebKit::WebProcess*, void (WebKit::WebProcess::*)(WTF::ObjectIdentifier<WebCore::PageIdentifierType>, WebKit::WebPageCreationParameters&&), std::__1::tuple<WTF::ObjectIdentifier<WebCore::PageIdentifierType>, WebKit::WebPageCreationParameters>&&, std::__1::integer_sequence<unsigned long, 0ul, 1ul>)
16  0x1087d0b20 void IPC::callMemberFunction<WebKit::WebProcess, void (WebKit::WebProcess::*)(WTF::ObjectIdentifier<WebCore::PageIdentifierType>, WebKit::WebPageCreationParameters&&), std::__1::tuple<WTF::ObjectIdentifier<WebCore::PageIdentifierType>, WebKit::WebPageCreationParameters>, std::__1::integer_sequence<unsigned long, 0ul, 1ul> >(std::__1::tuple<WTF::ObjectIdentifier<WebCore::PageIdentifierType>, WebKit::WebPageCreationParameters>&&, WebKit::WebProcess*, void (WebKit::WebProcess::*)(WTF::ObjectIdentifier<WebCore::PageIdentifierType>, WebKit::WebPageCreationParameters&&))
17  0x1087ca83e void IPC::handleMessage<Messages::WebProcess::CreateWebPage, WebKit::WebProcess, void (WebKit::WebProcess::*)(WTF::ObjectIdentifier<WebCore::PageIdentifierType>, WebKit::WebPageCreationParameters&&)>(IPC::Decoder&, WebKit::WebProcess*, void (WebKit::WebProcess::*)(WTF::ObjectIdentifier<WebCore::PageIdentifierType>, WebKit::WebPageCreationParameters&&))
18  0x1087c7cf0 WebKit::WebProcess::didReceiveWebProcessMessage(IPC::Connection&, IPC::Decoder&)
19  0x10804723b WebKit::WebProcess::didReceiveMessage(IPC::Connection&, IPC::Decoder&)
20  0x106ce0839 IPC::Connection::dispatchMessage(IPC::Decoder&)
21  0x106ce1192 IPC::Connection::dispatchMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >)
22  0x106ce1870 IPC::Connection::dispatchOneIncomingMessage()
23  0x106d00cde IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >)::$_7::operator()()
Comment 1 Ryosuke Niwa 2020-03-25 18:58:45 PDT
Created attachment 394566 [details]
Fixes the bug
Comment 2 Simon Fraser (smfr) 2020-03-25 19:08:30 PDT
Comment on attachment 394566 [details]
Fixes the bug

Should you have used ObjecdtIdentifer instead of 0 or 1?
Comment 3 Ryosuke Niwa 2020-03-25 19:09:46 PDT
(In reply to Simon Fraser (smfr) from comment #2)
> Comment on attachment 394566 [details]
> Fixes the bug
> 
> Should you have used ObjecdtIdentifer instead of 0 or 1?

I don't think so. There is no object to identify. This is really a singleton. It's actually wrong that we're using message receiver map for this. We should just hard-code it in WebProcess's message dispatcher instead. But for now, this will fix the assertion failure that happens at launch.
Comment 4 Ryosuke Niwa 2020-03-25 19:10:42 PDT
Committed r259028: <https://trac.webkit.org/changeset/259028>
Comment 5 Radar WebKit Bug Importer 2020-03-25 19:11:17 PDT
<rdar://problem/60900136>