<?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>207957</bug_id>
          
          <creation_ts>2020-02-19 13:22:58 -0800</creation_ts>
          <short_desc>Safari jetsams with repeated drawImage/getImageData</short_desc>
          <delta_ts>2020-03-23 22:05:57 -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>Images</component>
          <version>Safari 13</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>iOS 13</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>Critical</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jerry Jongerius">jerryj</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1620826</commentid>
    <comment_count>0</comment_count>
    <who name="Jerry Jongerius">jerryj</who>
    <bug_when>2020-02-19 13:22:58 -0800</bug_when>
    <thetext>Tested on iPad 13.3.1
1. visit https://www.duckware.com/test/webkit/browsercrash.html
2. Play video, then immediately pause video
3. Click &apos;Run Test&apos; button
4. within 5 seconds, browser crashes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621114</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2020-02-19 22:48:16 -0800</bug_when>
    <thetext>I can reproduce on an iPhone, this test runs out of memory. I don&apos;t immediately see any leak in JS, so looks like either a leak in WebKit, or insufficiently active garbage collection.

It just does this repeatedly:

  var ctx1 = can.getContext(&quot;2d&quot;);
  ctx1.drawImage( el(&quot;video&quot;), 0, 0, can.width, can.height );
  ctx1.getImageData( 0, 0, can.width, can.height );</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621115</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-02-19 22:48:29 -0800</bug_when>
    <thetext>&lt;rdar://problem/59619922&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621994</commentid>
    <comment_count>3</comment_count>
    <who name="Jerry Jongerius">jerryj</who>
    <bug_when>2020-02-23 08:03:11 -0800</bug_when>
    <thetext>Once the bug is understood, if would be very helpful if &apos;workaround&apos; code could be designed to allow my WebApp to run on Apple systems (with the bug) -- until a fix is pushed out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633049</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-03-23 14:56:40 -0700</bug_when>
    <thetext>Growth is apparent on macOS too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633070</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-03-23 15:36:44 -0700</bug_when>
    <thetext>Looks like SubimageCacheWithTimer holds onto every frame!

    frame #0: 0x00000004a3859a7f WebCore`WebCore::CVPixelBufferReleaseInfoCallback(refcon=0x0000600001354c30) at PixelBufferConformerCV.cpp:128:5
    frame #1: 0x00007fff3543d930 CoreGraphics`data_provider_finalize + 64
    frame #2: 0x00007fff3540306e CoreGraphics`data_provider_retain_count + 74
    frame #3: 0x00007fff350c5847 CoreFoundation`_CFRelease + 460
    frame #4: 0x00007fff3546ae47 CoreGraphics`image_finalize + 103
    frame #5: 0x00007fff350c5769 CoreFoundation`_CFRelease + 238
    frame #6: 0x00000004a01d6b69 WebCore`WTF::RetainPtr&lt;CGImage*&gt;::~RetainPtr(this=0x00007ff9a2144010) at RetainPtr.h:170:9
    frame #7: 0x00000004a01cf275 WebCore`WTF::RetainPtr&lt;CGImage*&gt;::~RetainPtr(this=0x00007ff9a2144010) at RetainPtr.h:168:1
  * frame #8: 0x00000004a384284f WebCore`WebCore::SubimageCacheWithTimer::SubimageCacheEntry::~SubimageCacheEntry(this=0x00007ff9a2144010) at SubimageCacheWithTimer.h:48:12
    frame #9: 0x00000004a3840aa5 WebCore`WebCore::SubimageCacheWithTimer::SubimageCacheEntry::~SubimageCacheEntry(this=0x00007ff9a2144010) at SubimageCacheWithTimer.h:48:12
    frame #10: 0x00000004a3846f61 WebCore`WTF::HashTable&lt;WebCore::SubimageCacheWithTimer::SubimageCacheEntry, WebCore::SubimageCacheWithTimer::SubimageCacheEntry, WTF::IdentityExtractor, WebCore::SubimageCacheWithTimer::SubimageCacheHash, WebCore::SubimageCacheWithTimer::SubimageCacheEntryTraits, WebCore::SubimageCacheWithTimer::SubimageCacheEntryTraits&gt;::deallocateTable(table=0x00007ff9a2144010) at HashTable.h:1224:27
    frame #11: 0x00000004a3846e3b WebCore`WTF::HashTable&lt;WebCore::SubimageCacheWithTimer::SubimageCacheEntry, WebCore::SubimageCacheWithTimer::SubimageCacheEntry, WTF::IdentityExtractor, WebCore::SubimageCacheWithTimer::SubimageCacheHash, WebCore::SubimageCacheWithTimer::SubimageCacheEntryTraits, WebCore::SubimageCacheWithTimer::SubimageCacheEntryTraits&gt;::clear(this=0x00007ff9d1c39658) at HashTable.h:1371:9
    frame #12: 0x00000004a38408a5 WebCore`WTF::HashSet&lt;WebCore::SubimageCacheWithTimer::SubimageCacheEntry, WebCore::SubimageCacheWithTimer::SubimageCacheHash, WebCore::SubimageCacheWithTimer::SubimageCacheEntryTraits&gt;::clear(this=0x00007ff9d1c39658) at HashSet.h:313:12
    frame #13: 0x00000004a38407ae WebCore`WebCore::SubimageCacheWithTimer::invalidateCacheTimerFired(this=0x00007ff9d1c39640) at SubimageCacheWithTimer.cpp:86:13
    frame #14: 0x00000004a3846617 WebCore`decltype(__f=0x00007ff9d1c376a8, __a0=0x00007ff9d1c376b8)).*fp()) std::__1::__invoke&lt;void (WebCore::SubimageCacheWithTimer::*&amp;)(), WebCore::SubimageCacheWithTimer*&amp;, void&gt;(void (WebCore::SubimageCacheWithTimer::*&amp;)(), WebCore::SubimageCacheWithTimer*&amp;) at type_traits:4366:1
    frame #15: 0x00000004a3846590 WebCore`std::__1::__bind_return&lt;void (WebCore::SubimageCacheWithTimer::*)(), std::__1::tuple&lt;WebCore::SubimageCacheWithTimer*&gt;, std::__1::tuple&lt;&gt;, __is_valid_bind_return&lt;void (WebCore::SubimageCacheWithTimer::*)(), std::__1::tuple&lt;WebCore::SubimageCacheWithTimer*&gt;, std::__1::tuple&lt;&gt; &gt;::value&gt;::type std::__1::__apply_functor&lt;void (__f=0x00007ff9d1c376a8, __bound_args=size=1, (null)=__tuple_indices&lt;0&gt; @ 0x00007ffeec6e62b8, __args=size=0)(), std::__1::tuple&lt;WebCore::SubimageCacheWithTimer*&gt;, 0ul, std::__1::tuple&lt;&gt; &gt;(void (WebCore::SubimageCacheWithTimer::*&amp;)(), std::__1::tuple&lt;WebCore::SubimageCacheWithTimer*&gt;&amp;, std::__1::__tuple_indices&lt;0ul&gt;, std::__1::tuple&lt;&gt;&amp;&amp;) at functional:2716:12
    frame #16: 0x00000004a3846549 WebCore`std::__1::__bind_return&lt;void (WebCore::SubimageCacheWithTimer::*)(), std::__1::tuple&lt;WebCore::SubimageCacheWithTimer*&gt;, std::__1::tuple&lt;&gt;, __is_valid_bind_return&lt;void (WebCore::SubimageCacheWithTimer::*)(), std::__1::tuple&lt;WebCore::SubimageCacheWithTimer*&gt;, std::__1::tuple&lt;&gt; &gt;::value&gt;::type std::__1::__bind&lt;void (this=0x00007ff9d1c376a8)(), WebCore::SubimageCacheWithTimer*&gt;::operator()&lt;&gt;() at functional:2749:20
    frame #17: 0x00000004a38464ee WebCore`WTF::Detail::CallableWrapper&lt;std::__1::__bind&lt;void (WebCore::SubimageCacheWithTimer::*&amp;)(), WebCore::SubimageCacheWithTimer*&gt;, void&gt;::call(this=0x00007ff9d1c376a0) at Function.h:52:39
    frame #18: 0x00000004a0017692 WebCore`WTF::Function&lt;void ()&gt;::operator(this=0x00007ff9d1c39698)() const at Function.h:84:35
    frame #19: 0x00000004a24e0a56 WebCore`WebCore::DeferrableOneShotTimer::fired(this=0x00007ff9d1c39670) at Timer.h:189:9
    frame #20: 0x00000004a360af64 WebCore`WebCore::ThreadTimers::sharedTimerFiredInternal(this=0x00007ff9c1c2c800) at ThreadTimers.cpp:127:23
    frame #21: 0x00000004a3612be1 WebCore`WebCore::ThreadTimers::setSharedTimer(this=0x00007ff9c1c2c838)::$_0::operator()() const at ThreadTimers.cpp:67:80</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633132</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-03-23 16:40:31 -0700</bug_when>
    <thetext>SubimageCacheWithTimer only clears itself if you haven&apos;t put anything in for 1 second, which never happens if you touch the cache every frame. So it just accumulates images.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633169</commentid>
    <comment_count>7</comment_count>
      <attachid>394335</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-03-23 18:08:55 -0700</bug_when>
    <thetext>Created attachment 394335
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633189</commentid>
    <comment_count>8</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-03-23 18:59:44 -0700</bug_when>
    <thetext>(In reply to Jerry Jongerius from comment #3)
&gt; Once the bug is understood, if would be very helpful if &apos;workaround&apos; code
&gt; could be designed to allow my WebApp to run on Apple systems (with the bug)
&gt; -- until a fix is pushed out.

The workaround, I think, would be to avoid putting the &lt;video&gt; inside a &lt;table&gt;. Make the video element 960x540.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633243</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-03-23 22:05:56 -0700</bug_when>
    <thetext>Committed r258908: &lt;https://trac.webkit.org/changeset/258908&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 394335.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394335</attachid>
            <date>2020-03-23 18:08:55 -0700</date>
            <delta_ts>2020-03-23 22:05:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207957-20200323180854.patch</filename>
            <type>text/plain</type>
            <size>8795</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4ODgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2YzMDM2MTBlNmM0MjMy
YTQzZmUyZDAxZDFkZDYxNjM5ZjJmODMwMC4uNWY2NjQwODI3YTk1NzMzMjk3NzdiMDRjYmE1MjVi
MGExNzNmYjYxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIwLTAzLTIzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNhZmFyaSBqZXRz
YW1zIHdpdGggcmVwZWF0ZWQgZHJhd0ltYWdlL2dldEltYWdlRGF0YQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA3OTU3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3ViaW1hZ2VDYWNoZVdpdGhUaW1lciB1
c2VkIGEgRGVmZXJyYWJsZU9uZVNob3RUaW1lciB0byBjbGVhciBpdHNlbGYsIGJ1dCBpZiBjb250
ZW50CisgICAgICAgIGFkZHMgYW4gZW50cnkgdG8gdGhlIGNhY2hlIG9uIGV2ZXJ5IGZyYW1lIChh
cyBtaWdodCBjb250ZW50IGRyYXdpbmcgdmlkZW8gZnJhbWVzIGludG8gYSBjYW52YXMpCisgICAg
ICAgIHRoZW4gdGhlIGNhY2hlIHdhcyBuZXZlciBjbGVhcmVkLiBOb3Igd2FzIGl0IGNsZWFyZWQg
dmlhIGEgbWVtb3J5IHdhcm5pbmcuCisKKyAgICAgICAgRml4IGJ5IHRyYWNraW5nIGNhY2hlIGVu
dHJpZXMgYnkgYWdlLCBhbmQgdXNpbmcgYSByZXBlYXRpbmcgdGltZXIgdG8gcHJ1bmUgb2xkIGlt
YWdlcworICAgICAgICBmcm9tIHRoZSBjYWNoZS4gQWxzbyBob29rIHVwIHRoZSBjYWNoZSB0byB0
aGUgbWVtb3J5IHByZXNzdXJlIGhhbmRsZXIsIHdoaWNoIGNsZWFycyBpdC4KKworICAgICAgICBS
ZWR1Y2UgdGhlIHRpbWVyIGZyZXF1ZW5jeSBmcm9tIDFzIHRvIDUwMG1zLCBzaW5jZSB0aGF0IHdh
cyBvYnNlcnZlZCB0byByZWR1Y2UgdGhlIG1lbW9yeSB1c2UKKyAgICAgICAgb24gdGhlIHByb3Zp
ZGVkIHRlc3RjYXNlIGZyb20gfjYwME0gdG8gfjM1ME0sIG1ha2luZyBqZXRzYW0gbGVzcyBsaWtl
bHkuCisKKyAgICAgICAgUmVuYW1lIG1faW1hZ2VzIHRvIG1faW1hZ2VDb3VudHMgdG8gbWFrZSBp
dHMgcm9sZSBjbGVhcmVyLgorCisgICAgICAgICogcGFnZS9jb2NvYS9NZW1vcnlSZWxlYXNlQ29j
b2EubW06CisgICAgICAgIChXZWJDb3JlOjpwbGF0Zm9ybVJlbGVhc2VNZW1vcnkpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL1N1YmltYWdlQ2FjaGVXaXRoVGltZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U3ViaW1hZ2VDYWNoZVdpdGhUaW1lcjo6Y2xlYXIpOgorICAgICAgICAo
V2ViQ29yZTo6U3ViaW1hZ2VDYWNoZUFkZGVyOjp0cmFuc2xhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6U3ViaW1hZ2VDYWNoZVdpdGhUaW1lcjo6U3ViaW1hZ2VDYWNoZVdpdGhUaW1lcik6CisgICAg
ICAgIChXZWJDb3JlOjpTdWJpbWFnZUNhY2hlV2l0aFRpbWVyOjpwcnVuZUNhY2hlVGltZXJGaXJl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpTdWJpbWFnZUNhY2hlV2l0aFRpbWVyOjpwcnVuZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTdWJpbWFnZUNhY2hlV2l0aFRpbWVyOjpzdWJpbWFnZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTdWJpbWFnZUNhY2hlV2l0aFRpbWVyOjpjbGVhckltYWdlQW5kU3ViaW1h
Z2VzKToKKyAgICAgICAgKFdlYkNvcmU6OlN1YmltYWdlQ2FjaGVXaXRoVGltZXI6OmNsZWFyQWxs
KToKKyAgICAgICAgKFdlYkNvcmU6OlN1YmltYWdlQ2FjaGVXaXRoVGltZXI6OmludmFsaWRhdGVD
YWNoZVRpbWVyRmlyZWQpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nn
L1N1YmltYWdlQ2FjaGVXaXRoVGltZXIuaDoKKwogMjAyMC0wMy0yMyAgU2ltb24gRnJhc2VyICA8
c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TIFdLMl0gY29tcG9zaXRpbmcv
b3ZlcmZsb3cvZHluYW1pYy1jb21wb3NpdGVkLXNjcm9sbGluZy1zdGF0dXMuaHRtbCBhc3NlcnRz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL01lbW9yeVJlbGVhc2VDb2Nv
YS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvTWVtb3J5UmVsZWFzZUNvY29hLm1tCmlu
ZGV4IDczZjgwYmRmOGRhZmZlNTdlOWJmMDZhNWQ2OTFmNzZiMTg5NzBjOGEuLjUxZWVkNjZjNGRm
YmQ1NDFiYzI5ZGFmOTgzMDFkOGNlOGMyYWFlNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvY29jb2EvTWVtb3J5UmVsZWFzZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvY29jb2EvTWVtb3J5UmVsZWFzZUNvY29hLm1tCkBAIC0zMSw2ICszMSw3IEBACiAjaW1wb3J0
ICJJT1N1cmZhY2VQb29sLmgiCiAjaW1wb3J0ICJMYXllclBvb2wuaCIKICNpbXBvcnQgIkxvY2Fs
ZUNvY29hLmgiCisjaW1wb3J0ICJTdWJpbWFnZUNhY2hlV2l0aFRpbWVyLmgiCiAjaW1wb3J0ICJT
eXN0ZW1Gb250RGF0YWJhc2VDb3JlVGV4dC5oIgogI2ltcG9ydCA8bm90aWZ5Lmg+CiAjaW1wb3J0
IDxwYWwvc3BpL2lvcy9HcmFwaGljc1NlcnZpY2VzU1BJLmg+CkBAIC02OSw2ICs3MCwxMCBAQCB2
b2lkIHBsYXRmb3JtUmVsZWFzZU1lbW9yeShDcml0aWNhbCkKICNpZiBIQVZFKElPU1VSRkFDRSkK
ICAgICBJT1N1cmZhY2VQb29sOjpzaGFyZWRQb29sKCkuZGlzY2FyZEFsbFN1cmZhY2VzKCk7CiAj
ZW5kaWYKKworI2lmIENBQ0hFX1NVQklNQUdFUworICAgIFN1YmltYWdlQ2FjaGVXaXRoVGltZXI6
OmNsZWFyKCk7CisjZW5kaWYKIH0KIAogdm9pZCBqZXR0aXNvbkV4cGVuc2l2ZU9iamVjdHNPblRv
cExldmVsTmF2aWdhdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jZy9TdWJpbWFnZUNhY2hlV2l0aFRpbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL1N1YmltYWdlQ2FjaGVXaXRoVGltZXIuY3BwCmluZGV4IGNmZGUy
OWYxYmYzOTMwYzZiNGE1NGI5MmU5YmE0ZmQzMzgxMGRmOWQuLmIwNzAyNjg1NmQ1M2YxYjYzYWE4
ODg1ZmIxZTQxMTMzMDM3Y2ZlYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL1N1YmltYWdlQ2FjaGVXaXRoVGltZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1N1YmltYWdlQ2FjaGVXaXRoVGltZXIuY3BwCkBAIC0z
Niw3ICszNiw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU3ViaW1hZ2VDYWNoZVdpdGhUaW1l
ciogU3ViaW1hZ2VDYWNoZVdpdGhUaW1lcjo6c19jYWNoZTsKIAotc3RhdGljIGNvbnN0IFNlY29u
ZHMgc3ViaW1hZ2VDYWNoZUNsZWFyRGVsYXkgeyAxX3MgfTsKK3N0YXRpYyBjb25zdCBTZWNvbmRz
IHN1YmltYWdlQ2FjaGVQcnVuZURlbGF5IHsgNTAwX21zIH07CitzdGF0aWMgY29uc3QgU2Vjb25k
cyBzdWJpbWFnZUNhY2hlRW50cnlMaWZldGltZSB7IDUwMF9tcyB9Owogc3RhdGljIGNvbnN0IGlu
dCBtYXhTdWJpbWFnZUNhY2hlU2l6ZSA9IDMwMDsKIAogUmV0YWluUHRyPENHSW1hZ2VSZWY+IFN1
YmltYWdlQ2FjaGVXaXRoVGltZXI6OmdldFN1YmltYWdlKENHSW1hZ2VSZWYgaW1hZ2UsIGNvbnN0
IEZsb2F0UmVjdCYgcmVjdCkKQEAgLTUwLDYgKzUxLDEyIEBAIHZvaWQgU3ViaW1hZ2VDYWNoZVdp
dGhUaW1lcjo6Y2xlYXJJbWFnZShDR0ltYWdlUmVmIGltYWdlKQogICAgICAgICBzdWJpbWFnZUNh
Y2hlKCkuY2xlYXJJbWFnZUFuZFN1YmltYWdlcyhpbWFnZSk7CiB9CiAKK3ZvaWQgU3ViaW1hZ2VD
YWNoZVdpdGhUaW1lcjo6Y2xlYXIoKQoreworICAgIGlmIChzdWJpbWFnZUNhY2hlRXhpc3RzKCkp
CisgICAgICAgIHN1YmltYWdlQ2FjaGUoKS5jbGVhckFsbCgpOworfQorCiBzdHJ1Y3QgU3ViaW1h
Z2VSZXF1ZXN0IHsKICAgICBDR0ltYWdlUmVmIGltYWdlOwogICAgIGNvbnN0IEZsb2F0UmVjdCYg
cmVjdDsKQEAgLTcwLDQyICs3Nyw2NSBAQCBzdHJ1Y3QgU3ViaW1hZ2VDYWNoZUFkZGVyIHsKICAg
ICBzdGF0aWMgdm9pZCB0cmFuc2xhdGUoU3ViaW1hZ2VDYWNoZVdpdGhUaW1lcjo6U3ViaW1hZ2VD
YWNoZUVudHJ5JiBlbnRyeSwgY29uc3QgU3ViaW1hZ2VSZXF1ZXN0JiByZXF1ZXN0LCB1bnNpZ25l
ZCAvKmhhc2hDb2RlKi8pCiAgICAgewogICAgICAgICBlbnRyeS5pbWFnZSA9IHJlcXVlc3QuaW1h
Z2U7Ci0gICAgICAgIGVudHJ5LnJlY3QgPSByZXF1ZXN0LnJlY3Q7CiAgICAgICAgIGVudHJ5LnN1
YmltYWdlID0gYWRvcHRDRihDR0ltYWdlQ3JlYXRlV2l0aEltYWdlSW5SZWN0KHJlcXVlc3QuaW1h
Z2UsIHJlcXVlc3QucmVjdCkpOworICAgICAgICBlbnRyeS5yZWN0ID0gcmVxdWVzdC5yZWN0Owog
ICAgIH0KIH07CiAKIFN1YmltYWdlQ2FjaGVXaXRoVGltZXI6OlN1YmltYWdlQ2FjaGVXaXRoVGlt
ZXIoKQotICAgIDogbV90aW1lcigqdGhpcywgJlN1YmltYWdlQ2FjaGVXaXRoVGltZXI6OmludmFs
aWRhdGVDYWNoZVRpbWVyRmlyZWQsIHN1YmltYWdlQ2FjaGVDbGVhckRlbGF5KQorICAgIDogbV90
aW1lcigqdGhpcywgJlN1YmltYWdlQ2FjaGVXaXRoVGltZXI6OnBydW5lQ2FjaGVUaW1lckZpcmVk
KQogewogfQogCi12b2lkIFN1YmltYWdlQ2FjaGVXaXRoVGltZXI6OmludmFsaWRhdGVDYWNoZVRp
bWVyRmlyZWQoKQordm9pZCBTdWJpbWFnZUNhY2hlV2l0aFRpbWVyOjpwcnVuZUNhY2hlVGltZXJG
aXJlZCgpCiB7Ci0gICAgbV9pbWFnZXMuY2xlYXIoKTsKLSAgICBtX2NhY2hlLmNsZWFyKCk7Cisg
ICAgcHJ1bmUoKTsKKyAgICBpZiAobV9jYWNoZS5pc0VtcHR5KCkpIHsKKyAgICAgICAgQVNTRVJU
KG1faW1hZ2VDb3VudHMuaXNFbXB0eSgpKTsKKyAgICAgICAgbV90aW1lci5zdG9wKCk7CisgICAg
fQorfQorCit2b2lkIFN1YmltYWdlQ2FjaGVXaXRoVGltZXI6OnBydW5lKCkKK3sKKyAgICBhdXRv
IG5vdyA9IE1vbm90b25pY1RpbWU6Om5vdygpOworCisgICAgVmVjdG9yPFN1YmltYWdlQ2FjaGVF
bnRyeT4gdG9CZVJlbW92ZWQ7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGVudHJ5IDogbV9jYWNo
ZSkgeworICAgICAgICBpZiAoKG5vdyAtIGVudHJ5Lmxhc3RBY2Nlc3NUaW1lKSA+IHN1YmltYWdl
Q2FjaGVFbnRyeUxpZmV0aW1lKQorICAgICAgICAgICAgdG9CZVJlbW92ZWQuYXBwZW5kKGVudHJ5
KTsKKyAgICB9CisKKyAgICBmb3IgKGF1dG8mIGVudHJ5IDogdG9CZVJlbW92ZWQpIHsKKyAgICAg
ICAgbV9pbWFnZUNvdW50cy5yZW1vdmUoZW50cnkuaW1hZ2UuZ2V0KCkpOworICAgICAgICBtX2Nh
Y2hlLnJlbW92ZShlbnRyeSk7CisgICAgfQogfQogCiBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gU3Vi
aW1hZ2VDYWNoZVdpdGhUaW1lcjo6c3ViaW1hZ2UoQ0dJbWFnZVJlZiBpbWFnZSwgY29uc3QgRmxv
YXRSZWN0JiByZWN0KQogewotICAgIG1fdGltZXIucmVzdGFydCgpOworICAgIGlmICghbV90aW1l
ci5pc0FjdGl2ZSgpKQorICAgICAgICBtX3RpbWVyLnN0YXJ0UmVwZWF0aW5nKHN1YmltYWdlQ2Fj
aGVQcnVuZURlbGF5KTsKKwogICAgIGlmIChtX2NhY2hlLnNpemUoKSA9PSBtYXhTdWJpbWFnZUNh
Y2hlU2l6ZSkgewogICAgICAgICBTdWJpbWFnZUNhY2hlRW50cnkgZW50cnkgPSAqbV9jYWNoZS5i
ZWdpbigpOwotICAgICAgICBtX2ltYWdlcy5yZW1vdmUoZW50cnkuaW1hZ2UuZ2V0KCkpOworICAg
ICAgICBtX2ltYWdlQ291bnRzLnJlbW92ZShlbnRyeS5pbWFnZS5nZXQoKSk7CiAgICAgICAgIG1f
Y2FjaGUucmVtb3ZlKGVudHJ5KTsKICAgICB9CiAKICAgICBBU1NFUlQobV9jYWNoZS5zaXplKCkg
PCBtYXhTdWJpbWFnZUNhY2hlU2l6ZSk7CiAgICAgYXV0byByZXN1bHQgPSBtX2NhY2hlLmFkZDxT
dWJpbWFnZUNhY2hlQWRkZXI+KFN1YmltYWdlUmVxdWVzdChpbWFnZSwgcmVjdCkpOwogICAgIGlm
IChyZXN1bHQuaXNOZXdFbnRyeSkKLSAgICAgICAgbV9pbWFnZXMuYWRkKGltYWdlKTsKKyAgICAg
ICAgbV9pbWFnZUNvdW50cy5hZGQoaW1hZ2UpOwogCisgICAgcmVzdWx0Lml0ZXJhdG9yLT5sYXN0
QWNjZXNzVGltZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOwogICAgIHJldHVybiByZXN1bHQuaXRl
cmF0b3ItPnN1YmltYWdlOwogfQogCiB2b2lkIFN1YmltYWdlQ2FjaGVXaXRoVGltZXI6OmNsZWFy
SW1hZ2VBbmRTdWJpbWFnZXMoQ0dJbWFnZVJlZiBpbWFnZSkKIHsKLSAgICBpZiAobV9pbWFnZXMu
Y29udGFpbnMoaW1hZ2UpKSB7CisgICAgaWYgKG1faW1hZ2VDb3VudHMuY29udGFpbnMoaW1hZ2Up
KSB7CiAgICAgICAgIFZlY3RvcjxTdWJpbWFnZUNhY2hlRW50cnk+IHRvQmVSZW1vdmVkOwogICAg
ICAgICBmb3IgKGNvbnN0IGF1dG8mIGVudHJ5IDogbV9jYWNoZSkgewogICAgICAgICAgICAgaWYg
KGVudHJ5LmltYWdlLmdldCgpID09IGltYWdlKQpAQCAtMTE1LDEwICsxNDUsMTYgQEAgdm9pZCBT
dWJpbWFnZUNhY2hlV2l0aFRpbWVyOjpjbGVhckltYWdlQW5kU3ViaW1hZ2VzKENHSW1hZ2VSZWYg
aW1hZ2UpCiAgICAgICAgIGZvciAoYXV0byYgZW50cnkgOiB0b0JlUmVtb3ZlZCkKICAgICAgICAg
ICAgIG1fY2FjaGUucmVtb3ZlKGVudHJ5KTsKIAotICAgICAgICBtX2ltYWdlcy5yZW1vdmVBbGwo
aW1hZ2UpOworICAgICAgICBtX2ltYWdlQ291bnRzLnJlbW92ZUFsbChpbWFnZSk7CiAgICAgfQog
fQogCit2b2lkIFN1YmltYWdlQ2FjaGVXaXRoVGltZXI6OmNsZWFyQWxsKCkKK3sKKyAgICBtX2lt
YWdlQ291bnRzLmNsZWFyKCk7CisgICAgbV9jYWNoZS5jbGVhcigpOworfQorCiBTdWJpbWFnZUNh
Y2hlV2l0aFRpbWVyJiBTdWJpbWFnZUNhY2hlV2l0aFRpbWVyOjpzdWJpbWFnZUNhY2hlKCkKIHsK
ICAgICBpZiAoIXNfY2FjaGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jZy9TdWJpbWFnZUNhY2hlV2l0aFRpbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jZy9TdWJpbWFnZUNhY2hlV2l0aFRpbWVyLmgKaW5kZXggMWE0NjFjYTEz
ZDlmMDc5ZDQ5OTgwMDEyNzA1OWY5YmQwYjU5NzAzZC4uODI3NGJjMjQwZWQ4ZmE1ZWIxMjQwMDBj
MmIyZDhhOTI1NzhiOTI5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvU3ViaW1hZ2VDYWNoZVdpdGhUaW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL1N1YmltYWdlQ2FjaGVXaXRoVGltZXIuaApAQCAtMjMsOCArMjMs
NyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFN1YmltYWdlQ2FjaGVXaXRoVGlt
ZXJfaAotI2RlZmluZSBTdWJpbWFnZUNhY2hlV2l0aFRpbWVyX2gKKyNwcmFnbWEgb25jZQogCiAj
aW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKQEAgLTQ3LDggKzQ2LDkg
QEAgY2xhc3MgU3ViaW1hZ2VDYWNoZVdpdGhUaW1lciB7CiBwdWJsaWM6CiAgICAgc3RydWN0IFN1
YmltYWdlQ2FjaGVFbnRyeSB7CiAgICAgICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBpbWFnZTsK
LSAgICAgICAgRmxvYXRSZWN0IHJlY3Q7CiAgICAgICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBz
dWJpbWFnZTsKKyAgICAgICAgRmxvYXRSZWN0IHJlY3Q7CisgICAgICAgIE1vbm90b25pY1RpbWUg
bGFzdEFjY2Vzc1RpbWU7CiAgICAgfTsKIAogICAgIHN0cnVjdCBTdWJpbWFnZUNhY2hlRW50cnlU
cmFpdHMgOiBXVEY6OkdlbmVyaWNIYXNoVHJhaXRzPFN1YmltYWdlQ2FjaGVFbnRyeT4gewpAQCAt
ODIsMTkgKzgyLDIyIEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBSZXRhaW5QdHI8Q0dJbWFnZVJl
Zj4gZ2V0U3ViaW1hZ2UoQ0dJbWFnZVJlZiwgY29uc3QgRmxvYXRSZWN0Jik7CiAgICAgc3RhdGlj
IHZvaWQgY2xlYXJJbWFnZShDR0ltYWdlUmVmKTsKKyAgICBzdGF0aWMgdm9pZCBjbGVhcigpOwog
CiBwcml2YXRlOgogICAgIHR5cGVkZWYgSGFzaFNldDxTdWJpbWFnZUNhY2hlRW50cnksIFN1Ymlt
YWdlQ2FjaGVIYXNoLCBTdWJpbWFnZUNhY2hlRW50cnlUcmFpdHM+IFN1YmltYWdlQ2FjaGVIYXNo
U2V0OwogCiAgICAgU3ViaW1hZ2VDYWNoZVdpdGhUaW1lcigpOwotICAgIHZvaWQgaW52YWxpZGF0
ZUNhY2hlVGltZXJGaXJlZCgpOworICAgIHZvaWQgcHJ1bmVDYWNoZVRpbWVyRmlyZWQoKTsKIAog
ICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBzdWJpbWFnZShDR0ltYWdlUmVmLCBjb25zdCBGbG9h
dFJlY3QmKTsKICAgICB2b2lkIGNsZWFySW1hZ2VBbmRTdWJpbWFnZXMoQ0dJbWFnZVJlZik7Cisg
ICAgdm9pZCBwcnVuZSgpOworICAgIHZvaWQgY2xlYXJBbGwoKTsKIAotICAgIEhhc2hDb3VudGVk
U2V0PENHSW1hZ2VSZWY+IG1faW1hZ2VzOworICAgIEhhc2hDb3VudGVkU2V0PENHSW1hZ2VSZWY+
IG1faW1hZ2VDb3VudHM7CiAgICAgU3ViaW1hZ2VDYWNoZUhhc2hTZXQgbV9jYWNoZTsKLSAgICBE
ZWZlcnJhYmxlT25lU2hvdFRpbWVyIG1fdGltZXI7CisgICAgVGltZXIgbV90aW1lcjsKIAogICAg
IHN0YXRpYyBTdWJpbWFnZUNhY2hlV2l0aFRpbWVyJiBzdWJpbWFnZUNhY2hlKCk7CiAgICAgc3Rh
dGljIGJvb2wgc3ViaW1hZ2VDYWNoZUV4aXN0cygpOwpAQCAtMTA0LDUgKzEwNywzIEBAIHByaXZh
dGU6CiAjZW5kaWYgLy8gQ0FDSEVfU1VCSU1BR0VTCiAKIH0KLQotI2VuZGlmIC8vIFN1YmltYWdl
Q2FjaGVXaXRoVGltZXJfaAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>