<?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>99641</bug_id>
          
          <creation_ts>2012-10-17 14:50:33 -0700</creation_ts>
          <short_desc>Race condition between GCThread and main thread during copying phase</short_desc>
          <delta_ts>2012-10-18 12:44:35 -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>JavaScriptCore</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>levin+threading</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>744646</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-10-17 14:50:33 -0700</bug_when>
    <thetext>When a GCThread returns from copyFromShared(), it then calls doneCopying(), which returns its borrowed CopiedBlock to the CopiedSpace. This final block allows the CopiedSpace to continue and finish the cleanup of the copying phase. However, the GCThread can loop back around, see that m_currentPhase is still &quot;Copy&quot;, and try to go through the copying phase again. This can cause all sorts of issues. To fix this, we should add a cyclic barrier to GCThread::waitForNextPhase().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745416</commentid>
    <comment_count>1</comment_count>
      <attachid>169441</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-10-18 11:24:58 -0700</bug_when>
    <thetext>Created attachment 169441
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745478</commentid>
    <comment_count>2</comment_count>
      <attachid>169441</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-18 12:44:32 -0700</bug_when>
    <thetext>Comment on attachment 169441
Patch

Clearing flags on attachment: 169441

Committed r131791: &lt;http://trac.webkit.org/changeset/131791&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745479</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-18 12:44:35 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169441</attachid>
            <date>2012-10-18 11:24:58 -0700</date>
            <delta_ts>2012-10-18 12:44:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99641-20121018112345.patch</filename>
            <type>text/plain</type>
            <size>10487</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTMxNzc4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ2IEBA
