<?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>165962</bug_id>
          
          <creation_ts>2016-12-16 11:07:22 -0800</creation_ts>
          <short_desc>REGRESSION: HipChat and Mail sometimes hang beneath JSC::Heap::lastChanceToFinalize()</short_desc>
          <delta_ts>2017-01-11 16:01:01 -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>JavaScriptCore</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="Michael Saboff">msaboff</reporter>
          <assigned_to name="Michael Saboff">msaboff</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ggaren</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1260655</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2016-12-16 11:07:22 -0800</bug_when>
    <thetext>There is an inherent race when waiting on the condition variable and the timeout fires.  The waitFor() can timeout just before getting a notification from another thread.

AutomaticThread::start() uses a condition variable to wait for work from another thread.  The other thread waits for the machine thread to respond to the notification, but instead it goes to sleep since it doesn&apos;t see the notification.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260666</commentid>
    <comment_count>1</comment_count>
      <attachid>297335</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2016-12-16 11:24:10 -0800</bug_when>
    <thetext>Created attachment 297335
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260679</commentid>
    <comment_count>2</comment_count>
      <attachid>297335</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-12-16 11:43:30 -0800</bug_when>
    <thetext>Comment on attachment 297335
Patch

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

&gt; Source/WTF/wtf/AutomaticThread.cpp:50
&gt; +    m_condition.notifyOne();

This is sort of wrong since it makes notifyOne mean notifyTwo.

Programs that use notifyOne often rely on the bounded nature of the wake-up.  I think that one solution is to simply move this call to the bottom of the method: only m_condition.notifyOne() if we did not find any threads to wake up ourselves.

