<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>217112</bug_id>
          
          <creation_ts>2020-09-29 17:49:39 -0700</creation_ts>
          <short_desc>We should avoid making connections to the GPU Process during garbage collection</short_desc>
          <delta_ts>2020-09-29 20:28:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Canvas</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>dino</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1693247</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-09-29 17:49:39 -0700</bug_when>
    <thetext>1   0x15e1a1779 WTFCrash
2   0x10f41d7cb WTFCrashWithInfo(int, char const*, char const*, int)
3   0x11093ae59 WTF::WeakPtr&lt;WebKit::RemoteRenderingBackend, WTF::EmptyCounter&gt;::operator-&gt;() const
4   0x11093b44a WebKit::RemoteImageBufferMessageHandler::waitForCreateImageBufferBackend()
5   0x110964340 WebKit::RemoteImageBuffer&lt;WebKit::ImageBufferShareableIOSurfaceBackend&gt;::ensureBackendCreated() const
6   0x10fa3493c WebCore::ConcreteImageBuffer&lt;WebKit::ImageBufferShareableIOSurfaceBackend&gt;::memoryCost() const
7   0x1430ace73 WebCore::CanvasBase::memoryCost() const
8   0x140b9cc5c WebCore::JSHTMLCanvasElement::visitChildren(JSC::JSCell*, JSC::SlotVisitor&amp;)
9   0x15f3d4d64 JSC::SlotVisitor::visitChildren(JSC::JSCell const*)
10  0x15f3dc6ef JSC::SlotVisitor::drain(WTF::MonotonicTime)::$_3::operator()(JSC::MarkStackArray&amp;) const
11  0x15f3d5294 JSC::IterationStatus JSC::SlotVisitor::forEachMarkStack&lt;JSC::SlotVisitor::drain(WTF::MonotonicTime)::$_3&gt;(JSC::SlotVisitor::drain(WTF::MonotonicTime)::$_3 const&amp;)
12  0x15f3d521a JSC::SlotVisitor::drain(WTF::MonotonicTime)
13  0x15f3d5f77 JSC::SlotVisitor::drainFromShared(JSC::SlotVisitor::SharedDrainMode, WTF::MonotonicTime)
14  0x15f36d24b JSC::Heap::runBeginPhase(JSC::GCConductor)::$_19::operator()() const
15  0x15f36d0ae WTF::SharedTaskFunctor&lt;void (), JSC::Heap::runBeginPhase(JSC::GCConductor)::$_19&gt;::run()
16  0x15e227129 WTF::ParallelHelperClient::runTask(WTF::RefPtr&lt;WTF::SharedTask&lt;void ()&gt;, WTF::DumbPtrTraits&lt;WTF::SharedTask&lt;void ()&gt; &gt;, WTF::DefaultRefDerefTraits&lt;WTF::SharedTask&lt;void ()&gt; &gt; &gt; const&amp;)
17  0x15e22825a WTF::ParallelHelperPool::Thread::work()
18  0x15e1b7913 WTF::AutomaticThread::start(WTF::AbstractLocker const&amp;)::$_0::operator()() const
19  0x15e1b74fe WTF::Detail::CallableWrapper&lt;WTF::AutomaticThread::start(WTF::AbstractLocker const&amp;)::$_0, void&gt;::call()
20  0x15e1c9a22 WTF::Function&lt;void ()&gt;::operator()() const
21  0x15e279998 WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*)
22  0x15e285a68 WTF::wtfThreadEntryPoint(void*)
23  0x7fff2030f9b4 _pthread_start
24  0x7fff2030b4d7 thread_start</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693284</commentid>
    <comment_count>1</comment_count>
      <attachid>410086</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-09-29 19:10:26 -0700</bug_when>
    <thetext>Created attachment 410086
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693288</commentid>
    <comment_count>2</comment_count>
      <attachid>410086</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-09-29 19:45:42 -0700</bug_when>
    <thetext>Comment on attachment 410086
Patch

memoryCost() and externalMemoryCost() don&apos;t do IPC?

