Changes between Version 4 and Version 5 of Abandoned documents


Ignore:
Timestamp:
Aug 18, 2018 1:09:18 PM (6 years ago)
Author:
Simon Fraser
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Abandoned documents

    v4 v5  
    909045  0x6180c55fe WebCore::DocumentWriter::end()
    919146  0x618084a1f WebCore::DocumentLoader::finishedLoading()
    92 47  0x6180847bf WebCore::DocumentLoader::notifyFinished(WebCore::CachedResource&)
    93 48  0x6181c7fdf WebCore::CachedResource::checkNotify()
    94 49  0x6181ba091 WebCore::CachedResource::finishLoading(WebCore::SharedBuffer*)
    95 50  0x6181c4ec2 WebCore::CachedRawResource::finishLoading(WebCore::SharedBuffer*)
    96 51  0x618155a58 WebCore::SubresourceLoader::didFinishLoading(WebCore::NetworkLoadMetrics const&)
    97 52  0x610f6d50b WebKit::WebResourceLoader::didFinishResourceLoad(WebCore::NetworkLoadMetrics const&)
    98 53  0x610f71b8a void IPC::callMemberFunctionImpl<WebKit::WebResourceLoader, void (WebKit::WebResourceLoader::*)(WebCore::NetworkLoadMetrics const&), std::__1::tuple<WebCore::NetworkLoadMetrics>, 0ul>(WebKit::WebResourceLoader*, void (WebKit::WebResourceLoader::*)(WebCore::NetworkLoadMetrics const&), std::__1::tuple<WebCore::NetworkLoadMetrics>&&, std::__1::integer_sequence<unsigned long, 0ul>)
    99 54  0x610f71a10 void IPC::callMemberFunction<WebKit::WebResourceLoader, void (WebKit::WebResourceLoader::*)(WebCore::NetworkLoadMetrics const&), std::__1::tuple<WebCore::NetworkLoadMetrics>, std::__1::integer_sequence<unsigned long, 0ul> >(std::__1::tuple<WebCore::NetworkLoadMetrics>&&, WebKit::WebResourceLoader*, void (WebKit::WebResourceLoader::*)(WebCore::NetworkLoadMetrics const&))
    100 55  0x610f70bea void IPC::handleMessage<Messages::WebResourceLoader::DidFinishResourceLoad, WebKit::WebResourceLoader, void (WebKit::WebResourceLoader::*)(WebCore::NetworkLoadMetrics const&)>(IPC::Decoder&, WebKit::WebResourceLoader*, void (WebKit::WebResourceLoader::*)(WebCore::NetworkLoadMetrics const&))
    101 56  0x610f701fc WebKit::WebResourceLoader::didReceiveWebResourceLoaderMessage(IPC::Connection&, IPC::Decoder&)
    102 57  0x6103c73a9 WebKit::NetworkProcessConnection::didReceiveMessage(IPC::Connection&, IPC::Decoder&)
    103 58  0x610774e3c IPC::Connection::dispatchMessage(IPC::Decoder&)
    104 59  0x6107679ad IPC::Connection::dispatchMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >)
    105 60  0x6107759f7 IPC::Connection::dispatchOneIncomingMessage()
    106 61  0x610793bc8 IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >)::$_14::operator()()
    107 62  0x610793ad9 WTF::Function<void ()>::CallableWrapper<IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >)::$_14>::call()
    108 63  0x62609018f WTF::Function<void ()>::operator()() const
    109 64  0x6260e8f83 WTF::RunLoop::performWork()
    110 65  0x6260e9934 WTF::RunLoop::performWork(void*)
    111 66  0x7fff2e435a11 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__
    112 67  0x7fff2e4ef42c __CFRunLoopDoSource0
    113 68  0x7fff2e418470 __CFRunLoopDoSources0
    114 69  0x7fff2e4178ed __CFRunLoopRun
    115 70  0x7fff2e417153 CFRunLoopRunSpecific
    116 71  0x7fff2d701d96 RunCurrentEventLoopInMode
    117 72  0x7fff2d701b06 ReceiveNextEventCommon
    118 73  0x7fff2d701884 _BlockUntilNextEventMatchingListInModeWithFilter
    119 74  0x7fff2b9b2a73 _DPSNextEvent
    120 75  0x7fff2c148e34 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:]
    121 76  0x7fff2b9a7885 -[NSApplication run]
    122 77  0x7fff2b976a72 NSApplicationMain
    123 78  0x7fff56619d77 _xpc_objc_main
    124 79  0x7fff566189ca xpc_main
    125 80  0x1091cd077 WebKit::XPCServiceMain()
    126 81  0x1091cd36b main
    127 82  0x7fff562bf015 start
    128 83  0x1
     92[snip]
    12993
    13094Backtrace for token 5651
     
    15612026  0x6180c55b4 WebCore::DocumentWriter::end()
    15712127  0x618084a1f WebCore::DocumentLoader::finishedLoading()
    158 28  0x6180847bf WebCore::DocumentLoader::notifyFinished(WebCore::CachedResource&)
    159 29  0x6181c7fdf WebCore::CachedResource::checkNotify()
    160 30  0x6181ba091 WebCore::CachedResource::finishLoading(WebCore::SharedBuffer*)
    161 31  0x6181c4ec2 WebCore::CachedRawResource::finishLoading(WebCore::SharedBuffer*)
    162 32  0x618155a58 WebCore::SubresourceLoader::didFinishLoading(WebCore::NetworkLoadMetrics const&)
    163 33  0x610f6d50b WebKit::WebResourceLoader::didFinishResourceLoad(WebCore::NetworkLoadMetrics const&)
    164 34  0x610f71b8a void IPC::callMemberFunctionImpl<WebKit::WebResourceLoader, void (WebKit::WebResourceLoader::*)(WebCore::NetworkLoadMetrics const&), std::__1::tuple<WebCore::NetworkLoadMetrics>, 0ul>(WebKit::WebResourceLoader*, void (WebKit::WebResourceLoader::*)(WebCore::NetworkLoadMetrics const&), std::__1::tuple<WebCore::NetworkLoadMetrics>&&, std::__1::integer_sequence<unsigned long, 0ul>)
    165 35  0x610f71a10 void IPC::callMemberFunction<WebKit::WebResourceLoader, void (WebKit::WebResourceLoader::*)(WebCore::NetworkLoadMetrics const&), std::__1::tuple<WebCore::NetworkLoadMetrics>, std::__1::integer_sequence<unsigned long, 0ul> >(std::__1::tuple<WebCore::NetworkLoadMetrics>&&, WebKit::WebResourceLoader*, void (WebKit::WebResourceLoader::*)(WebCore::NetworkLoadMetrics const&))
    166 36  0x610f70bea void IPC::handleMessage<Messages::WebResourceLoader::DidFinishResourceLoad, WebKit::WebResourceLoader, void (WebKit::WebResourceLoader::*)(WebCore::NetworkLoadMetrics const&)>(IPC::Decoder&, WebKit::WebResourceLoader*, void (WebKit::WebResourceLoader::*)(WebCore::NetworkLoadMetrics const&))
    167 37  0x610f701fc WebKit::WebResourceLoader::didReceiveWebResourceLoaderMessage(IPC::Connection&, IPC::Decoder&)
    168 38  0x6103c73a9 WebKit::NetworkProcessConnection::didReceiveMessage(IPC::Connection&, IPC::Decoder&)
    169 39  0x610774e3c IPC::Connection::dispatchMessage(IPC::Decoder&)
    170 40  0x6107679ad IPC::Connection::dispatchMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >)
    171 41  0x6107759f7 IPC::Connection::dispatchOneIncomingMessage()
    172 42  0x610793bc8 IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >)::$_14::operator()()
    173 43  0x610793ad9 WTF::Function<void ()>::CallableWrapper<IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >)::$_14>::call()
    174 44  0x62609018f WTF::Function<void ()>::operator()() const
    175 45  0x6260e8f83 WTF::RunLoop::performWork()
    176 46  0x6260e9934 WTF::RunLoop::performWork(void*)
    177 47  0x7fff2e435a11 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__
    178 48  0x7fff2e4ef42c __CFRunLoopDoSource0
    179 49  0x7fff2e418470 __CFRunLoopDoSources0
    180 50  0x7fff2e4178ed __CFRunLoopRun
    181 51  0x7fff2e417153 CFRunLoopRunSpecific
    182 52  0x7fff2d701d96 RunCurrentEventLoopInMode
    183 53  0x7fff2d701b06 ReceiveNextEventCommon
    184 54  0x7fff2d701884 _BlockUntilNextEventMatchingListInModeWithFilter
    185 55  0x7fff2b9b2a73 _DPSNextEvent
    186 56  0x7fff2c148e34 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:]
    187 57  0x7fff2b9a7885 -[NSApplication run]
    188 58  0x7fff2b976a72 NSApplicationMain
    189 59  0x7fff56619d77 _xpc_objc_main
    190 60  0x7fff566189ca xpc_main
    191 61  0x1091cd077 WebKit::XPCServiceMain()
    192 62  0x1091cd36b main
    193 63  0x7fff562bf015 start
    194 64  0x1
     122[snip]
    195123}}}
     124
     125    The second stack there is normal document wrapper creation. The first one is more interesting, and points to the bug, which is that Document::removeFocusNavigationNodeOfSubtree() store the Document in a RefPtr data member of the same document, creating a ref cycle.