[Webkit-unassigned] [Bug 139654] New: DropAllLocks assertion on iOS
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Mon Dec 15 14:42:56 PST 2014
https://bugs.webkit.org/show_bug.cgi?id=139654
Bug ID: 139654
Summary: DropAllLocks assertion on iOS
Classification: Unclassified
Product: WebKit
Version: 528+ (Nightly build)
Hardware: iOS
OS: iOS 8.1
Status: NEW
Severity: Normal
Priority: P2
Component: JavaScriptCore
Assignee: webkit-unassigned at lists.webkit.org
Reporter: ian.ragsdale at gmail.com
Created attachment 243311
--> https://bugs.webkit.org/attachment.cgi?id=243311&action=review
Instruments trace leading up to the crash.
I'm using WebKit in an iOS app (via UIWebView), and we're seeing a semi-frequent crash that I'm trying to track down. From the backtraces, I _think_ it appears to be a WebKit bug, and so I'd like to try to find a workaround, and/or submit a useful bug or patch.
A full thread dump is available here: http://crashes.to/s/cf0cdb52701
The assertion appears to be happening when the WebThread tries to call my delegate to decide whether to load a URL:
Thread : Crashed: WebThread
0 JavaScriptCore 0x27e864aa WTFCrash + 53
1 JavaScriptCore 0x27e86457 WTFPrintBacktrace + 130
2 JavaScriptCore 0x27dc92e1 JSC::JSLock::DropAllLocks::DropAllLocks(JSC::VM*)
3 WebCore 0x31cd3061 SendDelegateMessage(NSInvocation*) + 184
4 WebKitLegacy 0x327be1f5 -[_WebSafeForwarder forwardInvocation:] + 116
5 CoreFoundation 0x269d766f ___forwarding___ + 354
6 CoreFoundation 0x26909058 _CF_forwarding_prep_0 + 24
7 WebKitLegacy 0x327ffb01 WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction(WebCore::NavigationAction const&, WebCore::ResourceRequest const&, WTF::PassRefPtr<WebCore::FormState>, std::__1::function<void (WebCore::PolicyAction)>) + 344
>From looking at the source, it tries to drop all locks from the current javascript VM before calling the delegate, and when it does that it asserts if the VM is busy garbage collecting. I'm guessing there needs to be some sort of guard there to make sure the VM isn't doing GC before dropping the locks?
This crash becomes much easier to trigger when setting JSC_slowPathAllocsBetweenGCs to a low number.
I've attached an Instruments trace leading up to the crash, which I believe verifies that the app is not accessing the UIWebView on any non-main thread.
--
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20141215/22a26119/attachment-0001.html>
More information about the webkit-unassigned
mailing list