Bug 197965 - REGRESSION (r84160): Leak of OpaqueJSString under WTR::JSTestRunner::pathToLocalResource (32 bytes) in com.apple.WebKit.WebContent running layout tests
Summary: REGRESSION (r84160): Leak of OpaqueJSString under WTR::JSTestRunner::pathToLo...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Tools / Tests (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: David Kilzer (:ddkilzer)
URL:
Keywords: InRadar
Depends on: 42541
Blocks:
  Show dependency treegraph
 
Reported: 2019-05-16 15:29 PDT by David Kilzer (:ddkilzer)
Modified: 2019-05-16 16:24 PDT (History)
6 users (show)

See Also:


Attachments
Patch v1 (1.51 KB, patch)
2019-05-16 15:35 PDT, David Kilzer (:ddkilzer)
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description David Kilzer (:ddkilzer) 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]
Comment 1 David Kilzer (:ddkilzer) 2019-05-16 15:30:00 PDT
<rdar://problem/46731608>
Comment 2 David Kilzer (:ddkilzer) 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>
Comment 3 David Kilzer (:ddkilzer) 2019-05-16 15:35:20 PDT
Created attachment 370076 [details]
Patch v1
Comment 4 Joseph Pecoraro 2019-05-16 15:57:36 PDT
Comment on attachment 370076 [details]
Patch v1

Heh. r=me
Comment 5 WebKit Commit Bot 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>
Comment 6 WebKit Commit Bot 2019-05-16 16:24:17 PDT
All reviewed patches have been landed.  Closing bug.