Bug 182591

Summary: ASSERTION FAILED: vm->currentThreadIsHoldingAPILock() seen with http/tests/paymentrequest/payment-request-show-method.https.html
Product: WebKit Reporter: Ryan Haddad <ryanhaddad>
Component: New BugsAssignee: Andy Estes <aestes>
Status: RESOLVED FIXED    
Severity: Normal CC: aestes, cdumez, commit-queue, jlewis3, keith_miller, mark.lam, sam, thorton, webkit-bug-importer, youennf
Priority: P2 Keywords: InRadar
Version: Other   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch none

Description Ryan Haddad 2018-02-07 17:25:48 PST
LayoutTest http/tests/paymentrequest/payment-request-show-method.https.html is frequently failing an assertion on the bots:

ASSERTION FAILED: vm->currentThreadIsHoldingAPILock()
./runtime/VM.cpp(1031) : void JSC::sanitizeStackForVM(JSC::VM *)
1   0x1133ea41d WTFCrash
2   0x11328e4ad JSC::sanitizeStackForVM(JSC::VM*)
3   0x1129706dc JSC::DFG::prepareOSREntry(JSC::ExecState*, JSC::CodeBlock*, unsigned int)
4   0x112dc032b operationOptimize
5   0x4d0b3916730
6   0x11241d08e llint_entry
7   0x112415002 vmEntryToJavaScript
8   0x112db326e JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*)
9   0x112d583c5 JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
10  0x112fc280a JSC::call(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
11  0x1172dd8fb WebCore::callFunction(JSC::ExecState&, JSC::JSValue, JSC::JSValue, JSC::ArgList const&)
12  0x1172dd735 WebCore::DOMPromise::whenSettled(std::__1::function<void ()>&&)
13  0x1170b4257 WebCore::PaymentRequest::whenDetailsSettled(std::__1::function<void ()>&&)
14  0x1170b40ab WebCore::PaymentRequest::shippingAddressChanged(WTF::Ref<WebCore::PaymentAddress, WTF::DumbPtrTraits<WebCore::PaymentAddress> >&&)
15  0x116dbf40d WebCore::ApplePayPaymentHandler::didSelectShippingContact(WebCore::PaymentContact const&)
16  0x116dbf45c non-virtual thunk to WebCore::ApplePayPaymentHandler::didSelectShippingContact(WebCore::PaymentContact const&)
17  0x116dbb82e WebCore::PaymentCoordinator::didSelectShippingContact(WebCore::PaymentContact const&)
18  0x12f0f5bc3 WebCore::MockPaymentCoordinator::completeMerchantValidation(WebCore::PaymentMerchantSession const&)::$_3::operator()()
19  0x12f0f5a89 WTF::Function<void ()>::CallableWrapper<WebCore::MockPaymentCoordinator::completeMerchantValidation(WebCore::PaymentMerchantSession const&)::$_3>::call()
20  0x12f0bdf6b WTF::Function<void ()>::operator()() const
21  0x12f0f116c WebCore::dispatchIfShowing(WTF::Function<void ()>&&)::$_8::operator()() const
22  0x12f0f1089 WTF::Function<void ()>::CallableWrapper<WebCore::dispatchIfShowing(WTF::Function<void ()>&&)::$_8>::call()
23  0x1134066ab WTF::Function<void ()>::operator()() const
24  0x113449d23 WTF::RunLoop::performWork()
25  0x11344a5c4 WTF::RunLoop::performWork(void*)
26  0x10afe22b1 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__
27  0x10b081d31 __CFRunLoopDoSource0
28  0x10afc6c19 __CFRunLoopDoSources0
29  0x10afc61ff __CFRunLoopRun
30  0x10afc5a89 CFRunLoopRunSpecific
31  0x10689de5e -[NSRunLoop(NSRunLoop) runMode:beforeDate:]
LEAK: 1 WebPageProxy

https://build.webkit.org/results/Apple%20iOS%2011%20Simulator%20Debug%20WK2%20(Tests)/r228244%20(2594)/results.html
Comment 1 Andy Estes 2018-02-07 17:38:26 PST
Created attachment 333343 [details]
Patch
Comment 2 Keith Miller 2018-02-07 17:56:51 PST
LGTM too. As an update to our offline discussion, you can totally hold the API lock as many times as you want.
Comment 3 WebKit Commit Bot 2018-02-07 20:10:13 PST
Comment on attachment 333343 [details]
Patch

Clearing flags on attachment: 333343

Committed r228258: <https://trac.webkit.org/changeset/228258>
Comment 4 WebKit Commit Bot 2018-02-07 20:10:14 PST
All reviewed patches have been landed.  Closing bug.
Comment 5 Radar WebKit Bug Importer 2018-02-07 20:11:44 PST
<rdar://problem/37339056>