also, do we EVER need to make the backing store to answer this question? I&apos;d expect us to know the size up front... I guess it&apos;s about IOSurface size rounding or complicated layouts?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693290</commentid>
    <comment_count>3</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-09-29 19:57:05 -0700</bug_when>
    <thetext>Thanks for the review!

(In reply to Tim Horton from comment #2)
&gt; Comment on attachment 410086 [details]
&gt; Patch
&gt; 
&gt; memoryCost() and externalMemoryCost() don&apos;t do IPC?

Yeah — from what I could gather, memoryCost() and externalMemoryCost() just ask the image buffer backend; however, in the process of creating the backend when using GPUP, we end up also establishing a connection to the GPUP 😬

&gt; 
&gt; also, do we EVER need to make the backing store to answer this question? I&apos;d
&gt; expect us to know the size up front... I guess it&apos;s about IOSurface size
&gt; rounding or complicated layouts?

I think in theory, we shouldn’t; however, the ImageBufferBackend is the thing responsible for keeping track of sizes (and the thing that knows how to estimate memory cost).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693297</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-09-29 20:27:30 -0700</bug_when>
    <thetext>Committed r267780: &lt;https://trac.webkit.org/changeset/267780&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 410086.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693298</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-09-29 20:28:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/69775393&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410086</attachid>
            <date>2020-09-29 19:10:26 -0700</date>
            <delta_ts>2020-09-29 20:27:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217112-20200929191025.patch</filename>
            <type>text/plain</type>
            <size>2884</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3NzcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGEwMzg4NWJmYTI0ODUw
OGU3YzlhOTg3M2NlY2M2MjhmM2JlMjIxMy4uOTg5MGY0ZjRhMmFjODNhYWE1ZDJlZDdlZDY1ZjE5
NTU1NWM4NGQ0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIwLTA5LTI5ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFdlIHNob3VsZCBh
dm9pZCBtYWtpbmcgY29ubmVjdGlvbnMgdG8gdGhlIEdQVSBQcm9jZXNzIGR1cmluZyBnYXJiYWdl
IGNvbGxlY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxNzExMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEN1cnJlbnRseSwgaXQncyBwb3NzaWJsZSB0byBlc3RhYmxpc2ggYSBjb25uZWN0aW9uIHRv
IHRoZSBHUFUgcHJvY2VzcyBmcm9tIHRoZSB3ZWIgY29udGVudCBwcm9jZXNzIGluIHRoZSBtaWRk
bGUKKyAgICAgICAgb2YgZ2FyYmFnZSBjb2xsZWN0aW9uLiBUaGlzIG1heSBvY2N1ciBpZiBHQyBv
Y2N1cnMgYWZ0ZXIgYSBjYW52YXMgZWxlbWVudCBhbmQgaXRzIGltYWdlIGJ1ZmZlciBoYXMgYmVl
biBjcmVhdGVkLAorICAgICAgICBidXQgYmVmb3JlIHRoZSBpbWFnZSBidWZmZXIgaGFzIGluaXRp
YWxpemVkIGl0cyBiYWNrZW5kICh3aGljaCwgaW4gdGhlIGNhc2Ugb2YgdXNpbmcgdGhlIEdQVSBw
cm9jZXNzIGZvcgorICAgICAgICByZW5kZXJpbmcsIGlzIGEgUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZCkuIFdoaWxlIGVzdGltYXRpbmcgbWVtb3J5IGNvc3QgZm9yIHRoZSBjYW52YXMgZWxlbWVudCwg
aWYgYSByZW1vdGUKKyAgICAgICAgcmVuZGVyaW5nIGJhY2tlbmQgaGFzIG5vdCBiZWVuIGNyZWF0
ZWQgeWV0LCB3ZSBlbmQgdXAgY3JlYXRpbmcgaXQgdW5kZXJuZWF0aCBgZW5zdXJlQmFja2VuZENy
ZWF0ZWQoKWAsIGFuZAorICAgICAgICBzdWJzZXF1ZW50bHkgYmxvY2sgdGhlIHdlYiBwcm9jZXNz
IHVudGlsIHRoZSBHUFUgcHJvY2VzcyBpcyBmaW5pc2hlZCBjcmVhdGluZyB0aGUgcHJveHkgcmVu
ZGVyaW5nIGJhY2tlbmQuCisKKyAgICAgICAgV2hlbiBydW5uaW5nIGxheW91dCB0ZXN0cyBpbiBg
ZmFzdC9jYW52YXNgLCB0aGlzIGNhdXNlcyBzb21lIGxheW91dCB0ZXN0cyB0byBvY2Nhc2lvbmFs
bHkgaGl0IGFzc2VydGlvbnMgdW5kZXIKKyAgICAgICAgYFJlbW90ZUltYWdlQnVmZmVyTWVzc2Fn
ZUhhbmRsZXI6OndhaXRGb3JDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmRgLCBkdWUgdG8gYWNjZXNz
aW5nIGBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRgCisgICAgICAgIChhIHdlYWsgcG9pbnRlciku
CisKKyAgICAgICAgVG8gZml4IHRoaXMsIGluIHRoZSBjYXNlIHdoZXJlIHRoZSBpbWFnZSBidWZm
ZXIgZG9lcyBub3QgeWV0IGhhdmUgYSByZW5kZXJpbmcgYmFja2VuZCwgd2Ugc2hvdWxkIHNpbXBs
eSByZXR1cm4gMAorICAgICAgICBpbnN0ZWFkIG9mIHRlbGxpbmcgdGhlIEdQVSBwcm9jZXNzIHRv
IGFsbG9jYXRlIHRoZSBhY3R1YWwgaW1hZ2UgYnVmZmVyIGFuZCB0aGVuIHJldHVybmluZyBhIG5v
bi16ZXJvIGNvc3QuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUltYWdl
QnVmZmVyLmg6CisKIDIwMjAtMDktMjkgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4K
IAogICAgICAgICBbTWVkaWEgaW4gR1BVIFByb2Nlc3NdIFVzZSBWaWRlb0xheWVyTWFuYWdlciB0
byBtYW5hZ2UgbGF5ZXJzIG9mIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oCmlu
ZGV4IDNiYThjMTJiZWMwMGY0N2Q1MzM2MjhkZDA1YThkMGYyMzQ0YTU5MDkuLmM2YzE5ZTEyODlm
NDhiMDIwZWE3OGJjZTM5ZDEwNmMzZGI5M2IwN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUltYWdlQnVmZmVyLmgKQEAgLTExMiwxNiAr
MTEyLDEyIEBAIHByb3RlY3RlZDoKIAogICAgIHNpemVfdCBtZW1vcnlDb3N0KCkgY29uc3Qgb3Zl
cnJpZGUKICAgICB7Ci0gICAgICAgIGlmIChhdXRvKiBiYWNrZW5kID0gZW5zdXJlQmFja2VuZENy
ZWF0ZWQoKSkKLSAgICAgICAgICAgIHJldHVybiBiYWNrZW5kLT5tZW1vcnlDb3N0KCk7Ci0gICAg
ICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbV9iYWNrZW5kID8gbV9iYWNrZW5kLT5tZW1v
cnlDb3N0KCkgOiAwOwogICAgIH0KIAogICAgIHNpemVfdCBleHRlcm5hbE1lbW9yeUNvc3QoKSBj
b25zdCBvdmVycmlkZQogICAgIHsKLSAgICAgICAgaWYgKGF1dG8qIGJhY2tlbmQgPSBlbnN1cmVC
YWNrZW5kQ3JlYXRlZCgpKQotICAgICAgICAgICAgcmV0dXJuIGJhY2tlbmQtPmV4dGVybmFsTWVt
b3J5Q29zdCgpOwotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG1fYmFja2VuZCA/
IG1fYmFja2VuZC0+ZXh0ZXJuYWxNZW1vcnlDb3N0KCkgOiAwOwogICAgIH0KIAogICAgIE5hdGl2
ZUltYWdlUHRyIGNvcHlOYXRpdmVJbWFnZShCYWNraW5nU3RvcmVDb3B5IGNvcHlCZWhhdmlvciA9
IENvcHlCYWNraW5nU3RvcmUpIGNvbnN0IG92ZXJyaWRlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>