<?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>199667</bug_id>
          
          <creation_ts>2019-07-10 05:47:39 -0700</creation_ts>
          <short_desc>[RealtimeMediaSource] Revert back to using a WeakRef when deffering a task</short_desc>
          <delta_ts>2022-02-10 16:19:38 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</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="Claudio Saavedra">csaavedra</reporter>
          <assigned_to name="Thibault Saunier">tsaunier</assigned_to>
          <cc>pnormand</cc>
    
    <cc>tsaunier</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1551646</commentid>
    <comment_count>0</comment_count>
    <who name="Claudio Saavedra">csaavedra</who>
    <bug_when>2019-07-10 05:47:39 -0700</bug_when>
    <thetext>The commit:

https://trac.webkit.org/changeset/247211/webkit

Here&apos;s the stacktrace:

#0  0x0000558e6770d468 in std::__atomic_base&lt;unsigned char&gt;::compare_exchange_weak (__m2=std::memory_order_acquire, __m1=std::memory_order_acquire, __i2=1 &apos;\001&apos;, __i1=@0x7fff3f4c226b: 0 &apos;\000&apos;, this=0x0)
    at /usr/include/c++/8/bits/atomic_base.h:434
#1  std::__atomic_base&lt;unsigned char&gt;::compare_exchange_weak (__m=std::memory_order_acquire, __i2=1 &apos;\001&apos;, __i1=&lt;optimized out&gt;, this=0x0) at /usr/include/c++/8/bits/atomic_base.h:456
#2  WTF::Atomic&lt;unsigned char&gt;::compareExchangeWeak (this=0x0, expected=0 &apos;\000&apos;, desired=1 &apos;\001&apos;, order=std::memory_order_acquire) at DerivedSources/ForwardingHeaders/wtf/Atomics.h:86
#3  0x0000558e677083d7 in WTF::LockAlgorithm&lt;unsigned char, (unsigned char)1, (unsigned char)2, WTF::EmptyLockHooks&lt;unsigned char&gt; &gt;::lockFastAssumingZero (lock=...)
    at DerivedSources/ForwardingHeaders/wtf/LockAlgorithm.h:53
#4  0x0000558e67704e74 in WTF::Lock::lock (this=0x0) at DerivedSources/ForwardingHeaders/wtf/Lock.h:58
#5  0x0000558e67712c5a in std::lock_guard&lt;WTF::Lock&gt;::lock_guard (this=0x7fff3f4c2328, __m=...) at /usr/include/c++/8/bits/std_mutex.h:162
#6  0x00007f25029e3fe1 in WTF::addIterator&lt;WebCore::RealtimeMediaSource::Observer*, WebCore::RealtimeMediaSource::Observer*, WTF::IdentityExtractor, WTF::PtrHash&lt;WebCore::RealtimeMediaSource::Observer*&gt;, WTF::HashTraits&lt;WebCore::RealtimeMediaSource::Observer*&gt;, WTF::HashTraits&lt;WebCore::RealtimeMediaSource::Observer*&gt; &gt; (table=0x7f24ee2f7750, it=0x7fff3f4c2400) at DerivedSources/ForwardingHeaders/wtf/HashTable.h:1470
#7  0x00007f25029e578c in WTF::HashTableConstIterator&lt;WebCore::RealtimeMediaSource::Observer*, WebCore::RealtimeMediaSource::Observer*, WTF::IdentityExtractor, WTF::PtrHash&lt;WebCore::RealtimeMediaSource::Observer*&gt;, WTF::HashTraits&lt;WebCore::RealtimeMediaSource::Observer*&gt;, WTF::HashTraits&lt;WebCore::RealtimeMediaSource::Observer*&gt; &gt;::HashTableConstIterator (this=0x7fff3f4c2400, table=0x7f24ee2f7750, position=0xbbadbf2f, 
    endPosition=0xbbadbf2f) at DerivedSources/ForwardingHeaders/wtf/HashTable.h:135
