Bug 275709 - REGRESSION(280109@main): [macOS iOS Debug wk2] ASSERTION FAILED: Completion handler should always be called
Summary: REGRESSION(280109@main): [macOS iOS Debug wk2] ASSERTION FAILED: Completion h...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: New Bugs (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Charlie Wolfe
URL:
Keywords: InRadar
: 275822 (view as bug list)
Depends on:
Blocks:
 
Reported: 2024-06-20 14:41 PDT by Anfernee Viduya
Modified: 2024-07-16 13:53 PDT (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Anfernee Viduya 2024-06-20 14:41:21 PDT
imported/w3c/web-platform-tests/navigation-api/navigate-event/navigate-form.html 

The test above is constantly seeing a debug assertion or crash on macOS Ventura and above on the debug platform, with iOS 17. 

HISTORY: 
https://results.webkit.org/?suite=layout-tests&test=imported%2Fw3c%2Fweb-platform-tests%2Fnavigation-api%2Fnavigate-event%2Fnavigate-form.html&platform=ios&platform=mac&style=debug&style=release&flavor=wk2

ASSERTION TEXT:
ASSERTION FAILED: Completion handler should always be called
!m_function
/Volumes/Data/worker/Apple-Sonoma-Debug-Build/build/WebKitBuild/Debug/usr/local/include/wtf/CompletionHandler.h(66) : WTF::CompletionHandler<void ()>::~CompletionHandler()
1   0x3556b13d4 WTF::CompletionHandler<void ()>::~CompletionHandler()
2   0x355695d80 WTF::CompletionHandler<void ()>::~CompletionHandler()
3   0x35a4ed7d8 WebCore::FrameLoader::loadFrameRequest(WebCore::FrameLoadRequest&&, WebCore::Event*, WTF::RefPtr<WebCore::FormState, WTF::RawPtrTraits<WebCore::FormState>, WTF::DefaultRefDerefTraits<WebCore::FormState>>&&, std::__1::optional<WebCore::PrivateClickMeasurement>&&)
4   0x35a5847d4 WebCore::ScheduledFormSubmission::fire(WebCore::Frame&)
5   0x35a582f14 WebCore::NavigationScheduler::timerFired()
6   0x35a593d6c decltype(*std::declval<WebCore::NavigationScheduler*&>().*std::declval<void (WebCore::NavigationScheduler::*&)()>()()) std::__1::__invoke[abi:sn170006]<void (WebCore::NavigationScheduler::*&)(), WebCore::NavigationScheduler*&, void>(void (WebCore::NavigationScheduler::*&)(), WebCore::NavigationScheduler*&)
7   0x35a593cec std::__1::__bind_return<void (WebCore::NavigationScheduler::*)(), std::__1::tuple<WebCore::NavigationScheduler*>, std::__1::tuple<>, __is_valid_bind_return<void (WebCore::NavigationScheduler::*)(), std::__1::tuple<WebCore::NavigationScheduler*>, std::__1::tuple<>>::value>::type std::__1::__apply_functor[abi:sn170006]<void (WebCore::NavigationScheduler::*)(), std::__1::tuple<WebCore::NavigationScheduler*>, 0ul, std::__1::tuple<>>(void (WebCore::NavigationScheduler::*&)(), std::__1::tuple<WebCore::NavigationScheduler*>&, std::__1::__tuple_indices<0ul>, std::__1::tuple<>&&)
8   0x35a593ca4 std::__1::__bind_return<void (WebCore::NavigationScheduler::*)(), std::__1::tuple<WebCore::NavigationScheduler*>, std::__1::tuple<>, __is_valid_bind_return<void (WebCore::NavigationScheduler::*)(), std::__1::tuple<WebCore::NavigationScheduler*>, std::__1::tuple<>>::value>::type std::__1::__bind<void (WebCore::NavigationScheduler::*&)(), WebCore::NavigationScheduler*>::operator()[abi:sn170006]<>()
9   0x35a593c48 WTF::Detail::CallableWrapper<std::__1::__bind<void (WebCore::NavigationScheduler::*&)(), WebCore::NavigationScheduler*>, void>::call()
10  0x358ca3c00 WTF::Function<void ()>::operator()() const
11  0x35563b944 WebCore::Timer::fired()
12  0x35ab58910 WebCore::ThreadTimers::sharedTimerFiredInternal()
13  0x35ab62e7c WebCore::ThreadTimers::setSharedTimer(WebCore::SharedTimer*)::$_0::operator()() const
14  0x35ab62e28 WTF::Detail::CallableWrapper<WebCore::ThreadTimers::setSharedTimer(WebCore::SharedTimer*)::$_0, void>::call()
15  0x358ca3c00 WTF::Function<void ()>::operator()() const
16  0x35ab0019c WebCore::MainThreadSharedTimer::fired()
17  0x35ac093b8 WebCore::timerFired(__CFRunLoopTimer*, void*)
18  0x1858665b8 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__
19  0x18586625c __CFRunLoopDoTimer
20  0x185865d94 __CFRunLoopDoTimers
21  0x1858491cc __CFRunLoopRun
22  0x185848434 CFRunLoopRunSpecific
23  0x18697ca88 -[NSRunLoop(NSRunLoop) runMode:beforeDate:]
24  0x1869f66c4 -[NSRunLoop(NSRunLoop) run]
25  0x185483468 _xpc_objc_main
26  0x185492e58 _xpc_main
27  0x185483014 _xpc_copy_xpcservice_dictionary
28  0x13f10694c WebKit::XPCServiceMain(int, char const**)
29  0x1419e87e4 WKXPCServiceMain
30  0x100693f90 main
31  0x1853e20e0 start
com.apple.WebKit.WebContent.Development terminated (pid 54920) for reason: crash
LEAK: 1 WebProcessPool
LEAK: 1 WebPageProxy 

CRASH LOG URL: 
https://build.webkit.org/results/Apple-Sonoma-Debug-AppleSilicon-WK2-Tests/280207@main%20(3132)/imported/w3c/web-platform-tests/navigation-api/navigate-event/navigate-form-crash-log.txt
Comment 1 Radar WebKit Bug Importer 2024-06-20 14:43:01 PDT
<rdar://problem/130233442>
Comment 2 Anfernee Viduya 2024-06-20 15:38:39 PDT
Was able to reproduce the assertion on macOS Sonoma debug ToT running the test as follows: 

run-webkit-test imported/w3c/web-platform-tests/navigation-api/navigate-event/navigate-form.html 

I was also able to validate a regression point, this test crashes / asserts at 280109@main but not 280108@main therefor 280109@main regressed this.
Comment 3 Anfernee Viduya 2024-06-20 16:12:43 PDT
Pull request: https://github.com/WebKit/WebKit/pull/30025
Comment 4 EWS 2024-06-20 16:22:17 PDT
Test gardening commit 280230@main (ffd8bec936bd): <https://commits.webkit.org/280230@main>

Reviewed commits have been landed. Closing PR #30025 and removing active labels.
Comment 5 Anfernee Viduya 2024-06-20 16:31:10 PDT
(In reply to EWS from comment #4)
> Test gardening commit 280230@main (ffd8bec936bd):
> <https://commits.webkit.org/280230@main>
> 
> Reviewed commits have been landed. Closing PR #30025 and removing active
> labels.

I have opted to skip this test on debug for macOS and iOS with the above commit.
Comment 6 Ryan Haddad 2024-06-24 16:43:39 PDT
Looks like this also affects imported/w3c/web-platform-tests/navigation-api/navigate-event/navigate-form-userInitiated.html
Comment 7 Charlie Wolfe 2024-06-24 22:27:22 PDT
Pull request: https://github.com/WebKit/WebKit/pull/30137
Comment 8 EWS 2024-06-25 02:04:46 PDT
Committed 280327@main (f2201a018506): <https://commits.webkit.org/280327@main>

Reviewed commits have been landed. Closing PR #30137 and removing active labels.
Comment 9 Anfernee Viduya 2024-07-16 13:53:34 PDT
*** Bug 275822 has been marked as a duplicate of this bug. ***