<?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>114893</bug_id>
          
          <creation_ts>2013-04-19 17:46:36 -0700</creation_ts>
          <short_desc>fast/workers/dedicated-worker-lifecycle.html needs a re-write</short_desc>
          <delta_ts>2013-04-21 13:28:55 -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>Tools / Tests</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 Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>jberlin</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>878687</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-04-19 17:46:36 -0700</bug_when>
    <thetext>Currently, fast/workers/dedicated-worker-lifecycle.html is relying on the GC collecting an orphaned Worker object in a timely manner.  Since it is not realistic to assume when GC will collect a single object, this is an unreasonable expectation.  As a result, the test can time out waiting for the GC to act.

Instead, what is reasonable is to expect that the GC will collect Worker objects on a timely basis such that it keeps memory usage at an acceptable level.  In this case, that means the test should create a lot more than 1 Worker (we&apos;ll go with 100) and expect the GC to leave no more than a small amount around (we&apos;ll go with 20 here) in the duration of the test.  This shows that the GC is making adequate progress towards reclaiming dead Workers on a timely basis.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878829</commentid>
    <comment_count>1</comment_count>
      <attachid>198956</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-04-20 23:22:44 -0700</bug_when>
    <thetext>Created attachment 198956
the patch.

For the max remaining orphaned workers after GC’ing, I opted to go with 10 instead of 20 workers (which was previously proposed in the bug description).  The choice is a bit arbitrary but is based on the following &quot;back of a napkin&quot; estimate:

1. 10 workers means 10 threads.
2. Assume each thread will take up ~128k of stack memory.
3. Assume memory used in JS heap for Worker objects, and WorkerGlobalScopes are insignificant (adequately covered by the the 128k per worker estimate above). 

Hence, total memory used by 10 workers = ~1.25M.  On a typical desktop system with 4G of RAM these days of which 2G is available, this represents ~.06% of available memory.  On an embedded device with just 256M of RAM of which 128M is available, the 1.25M represents .9% of available memory.  This seems to be still tolerable.

If we tolerate 20 workers instead, then the estimate wastage on the embedded device case will go up to 1.8% which I feel less comfortable with.  So, I’m opting to go with only tolerating a max of 10 unreclaimed orphaned workers out of 100 in the amount of time the test gets to run.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878890</commentid>
    <comment_count>2</comment_count>
      <attachid>198956</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-04-21 12:26:26 -0700</bug_when>
    <thetext>Comment on attachment 198956
the patch.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878901</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-04-21 13:28:55 -0700</bug_when>
    <thetext>Thanks for the review.  Landed in r148846: &lt;http://trac.webkit.org/changeset/148846&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>198956</attachid>
            <date>2013-04-20 23:22:44 -0700</date>
            <delta_ts>2013-04-21 12:26:26 -0700</delta_ts>
            <desc>the patch.</desc>
            <filename>bug-114893.patch</filename>
            <type>text/plain</type>
            <size>7495</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE0ODgwMikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDEzLTA0LTIwICBNYXJrIExhbSAgPG1hcmsu
