Bug 255558

Summary: REGRESSION(4/3/23?): [ iOS, macOS Debug ] ASSERT NOT REACHED in IPC::shouldEnableStrictMode seen with TestWebKitAPI._WKDataTask.Challenge
Product: WebKit Reporter: Bri Harris <bharris9>
Component: New BugsAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: achristensen, gavin.p, webkit-bot-watchers-bugzilla, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: Other   
Hardware: Unspecified   
OS: Unspecified   

Description Bri Harris 2023-04-17 16:30:12 PDT
TestWebKitAPI._WKDataTask.Challenge

is a constant failure on iOS 16 and macOS affecting Debug only.


HISTORY:
https://results.webkit.org/?suite=api-tests&test=TestWebKitAPI._WKDataTask.Challenge

FAILURE TEXT:

    SHOULD NEVER BE REACHED
        /Volumes/Data/worker/Apple-Ventura-Debug-Build/build/Source/WebKit/Shared/Cocoa/ArgumentCodersCocoa.mm(636) : bool IPC::shouldEnableStrictMode(IPC::Decoder &, NSArray<Class> *)
        1   0x15aeb44f9 WTFCrash
        2   0x134a68c1b WTFCrashWithInfo(int, char const*, char const*, int)
        3   0x1356f422b IPC::shouldEnableStrictMode(IPC::Decoder&, NSArray<objc_class*>*)
        4   0x1356ea573 IPC::decodeSecureCodingInternal(IPC::Decoder&, NSArray<objc_class*>*)
        5   0x1356e9741 IPC::decodeObject(IPC::Decoder&, NSArray<objc_class*>*)
        6   0x135889b90 std::__1::optional<WTF::RetainPtr<NSURLCredential>> IPC::decode<NSURLCredential, NSURLCredential*>(IPC::Decoder&, NSArray<objc_class*>*)
        7   0x135889a56 IPC::ArgumentCoder<WebCore::Credential, void>::decodePlatformData(IPC::Decoder&, WebCore::Credential&)
        8   0x136059595 IPC::ArgumentCoder<WebCore::Credential, void>::decode(IPC::Decoder&, WebCore::Credential&)
        9   0x134ad9b2a std::__1::optional<WebCore::Credential> IPC::Decoder::decode<WebCore::Credential>()
        10  0x135458f7b std::__1::optional<std::__1::tuple<WebKit::AuthenticationChallengeDisposition, WebCore::Credential>> IPC::ArgumentCoder<std::__1::tuple<WebKit::AuthenticationChallengeDisposition, WebCore::Credential>, void>::decode<IPC::Decoder, WebKit::AuthenticationChallengeDisposition>(IPC::Decoder&, std::__1::optional<WebKit::AuthenticationChallengeDisposition>&&)
        11  0x135458f14 std::__1::optional<std::__1::tuple<WebKit::AuthenticationChallengeDisposition, WebCore::Credential>> IPC::ArgumentCoder<std::__1::tuple<WebKit::AuthenticationChallengeDisposition, WebCore::Credential>, void>::decode<IPC::Decoder>(IPC::Decoder&)
        12  0x135458dac std::__1::optional<std::__1::tuple<WebKit::AuthenticationChallengeDisposition, WebCore::Credential>> IPC::Decoder::decode<std::__1::tuple<WebKit::AuthenticationChallengeDisposition, WebCore::Credential>>()
        13  0x135458c6d void IPC::Connection::callReply<Messages::NetworkProcessProxy::DataTaskReceivedChallenge, -[WKURLSessionTaskDelegate URLSession:task:didReceiveChallenge:completionHandler:]::$_25>(IPC::Decoder&, -[WKURLSessionTaskDelegate URLSession:task:didReceiveChallenge:completionHandler:]::$_25&&)
        14  0x135458c36 IPC::ConnectionAsyncReplyHandler IPC::Connection::makeAsyncReplyHandler<Messages::NetworkProcessProxy::DataTaskReceivedChallenge, -[WKURLSessionTaskDelegate URLSession:task:didReceiveChallenge:completionHandler:]::$_25>(-[WKURLSessionTaskDelegate URLSession:task:didReceiveChallenge:completionHandler:]::$_25&&, WTF::ThreadLikeAssertion)::'lambda'(IPC::Decoder*)::operator()(IPC::Decoder*)
        15  0x135458b71 WTF::Detail::CallableWrapper<IPC::ConnectionAsyncReplyHandler IPC::Connection::makeAsyncReplyHandler<Messages::NetworkProcessProxy::DataTaskReceivedChallenge, -[WKURLSessionTaskDelegate URLSession:task:didReceiveChallenge:completionHandler:]::$_25>(-[WKURLSessionTaskDelegate URLSession:task:didReceiveChallenge:completionHandler:]::$_25&&, WTF::ThreadLikeAssertion)::'lambda'(IPC::Decoder*), void, IPC::Decoder*>::call(IPC::Decoder*)
        16  0x1360c495a WTF::Function<void (IPC::Decoder*)>::operator()(IPC::Decoder*) const
        17  0x1360ac8fe WTF::CompletionHandler<void (IPC::Decoder*)>::operator()(IPC::Decoder*)
        18  0x137550082 IPC::Connection::dispatchMessage(IPC::Decoder&)
        19  0x137550530 IPC::Connection::dispatchMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder>>)
        20  0x137550805 IPC::Connection::dispatchOneIncomingMessage()
        21  0x13756a89d IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder>>)::$_17::operator()() const
        22  0x13756a809 WTF::Detail::CallableWrapper<IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder>>)::$_17, void>::call()
        23  0x15cbf1782 WTF::Function<void ()>::operator()() const
        24  0x15af7492e WTF::RunLoop::performWork()
        25  0x15af788fe WTF::RunLoop::performWork(void*)
        26  0x7ff80b24f06a __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__
        27  0x7ff80b24f00c __CFRunLoopDoSource0
        28  0x7ff80b24ede5 __CFRunLoopDoSources0
        29  0x7ff80b24da6f __CFRunLoopRun
        30  0x7ff80b24d071 CFRunLoopRunSpecific
        31  0x7ff80c0d8453 -[NSRunLoop(NSRunLoop) runMode:beforeDate:]
        LEAK: 1 WebProcessPool
        LEAK: 1 WebPageProxy
        
        /Volumes/Data/worker/Apple-Ventura-Debug-Build/build/Tools/TestWebKitAPI/Tests/WebKitCocoa/NetworkProcess.mm:572
        Value of: receivedData
          Actual: false
        Expected: true
        
        
        /Volumes/Data/worker/Apple-Ventura-Debug-Build/build/Tools/TestWebKitAPI/Tests/WebKitCocoa/NetworkProcess.mm:573
        Value of: receivedBasicAuthChallenge
          Actual: false
        Expected: true
        
        
        /Volumes/Data/worker/Apple-Ventura-Debug-Build/build/Tools/TestWebKitAPI/Tests/WebKitCocoa/NetworkProcess.mm:575
        Value of: !(error)
          Actual: false
        Expected: true
Comment 1 Radar WebKit Bug Importer 2023-04-17 16:30:38 PDT
<rdar://problem/108166036>
Comment 2 Bri Harris 2023-04-17 16:34:48 PDT
I was able to replicate this failure on iOS 16 ToT as follows:

run-api-tests --ios-simulator --root TestWebKitAPI._WKDataTask.Challenge
Comment 3 Bri Harris 2023-04-17 16:39:03 PDT
This test appeared to be passing on commit 262557@main, but failed on 262558@main. Will try to replicate to verify regression point and assign appropriately.
Comment 4 Ryan Haddad 2023-04-18 10:58:32 PDT
This was resolved by https://commits.webkit.org/263047@main

*** This bug has been marked as a duplicate of bug 255561 ***
Comment 5 Ryan Haddad 2023-04-18 10:59:12 PDT
The other bug was filed as a response to this one, reversing the dupe.
Comment 6 Ryan Haddad 2023-04-18 10:59:32 PDT
*** Bug 255561 has been marked as a duplicate of this bug. ***