CisyMDEyLTEwLTE4ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgUmFjZSBjb25kaXRpb24gYmV0d2VlbiBHQ1RocmVhZCBhbmQgbWFpbiB0aHJlYWQg
ZHVyaW5nIGNvcHlpbmcgcGhhc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTk5NjQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2hlbiBhIEdDVGhyZWFkIHJldHVybnMgZnJvbSBjb3B5RnJvbVNoYXJlZCgp
LCBpdCB0aGVuIGNhbGxzIGRvbmVDb3B5aW5nKCksIHdoaWNoIHJldHVybnMgCisgICAgICAgIGl0
cyBib3Jyb3dlZCBDb3BpZWRCbG9jayB0byB0aGUgQ29waWVkU3BhY2UuIFRoaXMgZmluYWwgYmxv
Y2sgYWxsb3dzIHRoZSBDb3BpZWRTcGFjZSB0byAKKyAgICAgICAgY29udGludWUgYW5kIGZpbmlz
aCB0aGUgY2xlYW51cCBvZiB0aGUgY29weWluZyBwaGFzZS4gSG93ZXZlciwgdGhlIEdDVGhyZWFk
IGNhbiBsb29wIGJhY2sgCisgICAgICAgIGFyb3VuZCwgc2VlIHRoYXQgbV9jdXJyZW50UGhhc2Ug
aXMgc3RpbGwgIkNvcHkiLCBhbmQgdHJ5IHRvIGdvIHRocm91Z2ggdGhlIGNvcHlpbmcgcGhhc2Ug
YWdhaW4uIAorICAgICAgICBUaGlzIGNhbiBjYXVzZSBhbGwgc29ydHMgb2YgaXNzdWVzLiBUbyBm
aXggdGhpcywgd2Ugc2hvdWxkIGFkZCBhIGN5Y2xpYyBiYXJyaWVyIHRvIEdDVGhyZWFkOjp3YWl0
Rm9yTmV4dFBoYXNlKCkuCisKKyAgICAgICAgKiBoZWFwL0dDVGhyZWFkLmNwcDoKKyAgICAgICAg
KEpTQzo6R0NUaHJlYWQ6OndhaXRGb3JOZXh0UGhhc2UpOiBBbGwgR0NUaHJlYWRzIHdpbGwgd2Fp
dCB3aGVuIHRoZXkgZmluaXNoIG9uZSBpdGVyYXRpb24gdW50aWwgdGhlIG1haW4gdGhyZWFkIAor
ICAgICAgICBub3RpZmllcyB0aGVtIHRvIG1vdmUgZG93biB0byB0aGUgc2Vjb25kIHdoaWxlIGxv
b3AsIHdoZXJlIHRoZXkgd2FpdCBmb3IgdGhlIG5leHQgR0NQaGFzZSB0byBzdGFydC4gVGhleSBh
bHNvIAorICAgICAgICBkZWNyZW1lbnQgdGhlIG1fbnVtYmVyT2ZBY3RpdmVHQ1RocmVhZHMgY291
bnRlciBhcyB0aGV5IGJlZ2luIHRvIHdhaXQgZm9yIHRoZSBuZXh0IHBoYXNlIGFuZCBpbmNyZW1l
bnQgaXQgYXMgCisgICAgICAgIHRoZXkgZW50ZXIgdGhlIG5leHQgcGhhc2UuIFRoaXMgYWxsb3dz
IHRoZSBtYWluIHRocmVhZCB0byB3YWl0IGluIGVuZEN1cnJlbnRQaGFzZSgpIHVudGlsIGFsbCB0
aGUgdGhyZWFkcyBoYXZlIAorICAgICAgICBmaW5pc2hlZCB0aGUgY3VycmVudCBwaGFzZSBhbmQg
YXJlIHdhaXRpbmcgb24gdGhlIG5leHQgcGhhc2UgdG8gYmVnaW4uIFdpdGhvdXQgdGhlIGNvdW50
ZXIsIHRoZXJlIHdvdWxkIGJlIAorICAgICAgICBubyB3YXkgdG8gZW5zdXJlIHRoYXQgZXZlcnkg
dGhyZWFkIHdhcyBhdmFpbGFibGUgZm9yIGVhY2ggR0NQaGFzZS4KKyAgICAgICAgKEpTQzo6R0NU
aHJlYWQ6OmdjVGhyZWFkTWFpbik6IFdlIG5vdyB1c2UgdGhlIG1fcGhhc2VMb2NrIHRvIHN5bmNo
cm9uaXplIHdpdGggdGhlIG1haW4gdGhyZWFkIHdoZW4gd2UncmUgYmVpbmcgY3JlYXRlZC4KKyAg
ICAgICAgKiBoZWFwL0dDVGhyZWFkU2hhcmVkRGF0YS5jcHA6CisgICAgICAgIChKU0M6OkdDVGhy
ZWFkU2hhcmVkRGF0YTo6R0NUaHJlYWRTaGFyZWREYXRhKTogQXMgd2UgY3JlYXRlIGVhY2ggR0NU
aHJlYWQsIHdlIGluY3JlbWVudCB0aGUgbV9udW1iZXJPZkFjdGl2ZUdDVGhyZWFkcworICAgICAg
ICBjb3VudGVyLiBXaGVuIHdlIGFyZSBkb25lIGNyZWF0aW5nIHRoZSB0aHJlYWRzLCB3ZSB3YWl0
IHVudGlsIHRoZXkncmUgYWxsIHdhaXRpbmcgZm9yIHRoZSBuZXh0IEdDUGhhc2UuIFRoaXMgcHJl
dmVudHMgCisgICAgICAgIHVzIGZyb20gbGVhdmluZyBzb21lIEdDVGhyZWFkcyBiZWhpbmQgZHVy
aW5nIHRoZSBmaXJzdCBHQ1BoYXNlLCB3aGljaCBjb3VsZCBodXJ0IHVzIG9uIG91ciB2ZXJ5IHNo
b3J0LXJ1bm5pbmcgCisgICAgICAgIGJlbmNobWFya3MgKGUuZy4gU3VuU3BpZGVyKS4KKyAgICAg
ICAgKEpTQzo6R0NUaHJlYWRTaGFyZWREYXRhOjp+R0NUaHJlYWRTaGFyZWREYXRhKToKKyAgICAg
ICAgKEpTQzo6R0NUaHJlYWRTaGFyZWREYXRhOjpzdGFydE5leHRQaGFzZSk6IFdlIGF0b21pY2Fs
bHkgc3dhcCB0aGUgdHdvIGZsYWdzLCBtX2djVGhyZWFkc1Nob3VsZFdhaXQgYW5kIG1fY3VycmVu
dFBoYXNlLCAKKyAgICAgICAgc28gdGhhdCBpZiB0aGUgdGhyZWFkcyBmaW5pc2ggdmVyeSBxdWlj
a2x5LCB0aGV5IHdpbGwgd2FpdCB1bnRpbCB0aGUgbWFpbiB0aHJlYWQgaXMgcmVhZHkgdG8gZW5k
IHRoZSBjdXJyZW50IHBoYXNlLgorICAgICAgICAoSlNDOjpHQ1RocmVhZFNoYXJlZERhdGE6OmVu
ZEN1cnJlbnRQaGFzZSk6IEhlcmUgYXRvbWljYWxseSB3ZSBzd2FwIHRoZSB0d28gZmxhZ3MgYWdh
aW4gdG8gYWxsb3cgdGhlIHRocmVhZHMgdG8gCisgICAgICAgIGFkdmFuY2UgdG8gd2FpdGluZyBv
biB0aGUgbmV4dCBHQ1BoYXNlLiBXZSB3YWl0IHVudGlsIGFsbCBvZiB0aGUgR0NUaHJlYWRzIGhh
dmUgc2V0dGxlZCBpbnRvIHRoZSBzZWNvbmQgd2FpdCBsb29wCisgICAgICAgIGJlZm9yZSBhbGxv
d2luZyB0aGUgbWFpbiB0aHJlYWQgdG8gY29udGludWUuIFRoaXMgcHJldmVudHMgdXMgZnJvbSBs
ZWF2aW5nIG9uZSBvZiB0aGUgR0NUaHJlYWRzIHN0dWNrIGluIHRoZSBmaXJzdCAKKyAgICAgICAg
d2FpdCBsb29wIGlmIHdlIHdlcmUgdG8gY2FsbCBzdGFydE5leHRQaGFzZSgpIGJlZm9yZSBpdCBo
YWQgdGltZSB0byB3YWtlIHVwIGFuZCBtb3ZlIG9uIHRvIHRoZSBzZWNvbmQgd2FpdCBsb29wLgor
ICAgICAgICAoSlNDKToKKyAgICAgICAgKEpTQzo6R0NUaHJlYWRTaGFyZWREYXRhOjpkaWRTdGFy
dE1hcmtpbmcpOiBXZSBub3cgdXNlIHN0YXJ0TmV4dFBoYXNlKCkgdG8gcHJvcGVybHkgc3dhcCB0
aGUgZmxhZ3MuCisgICAgICAgIChKU0M6OkdDVGhyZWFkU2hhcmVkRGF0YTo6ZGlkRmluaXNoTWFy
a2luZyk6IERpdHRvIGZvciBlbmRDdXJyZW50UGhhc2UoKS4KKyAgICAgICAgKEpTQzo6R0NUaHJl
YWRTaGFyZWREYXRhOjpkaWRTdGFydENvcHlpbmcpOiBEaXR0by4KKyAgICAgICAgKEpTQzo6R0NU
aHJlYWRTaGFyZWREYXRhOjpkaWRGaW5pc2hDb3B5aW5nKTogRGl0dG8uCisgICAgICAgICogaGVh
cC9HQ1RocmVhZFNoYXJlZERhdGEuaDoKKyAgICAgICAgKEdDVGhyZWFkU2hhcmVkRGF0YSk6Cisg
ICAgICAgICogaGVhcC9IZWFwLmNwcDogCisgICAgICAgIChKU0M6OkhlYXA6OmNvcHlCYWNraW5n
U3RvcmVzKTogTm8gcmVhc29uIHRvIHVzZSB0aGUgZXh0cmEgcmVmZXJlbmNlLgorCiAyMDEyLTEw
LTE4ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2Ug
Y29udmVyc2lvbiBiZXR3ZWVuIEpTU3RyaW5nUmVmIGFuZCBXS1N0cmluZ1JlZiB3b3JrIHdpdGhv
dXQgY2hhcmFjdGVyIHNpemUgY29udmVyc2lvbnMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0dDVGhyZWFkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9HQ1RocmVhZC5jcHAJKHJldmlzaW9uIDEzMTYxOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL0dDVGhyZWFkLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzAsOCArNzAsMTYgQEAg
Q29weVZpc2l0b3IqIEdDVGhyZWFkOjpjb3B5VmlzaXRvcigpCiBHQ1BoYXNlIEdDVGhyZWFkOjp3
YWl0Rm9yTmV4dFBoYXNlKCkKIHsKICAgICBNdXRleExvY2tlciBsb2NrZXIobV9zaGFyZWQubV9w
aGFzZUxvY2spOworICAgIHdoaWxlIChtX3NoYXJlZC5tX2djVGhyZWFkc1Nob3VsZFdhaXQpCisg
ICAgICAgIG1fc2hhcmVkLm1fcGhhc2VDb25kaXRpb24ud2FpdChtX3NoYXJlZC5tX3BoYXNlTG9j
ayk7CisKKyAgICBtX3NoYXJlZC5tX251bWJlck9mQWN0aXZlR0NUaHJlYWRzLS07CisgICAgaWYg
KCFtX3NoYXJlZC5tX251bWJlck9mQWN0aXZlR0NUaHJlYWRzKQorICAgICAgICBtX3NoYXJlZC5t
X2FjdGl2aXR5Q29uZGl0aW9uLnNpZ25hbCgpOworCiAgICAgd2hpbGUgKG1fc2hhcmVkLm1fY3Vy
cmVudFBoYXNlID09IE5vUGhhc2UpCiAgICAgICAgIG1fc2hhcmVkLm1fcGhhc2VDb25kaXRpb24u
d2FpdChtX3NoYXJlZC5tX3BoYXNlTG9jayk7CisgICAgbV9zaGFyZWQubV9udW1iZXJPZkFjdGl2
ZUdDVGhyZWFkcysrOwogICAgIHJldHVybiBtX3NoYXJlZC5tX2N1cnJlbnRQaGFzZTsKIH0KIApA
QCAtODQsNyArOTIsNyBAQCB2b2lkIEdDVGhyZWFkOjpnY1RocmVhZE1haW4oKQogICAgIC8vIFdh
aXQgZm9yIHRoZSBtYWluIHRocmVhZCB0byBmaW5pc2ggY3JlYXRpbmcgYW5kIGluaXRpYWxpemlu
ZyB1cy4gVGhlIG1haW4gdGhyZWFkIGdyYWJzIHRoaXMgbG9jayBiZWZvcmUgCiAgICAgLy8gY3Jl
YXRpbmcgdGhpcyB0aHJlYWQuIFdlIGFyZW4ndCBndWFyYW50ZWVkIHRvIGhhdmUgYSB2YWxpZCB0
aHJlYWRJRCB1bnRpbCB0aGUgbWFpbiB0aHJlYWQgcmVsZWFzZXMgdGhpcyBsb2NrLgogICAgIHsK
LSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc2hhcmVkLm1fbWFya2luZ0xvY2spOworICAg
ICAgICBNdXRleExvY2tlciBsb2NrZXIobV9zaGFyZWQubV9waGFzZUxvY2spOwogICAgIH0KICAg
ICB7CiAgICAgICAgIFBhcmFsbGVsTW9kZUVuYWJsZXIgZW5hYmxlcigqbV9zbG90VmlzaXRvcik7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ1RocmVhZFNoYXJlZERhdGEuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDVGhyZWFkU2hhcmVk
RGF0YS5jcHAJKHJldmlzaW9uIDEzMTYxOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0dDVGhyZWFkU2hhcmVkRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYxLDEzICs2MSwxNiBA
QCBHQ1RocmVhZFNoYXJlZERhdGE6OkdDVGhyZWFkU2hhcmVkRGF0YShKCiAgICAgLCBtX3BhcmFs
bGVsTWFya2Vyc1Nob3VsZEV4aXQoZmFsc2UpCiAgICAgLCBtX2Jsb2Nrc1RvQ29weShnbG9iYWxE
YXRhLT5oZWFwLm1fYmxvY2tTbmFwc2hvdCkKICAgICAsIG1fY29weUluZGV4KDApCisgICAgLCBt
X251bWJlck9mQWN0aXZlR0NUaHJlYWRzKDApCisgICAgLCBtX2djVGhyZWFkc1Nob3VsZFdhaXQo
ZmFsc2UpCiAgICAgLCBtX2N1cnJlbnRQaGFzZShOb1BoYXNlKQogewogICAgIG1fY29weUxvY2su
SW5pdCgpOwogI2lmIEVOQUJMRShQQVJBTExFTF9HQykKICAgICAvLyBHcmFiIHRoZSBsb2NrIHNv
IHRoZSBuZXcgR0MgdGhyZWFkcyBjYW4gYmUgcHJvcGVybHkgaW5pdGlhbGl6ZWQgYmVmb3JlIHRo
ZXkgc3RhcnQgcnVubmluZy4KLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9tYXJraW5nTG9jayk7
CisgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcGhhc2VMb2NrKTsKICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAxOyBpIDwgT3B0aW9uczo6bnVtYmVyT2ZHQ01hcmtlcnMoKTsgKytpKSB7CisgICAgICAg
IG1fbnVtYmVyT2ZBY3RpdmVHQ1RocmVhZHMrKzsKICAgICAgICAgU2xvdFZpc2l0b3IqIHNsb3RW
aXNpdG9yID0gbmV3IFNsb3RWaXNpdG9yKCp0aGlzKTsKICAgICAgICAgQ29weVZpc2l0b3IqIGNv
cHlWaXNpdG9yID0gbmV3IENvcHlWaXNpdG9yKCp0aGlzKTsKICAgICAgICAgR0NUaHJlYWQqIG5l
d1RocmVhZCA9IG5ldyBHQ1RocmVhZCgqdGhpcywgc2xvdFZpc2l0b3IsIGNvcHlWaXNpdG9yKTsK
QEAgLTc1LDYgKzc4LDEwIEBAIEdDVGhyZWFkU2hhcmVkRGF0YTo6R0NUaHJlYWRTaGFyZWREYXRh
KEoKICAgICAgICAgbmV3VGhyZWFkLT5pbml0aWFsaXplVGhyZWFkSUQodGhyZWFkSUQpOwogICAg
ICAgICBtX2djVGhyZWFkcy5hcHBlbmQobmV3VGhyZWFkKTsKICAgICB9CisKKyAgICAvLyBXYWl0
IGZvciBhbGwgdGhlIEdDVGhyZWFkcyB0byBnZXQgdG8gdGhlIHJpZ2h0IHBsYWNlLgorICAgIHdo
aWxlIChtX251bWJlck9mQWN0aXZlR0NUaHJlYWRzKQorICAgICAgICBtX2FjdGl2aXR5Q29uZGl0
aW9uLndhaXQobV9waGFzZUxvY2spOwogI2VuZGlmCiB9CiAKQEAgLTg3LDYgKzk0LDcgQEAgR0NU
aHJlYWRTaGFyZWREYXRhOjp+R0NUaHJlYWRTaGFyZWREYXRhKAogICAgICAgICBNdXRleExvY2tl
ciBwaGFzZUxvY2tlcihtX3BoYXNlTG9jayk7CiAgICAgICAgIEFTU0VSVChtX2N1cnJlbnRQaGFz
ZSA9PSBOb1BoYXNlKTsKICAgICAgICAgbV9wYXJhbGxlbE1hcmtlcnNTaG91bGRFeGl0ID0gdHJ1
ZTsKKyAgICAgICAgbV9nY1RocmVhZHNTaG91bGRXYWl0ID0gZmFsc2U7CiAgICAgICAgIG1fY3Vy
cmVudFBoYXNlID0gRXhpdDsKICAgICAgICAgbV9waGFzZUNvbmRpdGlvbi5icm9hZGNhc3QoKTsK
ICAgICB9CkBAIC0xMTUsMjQgKzEyMyw0NCBAQCB2b2lkIEdDVGhyZWFkU2hhcmVkRGF0YTo6cmVz
ZXQoKQogICAgIH0KIH0KIAotdm9pZCBHQ1RocmVhZFNoYXJlZERhdGE6OmRpZFN0YXJ0TWFya2lu
ZygpCit2b2lkIEdDVGhyZWFkU2hhcmVkRGF0YTo6c3RhcnROZXh0UGhhc2UoR0NQaGFzZSBwaGFz
ZSkKIHsKLSAgICBNdXRleExvY2tlciBtYXJraW5nTG9ja2VyKG1fbWFya2luZ0xvY2spOwogICAg
IE11dGV4TG9ja2VyIHBoYXNlTG9ja2VyKG1fcGhhc2VMb2NrKTsKKyAgICBBU1NFUlQoIW1fZ2NU
aHJlYWRzU2hvdWxkV2FpdCk7CiAgICAgQVNTRVJUKG1fY3VycmVudFBoYXNlID09IE5vUGhhc2Up
OwotICAgIG1fY3VycmVudFBoYXNlID0gTWFyazsKLSAgICBtX3BhcmFsbGVsTWFya2Vyc1Nob3Vs
ZEV4aXQgPSBmYWxzZTsKKyAgICBtX2djVGhyZWFkc1Nob3VsZFdhaXQgPSB0cnVlOworICAgIG1f
Y3VycmVudFBoYXNlID0gcGhhc2U7CiAgICAgbV9waGFzZUNvbmRpdGlvbi5icm9hZGNhc3QoKTsK
IH0KIAotdm9pZCBHQ1RocmVhZFNoYXJlZERhdGE6OmRpZEZpbmlzaE1hcmtpbmcoKQordm9pZCBH
Q1RocmVhZFNoYXJlZERhdGE6OmVuZEN1cnJlbnRQaGFzZSgpCit7CisgICAgQVNTRVJUKG1fZ2NU
aHJlYWRzU2hvdWxkV2FpdCk7CisgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fcGhhc2VMb2NrKTsK
KyAgICBtX2N1cnJlbnRQaGFzZSA9IE5vUGhhc2U7CisgICAgbV9nY1RocmVhZHNTaG91bGRXYWl0
ID0gZmFsc2U7CisgICAgbV9waGFzZUNvbmRpdGlvbi5icm9hZGNhc3QoKTsKKyAgICB3aGlsZSAo
bV9udW1iZXJPZkFjdGl2ZUdDVGhyZWFkcykKKyAgICAgICAgbV9hY3Rpdml0eUNvbmRpdGlvbi53
YWl0KG1fcGhhc2VMb2NrKTsKK30KKwordm9pZCBHQ1RocmVhZFNoYXJlZERhdGE6OmRpZFN0YXJ0
TWFya2luZygpCiB7CiAgICAgTXV0ZXhMb2NrZXIgbWFya2luZ0xvY2tlcihtX21hcmtpbmdMb2Nr
KTsKLSAgICBNdXRleExvY2tlciBwaGFzZUxvY2tlcihtX3BoYXNlTG9jayk7CisgICAgbV9wYXJh
bGxlbE1hcmtlcnNTaG91bGRFeGl0ID0gZmFsc2U7CisgICAgc3RhcnROZXh0UGhhc2UoTWFyayk7
Cit9CisKK3ZvaWQgR0NUaHJlYWRTaGFyZWREYXRhOjpkaWRGaW5pc2hNYXJraW5nKCkKK3sKKyAg
ICB7CisgICAgICAgIE11dGV4TG9ja2VyIG1hcmtpbmdMb2NrZXIobV9tYXJraW5nTG9jayk7Cisg
ICAgICAgIG1fcGFyYWxsZWxNYXJrZXJzU2hvdWxkRXhpdCA9IHRydWU7CisgICAgICAgIG1fbWFy
a2luZ0NvbmRpdGlvbi5icm9hZGNhc3QoKTsKKyAgICB9CisKICAgICBBU1NFUlQobV9jdXJyZW50
UGhhc2UgPT0gTWFyayk7Ci0gICAgbV9jdXJyZW50UGhhc2UgPSBOb1BoYXNlOwotICAgIG1fcGFy
YWxsZWxNYXJrZXJzU2hvdWxkRXhpdCA9IHRydWU7Ci0gICAgbV9tYXJraW5nQ29uZGl0aW9uLmJy
b2FkY2FzdCgpOworICAgIGVuZEN1cnJlbnRQaGFzZSgpOwogfQogCiB2b2lkIEdDVGhyZWFkU2hh
cmVkRGF0YTo6ZGlkU3RhcnRDb3B5aW5nKCkKQEAgLTE1MCwxOCArMTc4LDEzIEBAIHZvaWQgR0NU
aHJlYWRTaGFyZWREYXRhOjpkaWRTdGFydENvcHlpbmcKICAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IG1fZ2NUaHJlYWRzLnNpemUoKTsgaSsrKQogICAgICAgICBtX2djVGhyZWFkc1tpXS0+Y29w
eVZpc2l0b3IoKS0+c3RhcnRDb3B5aW5nKCk7CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9w
aGFzZUxvY2spOwotICAgIEFTU0VSVChtX2N1cnJlbnRQaGFzZSA9PSBOb1BoYXNlKTsKLSAgICBt
X2N1cnJlbnRQaGFzZSA9IENvcHk7Ci0gICAgbV9waGFzZUNvbmRpdGlvbi5icm9hZGNhc3QoKTsg
CisgICAgc3RhcnROZXh0UGhhc2UoQ29weSk7CiB9CiAKIHZvaWQgR0NUaHJlYWRTaGFyZWREYXRh
OjpkaWRGaW5pc2hDb3B5aW5nKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9waGFzZUxv
Y2spOwogICAgIEFTU0VSVChtX2N1cnJlbnRQaGFzZSA9PSBDb3B5KTsKLSAgICBtX2N1cnJlbnRQ
aGFzZSA9IE5vUGhhc2U7Ci0gICAgbV9waGFzZUNvbmRpdGlvbi5icm9hZGNhc3QoKTsKKyAgICBl
bmRDdXJyZW50UGhhc2UoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9HQ1RocmVhZFNoYXJlZERhdGEuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ1RocmVhZFNoYXJlZERhdGEuaAkocmV2aXNpb24g
MTMxNjE5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NUaHJlYWRTaGFyZWREYXRh
LmgJKHdvcmtpbmcgY29weSkKQEAgLTc0LDYgKzc0LDggQEAgcHJpdmF0ZToKICAgICBmcmllbmQg
Y2xhc3MgQ29weVZpc2l0b3I7CiAKICAgICB2b2lkIGdldE5leHRCbG9ja3NUb0NvcHkoc2l6ZV90
Jiwgc2l6ZV90Jik7CisgICAgdm9pZCBzdGFydE5leHRQaGFzZShHQ1BoYXNlKTsKKyAgICB2b2lk
IGVuZEN1cnJlbnRQaGFzZSgpOwogCiAgICAgSlNHbG9iYWxEYXRhKiBtX2dsb2JhbERhdGE7CiAg
ICAgQ29waWVkU3BhY2UqIG1fY29waWVkU3BhY2U7CkBAIC0xMDAsNiArMTAyLDkgQEAgcHJpdmF0
ZToKIAogICAgIE11dGV4IG1fcGhhc2VMb2NrOwogICAgIFRocmVhZENvbmRpdGlvbiBtX3BoYXNl
Q29uZGl0aW9uOworICAgIFRocmVhZENvbmRpdGlvbiBtX2FjdGl2aXR5Q29uZGl0aW9uOworICAg
IHVuc2lnbmVkIG1fbnVtYmVyT2ZBY3RpdmVHQ1RocmVhZHM7CisgICAgYm9vbCBtX2djVGhyZWFk
c1Nob3VsZFdhaXQ7CiAgICAgR0NQaGFzZSBtX2N1cnJlbnRQaGFzZTsKIAogICAgIExpc3RhYmxl
SGFuZGxlcjxXZWFrUmVmZXJlbmNlSGFydmVzdGVyPjo6TGlzdCBtX3dlYWtSZWZlcmVuY2VIYXJ2
ZXN0ZXJzOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAJKHJldmlzaW9uIDEz
MTYxOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC02MTIsMTAgKzYxMiw5IEBAIHZvaWQgSGVhcDo6Y29weUJhY2tpbmdTdG9yZXMoKQog
ICAgIG1fc3RvcmFnZVNwYWNlLnN0YXJ0ZWRDb3B5aW5nKCk7CiAgICAgaWYgKG1fc3RvcmFnZVNw
YWNlLnNob3VsZERvQ29weVBoYXNlKCkpIHsKICAgICAgICAgbV9zaGFyZWREYXRhLmRpZFN0YXJ0
Q29weWluZygpOwotICAgICAgICBDb3B5VmlzaXRvciYgdmlzaXRvciA9IG1fY29weVZpc2l0b3I7
Ci0gICAgICAgIHZpc2l0b3Iuc3RhcnRDb3B5aW5nKCk7Ci0gICAgICAgIHZpc2l0b3IuY29weUZy
b21TaGFyZWQoKTsKLSAgICAgICAgdmlzaXRvci5kb25lQ29weWluZygpOworICAgICAgICBtX2Nv
cHlWaXNpdG9yLnN0YXJ0Q29weWluZygpOworICAgICAgICBtX2NvcHlWaXNpdG9yLmNvcHlGcm9t
U2hhcmVkKCk7CisgICAgICAgIG1fY29weVZpc2l0b3IuZG9uZUNvcHlpbmcoKTsKICAgICAgICAg
Ly8gV2UgbmVlZCB0byB3YWl0IGZvciBldmVyeWJvZHkgdG8gZmluaXNoIGFuZCByZXR1cm4gdGhl
aXIgQ29waWVkQmxvY2tzIAogICAgICAgICAvLyBiZWZvcmUgc2lnbmFsaW5nIHRoYXQgdGhlIHBo
YXNlIGlzIGNvbXBsZXRlLgogICAgICAgICBtX3N0b3JhZ2VTcGFjZS5kb25lQ29weWluZygpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>