<?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>101268</bug_id>
          
          <creation_ts>2012-11-05 15:24:40 -0800</creation_ts>
          <short_desc>Fixed flaky stack overflow test: fast/xmlhttprequest/xmlhttprequest-recursive-sync-event.html</short_desc>
          <delta_ts>2014-12-22 13:20:41 -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>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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=139840</see_also>
          <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>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>758956</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2012-11-05 15:24:40 -0800</bug_when>
    <thetext>Test fast/xmlhttprequest/xmlhttprequest-recursive-sync-event.html is flaky.  Here&apos;s how we can make it not flaky:

// This test is flaky because it depends on the size of the available native
// stack, the size of native stack frames, and the layering of function calls
// in the JavaScript VM code. Together, these variables determine when a
// StackOverflowError will be thrown in the course of this test of unbounded
// recursion.
//
// From experience with this test, StackOverflow error tends to be thrown in
// 2 possible scenarios:
//
// Scenario 1: Overflowed while calling xhr.open()
// ===============================================
// In this scenario, the VM is executing xhr.open() and succeeds in setting
// up the new request. In response to having opened the request, it tries to
// dispatch an event with readyState 1 (OPENED). Unfortunately, there is not
// enough stack and we get an overflow error and 1 console error message here.
//
// The error is thrown but is then eaten up by the EventDispatcher. Hence,
// onreadystatechange() back in JS land does not even see this error.
//
// open() eventually returns to onreadystatechange(), and we call xhr.send()
// next. xhr.send() overflows the stack again, and we get a 2nd error and
// a 2nd console error message.
//
// Note: the lastReadyStateObserved in this case is 4 because the event
// dispatch for OPENED failed to execute onreadystatechange().
//
// The total number of error messages seen is 2.
//
// Scenario 2: Overflowed while calling xhr.send()
// ===============================================
// In this scenario, the VM is executing xhr.send() and a readyState change
// to 4 (DONE) occurs. An event is dispatched and the VM tries to call
// onreadystatechange() but overflows the stack. Here, we see 1 error and
// 1 console error message.
//
// Since we never succeeded in reentering onreadystatechange(), we did not
// not set up anymore requests, and will not attempt to re-enter
// onreadystatechange() after this. Hence, we will not see anymore overflow
// errors nor console error messages.
//
// In contrast with scenario 1, we did not see an overflow error for xhr.open()
// before we saw the error for xhr.send().
//
// Note: lastReadyStateObserved in this case is 1 because the event
// dispatch for OPENED succeeded in executing onreadystatechange(), and
// lastReadyStateObserved was set to 1.
//
// The total number of error messages seen is 1.
//
// Flakiness
// =========
// Since we can end up with scenario 1 or 2 depending on variables outside the
// control of this test, the result of the test would be inherently flaky i.e.
// we can see 1 or 2 console error messages.
//
// That is unless we do some compensation. In the case of scenario 2, we can
// check if the lastReadyStateObserved is 1 which means we would have only seen
// one console error message. If so, we can call xhr.send() again just to
// trigger another one so that we&apos;ll have a total of 2.
//
// Note that in the compensation case, we&apos;ll need to call xhr.open() again
// before calling xhr.send(). This is because the previous xhr request has
// already been closed. Here, xhr.open() should not trigger an overflow error
// just like it didn&apos;t before the previous xhr.send() triggered the error (the
// fact that it succeeded without an error before means it will succeed this
// time too). And this leaves it up to our compensating call to xhr.send()
// to generate the 2nd expected overflow error and console error message.
//
// Note also that we&apos;ll need to make sure that we do this compensation only
// once, and not repeatedly do the compensating xhr.send() call on every
// onreadystatechange() frame on the return path.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758960</commentid>
    <comment_count>1</comment_count>
      <attachid>172420</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2012-11-05 15:32:31 -0800</bug_when>
    <thetext>Created attachment 172420
Fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758987</commentid>
    <comment_count>2</comment_count>
      <attachid>172420</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-11-05 16:11:40 -0800</bug_when>
    <thetext>Comment on attachment 172420
Fix.

