Bug 231117 - ASSERT(!resources.get(key)) in MemoryCache::revalidationSucceeded
Summary: ASSERT(!resources.get(key)) in MemoryCache::revalidationSucceeded
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: Page Loading (show other bugs)
Version: Other
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2021-10-02 01:17 PDT by Jean-Yves Avenard [:jya]
Modified: 2021-10-04 10:38 PDT (History)
6 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jean-Yves Avenard [:jya] 2021-10-02 01:17:29 PDT
STR: 
1- In a debug build, open Paramount+ and start playing a movie such as the historical documentary about Ron Burgundy https://www.paramountplus.com/movies/anchorman-the-legend-of-ron-burgundy/mdAfXe4Sow6aUj51PTldodHHY4VXF7Pg/
2- Click on full screen button
3- Once in full screen, wait a few seconds and exit full screen
4- Repeat

What happens:
You will hit the assertion
ASSERT(!resources.get(key))

stack trace:


(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0xbbadbeef)
    frame #0: 0x0000000404765bee JavaScriptCore`::WTFCrash() at Assertions.cpp:321:35
    frame #1: 0x000000041637544b WebCore`WTFCrashWithInfo((null)=151, (null)="./loader/cache/MemoryCache.cpp", (null)="void WebCore::MemoryCache::revalidationSucceeded(WebCore::CachedResource &, const WebCore::ResourceResponse &)", (null)=1918) at Assertions.h:703:5
  * frame #2: 0x0000000419f710f0 WebCore`WebCore::MemoryCache::revalidationSucceeded(this=0x000000041d123ae8, revalidatingResource=0x000000040ca45400, response=0x00007ff7b7e6b5b8) at MemoryCache.cpp:151:5
    frame #3: 0x0000000419eba41c WebCore`WebCore::SubresourceLoader::didReceiveResponse(this=0x0000000400974d80, response=0x00007ff7b7e6bc80, policyCompletionHandler=0x00007ff7b7e6ba98)>&&) at SubresourceLoader.cpp:419:38
    frame #4: 0x00000003ec5d38f5 WebKit`WebKit::WebResourceLoader::didReceiveResponse(this=0x0000000403d268a0, response=0x00007ff7b7e6bc80, needsContinueDidReceiveResponseMessage=false) at WebResourceLoader.cpp:189:19
    frame #5: 0x00000003ecc80b18 WebKit`void IPC::callMemberFunctionImpl<WebKit::WebResourceLoader, void (WebKit::WebResourceLoader::*)(WebCore::ResourceResponse const&, bool), std::__1::tuple<WebCore::ResourceResponse, bool>, 0ul, 1ul>(object=0x0000000403d268a0, function=80 33 5d ec 03 00 00 00 00 00 00 00 00 00 00 00, args=size=2, (null)=std::__1::index_sequence<0UL, 1UL> @ 0x00007ff7b7e6bbb8)(WebCore::ResourceResponse const&, bool), std::__1::tuple<WebCore::ResourceResponse, bool>&&, std::__1::integer_sequence<unsigned long, 0ul, 1ul>) at HandleMessage.h:125:5
    frame #6: 0x00000003ecc80a4d WebKit`void IPC::callMemberFunction<WebKit::WebResourceLoader, void (WebKit::WebResourceLoader::*)(WebCore::ResourceResponse const&, bool), std::__1::tuple<WebCore::ResourceResponse, bool>, std::__1::integer_sequence<unsigned long, 0ul, 1ul> >(args=size=2, object=0x0000000403d268a0, function=80 33 5d ec 03 00 00 00 00 00 00 00 00 00 00 00)(WebCore::ResourceResponse const&, bool)) at HandleMessage.h:131:5
    frame #7: 0x00000003ecc7e3a0 WebKit`void IPC::handleMessage<Messages::WebResourceLoader::DidReceiveResponse, WebKit::WebResourceLoader, void (WebKit::WebResourceLoader::*)(WebCore::ResourceResponse const&, bool)>(connection=0x00000003d86dc300, decoder=0x00000004017ece58, object=0x0000000403d268a0, function=80 33 5d ec 03 00 00 00 00 00 00 00 00 00 00 00)(WebCore::ResourceResponse const&, bool)) at HandleMessage.h:202:5
    frame #8: 0x00000003ecc7dc88 WebKit`WebKit::WebResourceLoader::didReceiveWebResourceLoaderMessage(this=0x0000000403d268a0, connection=0x00000003d86dc300, decoder=0x00000004017ece58) at WebResourceLoaderMessageReceiver.cpp:52:16
    frame #9: 0x00000003ec58f1ef WebKit`WebKit::NetworkProcessConnection::didReceiveMessage(this=0x00000003d86e82a0, connection=0x00000003d86dc300, decoder=0x00000004017ece58) at NetworkProcessConnection.cpp:96:32
    frame #10: 0x00000003ea6b6b2e WebKit`IPC::Connection::dispatchMessage(this=0x00000003d86dc300, decoder=0x00000004017ece58) at Connection.cpp:1058:14
    frame #11: 0x00000003ea6b72d2 WebKit`IPC::Connection::dispatchMessage(this=0x00000003d86dc300, message=IPC::Decoder @ 0x00000004017ece58) at Connection.cpp:1103:9
    frame #12: 0x00000003ea6b789d WebKit`IPC::Connection::dispatchOneIncomingMessage(this=0x00000003d86dc300) at Connection.cpp:1172:5
    frame #13: 0x00000003ea6d7305 WebKit`IPC::Connection::enqueueIncomingMessage(this=0x00000003e5553698)::$_12::operator()() at Connection.cpp:1027:28
    frame #14: 0x00000003ea6d7219 WebKit`WTF::Detail::CallableWrapper<IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >)::$_12, void>::call(this=0x00000003e5553690) at Function.h:53:39
    frame #15: 0x000000040478ec32 JavaScriptCore`WTF::Function<void ()>::operator(this=0x00007ff7b7e6c220)() const at Function.h:82:35
    frame #16: 0x000000040480c7ce JavaScriptCore`WTF::RunLoop::performWork(this=0x00000003d86fc080) at RunLoop.cpp:133:9
    frame #17: 0x000000040481009e JavaScriptCore`WTF::RunLoop::performWork(context=0x00000003d86fc080) at RunLoopCF.cpp:46:37
    frame #18: 0x00007ff80a92884d CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
    frame #19: 0x00007ff80a9287b5 CoreFoundation`__CFRunLoopDoSource0 + 180
    frame #20: 0x00007ff80a928534 CoreFoundation`__CFRunLoopDoSources0 + 242
    frame #21: 0x00007ff80a926f6b CoreFoundation`__CFRunLoopRun + 893
    frame #22: 0x00007ff80a92652d CoreFoundation`CFRunLoopRunSpecific + 563
    frame #23: 0x00007ff80b78d2ae Foundation`-[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 216
    frame #24: 0x00007ff80b8175f3 Foundation`-[NSRunLoop(NSRunLoop) run] + 76
    frame #25: 0x00007ff80a5af233 libxpc.dylib`_xpc_objc_main + 825
    frame #26: 0x00007ff80a5aec22 libxpc.dylib`xpc_main + 99
    frame #27: 0x00000003eb54e53a WebKit`WebKit::XPCServiceMain((null)=1, (null)=0x00007ff7b7e6d530) at XPCServiceMain.mm:223:5
    frame #28: 0x00000003ecd1d8ab WebKit`WKXPCServiceMain(argc=1, argv=0x00007ff7b7e6d530) at WKMain.mm:34:12
    frame #29: 0x0000000108095ea2 com.apple.WebKit.WebContent.Development`main(argc=1, argv=0x00007ff7b7e6d530) at AuxiliaryProcessMain.cpp:30:12
    frame #30: 0x0000000115d764d5 dyld`start + 421


Can always reproduce, typically within 30s.

For going full screen to work properly, the fix in bug 231005 is required.
Comment 1 Radar WebKit Bug Importer 2021-10-02 01:17:51 PDT
<rdar://problem/83794817>