<?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>158239</bug_id>
          
          <creation_ts>2016-05-31 15:15:34 -0700</creation_ts>
          <short_desc>Notify client immediately if network session doesn&apos;t exist for a synchronous XHR load.</short_desc>
          <delta_ts>2016-06-01 22:38:39 -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>WebKit2</component>
          <version>Other</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="Yongjun Zhang">yongjun_zhang</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mitz</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1197976</commentid>
    <comment_count>0</comment_count>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2016-05-31 15:15:34 -0700</bug_when>
    <thetext>For a synchronous XHR load, if the network session doesn&apos;t exist, we should notify NetworkLoadClient immediately. Otherwise the Web process could hang when waiting for the synchronous load to finish.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197977</commentid>
    <comment_count>1</comment_count>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2016-05-31 15:16:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/26344251&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197980</commentid>
    <comment_count>2</comment_count>
      <attachid>280188</attachid>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2016-05-31 15:28:11 -0700</bug_when>
    <thetext>Created attachment 280188
Notify the client immediately when the network session doesn&apos;t exist for a sync XHR request.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1198017</commentid>
    <comment_count>3</comment_count>
      <attachid>280188</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-05-31 16:59:14 -0700</bug_when>
    <thetext>Comment on attachment 280188
Notify the client immediately when the network session doesn&apos;t exist for a sync XHR request.

Why is this only an issue for sync loads? It seems like it&apos;s an issue for async loads, too.

Sync loads cause a larger issue because the WebProcess is purposefully hanging for them, but isn&apos;t it also bad for the WebProcess to think an async load is happening.... forever...? Even though it will never happen?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1198022</commentid>
    <comment_count>4</comment_count>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2016-05-31 17:24:27 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 280188 [details]
&gt; Notify the client immediately when the network session doesn&apos;t exist for a
&gt; sync XHR request.
&gt; 
&gt; Why is this only an issue for sync loads? It seems like it&apos;s an issue for
&gt; async loads, too.
&gt; 
&gt; Sync loads cause a larger issue because the WebProcess is purposefully
&gt; hanging for them, but isn&apos;t it also bad for the WebProcess to think an async
&gt; load is happening.... forever...? Even though it will never happen?

I wasn&apos;t able to reproduce with async load. We could hit the point where the network session is removed for an async load. However, since this only happens when we closing a web page, Web Process will cancel the load immediately and we won&apos;t have a long waiting WebProcess.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1198034</commentid>
    <comment_count>5</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-05-31 18:30:51 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; Comment on attachment 280188 [details]
&gt; &gt; Notify the client immediately when the network session doesn&apos;t exist for a
&gt; &gt; sync XHR request.
&gt; &gt; 
&gt; &gt; Why is this only an issue for sync loads? It seems like it&apos;s an issue for
&gt; &gt; async loads, too.
&gt; &gt; 
&gt; &gt; Sync loads cause a larger issue because the WebProcess is purposefully
&gt; &gt; hanging for them, but isn&apos;t it also bad for the WebProcess to think an async
&gt; &gt; load is happening.... forever...? Even though it will never happen?
&gt; 
&gt; I wasn&apos;t able to reproduce with async load. We could hit the point where the
&gt; network session is removed for an async load. However, since this only
&gt; happens when we closing a web page, Web Process will cancel the load
&gt; immediately and we won&apos;t have a long waiting WebProcess.

That&apos;s *currently* the only time a Session can be removed, but I foresee that could change in the future.

I don&apos;t see any downside to immediately signaling the error for all loads.