#8  0x00007f25029e4d1e in WTF::HashTable&lt;WebCore::RealtimeMediaSource::Observer*, WebCore::RealtimeMediaSource::Observer*, WTF::IdentityExtractor, WTF::PtrHash&lt;WebCore::RealtimeMediaSource::Observer*&gt;, WTF::HashTraits&lt;WebCore::RealtimeMediaSource::Observer*&gt;, WTF::HashTraits&lt;WebCore::RealtimeMediaSource::Observer*&gt; &gt;::makeKnownGoodConstIterator (this=0x7f24ee2f7750, pos=0xbbadbf2f)
    at DerivedSources/ForwardingHeaders/wtf/HashTable.h:489
#9  0x00007f25029e4cd2 in WTF::HashTable&lt;WebCore::RealtimeMediaSource::Observer*, WebCore::RealtimeMediaSource::Observer*, WTF::IdentityExtractor, WTF::PtrHash&lt;WebCore::RealtimeMediaSource::Observer*&gt;, WTF::HashTraits&lt;WebCore::RealtimeMediaSource::Observer*&gt;, WTF::HashTraits&lt;WebCore::RealtimeMediaSource::Observer*&gt; &gt;::end (this=0x7f24ee2f7750) at DerivedSources/ForwardingHeaders/wtf/HashTable.h:381
#10 0x00007f25029e58ef in WTF::HashTable&lt;WebCore::RealtimeMediaSource::Observer*, WebCore::RealtimeMediaSource::Observer*, WTF::IdentityExtractor, WTF::PtrHash&lt;WebCore::RealtimeMediaSource::Observer*&gt;, WTF::HashTraits&lt;WebCore::RealtimeMediaSource::Observer*&gt;, WTF::HashTraits&lt;WebCore::RealtimeMediaSource::Observer*&gt; &gt;::begin (this=0x7f24ee2f7750) at DerivedSources/ForwardingHeaders/wtf/HashTable.h:380
#11 0x00007f25029e4f07 in WTF::HashSet&lt;WebCore::RealtimeMediaSource::Observer*, WTF::PtrHash&lt;WebCore::RealtimeMediaSource::Observer*&gt;, WTF::HashTraits&lt;WebCore::RealtimeMediaSource::Observer*&gt; &gt;::begin (
    this=0x7f24ee2f7750) at DerivedSources/ForwardingHeaders/wtf/HashSet.h:187
