RESOLVED FIXED 197965
REGRESSION (r84160): Leak of OpaqueJSString under WTR::JSTestRunner::pathToLocalResource (32 bytes) in com.apple.WebKit.WebContent running layout tests
https://bugs.webkit.org/show_bug.cgi?id=197965
Summary REGRESSION (r84160): Leak of OpaqueJSString under WTR::JSTestRunner::pathToLo...
David Kilzer (:ddkilzer)
Reported 2019-05-16 15:29:37 PDT
Leak of OpaqueJSString under WTR::JSTestRunner::pathToLocalResource (32 bytes) in com.apple.WebKit.WebContent running layout tests. STACK OF 1 INSTANCE OF 'ROOT LEAK: <0x7fab7c32bf90>': [thread 0x10c0635c0]: 64 libdyld.dylib 0x7fff633ad08d start + 1 63 com.apple.WebKit.WebContent 0x1078ad352 main + 34 XPCServiceMain.mm:165 62 com.apple.WebKit.WebContent 0x1078ad065 WebKit::XPCServiceMain(int, char const**) + 1333 XPCServiceMain.mm:157 61 libxpc.dylib 0x7fff635e39e5 _xpc_copy_xpcservice_dictionary + 0 60 libxpc.dylib 0x7fff635e3ee6 _xpc_objc_main + 555 59 com.apple.Foundation 0x7fff384b828f -[NSRunLoop(NSRunLoop) run] + 76 58 com.apple.Foundation 0x7fff384b83ba -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 280 57 com.apple.CoreFoundation 0x7fff36133be6 CFRunLoopRunSpecific + 467 56 com.apple.CoreFoundation 0x7fff36134303 __CFRunLoopRun + 1226 55 com.apple.CoreFoundation 0x7fff36134d5c __CFRunLoopDoSources0 + 195 54 com.apple.CoreFoundation 0x7fff36150eaf __CFRunLoopDoSource0 + 108 53 com.apple.CoreFoundation 0x7fff36150f09 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17 52 com.apple.JavaScriptCore 0x5cea67174 WTF::RunLoop::performWork(void*) + 36 RunLoopCF.cpp:38 51 com.apple.JavaScriptCore 0x5cea667e3 WTF::RunLoop::performWork() + 211 RunLoop.cpp:107 50 com.apple.JavaScriptCore 0x5cea00dad WTF::Function<void ()>::operator()() const + 173 Function.h:56 49 com.apple.WebKit 0x5b806d939 WTF::Function<void ()>::CallableWrapper<IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >)::$_14>::call() + 25 Function.h:101 48 com.apple.WebKit 0x5b806da28 IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >)::$_14::operator()() + 104 Connection.cpp:957 47 com.apple.WebKit 0x5b804ccb7 IPC::Connection::dispatchOneIncomingMessage() + 1607 Connection.cpp:1074 46 com.apple.WebKit 0x5b803e2d1 IPC::Connection::dispatchMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >) + 721 Connection.cpp:0 45 com.apple.WebKit 0x5b804beec IPC::Connection::dispatchMessage(IPC::Decoder&) + 476 Connection.cpp:979 44 com.apple.WebKit 0x5b8e69a46 WebKit::NetworkProcessConnection::didReceiveMessage(IPC::Connection&, IPC::Decoder&) + 166 NetworkProcessConnection.cpp:79 43 com.apple.WebKit 0x5b9251456 WebKit::WebResourceLoader::didReceiveWebResourceLoaderMessage(IPC::Connection&, IPC::Decoder&) + 502 WebResourceLoaderMessageReceiver.cpp:61 42 com.apple.WebKit 0x5b9251cf7 void IPC::handleMessage<Messages::WebResourceLoader::DidReceiveData, WebKit::WebResourceLoader, void (WebKit::WebResourceLoader::*)(IPC::DataReference const&, long long)>(IPC::Decoder&, WebKit::WebResourceLoader*, void (WebKit::WebResourceLoader::*)(IPC::DataReference const&, long long)) + 343 HandleMessage.h:134 41 com.apple.WebKit 0x5b92529b0 void IPC::callMemberFunction<WebKit::WebResourceLoader, void (WebKit::WebResourceLoader::*)(IPC::DataReference const&, long long), std::__1::tuple<IPC::DataReference, long long>, std::__1::integer_sequence<unsigned long, 0ul, 1ul> >(std::__1::tuple<IPC::DataReference, long long>&&, WebKit::WebResourceLoader*, void (WebKit::WebResourceLoader::*)(IPC::DataReference const&, long long)) + 96 HandleMessage.h:48 40 com.apple.WebKit 0x5b9252a80 void IPC::callMemberFunctionImpl<WebKit::WebResourceLoader, void (WebKit::WebResourceLoader::*)(IPC::DataReference const&, long long), std::__1::tuple<IPC::DataReference, long long>, 0ul, 1ul>(WebKit::WebResourceLoader*, void (WebKit::WebResourceLoader::*)(IPC::DataReference const&, long long), std::__1::tuple<IPC::DataReference, long long>&&, std::__1::integer_sequence<unsigned long, 0ul, 1ul>) + 192 HandleMessage.h:42 39 com.apple.WebKit 0x5b8e7794e WebKit::WebResourceLoader::didReceiveData(IPC::DataReference const&, long long) + 558 WebResourceLoader.cpp:145 38 com.apple.WebCore 0x5c04ffad2 WebCore::SubresourceLoader::didReceiveData(char const*, unsigned int, long long, WebCore::DataPayloadType) + 98 SubresourceLoader.cpp:423 37 com.apple.WebCore 0x5c04ffd92 WebCore::SubresourceLoader::didReceiveDataOrBuffer(char const*, int, WTF::RefPtr<WebCore::SharedBuffer, WTF::DumbPtrTraits<WebCore::SharedBuffer> >&&, long long, WebCore::DataPayloadType) + 674 SubresourceLoader.cpp:455 36 com.apple.WebCore 0x5c0574ae9 WebCore::CachedRawResource::updateBuffer(WebCore::SharedBuffer&) + 361 CachedRawResource.cpp:73 35 com.apple.WebCore 0x5c0574d0b WebCore::CachedRawResource::notifyClientsDataWasReceived(char const*, unsigned int) + 155 CachedRawResource.cpp:135 34 com.apple.WebCore 0x5c0433856 WebCore::DocumentLoader::dataReceived(WebCore::CachedResource&, char const*, int) + 150 DocumentLoader.cpp:1102 33 com.apple.WebCore 0x5c0432f35 WebCore::DocumentLoader::dataReceived(char const*, int) + 613 DocumentLoader.cpp:1129 32 com.apple.WebCore 0x5c043300d WebCore::DocumentLoader::commitLoad(char const*, int) + 205 DocumentLoader.cpp:987 31 com.apple.WebKit 0x5b8f5f1af WebKit::WebFrameLoaderClient::committedLoad(WebCore::DocumentLoader*, char const*, int) + 79 WebFrameLoaderClient.cpp:1035 30 com.apple.WebCore 0x5c042dd96 WebCore::DocumentLoader::commitData(char const*, unsigned long) + 2630 DocumentLoader.cpp:0 29 com.apple.WebCore 0x5c046d31b WebCore::DocumentWriter::addData(char const*, unsigned long) + 219 DocumentWriter.cpp:254 28 com.apple.WebCore 0x5bfc88092 WebCore::DecodedDataDocumentParser::appendBytes(WebCore::DocumentWriter&, char const*, unsigned long) + 162 DecodedDataDocumentParser.cpp:50 27 com.apple.WebCore 0x5c01cc24a WebCore::HTMLDocumentParser::append(WTF::RefPtr<WTF::StringImpl, WTF::DumbPtrTraits<WTF::StringImpl> >&&) + 874 HTMLDocumentParser.cpp:418 26 com.apple.WebCore 0x5c01c934d WebCore::HTMLDocumentParser::pumpTokenizerIfPossible(WebCore::HTMLDocumentParser::SynchronousMode) + 205 HTMLDocumentParser.cpp:186 25 com.apple.WebCore 0x5c01c9a3e WebCore::HTMLDocumentParser::pumpTokenizer(WebCore::HTMLDocumentParser::SynchronousMode) + 526 HTMLDocumentParser.cpp:302 24 com.apple.WebCore 0x5c01caf13 WebCore::HTMLDocumentParser::pumpTokenizerLoop(WebCore::HTMLDocumentParser::SynchronousMode, bool, WebCore::PumpSession&) + 211 HTMLDocumentParser.cpp:254 23 com.apple.WebCore 0x5c01ca95d WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder() + 1581 HTMLDocumentParser.cpp:233 22 com.apple.WebCore 0x5c01ebf2f WebCore::HTMLScriptRunner::execute(WTF::Ref<WebCore::ScriptElement, WTF::DumbPtrTraits<WebCore::ScriptElement> >&&, WTF::TextPosition const&) + 79 HTMLScriptRunner.cpp:142 21 com.apple.WebCore 0x5c01ec104 WebCore::HTMLScriptRunner::runScript(WebCore::ScriptElement&, WTF::TextPosition const&) + 340 HTMLScriptRunner.cpp:252 20 com.apple.WebCore 0x5bfe2eecd WebCore::ScriptElement::prepareScript(WTF::TextPosition const&, WebCore::ScriptElement::LegacyTypeSupport) + 2589 ScriptElement.cpp:267 19 com.apple.WebCore 0x5bfe30c5b WebCore::ScriptElement::executeClassicScript(WebCore::ScriptSourceCode const&) + 891 ScriptElement.cpp:387 18 com.apple.WebCore 0x5bf80b7bd WebCore::ScriptController::evaluate(WebCore::ScriptSourceCode const&, WebCore::ExceptionDetails*) + 61 ScriptController.cpp:147 17 com.apple.WebCore 0x5bf80b436 WebCore::ScriptController::evaluateInWorld(WebCore::ScriptSourceCode const&, WebCore::DOMWrapperWorld&, WebCore::ExceptionDetails*) + 310 ScriptController.cpp:131 16 com.apple.WebCore 0x5bf80b6db WebCore::JSExecState::profiledEvaluate(JSC::ExecState*, JSC::ProfilingReason, JSC::SourceCode const&, JSC::JSValue, WTF::NakedPtr<JSC::Exception>&) + 75 JSExecState.h:80 15 com.apple.JavaScriptCore 0x5cfe08e71 JSC::profiledEvaluate(JSC::ExecState*, JSC::ProfilingReason, JSC::SourceCode const&, JSC::JSValue, WTF::NakedPtr<JSC::Exception>&) + 97 Completion.cpp:122 14 com.apple.JavaScriptCore 0x5cfe08cb5 JSC::evaluate(JSC::ExecState*, JSC::SourceCode const&, JSC::JSValue, WTF::NakedPtr<JSC::Exception>&) + 565 Completion.cpp:106 13 com.apple.JavaScriptCore 0x5cfb1081f JSC::Interpreter::executeProgram(JSC::SourceCode const&, JSC::ExecState*, JSC::JSObject*) + 6255 Interpreter.cpp:832 12 com.apple.JavaScriptCore 0x5cfb1128e JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*) + 206 JITCodeInlines.h:38 11 com.apple.JavaScriptCore 0x5ceebc0f2 vmEntryToJavaScript + 273 LowLevelInterpreter64.asm:295 10 com.apple.JavaScriptCore 0x5ceecf1eb llint_entry + 77442 LowLevelInterpreter.asm:899 9 com.apple.JavaScriptCore 0x5ceecf1eb llint_entry + 77442 LowLevelInterpreter.asm:899 8 0x43fb91a0102d 0x43fb91a01000 + 45 7 com.apple.JavaScriptCore 0x5cef536b1 long long JSC::APICallbackFunction::call<JSC::JSCallbackFunction>(JSC::ExecState*) + 577 APICallbackFunction.h:63 6 com.apple.WebKitTestRunner.InjectedBundle 0x5d62c49ed WTR::JSTestRunner::pathToLocalResource(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSValue*, unsigned long, OpaqueJSValue const* const*, OpaqueJSValue const**) + 109 JSTestRunner.cpp:1189 5 com.apple.JavaScriptCore 0x5cef77327 JSValueToStringCopy + 311 JSValueRef.cpp:437 4 com.apple.JavaScriptCore 0x5cef950fe OpaqueJSString::tryCreate(WTF::String&&) + 78 OpaqueJSString.cpp:50 3 com.apple.JavaScriptCore 0x5ce9e9ec5 WTF::ThreadSafeRefCountedBase::operator new(unsigned long) + 21 ThreadSafeRefCounted.h:37 2 com.apple.JavaScriptCore 0x5cea17dcc WTF::fastMalloc(unsigned long) + 124 FastMalloc.cpp:187 1 libsystem_malloc.dylib 0x7fff6355a783 malloc + 24 0 libsystem_malloc.dylib 0x7fff6355a82b malloc_zone_malloc + 139 ==== 1 (32 bytes) ROOT LEAK: 0x7fab7c32bf90 [32]
Attachments
Patch v1 (1.51 KB, patch)
2019-05-16 15:35 PDT, David Kilzer (:ddkilzer)
no flags
David Kilzer (:ddkilzer)
Comment 1 2019-05-16 15:30:00 PDT
David Kilzer (:ddkilzer)
Comment 2 2019-05-16 15:33:04 PDT
This regressed with the original commit: Bug 42541: WebKitTestRunner needs layoutTestController.pathToLocalResource <https://bugs.webkit.org/show_bug.cgi?id=42541> <https://trac.webkit.org/r84160>
David Kilzer (:ddkilzer)
Comment 3 2019-05-16 15:35:20 PDT
Created attachment 370076 [details] Patch v1
Joseph Pecoraro
Comment 4 2019-05-16 15:57:36 PDT
Comment on attachment 370076 [details] Patch v1 Heh. r=me
WebKit Commit Bot
Comment 5 2019-05-16 16:24:16 PDT
Comment on attachment 370076 [details] Patch v1 Clearing flags on attachment: 370076 Committed r245419: <https://trac.webkit.org/changeset/245419>
WebKit Commit Bot
Comment 6 2019-05-16 16:24:17 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.