You&apos;ve looked at the code more recently - Do you foresee any downside?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1198057</commentid>
    <comment_count>6</comment_count>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2016-05-31 21:20:05 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; (In reply to comment #3)
&gt; &gt; &gt; Comment on attachment 280188 [details]
&gt; &gt; &gt; Notify the client immediately when the network session doesn&apos;t exist for a
&gt; &gt; &gt; sync XHR request.
&gt; &gt; &gt; 
&gt; &gt; &gt; Why is this only an issue for sync loads? It seems like it&apos;s an issue for
&gt; &gt; &gt; async loads, too.
&gt; &gt; &gt; 
&gt; &gt; &gt; Sync loads cause a larger issue because the WebProcess is purposefully
&gt; &gt; &gt; hanging for them, but isn&apos;t it also bad for the WebProcess to think an async
&gt; &gt; &gt; load is happening.... forever...? Even though it will never happen?
&gt; &gt; 
&gt; &gt; I wasn&apos;t able to reproduce with async load. We could hit the point where the
&gt; &gt; network session is removed for an async load. However, since this only
&gt; &gt; happens when we closing a web page, Web Process will cancel the load
&gt; &gt; immediately and we won&apos;t have a long waiting WebProcess.
&gt; 
&gt; That&apos;s *currently* the only time a Session can be removed, but I foresee
&gt; that could change in the future.
&gt; 
&gt; I don&apos;t see any downside to immediately signaling the error for all loads.
&gt; 
&gt; You&apos;ve looked at the code more recently - Do you foresee any downside?

I don&apos;t see any downside either, and I agree signaling the error for all loads sounds more future-proof. I will submit another path. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1198209</commentid>
    <comment_count>7</comment_count>
      <attachid>280250</attachid>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2016-06-01 11:27:51 -0700</bug_when>
    <thetext>Created attachment 280250
Signal the error for all loads.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1198236</commentid>
    <comment_count>8</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-06-01 12:37:38 -0700</bug_when>
    <thetext>Should the callback be made asynchronously, with RunLoop::dispatch or equivalent?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1198260</commentid>
    <comment_count>9</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-06-01 13:31:50 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Should the callback be made asynchronously, with RunLoop::dispatch or
&gt; equivalent?

This was going to be my review feedback. It should be asynchronous.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1198261</commentid>
    <comment_count>10</comment_count>
      <attachid>280250</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-06-01 13:32:59 -0700</bug_when>
    <thetext>Comment on attachment 280250
Signal the error for all loads.

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

&gt; Source/WebKit2/NetworkProcess/NetworkLoad.cpp:62
&gt; +        m_client.didFailLoading(internalError(m_currentRequest.url()));

Synchronously calling back to the client - especially in the constructor - is probably inviting trouble.

We should spin the runloop.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1198296</commentid>
    <comment_count>11</comment_count>
      <attachid>280269</attachid>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2016-06-01 15:00:52 -0700</bug_when>
    <thetext>Created attachment 280269
V3: notify the client asynchronously.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1198343</commentid>
    <comment_count>12</comment_count>
      <attachid>280269</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-06-01 17:11:20 -0700</bug_when>
    <thetext>Comment on attachment 280269
V3: notify the client asynchronously.

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

&gt; Source/WebKit2/NetworkProcess/NetworkLoad.cpp:64
&gt; +        RunLoop::main().dispatch([this, url = parameters.request.url()] {
&gt; +            didCompleteWithError(internalError(url));
&gt; +        });

This is a super nit pick, and the first time I&apos;ve ever suggested it...

But we&apos;ve been looking at all of our lambda usage lately, and going over things like &quot;RunLoop::dispatch&quot; and &quot;callOnMainThread&quot; with a fine toothed comb. We&apos;ve found a number of thread safety issues.

At a glance, this looks like a potential thread safety issue, because it&apos;s unsafe to send a URL across threads without making an isolatedCopy() of it first.

Of course this isn&apos;t *actually* a thread safety issue because it&apos;s not cross thread - RunLoop::main() happens to also be the current RunLoop.

If the dispatch was instead &quot;RunLoop::current().dispatch(...)&quot;, then I wouldn&apos;t even have considered it a potential thread safety issue.

If you&apos;d like to make that change, that&apos;d be nice. I haven&apos;t thought about it a lot yet, but I think that&apos;s what we should do going forward and will likely be discussing with a larger audience soon.

r+ either way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1198446</commentid>
    <comment_count>13</comment_count>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2016-06-01 21:53:08 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; Comment on attachment 280269 [details]
&gt; V3: notify the client asynchronously.
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=280269&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/NetworkProcess/NetworkLoad.cpp:64
&gt; &gt; +        RunLoop::main().dispatch([this, url = parameters.request.url()] {
&gt; &gt; +            didCompleteWithError(internalError(url));
&gt; &gt; +        });
&gt; 
&gt; This is a super nit pick, and the first time I&apos;ve ever suggested it...
&gt; 
&gt; But we&apos;ve been looking at all of our lambda usage lately, and going over
&gt; things like &quot;RunLoop::dispatch&quot; and &quot;callOnMainThread&quot; with a fine toothed
&gt; comb. We&apos;ve found a number of thread safety issues.
&gt; 
&gt; At a glance, this looks like a potential thread safety issue, because it&apos;s
&gt; unsafe to send a URL across threads without making an isolatedCopy() of it
&gt; first.

Yes, I had the same concern at first, but I convinced myself it won&apos;t be an issue - it looks like we expected NetworkLoad to always work on main thread (e.g., we assert this in couple of places). 
&gt; 
&gt; Of course this isn&apos;t *actually* a thread safety issue because it&apos;s not cross
&gt; thread - RunLoop::main() happens to also be the current RunLoop.
&gt; 
&gt; If the dispatch was instead &quot;RunLoop::current().dispatch(...)&quot;, then I
&gt; wouldn&apos;t even have considered it a potential thread safety issue.
&gt; 
&gt; If you&apos;d like to make that change, that&apos;d be nice. I haven&apos;t thought about
&gt; it a lot yet, but I think that&apos;s what we should do going forward and will
&gt; likely be discussing with a larger audience soon.

Sure thing! I will make this change before landing.
&gt; 
&gt; r+ either way.

Thank you for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1198451</commentid>
    <comment_count>14</comment_count>
      <attachid>280307</attachid>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2016-06-01 22:07:55 -0700</bug_when>
    <thetext>Created attachment 280307
Address review comments before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1198456</commentid>
    <comment_count>15</comment_count>
      <attachid>280307</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-01 22:38:34 -0700</bug_when>
    <thetext>Comment on attachment 280307
Address review comments before landing.

Clearing flags on attachment: 280307

Committed r201593: &lt;http://trac.webkit.org/changeset/201593&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1198457</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-01 22:38:39 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280188</attachid>
            <date>2016-05-31 15:28:11 -0700</date>
            <delta_ts>2016-06-01 11:27:51 -0700</delta_ts>
            <desc>Notify the client immediately when the network session doesn&apos;t exist for a sync XHR request.</desc>
            <filename>svc_unresponsive_web_process.patch</filename>
            <type>text/plain</type>
            <size>2597</size>
            <attacher name="Yongjun Zhang">yongjun_zhang</attacher>
            
              <data encoding="base64">Y29tbWl0IDAzYjM2YzQ4ZjAyNzFhODI3ZjMyMGMzYjUyNDliY2RiNTczYjg5NDcKQXV0aG9yOiBZ
b25nanVuIFpoYW5nIDx5b25nanVuX3poYW5nQGFwcGxlLmNvbT4KRGF0ZTogICBUdWUgTWF5IDMx
IDE0OjIwOjUwIDIwMTYgLTA3MDAKCiAgICBOb3RpZnkgY2xpZW50IGltbWVkaWF0ZWx5IGlmIG5l
dHdvcmsgc2Vzc2lvbiBkb2Vzbid0IGV4aXN0IGZvciBhIHN5bmNocm9ub3VzIFhIUiBsb2FkLgog
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODIzOQogICAgPHJk
YXI6Ly9wcm9ibGVtLzI2MzQ0MjUxPgogICAgCiAgICBGb3IgYSBzeW5jaHJvbm91cyBYSFIgbG9h
ZCwgaWYgdGhlIG5ldHdvcmsgc2Vzc2lvbiBkb2Vzbid0IGV4aXN0LCB3ZSBzaG91bGQgbm90aWZ5
IE5ldHdvcmtMb2FkQ2xpZW50CiAgICBpbW1lZGlhdGVseS4gT3RoZXJ3aXNlIHRoZSBXZWIgcHJv
Y2VzcyBjb3VsZCBoYW5nIHdoZW4gd2FpdGluZyBmb3IgdGhlIHN5bmNocm9ub3VzIGxvYWQgdG8g
ZmluaXNoLgogICAgCiAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcDoKICAgIChX
ZWJLaXQ6Ok5ldHdvcmtMb2FkOjpOZXR3b3JrTG9hZCk6CgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGEyYjQ1ZWIu
LjgxYzY1OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNi0wNS0zMSAgWW9uZ2p1
biBaaGFuZyAgPHlvbmdqdW5femhhbmdAYXBwbGUuY29tPgorCisgICAgICAgIE5vdGlmeSBjbGll
bnQgaW1tZWRpYXRlbHkgaWYgbmV0d29yayBzZXNzaW9uIGRvZXNuJ3QgZXhpc3QgZm9yIGEgc3lu
Y2hyb25vdXMgWEhSIGxvYWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTgyMzkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI2MzQ0MjUxPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZvciBhIHN5bmNo
cm9ub3VzIFhIUiBsb2FkLCBpZiB0aGUgbmV0d29yayBzZXNzaW9uIGRvZXNuJ3QgZXhpc3QsIHdl
IHNob3VsZCBub3RpZnkgTmV0d29ya0xvYWRDbGllbnQKKyAgICAgICAgaW1tZWRpYXRlbHkuIE90
aGVyd2lzZSB0aGUgV2ViIHByb2Nlc3MgY291bGQgaGFuZyB3aGVuIHdhaXRpbmcgZm9yIHRoZSBz
eW5jaHJvbm91cyBsb2FkIHRvIGZpbmlzaC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtMb2FkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWQ6Ok5ldHdvcmtMb2Fk
KToKKwogMjAxNi0wNS0zMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtpT1NdIEJldHRlciBkZWFsIHdpdGggV2ViUHJvY2VzcyBzdXNwZW5zaW9uIGR1ZSB0byBz
Y3JlZW4gbG9ja2luZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0xvYWQuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xv
YWQuY3BwCmluZGV4IDU2MDg5YmYuLmJhNzkwMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKQEAgLTU3LDggKzU3LDExIEBAIE5ldHdvcmtMb2Fk
OjpOZXR3b3JrTG9hZChOZXR3b3JrTG9hZENsaWVudCYgY2xpZW50LCBjb25zdCBOZXR3b3JrTG9h
ZFBhcmFtZXRlcnMmCiAgICAgICAgIG1fdGFzayA9IE5ldHdvcmtEYXRhVGFzazo6Y3JlYXRlKCpu
ZXR3b3JrU2Vzc2lvbiwgKnRoaXMsIHBhcmFtZXRlcnMucmVxdWVzdCwgcGFyYW1ldGVycy5hbGxv
d1N0b3JlZENyZWRlbnRpYWxzLCBwYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSwgcGFy
YW1ldGVycy5zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KTsKICAgICAg
ICAgaWYgKCFwYXJhbWV0ZXJzLmRlZmVyc0xvYWRpbmcpCiAgICAgICAgICAgICBtX3Rhc2stPnJl
c3VtZSgpOwotICAgIH0gZWxzZQorICAgIH0gZWxzZSB7CiAgICAgICAgIFdURkxvZ0Fsd2F5cygi
QXR0ZW1wdGVkIHRvIGNyZWF0ZSBhIE5ldHdvcmtMb2FkIHdpdGggYSBzZXNzaW9uIChpZD0lIiBQ
Ukl1NjQgIikgdGhhdCBkb2VzIG5vdCBleGlzdC4iLCBwYXJhbWV0ZXJzLnNlc3Npb25JRC5zZXNz
aW9uSUQoKSk7CisgICAgICAgIGlmIChtX2NsaWVudC5pc1N5bmNocm9ub3VzKCkpCisgICAgICAg
ICAgICBtX2NsaWVudC5kaWRGYWlsTG9hZGluZyhpbnRlcm5hbEVycm9yKG1fY3VycmVudFJlcXVl
c3QudXJsKCkpKTsKKyAgICB9CiAjZWxzZQogICAgIG1faGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6
OmNyZWF0ZShtX25ldHdvcmtpbmdDb250ZXh0LmdldCgpLCBwYXJhbWV0ZXJzLnJlcXVlc3QsIHRo
aXMsIHBhcmFtZXRlcnMuZGVmZXJzTG9hZGluZywgcGFyYW1ldGVycy5jb250ZW50U25pZmZpbmdQ
b2xpY3kgPT0gU25pZmZDb250ZW50KTsKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280250</attachid>
            <date>2016-06-01 11:27:51 -0700</date>
            <delta_ts>2016-06-01 15:00:52 -0700</delta_ts>
            <desc>Signal the error for all loads.</desc>
            <filename>webprocess_unresponsive.patch</filename>
            <type>text/plain</type>
            <size>2571</size>
            <attacher name="Yongjun Zhang">yongjun_zhang</attacher>
            
              <data encoding="base64">Y29tbWl0IGRhZTY2MzdhOWFiMGQ5NGI2Y2Q3NTI5MDhmYTVhZjk3YzgxMmY0MzYKQXV0aG9yOiBZ
b25nanVuIFpoYW5nIDx5b25nanVuX3poYW5nQGFwcGxlLmNvbT4KRGF0ZTogICBUdWUgTWF5IDMx
IDE0OjIwOjUwIDIwMTYgLTA3MDAKCiAgICBOb3RpZnkgY2xpZW50IGltbWVkaWF0ZWx5IGlmIG5l
dHdvcmsgc2Vzc2lvbiBkb2Vzbid0IGV4aXN0IGZvciBhIHN5bmNocm9ub3VzIFhIUiBsb2FkLgog
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODIzOQogICAgPHJk
YXI6Ly9wcm9ibGVtLzI2MzQ0MjUxPgogICAgCiAgICBXaGVuIHN0YXJ0aW5nIGEgbmV0d29yayBs
b2FkLCBpZiB0aGUgbmV0d29yayBzZXNzaW9uIGRvZXNuJ3QgZXhpc3QsIHdlIHNob3VsZCBub3Rp
ZnkgTmV0d29ya0xvYWRDbGllbnQKICAgIGltbWVkaWF0ZWx5LiBPdGhlcndpc2UgdGhlIFdlYiBw
cm9jZXNzIGNvdWxkIGhhbmcgd2hlbiB3YWl0aW5nIGZvciB0aGUgc3luY2hyb25vdXMgbG9hZCB0
byBmaW5pc2guCiAgICAKICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwOgogICAg
KFdlYktpdDo6TmV0d29ya0xvYWQ6Ok5ldHdvcmtMb2FkKToKCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYjhmNmQ0
ZS4uZDk1ZmU5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE2LTA1LTMxICBZb25n
anVuIFpoYW5nICA8eW9uZ2p1bl96aGFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgTm90aWZ5IGNs
aWVudCBpbW1lZGlhdGVseSBpZiBuZXR3b3JrIHNlc3Npb24gZG9lc24ndCBleGlzdCBmb3IgYSBz
eW5jaHJvbm91cyBYSFIgbG9hZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1ODIzOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjYzNDQyNTE+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9yIGEgc3lu
Y2hyb25vdXMgWEhSIGxvYWQsIGlmIHRoZSBuZXR3b3JrIHNlc3Npb24gZG9lc24ndCBleGlzdCwg
d2Ugc2hvdWxkIG5vdGlmeSBOZXR3b3JrTG9hZENsaWVudAorICAgICAgICBpbW1lZGlhdGVseS4g
T3RoZXJ3aXNlIHRoZSBXZWIgcHJvY2VzcyBjb3VsZCBoYW5nIHdoZW4gd2FpdGluZyBmb3IgdGhl
IHN5bmNocm9ub3VzIGxvYWQgdG8gZmluaXNoLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0xvYWQuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrTG9hZDo6TmV0d29ya0xv
YWQpOgorCiAyMDE2LTA1LTMxICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGwgb3V0IHIyMDE0ODEsIHIyMDE1MjM6IDAuMyUg
cmVncmVzc2lvbiBpbiBPY3RhbmUgY29kZS1sb2FkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKaW5kZXggNTYwODliZi4uMDU5N2YwZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcApAQCAtNTcsOCArNTcs
MTAgQEAgTmV0d29ya0xvYWQ6Ok5ldHdvcmtMb2FkKE5ldHdvcmtMb2FkQ2xpZW50JiBjbGllbnQs
IGNvbnN0IE5ldHdvcmtMb2FkUGFyYW1ldGVycyYKICAgICAgICAgbV90YXNrID0gTmV0d29ya0Rh
dGFUYXNrOjpjcmVhdGUoKm5ldHdvcmtTZXNzaW9uLCAqdGhpcywgcGFyYW1ldGVycy5yZXF1ZXN0
LCBwYXJhbWV0ZXJzLmFsbG93U3RvcmVkQ3JlZGVudGlhbHMsIHBhcmFtZXRlcnMuY29udGVudFNu
aWZmaW5nUG9saWN5LCBwYXJhbWV0ZXJzLnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQ
UmVkaXJlY3QpOwogICAgICAgICBpZiAoIXBhcmFtZXRlcnMuZGVmZXJzTG9hZGluZykKICAgICAg
ICAgICAgIG1fdGFzay0+cmVzdW1lKCk7Ci0gICAgfSBlbHNlCisgICAgfSBlbHNlIHsKICAgICAg
ICAgV1RGTG9nQWx3YXlzKCJBdHRlbXB0ZWQgdG8gY3JlYXRlIGEgTmV0d29ya0xvYWQgd2l0aCBh
IHNlc3Npb24gKGlkPSUiIFBSSXU2NCAiKSB0aGF0IGRvZXMgbm90IGV4aXN0LiIsIHBhcmFtZXRl
cnMuc2Vzc2lvbklELnNlc3Npb25JRCgpKTsKKyAgICAgICAgbV9jbGllbnQuZGlkRmFpbExvYWRp
bmcoaW50ZXJuYWxFcnJvcihtX2N1cnJlbnRSZXF1ZXN0LnVybCgpKSk7CisgICAgfQogI2Vsc2UK
ICAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUobV9uZXR3b3JraW5nQ29udGV4
dC5nZXQoKSwgcGFyYW1ldGVycy5yZXF1ZXN0LCB0aGlzLCBwYXJhbWV0ZXJzLmRlZmVyc0xvYWRp
bmcsIHBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5ID09IFNuaWZmQ29udGVudCk7CiAj
ZW5kaWYK
</data>
<flag name="review"
          id="304214"
          type_id="1"
          status="-"
          setter="beidson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280269</attachid>
            <date>2016-06-01 15:00:52 -0700</date>
            <delta_ts>2016-06-01 22:08:50 -0700</delta_ts>
            <desc>V3: notify the client asynchronously.</desc>
            <filename>webprocess_unresponsive.patch</filename>
            <type>text/plain</type>
            <size>2641</size>
            <attacher name="Yongjun Zhang">yongjun_zhang</attacher>
            
              <data encoding="base64">Y29tbWl0IDdlMTY5ODYxNjA4ZTlkZDUxYTU0ZmQxZjc2MDQ4ODgwZTA4ZGQ1MzMKQXV0aG9yOiBZ
b25nanVuIFpoYW5nIDx5b25nanVuX3poYW5nQGFwcGxlLmNvbT4KRGF0ZTogICBUdWUgTWF5IDMx
IDE0OjIwOjUwIDIwMTYgLTA3MDAKCiAgICBOb3RpZnkgY2xpZW50IGltbWVkaWF0ZWx5IGlmIG5l
dHdvcmsgc2Vzc2lvbiBkb2Vzbid0IGV4aXN0IGZvciBhIHN5bmNocm9ub3VzIFhIUiBsb2FkLgog
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODIzOQogICAgPHJk
YXI6Ly9wcm9ibGVtLzI2MzQ0MjUxPgogICAgCiAgICBXaGVuIHN0YXJ0aW5nIGEgbmV0d29yayBs
b2FkLCBpZiB0aGUgbmV0d29yayBzZXNzaW9uIGRvZXNuJ3QgZXhpc3QsIHdlIHNob3VsZCBub3Rp
ZnkgTmV0d29ya0xvYWRDbGllbnQKICAgIGltbWVkaWF0ZWx5LiBPdGhlcndpc2UgdGhlIFdlYiBw
cm9jZXNzIGNvdWxkIGhhbmcgd2hlbiB3YWl0aW5nIGZvciB0aGUgc3luY2hyb25vdXMgbG9hZCB0
byBmaW5pc2guCiAgICAKICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwOgogICAg
KFdlYktpdDo6TmV0d29ya0xvYWQ6Ok5ldHdvcmtMb2FkKToKCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYjhmNmQ0
ZS4uZDk1ZmU5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE2LTA1LTMxICBZb25n
anVuIFpoYW5nICA8eW9uZ2p1bl96aGFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgTm90aWZ5IGNs
aWVudCBpbW1lZGlhdGVseSBpZiBuZXR3b3JrIHNlc3Npb24gZG9lc24ndCBleGlzdCBmb3IgYSBz
eW5jaHJvbm91cyBYSFIgbG9hZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1ODIzOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjYzNDQyNTE+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9yIGEgc3lu
Y2hyb25vdXMgWEhSIGxvYWQsIGlmIHRoZSBuZXR3b3JrIHNlc3Npb24gZG9lc24ndCBleGlzdCwg
d2Ugc2hvdWxkIG5vdGlmeSBOZXR3b3JrTG9hZENsaWVudAorICAgICAgICBpbW1lZGlhdGVseS4g
T3RoZXJ3aXNlIHRoZSBXZWIgcHJvY2VzcyBjb3VsZCBoYW5nIHdoZW4gd2FpdGluZyBmb3IgdGhl
IHN5bmNocm9ub3VzIGxvYWQgdG8gZmluaXNoLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0xvYWQuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrTG9hZDo6TmV0d29ya0xv
YWQpOgorCiAyMDE2LTA1LTMxICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGwgb3V0IHIyMDE0ODEsIHIyMDE1MjM6IDAuMyUg
cmVncmVzc2lvbiBpbiBPY3RhbmUgY29kZS1sb2FkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKaW5kZXggNTYwODliZi4uZTAyNTdhZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcApAQCAtNTcsOCArNTcs
MTIgQEAgTmV0d29ya0xvYWQ6Ok5ldHdvcmtMb2FkKE5ldHdvcmtMb2FkQ2xpZW50JiBjbGllbnQs
IGNvbnN0IE5ldHdvcmtMb2FkUGFyYW1ldGVycyYKICAgICAgICAgbV90YXNrID0gTmV0d29ya0Rh
dGFUYXNrOjpjcmVhdGUoKm5ldHdvcmtTZXNzaW9uLCAqdGhpcywgcGFyYW1ldGVycy5yZXF1ZXN0
LCBwYXJhbWV0ZXJzLmFsbG93U3RvcmVkQ3JlZGVudGlhbHMsIHBhcmFtZXRlcnMuY29udGVudFNu
aWZmaW5nUG9saWN5LCBwYXJhbWV0ZXJzLnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQ
UmVkaXJlY3QpOwogICAgICAgICBpZiAoIXBhcmFtZXRlcnMuZGVmZXJzTG9hZGluZykKICAgICAg
ICAgICAgIG1fdGFzay0+cmVzdW1lKCk7Ci0gICAgfSBlbHNlCisgICAgfSBlbHNlIHsKICAgICAg
ICAgV1RGTG9nQWx3YXlzKCJBdHRlbXB0ZWQgdG8gY3JlYXRlIGEgTmV0d29ya0xvYWQgd2l0aCBh
IHNlc3Npb24gKGlkPSUiIFBSSXU2NCAiKSB0aGF0IGRvZXMgbm90IGV4aXN0LiIsIHBhcmFtZXRl
cnMuc2Vzc2lvbklELnNlc3Npb25JRCgpKTsKKyAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3Bh
dGNoKFt0aGlzLCB1cmwgPSBwYXJhbWV0ZXJzLnJlcXVlc3QudXJsKCldIHsKKyAgICAgICAgICAg
IGRpZENvbXBsZXRlV2l0aEVycm9yKGludGVybmFsRXJyb3IodXJsKSk7CisgICAgICAgIH0pOwor
ICAgIH0KICNlbHNlCiAgICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKG1fbmV0
d29ya2luZ0NvbnRleHQuZ2V0KCksIHBhcmFtZXRlcnMucmVxdWVzdCwgdGhpcywgcGFyYW1ldGVy
cy5kZWZlcnNMb2FkaW5nLCBwYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSA9PSBTbmlm
ZkNvbnRlbnQpOwogI2VuZGlmCg==
</data>
<flag name="review"
          id="304234"
          type_id="1"
          status="+"
          setter="beidson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280307</attachid>
            <date>2016-06-01 22:07:55 -0700</date>
            <delta_ts>2016-06-01 22:38:34 -0700</delta_ts>
            <desc>Address review comments before landing.</desc>
            <filename>svc_unresponsive_web.patch</filename>
            <type>text/plain</type>
            <size>2630</size>
            <attacher name="Yongjun Zhang">yongjun_zhang</attacher>
            
              <data encoding="base64">Y29tbWl0IGI1NzU5NDViOGMxMDY4YmFkNTUyMmQwZWJjYWMzMjVmMjc0MzA0ZDYKQXV0aG9yOiBZ
b25nanVuIFpoYW5nIDx5b25nanVuX3poYW5nQGFwcGxlLmNvbT4KRGF0ZTogICBUdWUgTWF5IDMx
IDE0OjIwOjUwIDIwMTYgLTA3MDAKCiAgICBOb3RpZnkgY2xpZW50IGltbWVkaWF0ZWx5IGlmIG5l
dHdvcmsgc2Vzc2lvbiBkb2Vzbid0IGV4aXN0IGZvciBhIHN5bmNocm9ub3VzIFhIUiBsb2FkLgog
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODIzOQogICAgPHJk
YXI6Ly9wcm9ibGVtLzI2MzQ0MjUxPgogICAgCiAgICBXaGVuIHN0YXJ0aW5nIGEgbmV0d29yayBs
b2FkLCBpZiB0aGUgbmV0d29yayBzZXNzaW9uIGRvZXNuJ3QgZXhpc3QsIHdlIHNob3VsZCBub3Rp
ZnkgTmV0d29ya0xvYWRDbGllbnQKICAgIGltbWVkaWF0ZWx5LiBPdGhlcndpc2UgdGhlIFdlYiBw
cm9jZXNzIGNvdWxkIGhhbmcgd2hlbiB3YWl0aW5nIGZvciB0aGUgc3luY2hyb25vdXMgbG9hZCB0
byBmaW5pc2guCiAgICAKICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwOgogICAg
KFdlYktpdDo6TmV0d29ya0xvYWQ6Ok5ldHdvcmtMb2FkKToKCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYjhmNmQ0
ZS4uYWY5NzNjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE2LTA1LTMxICBZb25n
anVuIFpoYW5nICA8eW9uZ2p1bl96aGFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgTm90aWZ5IGNs
aWVudCBpbW1lZGlhdGVseSBpZiBuZXR3b3JrIHNlc3Npb24gZG9lc24ndCBleGlzdCBmb3IgYSBz
eW5jaHJvbm91cyBYSFIgbG9hZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1ODIzOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjYzNDQyNTE+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgQnJhZHkgRWlkc29uLgorCisgICAgICAgIEZvciBhIHN5bmNo
cm9ub3VzIFhIUiBsb2FkLCBpZiB0aGUgbmV0d29yayBzZXNzaW9uIGRvZXNuJ3QgZXhpc3QsIHdl
IHNob3VsZCBub3RpZnkgTmV0d29ya0xvYWRDbGllbnQuCisgICAgICAgIE90aGVyd2lzZSB0aGUg
V2ViIHByb2Nlc3MgY291bGQgaGFuZyB3aGVuIHdhaXRpbmcgZm9yIHRoZSBzeW5jaHJvbm91cyBs
b2FkIHRvIGZpbmlzaC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWQ6Ok5ldHdvcmtMb2FkKToKKwogMjAxNi0w
NS0zMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBV
bnJldmlld2VkLCByb2xsIG91dCByMjAxNDgxLCByMjAxNTIzOiAwLjMlIHJlZ3Jlc3Npb24gaW4g
T2N0YW5lIGNvZGUtbG9hZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0xvYWQuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0xvYWQuY3BwCmluZGV4IDU2MDg5YmYuLmI5YmYxZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKQEAgLTU3LDggKzU3LDEyIEBAIE5ldHdvcmtM
b2FkOjpOZXR3b3JrTG9hZChOZXR3b3JrTG9hZENsaWVudCYgY2xpZW50LCBjb25zdCBOZXR3b3Jr
TG9hZFBhcmFtZXRlcnMmCiAgICAgICAgIG1fdGFzayA9IE5ldHdvcmtEYXRhVGFzazo6Y3JlYXRl
KCpuZXR3b3JrU2Vzc2lvbiwgKnRoaXMsIHBhcmFtZXRlcnMucmVxdWVzdCwgcGFyYW1ldGVycy5h
bGxvd1N0b3JlZENyZWRlbnRpYWxzLCBwYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSwg
cGFyYW1ldGVycy5zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KTsKICAg
ICAgICAgaWYgKCFwYXJhbWV0ZXJzLmRlZmVyc0xvYWRpbmcpCiAgICAgICAgICAgICBtX3Rhc2st
PnJlc3VtZSgpOwotICAgIH0gZWxzZQorICAgIH0gZWxzZSB7CiAgICAgICAgIFdURkxvZ0Fsd2F5
cygiQXR0ZW1wdGVkIHRvIGNyZWF0ZSBhIE5ldHdvcmtMb2FkIHdpdGggYSBzZXNzaW9uIChpZD0l
IiBQUkl1NjQgIikgdGhhdCBkb2VzIG5vdCBleGlzdC4iLCBwYXJhbWV0ZXJzLnNlc3Npb25JRC5z
ZXNzaW9uSUQoKSk7CisgICAgICAgIFJ1bkxvb3A6OmN1cnJlbnQoKS5kaXNwYXRjaChbdGhpcywg
dXJsID0gcGFyYW1ldGVycy5yZXF1ZXN0LnVybCgpXSB7CisgICAgICAgICAgICBkaWRDb21wbGV0
ZVdpdGhFcnJvcihpbnRlcm5hbEVycm9yKHVybCkpOworICAgICAgICB9KTsKKyAgICB9CiAjZWxz
ZQogICAgIG1faGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShtX25ldHdvcmtpbmdDb250
ZXh0LmdldCgpLCBwYXJhbWV0ZXJzLnJlcXVlc3QsIHRoaXMsIHBhcmFtZXRlcnMuZGVmZXJzTG9h
ZGluZywgcGFyYW1ldGVycy5jb250ZW50U25pZmZpbmdQb2xpY3kgPT0gU25pZmZDb250ZW50KTsK
ICNlbmRpZgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>