#12 0x00007f25029e4147 in WTF::Mapper&lt;WTF::copyToVectorOf&lt;WebCore::RealtimeMediaSource::Observer*, WTF::HashSet&lt;WebCore::RealtimeMediaSource::Observer*, WTF::PtrHash&lt;WebCore::RealtimeMediaSource::Observer*&gt;, WTF::HashTraits&lt;WebCore::RealtimeMediaSource::Observer*&gt; &gt; &gt;(WTF::HashSet&lt;WebCore::RealtimeMediaSource::Observer*, WTF::PtrHash&lt;WebCore::RealtimeMediaSource::Observer*&gt;, WTF::HashTraits&lt;WebCore::RealtimeMediaSource::Observer*&gt; &gt; const&amp;)::{lambda(auto:1 const&amp;)#1}, WTF::HashSet&lt;WebCore::RealtimeMediaSource::Observer*, WTF::PtrHash&lt;WebCore::RealtimeMediaSource::Observer*&gt;, WTF::HashTraits&lt;WebCore::RealtimeMediaSource::Observer*&gt; &gt; const&amp;, void&gt;::map(WTF::HashSet&lt;WebCore::RealtimeMediaSource::Observer*, WTF::PtrHash&lt;WebCore::RealtimeMediaSource::Observer*&gt;, WTF::HashTraits&lt;WebCore::RealtimeMediaSource::Observer*&gt; &gt; const, {lambda(auto:1 const&amp;)#1} const&amp;) (source=..., mapFunction=...) at DerivedSources/ForwardingHeaders/wtf/Vector.h:1665
#13 0x00007f25029e2c49 in WTF::map&lt;WTF::copyToVectorOf&lt;WebCore::RealtimeMediaSource::Observer*, WTF::HashSet&lt;WebCore::RealtimeMediaSource::Observer*, WTF::PtrHash&lt;WebCore::RealtimeMediaSource::Observer*&gt;, WTF::HashTraits&lt;WebCore::RealtimeMediaSource::Observer*&gt; &gt; &gt;(WTF::HashSet&lt;WebCore::RealtimeMediaSource::Observer*, WTF::PtrHash&lt;WebCore::RealtimeMediaSource::Observer*&gt;, WTF::HashTraits&lt;WebCore::RealtimeMediaSource::Observer*&gt; &gt; const&amp;)::{lambda(auto:1 const&amp;)#1}, WTF::HashSet&lt;WebCore::RealtimeMediaSource::Observer*, WTF::PtrHash&lt;WebCore::RealtimeMediaSource::Observer*&gt;, WTF::HashTraits&lt;WebCore::RealtimeMediaSource::Observer*&gt; &gt; const&amp;&gt;(WTF::HashSet&lt;WebCore::RealtimeMediaSource::Observer*, WTF::PtrHash&lt;WebCore::RealtimeMediaSource::Observer*&gt;, WTF::HashTraits&lt;WebCore::RealtimeMediaSource::Observer*&gt; &gt; const&amp;, WTF::copyToVectorOf&lt;WebCore::RealtimeMediaSource::Observer*, WTF::HashSet&lt;WebCore::RealtimeMediaSource::Observer*, WTF::PtrHash&lt;WebCore::RealtimeMediaSource::Observer*&gt;, WTF::HashTraits&lt;WebCore::RealtimeMediaSource::Observer*&gt; &gt; &gt;(WTF::HashSet&lt;WebCore::RealtimeMediaSource::Observer*, WTF::PtrHash&lt;WebCore::RealtimeMediaSource::Observer*&gt;, WTF::HashTraits&lt;WebCore::RealtimeMediaSource::Observer*&gt; &gt; const&amp;)::{lambda(auto:1 const&amp;)#1}&amp;&amp;) (
    source=..., mapFunction=...) at DerivedSources/ForwardingHeaders/wtf/Vector.h:1690
#14 0x00007f25029e0ed8 in WTF::copyToVectorOf&lt;WebCore::RealtimeMediaSource::Observer*, WTF::HashSet&lt;WebCore::RealtimeMediaSource::Observer*, WTF::PtrHash&lt;WebCore::RealtimeMediaSource::Observer*&gt;, WTF::HashTraits&lt;WebCore::RealtimeMediaSource::Observer*&gt; &gt; &gt; (collection=...) at DerivedSources/ForwardingHeaders/wtf/Vector.h:1707
#15 0x00007f25029dee80 in WTF::copyToVector&lt;WTF::HashSet&lt;WebCore::RealtimeMediaSource::Observer*, WTF::PtrHash&lt;WebCore::RealtimeMediaSource::Observer*&gt;, WTF::HashTraits&lt;WebCore::RealtimeMediaSource::Observer*&gt; &gt; &gt; (collection=...) at DerivedSources/ForwardingHeaders/wtf/Vector.h:1718
#16 0x00007f25029d07e1 in WebCore::RealtimeMediaSource::forEachObserver(WTF::Function&lt;void (WebCore::RealtimeMediaSource::Observer&amp;)&gt; const&amp;) const (this=0x7f24ee2f7700, apply=...)
    at ../../Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp:129
#17 0x00007f25029d094e in WebCore::RealtimeMediaSource::&lt;lambda()&gt;::operator()(void) const (__closure=0x7f24ee2f9b98) at ../../Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp:161
#18 0x00007f25029ddfca in WTF::Detail::CallableWrapper&lt;WebCore::RealtimeMediaSource::notifySettingsDidChangeObservers(WTF::OptionSet&lt;WebCore::RealtimeMediaSourceSettings::Flag&gt;)::&lt;lambda()&gt;, void&gt;::call(void) (
    this=0x7f24ee2f9b90) at DerivedSources/ForwardingHeaders/wtf/Function.h:52
