<?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>240274</bug_id>
          
          <creation_ts>2022-05-10 02:09:57 -0700</creation_ts>
          <short_desc>[GPU Process] [Filters] REGRESSION(r287782): FilterImages can be leaked</short_desc>
          <delta_ts>2022-05-17 11:49:24 -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>Layout and Rendering</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>
          
          <blocked>231253</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1867881</commentid>
    <comment_count>0</comment_count>
      <attachid>459104</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-05-10 02:09:57 -0700</bug_when>
    <thetext>Created attachment 459104
test case

Open the attached test case and watch the memory taken by WebKit. The memory allocation will climb very quickly. Getting the memgraph of WebKit will show the following allocations:

  28625 (3251M) &lt;&lt; TOTAL &gt;&gt;
      1016 (3238M) CONTENT:  malloc&lt;3342336&gt;
      + 1016 (3238M) _malloc_zone_malloc  (in libsystem_malloc.dylib) + 0  [0x7ff81af62a0b]
      +   1016 (3238M) bmalloc_heap_config_specialized_try_allocate_common_impl_slow  (in JavaScriptCore) + 882  [0x10b4f4432]  bmalloc_heap_config.c:43
      +     1016 (3238M) bmalloc_try_allocate_auxiliary_impl_impl_slow  (in JavaScriptCore) + 45  [0x10b4e7dcd]  bmalloc_heap_inlines.h:458
      +       1016 (3238M) bmalloc_try_allocate_auxiliary_impl_casual_case  (in JavaScriptCore) + 401  [0x10b4e6ae1]  bmalloc_heap_inlines.h:458
      +         1016 (3238M) Gigacage::tryMalloc(Gigacage::Kind, unsigned long)  (in JavaScriptCore) + 318  [0x10b4674ee]  Gigacage.cpp:94
      +           1016 (3238M) JSC::ArrayBufferContents::tryAllocate(unsigned long, unsigned int, JSC::ArrayBufferContents::InitializationPolicy)  (in JavaScriptCore) + 79  [0x10bd69cdf]  ArrayBuffer.cpp:125
      +             1016 (3238M) JSC::ArrayBuffer::tryCreate(unsigned long, unsigned int, JSC::ArrayBufferContents::InitializationPolicy)  (in JavaScriptCore) + 61  [0x10bd6a35d]  ArrayBuffer.cpp:280
      +               1016 (3238M) JSC::ArrayBuffer::tryCreateUninitialized(unsigned long, unsigned int)  (in JavaScriptCore) + 17  [0x10c41aad1]  ArrayBuffer.cpp:256
      +                 1016 (3238M) JSC::GenericTypedArrayView&lt;JSC::Uint8ClampedAdaptor&gt;::tryCreateUninitialized(unsigned long)  (in WebCore) + 38  [0x111081bd6]  GenericTypedArrayViewInlines.h:116
      +                   1016 (3238M) WebCore::PixelBuffer::tryCreate(WebCore::PixelBufferFormat const&amp;, WebCore::IntSize const&amp;)  (in WebCore) + 88  [0x1111de4f8]  PixelBuffer.cpp:79
      +                     1016 (3238M) WebCore::FilterImage::pixelBuffer(WebCore::AlphaPremultiplication)  (in WebCore) + 112  [0x1123ac5f0]  FilterImage.cpp:235
      +                       1016 (3238M) WebCore::FETurbulenceSoftwareApplier::apply(WebCore::Filter const&amp;, WTF::Vector&lt;WTF::Ref&lt;WebCore::FilterImage, WTF::RawPtrTraits&lt;WebCore::FilterImage&gt; &gt;, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt; const&amp;, WebCore::FilterImage&amp;) const  (in WebCore) + 48  [0x1123b9150]  FETurbulenceSoftwareApplier.cpp:344
      +                         1016 (3238M) WebCore::FilterEffect::apply(WebCore::Filter const&amp;, WTF::Vector&lt;WTF::Ref&lt;WebCore::FilterImage, WTF::RawPtrTraits&lt;WebCore::FilterImage&gt; &gt;, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt; const&amp;, WebCore::FilterResults&amp;, std::__1::optional&lt;WebCore::FilterEffectGeometry&gt; const&amp;)  (in WebCore) + 803  [0x111211093]  FilterEffect.cpp:152
      +                           1016 (3238M) WebCore::SVGFilter::apply(WebCore::FilterImage*, WebCore::FilterResults&amp;)  (in WebCore) + 143  [0x11138a03f]  SVGFilter.cpp:138
      +                             1016 (3238M) WebCore::Filter::apply(WebCore::ImageBuffer*, WebCore::FloatRect const&amp;, WebCore::FilterResults&amp;)  (in WebCore) + 242  [0x111210ad2]  Filter.cpp:95
      +                               1016 (3238M) WebCore::GraphicsContext::drawFilteredImageBuffer(WebCore::ImageBuffer*, WebCore::FloatRect const&amp;, WebCore::Filter&amp;, WebCore::FilterResults&amp;)  (in WebCore) + 44  [0x1111d259c]  GraphicsContext.cpp:345