Nice. I like this much better than just marking the test flaky in the testing harness.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759008</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2012-11-05 16:25:41 -0800</bug_when>
    <thetext>Landed in r133540: &lt;http://trac.webkit.org/changeset/133540&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172420</attachid>
            <date>2012-11-05 15:32:31 -0800</date>
            <delta_ts>2012-11-05 16:11:40 -0800</delta_ts>
            <desc>Fix.</desc>
            <filename>bug-101268.patch</filename>
            <type>text/plain</type>
            <size>6174</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDEzMzUzNSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEyLTExLTA1ICBNYXJrIExhbSAgPG1hcmsu
bGFtQGFwcGxlLmNvbT4KKworICAgICAgICBGaXhlZCBmbGFreSBmYXN0L3htbGh0dHByZXF1ZXN0
L3htbGh0dHByZXF1ZXN0LXJlY3Vyc2l2ZS1zeW5jLWV2ZW50Lmh0bWwuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDEyNjguCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L3htbGh0dHByZXF1ZXN0
L3htbGh0dHByZXF1ZXN0LXJlY3Vyc2l2ZS1zeW5jLWV2ZW50LWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBmYXN0L3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXJlY3Vyc2l2ZS1zeW5jLWV2
ZW50Lmh0bWw6CisKIDIwMTItMTEtMDUgIEFsaWNlIEJveGhhbGwgIDxhYm94aGFsbEBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBnYXJkZW5pbmcuIE1hcmsgZm9udHMvY3Vyc2l2
ZS5odG1sIGFzIGZsYWt5IG9uIE1vdW50YWluTGlvbiBhcyB3ZWxsIGFzIExpb24uCkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXJlY3Vyc2l2ZS1z
eW5jLWV2ZW50LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3ht
bGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXJlY3Vyc2l2ZS1zeW5jLWV2ZW50LWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMTMzNTMxKQorKysgTGF5b3V0VGVzdHMvZmFzdC94bWxodHRwcmVxdWVz
dC94bWxodHRwcmVxdWVzdC1yZWN1cnNpdmUtc3luYy1ldmVudC1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTEsNCArMSw1IEBACiBDT05TT0xFIE1FU1NBR0U6IFJhbmdlRXJyb3I6IE1h
eGltdW0gY2FsbCBzdGFjayBzaXplIGV4Y2VlZGVkLgorQ09OU09MRSBNRVNTQUdFOiBSYW5nZUVy
cm9yOiBNYXhpbXVtIGNhbGwgc3RhY2sgc2l6ZSBleGNlZWRlZC4KIFRoaXMgdGVzdHMgdGhhdCBo
YXZpbmcgaW5maW5pdGUgcmVjdXJzaW9uIGluIFhNTEh0dHBSZXF1ZXN0IGV2ZW50IGhhbmRsZXIg
ZG9lcyBub3QgY3Jhc2guIAogUEFTUwogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3htbGh0dHBy
ZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXJlY3Vyc2l2ZS1zeW5jLWV2ZW50Lmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1yZWN1
cnNpdmUtc3luYy1ldmVudC5odG1sCShyZXZpc2lvbiAxMzM1MzEpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXJlY3Vyc2l2ZS1zeW5jLWV2ZW50Lmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTcsNiArNyw4MSBAQCBmdW5jdGlvbiBsb2cocykKICAgICBs
b2dEaXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnIiKSk7CiB9CiAKKy8v
IFRoaXMgdGVzdCBpcyBmbGFreSBiZWNhdXNlIGl0IGRlcGVuZHMgb24gdGhlIHNpemUgb2YgdGhl
IGF2YWlsYWJsZSBuYXRpdmUKKy8vIHN0YWNrLCB0aGUgc2l6ZSBvZiBuYXRpdmUgc3RhY2sgZnJh
bWVzLCBhbmQgdGhlIGxheWVyaW5nIG9mIGZ1bmN0aW9uIGNhbGxzCisvLyBpbiB0aGUgSmF2YVNj
cmlwdCBWTSBjb2RlLiBUb2dldGhlciwgdGhlc2UgdmFyaWFibGVzIGRldGVybWluZSB3aGVuIGEK
Ky8vIFN0YWNrT3ZlcmZsb3dFcnJvciB3aWxsIGJlIHRocm93biBpbiB0aGUgY291cnNlIG9mIHRo
aXMgdGVzdCBvZiB1bmJvdW5kZWQKKy8vIHJlY3Vyc2lvbi4KKy8vCisvLyBGcm9tIGV4cGVyaWVu
Y2Ugd2l0aCB0aGlzIHRlc3QsIFN0YWNrT3ZlcmZsb3cgZXJyb3IgdGVuZHMgdG8gYmUgdGhyb3du
IGluCisvLyAyIHNjZW5hcmlvczoKKy8vCisvLyBTY2VuYXJpbyAxOiBPdmVyZmxvd2VkIHdoaWxl
IGNhbGxpbmcgeGhyLm9wZW4oKQorLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KKy8vIEluIHRoaXMgc2NlbmFyaW8sIHRoZSBWTSBpcyBleGVjdXRpbmcg
eGhyLm9wZW4oKSBhbmQgc3VjY2VlZHMgaW4gc2V0dGluZworLy8gdXAgdGhlIG5ldyByZXF1ZXN0
LiBJbiByZXNwb25zZSB0byBoYXZpbmcgb3BlbmVkIHRoZSByZXF1ZXN0LCBpdCB0cmllcyB0bwor
Ly8gZGlzcGF0Y2ggYW4gZXZlbnQgd2l0aCByZWFkeVN0YXRlIDEgKE9QRU5FRCkuIFVuZm9ydHVu
YXRlbHksIHRoZXJlIGlzIG5vdAorLy8gZW5vdWdoIHN0YWNrIGFuZCB3ZSBnZXQgYW4gb3ZlcmZs
b3cgZXJyb3IgYW5kIDEgY29uc29sZSBlcnJvciBtZXNzYWdlIGhlcmUuCisvLworLy8gVGhlIGVy
cm9yIGlzIHRocm93biBidXQgaXMgdGhlbiBlYXRlbiB1cCBieSB0aGUgRXZlbnREaXNwYXRjaGVy
LiBIZW5jZSwKKy8vIG9ucmVhZHlzdGF0ZWNoYW5nZSgpIGJhY2sgaW4gSlMgbGFuZCBkb2VzIG5v
dCBldmVuIHNlZSB0aGlzIGVycm9yLgorLy8KKy8vIG9wZW4oKSBldmVudHVhbGx5IHJldHVybnMg
dG8gb25yZWFkeXN0YXRlY2hhbmdlKCksIGFuZCB3ZSBjYWxsIHhoci5zZW5kKCkKKy8vIG5leHQu
IHhoci5zZW5kKCkgb3ZlcmZsb3dzIHRoZSBzdGFjayBhZ2FpbiwgYW5kIHdlIGdldCBhIDJuZCBl
cnJvciBhbmQKKy8vIGEgMm5kIGNvbnNvbGUgZXJyb3IgbWVzc2FnZS4KKy8vCisvLyBOb3RlOiB0
aGUgbGFzdFJlYWR5U3RhdGVPYnNlcnZlZCBpbiB0aGlzIGNhc2UgaXMgNCBiZWNhdXNlIHRoZSBl
dmVudAorLy8gZGlzcGF0Y2ggZm9yIE9QRU5FRCBmYWlsZWQgdG8gZXhlY3V0ZSBvbnJlYWR5c3Rh
dGVjaGFuZ2UoKS4KKy8vCisvLyBUaGUgdG90YWwgbnVtYmVyIG9mIGVycm9yIG1lc3NhZ2VzIHNl
ZW4gaXMgMi4KKy8vCisvLyBTY2VuYXJpbyAyOiBPdmVyZmxvd2VkIHdoaWxlIGNhbGxpbmcgeGhy
LnNlbmQoKQorLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KKy8vIEluIHRoaXMgc2NlbmFyaW8sIHRoZSBWTSBpcyBleGVjdXRpbmcgeGhyLnNlbmQoKSBh
bmQgYSByZWFkeVN0YXRlIGNoYW5nZQorLy8gdG8gNCAoRE9ORSkgb2NjdXJzLiBBbiBldmVudCBp
cyBkaXNwYXRjaGVkIGFuZCB0aGUgVk0gdHJpZXMgdG8gY2FsbAorLy8gb25yZWFkeXN0YXRlY2hh
bmdlKCkgYnV0IG92ZXJmbG93cyB0aGUgc3RhY2suIEhlcmUsIHdlIHNlZSAxIGVycm9yIGFuZAor
Ly8gMSBjb25zb2xlIGVycm9yIG1lc3NhZ2UuCisvLworLy8gU2luY2Ugd2UgbmV2ZXIgc3VjY2Vl
ZGVkIGluIHJlZW50ZXJpbmcgb25yZWFkeXN0YXRlY2hhbmdlKCksIHdlIGRpZCBub3QKKy8vIG5v
dCBzZXQgdXAgYW55bW9yZSByZXF1ZXN0cywgYW5kIHdpbGwgbm90IGF0dGVtcHQgdG8gcmUtZW50
ZXIKKy8vIG9ucmVhZHlzdGF0ZWNoYW5nZSgpIGFmdGVyIHRoaXMuIEhlbmNlLCB3ZSB3aWxsIG5v
dCBzZWUgYW55bW9yZSBvdmVyZmxvdworLy8gZXJyb3JzIG5vciBjb25zb2xlIGVycm9yIG1lc3Nh
Z2VzLgorLy8KKy8vIEluIGNvbnRyYXN0IHdpdGggc2NlbmFyaW8gMSwgd2UgZGlkIG5vdCBzZWUg
YW4gb3ZlcmZsb3cgZXJyb3IgZm9yIHhoci5vcGVuKCkKKy8vIGJlZm9yZSB3ZSBzYXcgdGhlIGVy
cm9yIGZvciB4aHIuc2VuZCgpLgorLy8KKy8vIE5vdGU6IGxhc3RSZWFkeVN0YXRlT2JzZXJ2ZWQg
aW4gdGhpcyBjYXNlIGlzIDEgYmVjYXVzZSB0aGUgZXZlbnQKKy8vIGRpc3BhdGNoIGZvciBPUEVO
RUQgc3VjY2VlZGVkIGluIGV4ZWN1dGluZyBvbnJlYWR5c3RhdGVjaGFuZ2UoKSwgYW5kCisvLyBs
YXN0UmVhZHlTdGF0ZU9ic2VydmVkIHdhcyBzZXQgdG8gMS4KKy8vCisvLyBUaGUgdG90YWwgbnVt
YmVyIG9mIGVycm9yIG1lc3NhZ2VzIHNlZW4gaXMgMS4KKy8vCisvLyBGbGFraW5lc3MKKy8vID09
PT09PT09PQorLy8gU2luY2Ugd2UgY2FuIGVuZCB1cCB3aXRoIHNjZW5hcmlvIDEgb3IgMiBkZXBl
bmRpbmcgb24gdmFyaWFibGVzIG91dHNpZGUgdGhlCisvLyBjb250cm9sIG9mIHRoaXMgdGVzdCwg
dGhlIHJlc3VsdCBvZiB0aGUgdGVzdCB3b3VsZCBiZSBpbmhlcmVudGx5IGZsYWt5IGkuZS4KKy8v
IHdlIGNhbiBzZWUgMSBvciAyIGNvbnNvbGUgZXJyb3IgbWVzc2FnZXMuCisvLworLy8gVGhhdCBp
cyB1bmxlc3Mgd2UgZG8gc29tZSBjb21wZW5zYXRpb24uIEluIHRoZSBjYXNlIG9mIHNjZW5hcmlv
IDIsIHdlIGNhbgorLy8gY2hlY2sgaWYgdGhlIGxhc3RSZWFkeVN0YXRlT2JzZXJ2ZWQgaXMgMSB3
aGljaCBtZWFucyB3ZSB3b3VsZCBoYXZlIG9ubHkgc2VlbgorLy8gb25lIGNvbnNvbGUgZXJyb3Ig
bWVzc2FnZS4gSWYgc28sIHdlIGNhbiBjYWxsIHhoci5zZW5kKCkgYWdhaW4ganVzdCB0bworLy8g
dHJpZ2dlciBhbm90aGVyIG9uZSBzbyB0aGF0IHdlJ2xsIGhhdmUgYSB0b3RhbCBvZiAyLgorLy8K
Ky8vIE5vdGUgdGhhdCBpbiB0aGUgY29tcGVuc2F0aW9uIGNhc2UsIHdlJ2xsIG5lZWQgdG8gY2Fs
bCB4aHIub3BlbigpIGFnYWluCisvLyBiZWZvcmUgY2FsbGluZyB4aHIuc2VuZCgpLiBUaGlzIGlz
IGJlY2F1c2UgdGhlIHByZXZpb3VzIHhociByZXF1ZXN0IGhhcworLy8gYWxyZWFkeSBiZWVuIGNs
b3NlZC4gSGVyZSwgeGhyLm9wZW4oKSBzaG91bGQgbm90IHRyaWdnZXIgYW4gb3ZlcmZsb3cgZXJy
b3IKKy8vIGp1c3QgbGlrZSBpdCBkaWRuJ3QgYmVmb3JlIHRoZSBwcmV2aW91cyB4aHIuc2VuZCgp
IHRyaWdnZXJlZCB0aGUgZXJyb3IgKHRoZQorLy8gZmFjdCB0aGF0IGl0IHN1Y2NlZWRlZCB3aXRo
b3V0IGFuIGVycm9yIGJlZm9yZSBtZWFucyBpdCB3aWxsIHN1Y2NlZWQgdGhpcworLy8gdGltZSB0
b28pLiBBbmQgdGhpcyBsZWF2ZXMgaXQgdXAgdG8gb3VyIGNvbXBlbnNhdGluZyBjYWxsIHRvIHho
ci5zZW5kKCkKKy8vIHRvIGdlbmVyYXRlIHRoZSAybmQgZXhwZWN0ZWQgb3ZlcmZsb3cgZXJyb3Ig
YW5kIGNvbnNvbGUgZXJyb3IgbWVzc2FnZS4KKy8vCisvLyBOb3RlIGFsc28gdGhhdCB3ZSdsbCBu
ZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IHdlIGRvIHRoaXMgY29tcGVuc2F0aW9uIG9ubHkKKy8vIG9u
Y2UsIGFuZCBub3QgcmVwZWF0ZWRseSBkbyB0aGUgY29tcGVuc2F0aW5nIHhoci5zZW5kKCkgY2Fs
bCBvbiBldmVyeQorLy8gb25yZWFkeXN0YXRlY2hhbmdlKCkgZnJhbWUgb24gdGhlIHJldHVybiBw
YXRoLgorCitsYXN0UmVhZHlTdGF0ZU9ic2VydmVkID0gMDsKK2hhc0NvbXBlbnNhdGVkQWxyZWFk
eSA9IGZhbHNlOworCiBmdW5jdGlvbiB0ZXN0KCkKIHsKICAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpIHsKQEAgLTE0LDkgKzg5LDE3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIH0KICAgICB2YXIg
eGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CiAgICAgeGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9
IGZ1bmN0aW9uKCkgeworICAgICAgICBsYXN0UmVhZHlTdGF0ZU9ic2VydmVkID0geGhyLnJlYWR5
U3RhdGU7CiAgICAgICAgIGlmICh4aHIucmVhZHlTdGF0ZSA9PSA0KSB7CiAgICAgICAgICAgICB4
aHIub3BlbigiR0VUIiwgInJlY3Vyc2UuaHRtbCIsIGZhbHNlKTsKICAgICAgICAgICAgIHhoci5z
ZW5kKG51bGwpOworCisgICAgICAgICAgICAvLyBDb21wZW5zYXRlIGZvciB0ZXN0IGZsYWtpbmVz
cyBpZiBuZWVkZWQ6CisgICAgICAgICAgICBpZiAoIWhhc0NvbXBlbnNhdGVkQWxyZWFkeSAmJiBs
YXN0UmVhZHlTdGF0ZU9ic2VydmVkID09IDEpIHsKKyAgICAgICAgICAgICAgICB4aHIub3Blbigi
R0VUIiwgInJlY3Vyc2UuaHRtbCIsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICB4aHIuc2VuZChu
dWxsKTsKKyAgICAgICAgICAgICAgICBoYXNDb21wZW5zYXRlZEFscmVhZHkgPSB0cnVlOworICAg
ICAgICAgICAgfQogICAgICAgICB9CiAgICAgfTsKICAgICB4aHIub3BlbigiR0VUIiwgInJlY3Vy
c2UuaHRtbCIsIGZhbHNlKTsK
</data>
<flag name="review"
          id="186727"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>