#19 0x0000558e67708e72 in WTF::Function&lt;void ()&gt;::operator()() const (this=0x7f24ee2bb178) at DerivedSources/ForwardingHeaders/wtf/Function.h:79
#20 0x00007f25029d452c in WebCore::RealtimeMediaSource::&lt;lambda()&gt;::operator()(void) const (__closure=0x7f24ee2bb170) at ../../Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp:1042
#21 0x00007f25029ddc3e in WTF::Detail::CallableWrapper&lt;WebCore::RealtimeMediaSource::scheduleDeferredTask(WTF::Function&lt;void()&gt;&amp;&amp;)::&lt;lambda()&gt;, void&gt;::call(void) (this=0x7f24ee2bb168)
    at DerivedSources/ForwardingHeaders/wtf/Function.h:52
#22 0x0000558e67708e72 in WTF::Function&lt;void ()&gt;::operator()() const (this=0x7fff3f4c2708) at DerivedSources/ForwardingHeaders/wtf/Function.h:79
#23 0x00007f2504a32ee6 in WTF::dispatchFunctionsFromMainThread () at ../../Source/WTF/wtf/MainThread.cpp:114
#24 0x00007f2504abc171 in WTF::MainThreadDispatcher::fired (this=0x7f250b541980 &lt;WTF::scheduleDispatchFunctionsOnMainThread()::dispatcher&gt;) at ../../Source/WTF/wtf/generic/MainThreadGeneric.cpp:67
#25 0x00007f2504abc2b8 in WTF::RunLoop::Timer&lt;WTF::MainThreadDispatcher&gt;::fired (this=0x7f250b541980 &lt;WTF::scheduleDispatchFunctionsOnMainThread()::dispatcher&gt;) at ../../Source/WTF/wtf/RunLoop.h:152
#26 0x00007f2504ac137f in WTF::RunLoop::TimerBase::&lt;lambda(gpointer)&gt;::operator()(gpointer) const (__closure=0x0, userData=0x7f250b541980 &lt;WTF::scheduleDispatchFunctionsOnMainThread()::dispatcher&gt;)
    at ../../Source/WTF/wtf/glib/RunLoopGLib.cpp:171
#27 0x00007f2504ac13d7 in WTF::RunLoop::TimerBase::&lt;lambda(gpointer)&gt;::_FUN(gpointer) () at ../../Source/WTF/wtf/glib/RunLoopGLib.cpp:177
#28 0x00007f2504ac0ae2 in WTF::&lt;lambda(GSource*, GSourceFunc, gpointer)&gt;::operator()(GSource *, GSourceFunc, gpointer) const (__closure=0x0, source=0x558e69eea440, 
    callback=0x7f2504ac13ba &lt;WTF::RunLoop::TimerBase::&lt;lambda(gpointer)&gt;::_FUN(gpointer)&gt;, userData=0x7f250b541980 &lt;WTF::scheduleDispatchFunctionsOnMainThread()::dispatcher&gt;)
    at ../../Source/WTF/wtf/glib/RunLoopGLib.cpp:45