bGFtQGFwcGxlLmNvbT4KKworICAgICAgICBSZXdyaXRlIGZhc3Qvd29ya2Vycy9kZWRpY2F0ZWQt
d29ya2VyLWxpZmVjeWNsZS5odG1sIHRvIHZlcmlmeSB0aGF0CisgICAgICAgIHRoZSBHQyBpcyBh
YmxlIHRvIHJlY2xhaW0gb3JwaGFuZWQgV29ya2VycyBvbiBhIHRpbWVseSBiYXNpcy4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNDg5My4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3Qvd29ya2Vy
cy9yZXNvdXJjZXMvZGVkaWNhdGVkLXdvcmtlci1saWZlY3ljbGUuanM6CisgICAgICAgIChvcnBo
YW5BbGxXb3JrZXJzKToKKyAgICAgICAgKHJ1blRlc3RzLndvcmtlci5vbm1lc3NhZ2UpOgorICAg
ICAgICAocnVuVGVzdHMpOgorICAgICAgICAob3JwaGFuZWRXb3JrZXJFeGl0ZWQud29ya2VyLm9u
bWVzc2FnZSk6CisgICAgICAgIChvcnBoYW5lZFdvcmtlckV4aXRlZCk6CisgICAgICAgICogZmFz
dC93b3JrZXJzL3Jlc291cmNlcy93b3JrZXItdXRpbC5qczoKKyAgICAgICAgKHdhaXRVbnRpbFRo
cmVhZENvdW50TWF0Y2hlc0NvbmRpdGlvbik6CisgICAgICAgICh3YWl0VW50aWxUaHJlYWRDb3Vu
dE1hdGNoZXMpOgorICAgICAgICAod2FpdFVudGlsVGhyZWFkQ291bnREb2VzTm90RXhjZWVkKToK
KwogMjAxMy0wNC0yMCAgRGlyayBTY2h1bHplICA8a3JpdEB3ZWJraXQub3JnPgogCiAgICAgICAg
IFtQYXJ0IDVdIFBhcnNlIGNvbG9yIHZhbHVlIGZvciBjdXN0b20oKSBmdW5jdGlvbiBwYXJhbWV0
ZXJzCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvcmVzb3VyY2VzL2RlZGljYXRlZC13
b3JrZXItbGlmZWN5Y2xlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qvd29ya2Vy
cy9yZXNvdXJjZXMvZGVkaWNhdGVkLXdvcmtlci1saWZlY3ljbGUuanMJKHJldmlzaW9uIDE0ODgw
MikKKysrIExheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9yZXNvdXJjZXMvZGVkaWNhdGVkLXdvcmtl
ci1saWZlY3ljbGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSwyMiBAQAogZGVzY3JpcHRp
b24oIlRoaXMgdGVzdCBjaGVja3Mgd2hldGhlciBvcnBoYW5lZCB3b3JrZXJzIGV4aXQgdW5kZXIg
dmFyaW91cyBjb25kaXRpb25zIik7CiAKKy8vIFdlIGNyZWF0ZSBhIGxhcmdlIG51bWJlciBvZiBX
b3JrZXJzIGFuZCBleHBlY3QgdGhlIEdDIHRvIGtlZXAgdXAgYW5kCisvLyByZWNsYWltIGEgcmVh
c29uYWJsZSBudW1iZXIgb2YgdGhlbSBpbiBhIHRpbWVseSBtYW5uZXIgc28gdGhhdCB0aGUgdXNl
cgorLy8gZXhwZXJpZW5jZSBpcyBub3QgaW1wYWN0ZWQuCisvLworLy8gRm9yIHRoaXMgdGVzdCwg
ImEgdGltZWx5IG1hbm5lciIgbWVhbnMgdGhhdCB3ZSBoYXZlIGFuIGV4cGVjdGF0aW9uIHRoYXQK
Ky8vIGJlZm9yZSB0aGUgdGVzdCB0aW1lcyBvdXQsIHdlIGV4cGVjdCB0aGF0IG5vIG1vcmUgdGhh
bgorLy8gbWF4UmVtYWluaW5nT3JwaGFuZWRXb3JrZXJzIG9mIHRoZSBudW1iZXJPZldvcmtlcnMg
d2UgY3JlYXRlZCB3aWxsIHN1cnZpdmUKKy8vIHRoZSBHQy4KKy8vCisvLyBXZSB1c2UgbWF4UmVt
YWluaW5nT3JwaGFuZWRXb3JrZXJzIGFzIGFuIGFwcHJveGltYXRpb24gb2YgdGhlIHRvbGVyYWJs
ZQorLy8gYW1vdW50IG9mIGdhcmJhZ2UgaW4gdGhlIHN5c3RlbSB0aGF0IHdvbid0IGltcGFjdCB0
aGUgdXNlciBleHBlcmllbmNlLgorCit2YXIgbnVtYmVyT2ZXb3JrZXJzID0gMTAwOwordmFyIG1h
eFJlbWFpbmluZ09ycGhhbmVkV29ya2VycyA9IDEwOwordmFyIHdvcmtlcnMgPSBbIF07Cit2YXIg
bnVtYmVyT2ZDcmVhdGVkV29ya2VycyA9IDA7CisKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewog
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOwpAQCAtOSw1MyArMjYsNTUgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgcnVu
VGVzdHMoKTsKIH0KIAorZnVuY3Rpb24gb3JwaGFuQWxsV29ya2VycyhjYWxsYmFjaykKK3sKKyAg
ICB2YXIgaTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgbnVtYmVyT2ZXb3JrZXJzOyBpKyspIHsKKyAg
ICAgICAgd29ya2Vyc1tpXS5vbm1lc3NhZ2UgPSAwOworICAgICAgICB3b3JrZXJzW2ldID0gMDsK
KyAgICB9CisgICAgd29ya2VycyA9IFsgXTsKKyAgICB3YWl0VW50aWxUaHJlYWRDb3VudERvZXNO
b3RFeGNlZWQoY2FsbGJhY2ssIG1heFJlbWFpbmluZ09ycGhhbmVkV29ya2Vycyk7Cit9CisKIC8v
IENvbnRhaW5zIHRlc3RzIGZvciBkZWRpY2F0ZWQtd29ya2VyLXNwZWNpZmljIGxpZmVjeWNsZSBm
dW5jdGlvbmFsaXR5LgogZnVuY3Rpb24gcnVuVGVzdHMoKQogewotICAgIC8vIFN0YXJ0IGEgd29y
a2VyLCBkcm9wL0dDIG91ciByZWZlcmVuY2UgdG8gaXQsIG1ha2Ugc3VyZSBpdCBleGl0cy4KLSAg
ICB2YXIgd29ya2VyID0gY3JlYXRlV29ya2VyKCk7Ci0gICAgd29ya2VyLnBvc3RNZXNzYWdlKCJw
aW5nIik7Ci0gICAgd29ya2VyLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAgaWYgKGludGVybmFscy53b3Jr
ZXJUaHJlYWRDb3VudCA9PSAxKQorICAgIHZhciBpOworICAgIGZvciAoaSA9IDA7IGkgPCBudW1i
ZXJPZldvcmtlcnM7IGkrKykgeworICAgICAgICB2YXIgd29ya2VyID0gY3JlYXRlV29ya2VyKCk7
CisgICAgICAgIHdvcmtlcnNbaV0gPSB3b3JrZXI7CisKKyAgICAgICAgd29ya2VyLnBvc3RNZXNz
YWdlKCJwaW5nIik7CisgICAgICAgIHdvcmtlci5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkg
eworICAgICAgICAgICAgaWYgKGludGVybmFscy53b3JrZXJUaHJlYWRDb3VudCA9PSBudW1iZXJP
ZldvcmtlcnMpIHsKICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJPcnBoYW5lZCB3b3JrZXIg
dGhyZWFkIGNyZWF0ZWQuIik7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgdGVz
dEZhaWxlZCgiQWZ0ZXIgdGhyZWFkIGNyZWF0aW9uOiBpbnRlcm5hbHMud29ya2VyVGhyZWFkQ291
bnQgPSAiICsgaW50ZXJuYWxzLndvcmtlclRocmVhZENvdW50KTsKKyAgICAgICAgICAgICAgICBv
cnBoYW5BbGxXb3JrZXJzKG9ycGhhbmVkV29ya2VyRXhpdGVkKTsKKyAgICAgICAgICAgIH0KICAg
ICAgICAgfQotCi0gICAgICAgIC8vIE9ycGhhbiBvdXIgd29ya2VyIChubyBtb3JlIHJlZmVyZW5j
ZXMgdG8gaXQpIGFuZCB3YWl0IGZvciBpdCB0byBleGl0LgotICAgICAgICB3b3JrZXIub25tZXNz
YWdlID0gMDsKLSAgICAgICAgd29ya2VyID0gMDsKLSAgICAgICAgLy8gQWxsb2NhdGluZyBhIERh
dGUgb2JqZWN0IHNlZW1zIHRvIHNjcmFtYmxlIHRoZSBzdGFjayBhbmQgZm9yY2UgdGhlIHdvcmtl
ciBvYmplY3QgdG8gZ2V0IEdDJ2QuCi0gICAgICAgIG5ldyBEYXRlKCk7Ci0gICAgICAgIHdhaXRV
bnRpbFdvcmtlclRocmVhZHNFeGl0KG9ycGhhbmVkV29ya2VyRXhpdGVkKTsKICAgICB9CiB9CiAK
IGZ1bmN0aW9uIG9ycGhhbmVkV29ya2VyRXhpdGVkKCkKIHsKICAgICB0ZXN0UGFzc2VkKCJPcnBo
YW5lZCB3b3JrZXIgdGhyZWFkIGV4aXRlZC4iKTsKLSAgICAvLyBTdGFydCBhIHdvcmtlciwgZHJv
cC9HQyBvdXIgcmVmZXJlbmNlIHRvIGl0LCBtYWtlIHN1cmUgaXQgZXhpdHMuCi0gICAgdmFyIHdv
cmtlciA9IGNyZWF0ZVdvcmtlcigpOwotICAgIHdvcmtlci5wb3N0TWVzc2FnZSgicGluZyIpOwot
ICAgIHdvcmtlci5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgewotICAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgIGlmIChpbnRlcm5hbHMud29ya2VyVGhyZWFk
Q291bnQgPT0gMSkKKworICAgIHZhciBpOworICAgIGZvciAoaSA9IDA7IGkgPCBudW1iZXJPZldv
cmtlcnM7IGkrKykgeworICAgICAgICB2YXIgd29ya2VyID0gY3JlYXRlV29ya2VyKCk7CisgICAg
ICAgIHdvcmtlcnNbaV0gPSB3b3JrZXI7CisKKyAgICAgICAgd29ya2VyLnBvc3RNZXNzYWdlKCJw
aW5nIik7CisgICAgICAgIHdvcmtlci5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgeworICAg
ICAgICAgICAgLy8gU2VuZCBhIG1lc3NhZ2UgdGhhdCBzdGFydHMgdXAgYW4gYXN5bmMgb3BlcmF0
aW9uLCB0byBtYWtlIHN1cmUgdGhlIHRocmVhZCBleGl0cyB3aGVuIGl0IGNvbXBsZXRlcy4KKyAg
ICAgICAgICAgIC8vIEZJWE1FOiBEaXNhYmxlZCBmb3Igbm93IC0gcmUtZW5hYmxlIHdoZW4gYnVn
IDI4NzAyIGlzIGZpeGVkLgorICAgICAgICAgICAgLy8gd29ya2VyLnBvc3RNZXNzYWdlKCJldmFs
IHNldFRpbWVvdXQoJycsIDEwKSIpOworCisgICAgICAgICAgICBpZiAoaW50ZXJuYWxzLndvcmtl
clRocmVhZENvdW50ID49IG51bWJlck9mV29ya2VycykgewogICAgICAgICAgICAgICAgIHRlc3RQ
YXNzZWQoIk9ycGhhbmVkIHRpbWVvdXQgd29ya2VyIHRocmVhZCBjcmVhdGVkLiIpOwotICAgICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkFmdGVyIHRocmVhZCBjcmVh
dGlvbjogaW50ZXJuYWxzLndvcmtlclRocmVhZENvdW50ID0gIiArIGludGVybmFscy53b3JrZXJU
aHJlYWRDb3VudCk7CisgICAgICAgICAgICAgICAgb3JwaGFuQWxsV29ya2VycyhvcnBoYW5lZFRp
bWVvdXRXb3JrZXJFeGl0ZWQpOworICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIC8v
IFNlbmQgYSBtZXNzYWdlIHRoYXQgc3RhcnRzIHVwIGFuIGFzeW5jIG9wZXJhdGlvbiwgdG8gbWFr
ZSBzdXJlIHRoZSB0aHJlYWQgZXhpdHMgd2hlbiBpdCBjb21wbGV0ZXMuCi0gICAgICAgIC8vIEZJ
WE1FOiBEaXNhYmxlZCBmb3Igbm93IC0gcmUtZW5hYmxlIHdoZW4gYnVnIDI4NzAyIGlzIGZpeGVk
LgotICAgICAgICAvL3dvcmtlci5wb3N0TWVzc2FnZSgiZXZhbCBzZXRUaW1lb3V0KCcnLCAxMCki
KTsKLQotICAgICAgICAvLyBPcnBoYW4gb3VyIHdvcmtlciAobm8gbW9yZSByZWZlcmVuY2VzIHRv
IGl0KSBhbmQgd2FpdCBmb3IgaXQgdG8gZXhpdC4KLSAgICAgICAgd29ya2VyLm9ubWVzc2FnZSA9
IDA7Ci0gICAgICAgIHdvcmtlciA9IDA7Ci0gICAgICAgIC8vIEZvciBzb21lIHJlYXNvbiwgdGhl
IHdvcmtlciBvYmplY3QgZG9lcyBub3QgZ2V0IEdDJ2QgdW5sZXNzIHdlIGFsbG9jYXRlIGEgbmV3
IG9iamVjdCBoZXJlLgotICAgICAgICAvLyBUaGUgY29uamVjdHVyZSBpcyB0aGF0IHRoZXJlJ3Mg
YSB2YWx1ZSBvbiB0aGUgc3RhY2sgdGhhdCBhcHBlYXJzIHRvIHBvaW50IHRvIHRoZSB3b3JrZXIg
d2hpY2ggdGhpcyBjbG9iYmVycy4KLSAgICAgICAgbmV3IERhdGUoKTsKLSAgICAgICAgd2FpdFVu
dGlsV29ya2VyVGhyZWFkc0V4aXQob3JwaGFuZWRUaW1lb3V0V29ya2VyRXhpdGVkKTsKICAgICB9
CiB9CiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9yZXNvdXJjZXMvd29ya2VyLXV0
aWwuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3Jlc291cmNlcy93
b3JrZXItdXRpbC5qcwkocmV2aXNpb24gMTQ4ODAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC93b3Jr
ZXJzL3Jlc291cmNlcy93b3JrZXItdXRpbC5qcwkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgs
NyBAQCBmdW5jdGlvbiB3YWl0VW50aWxXb3JrZXJUaHJlYWRzRXhpdChjYWxsCiAgICAgd2FpdFVu
dGlsVGhyZWFkQ291bnRNYXRjaGVzKGNhbGxiYWNrLCAwKTsKIH0KIAotZnVuY3Rpb24gd2FpdFVu
dGlsVGhyZWFkQ291bnRNYXRjaGVzKGNhbGxiYWNrLCBjb3VudCkKK2Z1bmN0aW9uIHdhaXRVbnRp
bFRocmVhZENvdW50TWF0Y2hlc0NvbmRpdGlvbihjYWxsYmFjaywgY29uZGl0aW9uKQogewogICAg
IC8vIFdoZW4gcnVubmluZyBpbiBhIGJyb3dzZXIsIGp1c3Qgd2FpdCBmb3Igb25lIHNlY29uZCB0
aGVuIGNhbGwgdGhlIGNhbGxiYWNrLgogICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpIHsKQEAg
LTM2LDE3ICszNiwyNyBAQCBmdW5jdGlvbiB3YWl0VW50aWxUaHJlYWRDb3VudE1hdGNoZXMoY2Fs
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoaW50ZXJuYWxzLndvcmtlclRocmVh
ZENvdW50ID09IGNvdW50KSB7CisgICAgaWYgKGNvbmRpdGlvbigpKSB7CiAgICAgICAgIC8vIFdv
cmtlciB0aHJlYWRzIGhhdmUgZXhpdGVkLgogICAgICAgICBjYWxsYmFjaygpOwogICAgIH0gZWxz
ZSB7CiAgICAgICAgIC8vIFBvbGwgdW50aWwgd29ya2VyIHRocmVhZHMgaGF2ZSBiZWVuIEdDJ2Qv
ZXhpdGVkLgogICAgICAgICAvLyBGb3JjZSBhIEdDIHdpdGggYSBidW5jaCBvZiBhbGxvY2F0aW9u
cyB0byB0cnkgdG8gc2NyYW1ibGUgdGhlIHN0YWNrIGFuZCBmb3JjZSB3b3JrZXIgb2JqZWN0cyB0
byBiZSBjb2xsZWN0ZWQuCiAgICAgICAgIGdjKHRydWUpOwotICAgICAgICBzZXRUaW1lb3V0KGZ1
bmN0aW9uKCkgeyB3YWl0VW50aWxUaHJlYWRDb3VudE1hdGNoZXMoY2FsbGJhY2ssIGNvdW50KTsg
fSwgMTApOworICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB3YWl0VW50aWxUaHJlYWRD
b3VudE1hdGNoZXNDb25kaXRpb24oY2FsbGJhY2ssIGNvbmRpdGlvbik7IH0sIDEwKTsKICAgICB9
CiB9CiAKK2Z1bmN0aW9uIHdhaXRVbnRpbFRocmVhZENvdW50TWF0Y2hlcyhjYWxsYmFjaywgY291
bnQpCit7CisgICAgd2FpdFVudGlsVGhyZWFkQ291bnRNYXRjaGVzQ29uZGl0aW9uKGNhbGxiYWNr
LCBmdW5jdGlvbigpIHsgcmV0dXJuIGludGVybmFscy53b3JrZXJUaHJlYWRDb3VudCA9PSBjb3Vu
dDsgfSk7Cit9CisKK2Z1bmN0aW9uIHdhaXRVbnRpbFRocmVhZENvdW50RG9lc05vdEV4Y2VlZChj
YWxsYmFjaywgY291bnQpCit7CisgICAgd2FpdFVudGlsVGhyZWFkQ291bnRNYXRjaGVzQ29uZGl0
aW9uKGNhbGxiYWNrLCBmdW5jdGlvbigpIHsgcmV0dXJuIGludGVybmFscy53b3JrZXJUaHJlYWRD
b3VudCA8PSBjb3VudDsgfSk7Cit9CisKIGZ1bmN0aW9uIGVuc3VyZVRocmVhZENvdW50TWF0Y2hl
cyhjYWxsYmFjaywgY291bnQpCiB7CiAgICAgLy8gSnVzdCB3YWl0IHVudGlsIHRoZSB0aHJlYWQg
Y291bnQgbWF0Y2hlcywgdGhlbiB3YWl0IGFub3RoZXIgMTAwbXMgdG8gc2VlIGlmIGl0IGNoYW5n
ZXMsIHRoZW4gZmlyZSB0aGUgY2FsbGJhY2suCg==
</data>
<flag name="review"
          id="220634"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>