This means the FilterImages are leaked when clearing the FilterResults while doing the animation dynamic update.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867882</commentid>
    <comment_count>1</comment_count>
      <attachid>459105</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-05-10 02:18:56 -0700</bug_when>
    <thetext>Created attachment 459105
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867999</commentid>
    <comment_count>2</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-05-10 13:20:32 -0700</bug_when>
    <thetext>I tried to write a test case but I could not. There is no way right now to get the total allocated memory (using malloc and bmalloc) by the WebContent process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868005</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-05-10 13:53:44 -0700</bug_when>
    <thetext>Committed r294015 (250449@main): &lt;https://commits.webkit.org/250449@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 459105.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868006</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-05-10 13:54:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/93052392&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>459104</attachid>
            <date>2022-05-10 02:09:57 -0700</date>
            <delta_ts>2022-05-10 02:09:57 -0700</delta_ts>
            <desc>test case</desc>
            <filename>test-dynamic-update-leaks.html</filename>
            <type>text/html</type>
            <size>907</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">PGJvZHk+CiAgICA8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9
IjYwMCIgaGVpZ2h0PSIyNDAiPgogICAgICAgIDxmaWx0ZXIgaWQ9InR1cmJ1bGVuY2VGaWx0ZXIi
IGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CiAgICAgICAgICAgIDxmZVR1cmJ1bGVuY2Ug
dHlwZT0idHVyYnVsZW5jZSIgYmFzZUZyZXF1ZW5jeT0iMC4wNSIgbnVtT2N0YXZlcz0iMiIgcmVz
dWx0PSJ0dXJidWxlbmNlIj4KICAgICAgICAgICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9
ImJhc2VGcmVxdWVuY3kiIGZyb209IjAiIHRvPSIwLjI1IiBkdXI9IjVzIiByZXBlYXRDb3VudD0i
aW5kZWZpbml0ZSIgLz4KICAgICAgICAgICAgPC9mZVR1cmJ1bGVuY2U+CiAgICAgICAgICAgIDxm
ZURpc3BsYWNlbWVudE1hcCBpbjI9InR1cmJ1bGVuY2UiIGluPSJTb3VyY2VHcmFwaGljIiBzY2Fs
ZT0iNTAiIHhDaGFubmVsU2VsZWN0b3I9IlIiIHlDaGFubmVsU2VsZWN0b3I9IkciLz4KICAgICAg
ICA8L2ZpbHRlcj4KICAgICAgICA8ZyBmaWx0ZXI9InVybCgjdHVyYnVsZW5jZUZpbHRlcikiPgog
ICAgICAgICAgICA8cmVjdCB4PSIwIiAgIHk9IjAiICAgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAi
IGZpbGw9InJlZCIvPgogICAgICAgICAgICAgICAgPHJlY3QgeD0iMTAwIiB5PSIwIiAgIHdpZHRo
PSIxMDAiIGhlaWdodD0iMTAwIiBmaWxsPSJncmVlbiIvPgogICAgICAgICAgICAgICAgPHJlY3Qg
eD0iMCIgICB5PSIxMDAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBmaWxsPSJibHVlIi8+CiAg
ICAgICAgICAgICAgICA8cmVjdCB4PSIxMDAiIHk9IjEwMCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIx
MDAiIGZpbGw9InllbGxvdyIvPgogICAgICAgIDwvZz4KICAgIDwvc3ZnPgo8L2JvZHk+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459105</attachid>
            <date>2022-05-10 02:18:56 -0700</date>
            <delta_ts>2022-05-10 13:53:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240274-20220510021855.patch</filename>
            <type>text/plain</type>
            <size>1910</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzOTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGIwOWYwOWRiNjVmNjE1
OWQ5ZWRmZjRhMjc0NDVmOWRiM2RlZDRkNi4uZWNmMjI3ODAzNmFhMTMyMjE0YzhiNWZjZDQ2ODM4
YjNhZTE4ZDllYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIyLTA1LTEwICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10g
W0ZpbHRlcnNdIEZpbHRlckltYWdlcyBjYW4gYmUgbGVha2VkCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDAyNzQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGEgRmlsdGVyRWZmZWN0IGlzIGR5bmFt
aWNhbGx5IHVwZGF0ZWQgd2UgY2xlYXIgaXRzIHJlc3VsdCBGaWx0ZXJJbWFnZS4KKyAgICAgICAg
V2UgYWxzbyBuZWVkIHRvIGNsZWFyIGFsbCB0aGUgcmVzdWx0IEZpbHRlckltYWdlcyBvZiBhbGwg
dGhlIEZpbHRlckVmZmVjdHMKKyAgICAgICAgcmVjdXJzaXZlbHkgd2hpY2ggdGFrZXMgdGhpcyBj
aGFuZ2luZyBGaWx0ZXJFZmZlY3QgYXMgYW4gaW5wdXQuCisKKyAgICAgICAgQ2xlYXJpbmcgdGhl
IHJlc3VsdCBGaWx0ZXJJbWFnZSBvZiB0aGUgY2hhbmdpbmcgRmlsdGVyRWZmZWN0IGhhcHBlbnMg
YnkKKyAgICAgICAgcmVtb3ZpbmcgdGhlIGVudHJ5IGZyb20gRmlsdGVyUmVzdWx0czo6bV9yZXN1
bHRzLgorCisgICAgICAgIENsZWFyaW5nIHRoZSBGaWx0ZXJJbWFnZXMgb2YgdGhlIGRlcGVuZGVu
dCBGaWx0ZXJFZmZlY3RzIGhhcHBlbnMgYnkgdXNpbmcgCisgICAgICAgIEZpbHRlclJlc3VsdHM6
Om1fcmVzdWx0UmVmZXJlbmNlcy4KKworICAgICAgICBXaGF0IGlzIG1pc3NpbmcgaXMgcmVtb3Zp
bmcgdGhlIEZpbHRlckltYWdlIGVudHJ5IGl0c2VsZiBmcm9tCisgICAgICAgIEZpbHRlclJlc3Vs
dHM6Om1fcmVzdWx0UmVmZXJlbmNlcy4gICAgICAgIAorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GaWx0ZXJSZXN1bHRzLmg6CisgICAgICAgIChXZWJDb3JlOjpGaWx0ZXJS
ZXN1bHRzOjpjbGVhckVmZmVjdFJlc3VsdCk6CisKIDIwMjItMDUtMDkgIEdhYnJpZWwgTmF2YSBN
YXJpbm8gIDxnbmF2YW1hcmlub0BhcHBsZS5jb20+CiAKICAgICAgICAgQVNTRVJUIGluIFdlYkNv
cmU6OlJlbmRlclRyZWVVcGRhdGVyOjp1cGRhdGVSZW5kZXJUcmVlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlclJlc3VsdHMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyUmVzdWx0cy5oCmlu
ZGV4IGU1MGI2YmNlOTliZTZjZGMyZGJiOTc5MjBiMTlmOTA5NTA2MjI2ZGYuLmE0MWIyYjBiZmMx
MmVhOTAyNjgyMTNkMTNmYmMwODYwNWM5MjgxNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyUmVzdWx0cy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyUmVzdWx0cy5oCkBAIC02Myw2
ICs2Myw4IEBAIHB1YmxpYzoKIAogICAgICAgICBmb3IgKGF1dG8mIHJlZmVyZW5jZSA6IG1fcmVz
dWx0UmVmZXJlbmNlcy5nZXQocmVzdWx0KSkKICAgICAgICAgICAgIGNsZWFyRWZmZWN0UmVzdWx0
KHJlZmVyZW5jZSk7CisgICAgICAgIAorICAgICAgICBtX3Jlc3VsdFJlZmVyZW5jZXMucmVtb3Zl
KHJlc3VsdCk7CiAgICAgfQogCiBwcml2YXRlOgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>