#29 0x00007f2504ac0b12 in WTF::&lt;lambda(GSource*, GSourceFunc, gpointer)&gt;::_FUN(GSource *, GSourceFunc, gpointer) () at ../../Source/WTF/wtf/glib/RunLoopGLib.cpp:46
#30 0x00007f24f441c9c8 in g_main_dispatch (context=0x558e69535650) at ../../Source/glib-2.58.1/glib/gmain.c:3182
#31 g_main_context_dispatch (context=context@entry=0x558e69535650) at ../../Source/glib-2.58.1/glib/gmain.c:3847
#32 0x00007f24f441cd88 in g_main_context_iterate (context=0x558e69535650, block=block@entry=1, dispatch=dispatch@entry=1, self=&lt;optimized out&gt;) at ../../Source/glib-2.58.1/glib/gmain.c:3920
#33 0x00007f24f441d072 in g_main_loop_run (loop=0x558e69536850) at ../../Source/glib-2.58.1/glib/gmain.c:4116
#34 0x00007f2504ac100e in WTF::RunLoop::run () at ../../Source/WTF/wtf/glib/RunLoopGLib.cpp:96
#35 0x0000558e6774a7c4 in WTR::TestController::platformRunUntil (this=0x7fff3f4c3550, done=@0x558e69537e6b: false, timeout=...) at ../../Tools/WebKitTestRunner/wpe/TestControllerWPE.cpp:83
#36 0x0000558e676fa20d in WTR::TestController::runUntil (this=0x7fff3f4c3550, done=@0x558e69537e6b: false, timeout=...) at ../../Tools/WebKitTestRunner/TestController.cpp:1726
#37 0x0000558e67722492 in WTR::TestInvocation::invoke (this=0x558e69537ce0) at ../../Tools/WebKitTestRunner/TestInvocation.cpp:185
#38 0x0000558e676f9f07 in WTR::TestController::runTest (this=0x7fff3f4c3550, inputLine=0x7fff3f4c2cc0 &quot;/home/zan/Work/webkit/git/LayoutTests/fast/mediastream/MediaDevices-addEventListener.html&apos;--timeout&apos;30000&quot;)
    at ../../Tools/WebKitTestRunner/TestController.cpp:1656
#39 0x0000558e676fa0ff in WTR::TestController::runTestingServerLoop (this=0x7fff3f4c3550) at ../../Tools/WebKitTestRunner/TestController.cpp:1702
#40 0x0000558e676fa140 in WTR::TestController::run (this=0x7fff3f4c3550) at ../../Tools/WebKitTestRunner/TestController.cpp:1710
#41 0x0000558e676f36cd in WTR::TestController::TestController (this=0x7fff3f4c3550, argc=2, argv=0x7fff3f4c3888) at ../../Tools/WebKitTestRunner/TestController.cpp:164
#42 0x0000558e6774ada6 in main (argc=2, argv=0x7fff3f4c3888) at ../../Tools/WebKitTestRunner/wpe/main.cpp:35</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1551871</commentid>
    <comment_count>1</comment_count>
      <attachid>373872</attachid>
    <who name="Thibault Saunier">tsaunier</who>
    <bug_when>2019-07-10 16:07:56 -0700</bug_when>
    <thetext>Created attachment 373872
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1551922</commentid>
    <comment_count>2</comment_count>
      <attachid>373872</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-07-10 18:15:34 -0700</bug_when>
    <thetext>Comment on attachment 373872
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=373872&amp;action=review