&gt; Source/WTF/wtf/AutomaticThread.cpp:212
&gt; +                        if (!awokenByNotify &amp;&amp; m_isWaiting) {
&gt; +                            m_isWaiting = false;

Do we still need awokenByNotify?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260682</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2016-12-16 11:47:20 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 297335 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=297335&amp;action=review
&gt; 
&gt; &gt; Source/WTF/wtf/AutomaticThread.cpp:50
&gt; &gt; +    m_condition.notifyOne();
&gt; 
&gt; This is sort of wrong since it makes notifyOne mean notifyTwo.
&gt; 
&gt; Programs that use notifyOne often rely on the bounded nature of the wake-up.
&gt; I think that one solution is to simply move this call to the bottom of the
&gt; method: only m_condition.notifyOne() if we did not find any threads to wake
&gt; up ourselves.

That makes sense.  I&apos;ll make that change.

&gt; &gt; Source/WTF/wtf/AutomaticThread.cpp:212
&gt; &gt; +                        if (!awokenByNotify &amp;&amp; m_isWaiting) {
&gt; &gt; +                            m_isWaiting = false;
&gt; 
&gt; Do we still need awokenByNotify?

No.  I&apos;ll remove it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260690</commentid>
    <comment_count>4</comment_count>
      <attachid>297339</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2016-12-16 12:05:40 -0800</bug_when>
    <thetext>Created attachment 297339
Addressed Phil&apos;s comments and fixed m_condition ASSERTs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260746</commentid>
    <comment_count>5</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2016-12-16 14:26:46 -0800</bug_when>
    <thetext>Committed r209938: &lt;http://trac.webkit.org/changeset/209938&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1265937</commentid>
    <comment_count>6</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2017-01-11 16:01:01 -0800</bug_when>
    <thetext>&lt;rdar://problem/29229439&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297335</attachid>
            <date>2016-12-16 11:24:10 -0800</date>
            <delta_ts>2016-12-16 12:05:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>165962.patch</filename>
            <type>text/plain</type>
            <size>5709</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyMDk5MjcpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDE2LTEyLTE2ICBNaWNoYWVsIFNhYm9mZiAgPG1z
YWJvZmZAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT046IEhpcENoYXQgYW5kIE1haWwg
c29tZXRpbWVzIGhhbmcgYmVuZWF0aCBKU0M6OkhlYXA6Omxhc3RDaGFuY2VUb0ZpbmFsaXplKCkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTk2Mgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXJlIGlz
IGFuIGluaGVyZW50IHJhY2UgaW4gQ29uZGl0aW9uOjp3YWl0Rm9yKCkgd2hlcmUgdGhlIHRpbWVv
dXQgY2FuIGhhcHBlbiBqdXN0IGJlZm9yZQorICAgICAgICBhIG5vdGlmeSBmcm9tIGFub3RoZXIg
dGhyZWFkLgorCisgICAgICAgIEZpeGVkIHRoaXMgYnkgYWRkaW5nIGEgY29uZGl0aW9uIHZhcmlh
YmxlIGFuZCBmbGFnIHRvIGVhY2ggQXV0b21hdGljVGhyZWFkLiAgVGhlIGZsYWcKKyAgICAgICAg
aXMgdXNlZCB0byBzaWduaWZ5IHRvIGEgbm90aWZ5aW5nIHRocmVhZCB0aGF0IHRoZSB0aHJlYWQg
aXMgd2FpdGluZy4gIFRoYXQgZmxhZyBpcyBzZXQKKyAgICAgICAgaW4gdGhlIHdhaXRpbmcgdGhy
ZWFkIGJlZm9yZSBjYWxsaW5nIHdhaXRGb3IoKSBhbmQgY2xlYXJlZCBieSBhbm90aGVyIHRocmVh
ZCB3aGVuIGl0CisgICAgICAgIG5vdGlmaWVzIHRoZSB0aHJlYWQuICBUaGUgYWNjZXNzIHRvIHRo
YXQgZmxhZyBoYXBwZW5zIHdoZW4gdGhlIGxvY2sgaXMgaGVsZC4KKyAgICAgICAgTm93IHRoZSB3
YWl0aW5nIHRocmVhZCBjaGVja3MgaWYgdGhlIGZsYWcgYWZ0ZXIgYSB0aW1lb3V0IHRvIHNlZSB0
aGF0IGl0IGluIGZhY3Qgc2hvdWxkCisgICAgICAgIHByb2NlZWQgbGlrZSBhIG5vcm1hbCBub3Rp
ZmljYXRpb24uCisKKyAgICAgICAgVGhlIGFkZGVkIGNvbmRpdGlvbiB2YXJpYWJsZSBhbGxvd3Mg
dXMgdG8gdGFyZ2V0IGEgc3BlY2lmaWMgdGhyZWFkLiAgV2UgdXNlZCB0byBrZWVwIGEgbGlzdAor
ICAgICAgICBvZiB3YWl0aW5nIHRocmVhZHMsIG5vdyB3ZSBrZWVwIGEgbGlzdCBvZiBhbGwgdGhy
ZWFkcy4gIFRvIG5vdGlmeSBvbmUgdGhyZWFkLCB3ZSBsb29rIGZvcgorICAgICAgICBhIHdhaXRp
bmcgdGhyZWFkIGFuZCBub3RpZnkgaXQgZGlyZWN0bHkuICBJZiB3ZSBjYW4ndCBmaW5kIGEgd2Fp
dGluZyB0aHJlYWQsIHdlIHN0YXJ0IGEKKyAgICAgICAgc2xlZXBpbmcgdGhyZWFkLgorCisgICAg
ICAgIFdlIG5vdGlmeSBhbGwgdGhyZWFkcyBieSB3YWtpbmcgYWxsIHdhaXRpbmcgdGhyZWFkcyBh
bmQgc3RhcnRpbmcgYWxsIHNsZWVwaW5nIHRocmVhZHMuCisKKyAgICAgICAgKiB3dGYvQXV0b21h
dGljVGhyZWFkLmNwcDoKKyAgICAgICAgKFdURjo6QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uOjpu
b3RpZnlPbmUpOgorICAgICAgICAoV1RGOjpBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246Om5vdGlm
eUFsbCk6CisgICAgICAgIChXVEY6OkF1dG9tYXRpY1RocmVhZDo6aXNXYWl0aW5nKToKKyAgICAg
ICAgKFdURjo6QXV0b21hdGljVGhyZWFkOjpub3RpZnkpOgorICAgICAgICAoV1RGOjpBdXRvbWF0
aWNUaHJlYWQ6OnN0YXJ0KToKKyAgICAgICAgKiB3dGYvQXV0b21hdGljVGhyZWFkLmg6CisKIDIw
MTYtMTItMTUgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAg
ICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeCBhZnRlciByMjA5OTEwCkluZGV4OiBTb3VyY2UvV1RG
L3d0Zi9BdXRvbWF0aWNUaHJlYWQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0F1
dG9tYXRpY1RocmVhZC5jcHAJKHJldmlzaW9uIDIwOTg0NikKKysrIFNvdXJjZS9XVEYvd3RmL0F1
dG9tYXRpY1RocmVhZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDIyICs0NywzMyBAQCBBdXRv
bWF0aWNUaHJlYWRDb25kaXRpb246On5BdXRvbWF0aWNUaHJlCiAKIHZvaWQgQXV0b21hdGljVGhy
ZWFkQ29uZGl0aW9uOjpub3RpZnlPbmUoY29uc3QgTG9ja0hvbGRlciYgbG9ja2VyKQogewotICAg
IGlmIChtX2NvbmRpdGlvbi5ub3RpZnlPbmUoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAg
IGlmIChtX3RocmVhZHMuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgbV90
aHJlYWRzLnRha2VMYXN0KCktPnN0YXJ0KGxvY2tlcik7CisgICAgbV9jb25kaXRpb24ubm90aWZ5
T25lKCk7CisKKyAgICBmb3IgKEF1dG9tYXRpY1RocmVhZCogdGhyZWFkIDogbV90aHJlYWRzKSB7
CisgICAgICAgIGlmICh0aHJlYWQtPmlzV2FpdGluZyhsb2NrZXIpKSB7CisgICAgICAgICAgICB0
aHJlYWQtPm5vdGlmeShsb2NrZXIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9Cisg
ICAgfQorCisgICAgZm9yIChBdXRvbWF0aWNUaHJlYWQqIHRocmVhZCA6IG1fdGhyZWFkcykgewor
ICAgICAgICBpZiAoIXRocmVhZC0+aGFzVW5kZXJseWluZ1RocmVhZChsb2NrZXIpKSB7CisgICAg
ICAgICAgICB0aHJlYWQtPnN0YXJ0KGxvY2tlcik7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKyAgICB9CiB9CiAKIHZvaWQgQXV0b21hdGljVGhyZWFkQ29uZGl0aW9uOjpub3RpZnlB
bGwoY29uc3QgTG9ja0hvbGRlciYgbG9ja2VyKQogewogICAgIG1fY29uZGl0aW9uLm5vdGlmeUFs
bCgpOwotICAgIAotICAgIGZvciAoQXV0b21hdGljVGhyZWFkKiB0aHJlYWQgOiBtX3RocmVhZHMp
Ci0gICAgICAgIHRocmVhZC0+c3RhcnQobG9ja2VyKTsKLSAgICBtX3RocmVhZHMuY2xlYXIoKTsK
KworICAgIGZvciAoQXV0b21hdGljVGhyZWFkKiB0aHJlYWQgOiBtX3RocmVhZHMpIHsKKyAgICAg
ICAgaWYgKHRocmVhZC0+aXNXYWl0aW5nKGxvY2tlcikpCisgICAgICAgICAgICB0aHJlYWQtPm5v
dGlmeShsb2NrZXIpOworICAgICAgICBlbHNlIGlmICghdGhyZWFkLT5oYXNVbmRlcmx5aW5nVGhy
ZWFkKGxvY2tlcikpCisgICAgICAgICAgICB0aHJlYWQtPnN0YXJ0KGxvY2tlcik7CisgICAgfQog
fQogCiB2b2lkIEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6d2FpdChMb2NrJiBsb2NrKQpAQCAt
MTE3LDYgKzEyOCwxOCBAQCBib29sIEF1dG9tYXRpY1RocmVhZDo6dHJ5U3RvcChjb25zdCBMb2Nr
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgQXV0b21hdGljVGhyZWFkOjppc1dhaXRpbmco
Y29uc3QgTG9ja0hvbGRlciYgbG9ja2VyKQoreworICAgIHJldHVybiBoYXNVbmRlcmx5aW5nVGhy
ZWFkKGxvY2tlcikgJiYgbV9pc1dhaXRpbmc7Cit9CisKK2Jvb2wgQXV0b21hdGljVGhyZWFkOjpu
b3RpZnkoY29uc3QgTG9ja0hvbGRlciYgbG9ja2VyKQoreworICAgIEFTU0VSVF9VTlVTRUQobG9j
a2VyLCBoYXNVbmRlcmx5aW5nVGhyZWFkKGxvY2tlcikpOworICAgIG1faXNXYWl0aW5nID0gZmFs
c2U7CisgICAgcmV0dXJuIG1fd2FpdENvbmRpdGlvbi5ub3RpZnlPbmUoKTsKK30KKwogdm9pZCBB
dXRvbWF0aWNUaHJlYWQ6OmpvaW4oKQogewogICAgIExvY2tIb2xkZXIgbG9ja2VyKCptX2xvY2sp
OwpAQCAtMTgwLDE0ICsyMDMsMTkgQEAgdm9pZCBBdXRvbWF0aWNUaHJlYWQ6OnN0YXJ0KGNvbnN0
IExvY2tIbwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzdG9wKGxvY2tlcik7
CiAgICAgICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChyZXN1bHQgPT0gUG9sbFJl
c3VsdDo6V2FpdCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTaHV0IHRoZSB0aHJlYWQg
ZG93biBhZnRlciBvbmUgc2Vjb25kLgorICAgICAgICAgICAgICAgICAgICAgICAgbV9pc1dhaXRp
bmcgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBhd29rZW5CeU5vdGlmeSA9
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9jb25kaXRpb24tPm1fY29uZGl0aW9uLndh
aXRGb3IoKm1fbG9jaywgMV9zKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICghYXdva2Vu
QnlOb3RpZnkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3dhaXRDb25kaXRpb24u
d2FpdEZvcigqbV9sb2NrLCAxX3MpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJv
c2UgJiYgIWF3b2tlbkJ5Tm90aWZ5ICYmICFtX2lzV2FpdGluZykKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBkYXRhTG9nKFJhd1BvaW50ZXIodGhpcyksICI6IFRpbWVkIG91dCB3YWl0aW5n
LCBidXQgbm90aWZpZWQgdmlhIGZsYWchXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlm
ICghYXdva2VuQnlOb3RpZnkgJiYgbV9pc1dhaXRpbmcpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtX2lzV2FpdGluZyA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGlmICh2ZXJib3NlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhTG9nKFJh
d1BvaW50ZXIodGhpcyksICI6IEdvaW5nIHRvIHNsZWVwIVxuIik7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbV9jb25kaXRpb24tPmFkZChsb2NrZXIsIHRoaXMpOwogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgICAgIG1faXNXYWl0aW5nID0gZmFsc2U7CiAgICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgCkluZGV4OiBTb3VyY2Uv
V1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9B
dXRvbWF0aWNUaHJlYWQuaAkocmV2aXNpb24gMjA5ODQ2KQorKysgU291cmNlL1dURi93dGYvQXV0
b21hdGljVGhyZWFkLmgJKHdvcmtpbmcgY29weSkKQEAgLTEyMSw2ICsxMjEsMTAgQEAgcHVibGlj
OgogICAgIC8vIG1lY2hhbmlzbSAoc2V0IHNvbWUgZmxhZyBhbmQgdGhlbiBub3RpZnkgdGhlIGNv
bmRpdGlvbikuCiAgICAgYm9vbCB0cnlTdG9wKGNvbnN0IExvY2tIb2xkZXImKTsKICAgICAKKyAg
ICBib29sIGlzV2FpdGluZyhjb25zdCBMb2NrSG9sZGVyJik7CisgICAgCisgICAgYm9vbCBub3Rp
ZnkoY29uc3QgTG9ja0hvbGRlciYpOworICAgIAogICAgIHZvaWQgam9pbigpOwogICAgIAogcHJv
dGVjdGVkOgpAQCAtMTc3LDcgKzE4MSw5IEBAIHByaXZhdGU6CiAgICAgQm94PExvY2s+IG1fbG9j
azsKICAgICBSZWZQdHI8QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uPiBtX2NvbmRpdGlvbjsKICAg
ICBib29sIG1faXNSdW5uaW5nIHsgdHJ1ZSB9OworICAgIGJvb2wgbV9pc1dhaXRpbmcgeyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9oYXNVbmRlcmx5aW5nVGhyZWFkIHsgZmFsc2UgfTsKKyAgICBDb25k
aXRpb24gbV93YWl0Q29uZGl0aW9uOwogICAgIENvbmRpdGlvbiBtX2lzUnVubmluZ0NvbmRpdGlv
bjsKIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297339</attachid>
            <date>2016-12-16 12:05:40 -0800</date>
            <delta_ts>2016-12-16 12:38:25 -0800</delta_ts>
            <desc>Addressed Phil&apos;s comments and fixed m_condition ASSERTs</desc>
            <filename>165962-2.patch</filename>
            <type>text/plain</type>
            <size>6072</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyMDk5MjcpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDE2LTEyLTE2ICBNaWNoYWVsIFNhYm9mZiAgPG1z
YWJvZmZAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT046IEhpcENoYXQgYW5kIE1haWwg
c29tZXRpbWVzIGhhbmcgYmVuZWF0aCBKU0M6OkhlYXA6Omxhc3RDaGFuY2VUb0ZpbmFsaXplKCkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTk2Mgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXJlIGlz
IGFuIGluaGVyZW50IHJhY2UgaW4gQ29uZGl0aW9uOjp3YWl0Rm9yKCkgd2hlcmUgdGhlIHRpbWVv
dXQgY2FuIGhhcHBlbiBqdXN0IGJlZm9yZQorICAgICAgICBhIG5vdGlmeSBmcm9tIGFub3RoZXIg
dGhyZWFkLgorCisgICAgICAgIEZpeGVkIHRoaXMgYnkgYWRkaW5nIGEgY29uZGl0aW9uIHZhcmlh
YmxlIGFuZCBmbGFnIHRvIGVhY2ggQXV0b21hdGljVGhyZWFkLiAgVGhlIGZsYWcKKyAgICAgICAg
aXMgdXNlZCB0byBzaWduaWZ5IHRvIGEgbm90aWZ5aW5nIHRocmVhZCB0aGF0IHRoZSB0aHJlYWQg
aXMgd2FpdGluZy4gIFRoYXQgZmxhZyBpcyBzZXQKKyAgICAgICAgaW4gdGhlIHdhaXRpbmcgdGhy
ZWFkIGJlZm9yZSBjYWxsaW5nIHdhaXRGb3IoKSBhbmQgY2xlYXJlZCBieSBhbm90aGVyIHRocmVh
ZCB3aGVuIGl0CisgICAgICAgIG5vdGlmaWVzIHRoZSB0aHJlYWQuICBUaGUgYWNjZXNzIHRvIHRo
YXQgZmxhZyBoYXBwZW5zIHdoZW4gdGhlIGxvY2sgaXMgaGVsZC4KKyAgICAgICAgTm93IHRoZSB3
YWl0aW5nIHRocmVhZCBjaGVja3MgaWYgdGhlIGZsYWcgYWZ0ZXIgYSB0aW1lb3V0IHRvIHNlZSB0
aGF0IGl0IGluIGZhY3Qgc2hvdWxkCisgICAgICAgIHByb2NlZWQgbGlrZSBhIG5vcm1hbCBub3Rp
ZmljYXRpb24uCisKKyAgICAgICAgVGhlIGFkZGVkIGNvbmRpdGlvbiB2YXJpYWJsZSBhbGxvd3Mg
dXMgdG8gdGFyZ2V0IGEgc3BlY2lmaWMgdGhyZWFkLiAgV2UgdXNlZCB0byBrZWVwIGEgbGlzdAor
ICAgICAgICBvZiB3YWl0aW5nIHRocmVhZHMsIG5vdyB3ZSBrZWVwIGEgbGlzdCBvZiBhbGwgdGhy
ZWFkcy4gIFRvIG5vdGlmeSBvbmUgdGhyZWFkLCB3ZSBsb29rIGZvcgorICAgICAgICBhIHdhaXRp
bmcgdGhyZWFkIGFuZCBub3RpZnkgaXQgZGlyZWN0bHkuICBJZiB3ZSBjYW4ndCBmaW5kIGEgd2Fp
dGluZyB0aHJlYWQsIHdlIHN0YXJ0IGEKKyAgICAgICAgc2xlZXBpbmcgdGhyZWFkLgorCisgICAg
ICAgIFdlIG5vdGlmeSBhbGwgdGhyZWFkcyBieSB3YWtpbmcgYWxsIHdhaXRpbmcgdGhyZWFkcyBh
bmQgc3RhcnRpbmcgYWxsIHNsZWVwaW5nIHRocmVhZHMuCisKKyAgICAgICAgKiB3dGYvQXV0b21h
dGljVGhyZWFkLmNwcDoKKyAgICAgICAgKFdURjo6QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uOjpu
b3RpZnlPbmUpOgorICAgICAgICAoV1RGOjpBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246Om5vdGlm
eUFsbCk6CisgICAgICAgIChXVEY6OkF1dG9tYXRpY1RocmVhZDo6aXNXYWl0aW5nKToKKyAgICAg
ICAgKFdURjo6QXV0b21hdGljVGhyZWFkOjpub3RpZnkpOgorICAgICAgICAoV1RGOjpBdXRvbWF0
aWNUaHJlYWQ6OnN0YXJ0KToKKyAgICAgICAgKiB3dGYvQXV0b21hdGljVGhyZWFkLmg6CisKIDIw
MTYtMTItMTUgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAg
ICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeCBhZnRlciByMjA5OTEwCkluZGV4OiBTb3VyY2UvV1RG
L3d0Zi9BdXRvbWF0aWNUaHJlYWQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0F1
dG9tYXRpY1RocmVhZC5jcHAJKHJldmlzaW9uIDIwOTg0NikKKysrIFNvdXJjZS9XVEYvd3RmL0F1
dG9tYXRpY1RocmVhZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDIyICs0NywzMyBAQCBBdXRv
bWF0aWNUaHJlYWRDb25kaXRpb246On5BdXRvbWF0aWNUaHJlCiAKIHZvaWQgQXV0b21hdGljVGhy
ZWFkQ29uZGl0aW9uOjpub3RpZnlPbmUoY29uc3QgTG9ja0hvbGRlciYgbG9ja2VyKQogewotICAg
IGlmIChtX2NvbmRpdGlvbi5ub3RpZnlPbmUoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAg
IGlmIChtX3RocmVhZHMuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgbV90
aHJlYWRzLnRha2VMYXN0KCktPnN0YXJ0KGxvY2tlcik7CisgICAgZm9yIChBdXRvbWF0aWNUaHJl
YWQqIHRocmVhZCA6IG1fdGhyZWFkcykgeworICAgICAgICBpZiAodGhyZWFkLT5pc1dhaXRpbmco
bG9ja2VyKSkgeworICAgICAgICAgICAgdGhyZWFkLT5ub3RpZnkobG9ja2VyKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGZvciAoQXV0b21hdGljVGhyZWFk
KiB0aHJlYWQgOiBtX3RocmVhZHMpIHsKKyAgICAgICAgaWYgKCF0aHJlYWQtPmhhc1VuZGVybHlp
bmdUaHJlYWQobG9ja2VyKSkgeworICAgICAgICAgICAgdGhyZWFkLT5zdGFydChsb2NrZXIpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorCisgICAgbV9jb25kaXRpb24u
bm90aWZ5T25lKCk7CiB9CiAKIHZvaWQgQXV0b21hdGljVGhyZWFkQ29uZGl0aW9uOjpub3RpZnlB
bGwoY29uc3QgTG9ja0hvbGRlciYgbG9ja2VyKQogewogICAgIG1fY29uZGl0aW9uLm5vdGlmeUFs
bCgpOwotICAgIAotICAgIGZvciAoQXV0b21hdGljVGhyZWFkKiB0aHJlYWQgOiBtX3RocmVhZHMp
Ci0gICAgICAgIHRocmVhZC0+c3RhcnQobG9ja2VyKTsKLSAgICBtX3RocmVhZHMuY2xlYXIoKTsK
KworICAgIGZvciAoQXV0b21hdGljVGhyZWFkKiB0aHJlYWQgOiBtX3RocmVhZHMpIHsKKyAgICAg
ICAgaWYgKHRocmVhZC0+aXNXYWl0aW5nKGxvY2tlcikpCisgICAgICAgICAgICB0aHJlYWQtPm5v
dGlmeShsb2NrZXIpOworICAgICAgICBlbHNlIGlmICghdGhyZWFkLT5oYXNVbmRlcmx5aW5nVGhy
ZWFkKGxvY2tlcikpCisgICAgICAgICAgICB0aHJlYWQtPnN0YXJ0KGxvY2tlcik7CisgICAgfQog
fQogCiB2b2lkIEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6d2FpdChMb2NrJiBsb2NrKQpAQCAt
MTE3LDYgKzEyOCwxOCBAQCBib29sIEF1dG9tYXRpY1RocmVhZDo6dHJ5U3RvcChjb25zdCBMb2Nr
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgQXV0b21hdGljVGhyZWFkOjppc1dhaXRpbmco
Y29uc3QgTG9ja0hvbGRlciYgbG9ja2VyKQoreworICAgIHJldHVybiBoYXNVbmRlcmx5aW5nVGhy
ZWFkKGxvY2tlcikgJiYgbV9pc1dhaXRpbmc7Cit9CisKK2Jvb2wgQXV0b21hdGljVGhyZWFkOjpu
b3RpZnkoY29uc3QgTG9ja0hvbGRlciYgbG9ja2VyKQoreworICAgIEFTU0VSVF9VTlVTRUQobG9j
a2VyLCBoYXNVbmRlcmx5aW5nVGhyZWFkKGxvY2tlcikpOworICAgIG1faXNXYWl0aW5nID0gZmFs
c2U7CisgICAgcmV0dXJuIG1fd2FpdENvbmRpdGlvbi5ub3RpZnlPbmUoKTsKK30KKwogdm9pZCBB
dXRvbWF0aWNUaHJlYWQ6OmpvaW4oKQogewogICAgIExvY2tIb2xkZXIgbG9ja2VyKCptX2xvY2sp
OwpAQCAtMTYxLDcgKzE4NCw3IEBAIHZvaWQgQXV0b21hdGljVGhyZWFkOjpzdGFydChjb25zdCBM
b2NrSG8KICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKCFBU1NFUlRfRElTQUJMRUQpIHsK
ICAgICAgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcigqbV9sb2NrKTsKLSAgICAgICAgICAg
ICAgICBBU1NFUlQoIW1fY29uZGl0aW9uLT5jb250YWlucyhsb2NrZXIsIHRoaXMpKTsKKyAgICAg
ICAgICAgICAgICBBU1NFUlQobV9jb25kaXRpb24tPmNvbnRhaW5zKGxvY2tlciwgdGhpcykpOwog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgICAgICBhdXRvIHN0b3AgPSBbJl0g
KGNvbnN0IExvY2tIb2xkZXImKSB7CkBAIC0xODAsMTIgKzIwMywxNSBAQCB2b2lkIEF1dG9tYXRp
Y1RocmVhZDo6c3RhcnQoY29uc3QgTG9ja0hvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHN0b3AobG9ja2VyKTsKICAgICAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNT
RVJUKHJlc3VsdCA9PSBQb2xsUmVzdWx0OjpXYWl0KTsKICAgICAgICAgICAgICAgICAgICAgICAg
IC8vIFNodXQgdGhlIHRocmVhZCBkb3duIGFmdGVyIG9uZSBzZWNvbmQuCisgICAgICAgICAgICAg
ICAgICAgICAgICBtX2lzV2FpdGluZyA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICBi
b29sIGF3b2tlbkJ5Tm90aWZ5ID0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2NvbmRp
dGlvbi0+bV9jb25kaXRpb24ud2FpdEZvcigqbV9sb2NrLCAxX3MpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKCFhd29rZW5CeU5vdGlmeSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1fd2FpdENvbmRpdGlvbi53YWl0Rm9yKCptX2xvY2ssIDFfcyk7CisgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAodmVyYm9zZSAmJiAhYXdva2VuQnlOb3RpZnkgJiYgIW1faXNXYWl0aW5n
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFMb2coUmF3UG9pbnRlcih0aGlzKSwg
Ijogd2FpdEZvciB0aW1lZCBvdXQsIGJ1dCBub3RpZmllZCB2aWEgbV9pc1dhaXRpbmcgZmxhZyFc
biIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1faXNXYWl0aW5nKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbV9pc1dhaXRpbmcgPSBmYWxzZTsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGF0YUxvZyhSYXdQb2ludGVyKHRoaXMpLCAiOiBHb2luZyB0byBzbGVlcCFcbiIpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1fY29uZGl0aW9uLT5hZGQobG9ja2VyLCB0aGlzKTsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9XVEYvd3RmL0F1dG9t
YXRpY1RocmVhZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0F1dG9tYXRpY1RocmVh
ZC5oCShyZXZpc2lvbiAyMDk4NDYpCisrKyBTb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQu
aAkod29ya2luZyBjb3B5KQpAQCAtMTIwLDcgKzEyMCwxMSBAQCBwdWJsaWM6CiAgICAgLy8gdGhy
ZWFkIGlzIHRvIGZpcnN0IHRyeSB0aGlzLCBhbmQgaWYgdGhhdCBkb2Vzbid0IHdvcmssIHRvIHRl
bGwgdGhlIHRocmVhZCB1c2luZyB5b3VyIG93bgogICAgIC8vIG1lY2hhbmlzbSAoc2V0IHNvbWUg
ZmxhZyBhbmQgdGhlbiBub3RpZnkgdGhlIGNvbmRpdGlvbikuCiAgICAgYm9vbCB0cnlTdG9wKGNv
bnN0IExvY2tIb2xkZXImKTsKLSAgICAKKworICAgIGJvb2wgaXNXYWl0aW5nKGNvbnN0IExvY2tI
b2xkZXImKTsKKworICAgIGJvb2wgbm90aWZ5KGNvbnN0IExvY2tIb2xkZXImKTsKKwogICAgIHZv
aWQgam9pbigpOwogICAgIAogcHJvdGVjdGVkOgpAQCAtMTc3LDcgKzE4MSw5IEBAIHByaXZhdGU6
CiAgICAgQm94PExvY2s+IG1fbG9jazsKICAgICBSZWZQdHI8QXV0b21hdGljVGhyZWFkQ29uZGl0
aW9uPiBtX2NvbmRpdGlvbjsKICAgICBib29sIG1faXNSdW5uaW5nIHsgdHJ1ZSB9OworICAgIGJv
b2wgbV9pc1dhaXRpbmcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9oYXNVbmRlcmx5aW5nVGhyZWFk
IHsgZmFsc2UgfTsKKyAgICBDb25kaXRpb24gbV93YWl0Q29uZGl0aW9uOwogICAgIENvbmRpdGlv
biBtX2lzUnVubmluZ0NvbmRpdGlvbjsKIH07CiAK
</data>
<flag name="review"
          id="319659"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>