&gt; Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp:1041
&gt; +    callOnMainThread([weakThis = makeWeakPtr(*this), function = WTFMove(function)] {

makeWeakPtr is not thread safe so we cannot do that.
Even if makeWeakPtr was thread safe, if &apos;this&apos; is being or about to be destroyed on the main thread, calling makeWeakPtr might not be a good idea anyway.

I wonder why nothing is showing up in Mac bots.

Looking at the crash log, it seems that it is a call to RealtimeMediaSource::notifySettingsDidChangeObservers that crashes.
It should only be called on the main thread (there is a debug assert for that).
I wonder then why the call to scheduleDeferredTask and the makeRef() would fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1552021</commentid>
    <comment_count>3</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-07-11 04:05:13 -0700</bug_when>
    <thetext>Is this related with https://bugs.webkit.org/show_bug.cgi?id=194326 ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565066</commentid>
    <comment_count>4</comment_count>
    <who name="Thibault Saunier">tsaunier</who>
    <bug_when>2019-08-26 13:28:40 -0700</bug_when>
    <thetext>Fixed by https://bugs.webkit.org/show_bug.cgi?id=194326 - closing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565067</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-08-26 13:29:29 -0700</bug_when>
    <thetext>&lt;rdar://problem/54719631&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>373872</attachid>
            <date>2019-07-10 16:07:56 -0700</date>
            <delta_ts>2022-02-10 16:19:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199667-20190710190755.patch</filename>
            <type>text/plain</type>
            <size>1908</size>
            <attacher name="Thibault Saunier">tsaunier</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3Mjk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzk2NGQ0NTdlZDdlZjMz
ZGVmNjFhMjEzODgwYTkxM2M3YjczM2MzOC4uNzkzMDcwYzg1YTUwZjllMDhlMzc1MWM4NGQzNjY1
MGRiZDMzYzlmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE5LTA3LTEwICBUaGli
YXVsdCBTYXVuaWVyICA8dHNhdW5pZXJAaWdhbGlhLmNvbT4KKworICAgICAgICBbUmVhbHRpbWVN
ZWRpYVNvdXJjZV0gUmV2ZXJ0IGJhY2sgdG8gdXNpbmcgYSBXZWFrUmVmIHdoZW4gZGVmZmVyaW5n
IGEgdGFzaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTk5NjY3CisKKyAgICAgICAgQmFzaWNhbGx5IHdoZW4gd2Ugc2NoZWR1bGUgYSBkZWZmZXJlZCB0
YXNrIHRoZSBvYmplY3QgZGVzdHJ1Y3Rpb24gdGFzaworICAgICAgICBtaWdodCBoYXZlIGFscmVh
ZHkgYmVlbiBzY2hlZHVsZWQgb24gdGhlIG1haW4gdGhyZWFkLCBzbyBldmVuIGlmIHdlIHRha2UK
KyAgICAgICAgYW4gZXh0cmEgcmVmZXJlbmNlcyB3ZSBlbmQgdXAgd2l0aCB0aGUgb2JqZWN0IGJl
aW5nIGFscmVhZHkgZGVzdHJ1Y3RlZAorICAgICAgICB3aGVuIHRoZSBkZWZmZXJlZCB0YXNrIGlz
IGV4ZWN1dGVkLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoaXMgZml4ZXMgV1BFL0d0ayBNZWRpYVN0cmVhbSB0ZXN0cyBvbiBkZWJ1ZyBidWlsZHMK
KworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6c2NoZWR1bGVEZWZlcnJl
ZFRhc2spOgorCiAyMDE5LTA3LTA5ICBBbmRyZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxl
LmNvbT4KIAogICAgICAgICBBWDogSFRNTCBkYXRhbGlzdCBhY2Nlc3NpYmlsaXR5IGlzIG5vdCBl
eHBvc2VkIGJ5IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcAppbmRleCA2MjYwZTM3ZTExMWFk
ZjdkMmUzYTJhYzgwMGFlMjIwMDFhNzlmYzU3Li5iZDQ5NWRkMDEzOGQ4Y2YzZDkxNWE2YjNkNGQ4
YTFiMzNmMDcyODlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcApAQCAtMTAzOCw3ICsxMDM4LDkg
QEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjpzZXRFY2hvQ2FuY2VsbGF0aW9uKGJvb2wgZWNo
b0NhbmNlbGxhdGlvbikKIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2NoZWR1bGVEZWZlcnJl
ZFRhc2soRnVuY3Rpb248dm9pZCgpPiYmIGZ1bmN0aW9uKQogewogICAgIEFTU0VSVChmdW5jdGlv
bik7Ci0gICAgY2FsbE9uTWFpblRocmVhZChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
LCBmdW5jdGlvbiA9IFdURk1vdmUoZnVuY3Rpb24pXSB7CisgICAgY2FsbE9uTWFpblRocmVhZChb
d2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIGZ1bmN0aW9uID0gV1RGTW92ZShmdW5jdGlv
bildIHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgZnVuY3Rpb24oKTsKICAgICB9KTsKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>