<?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>89124</bug_id>
          
          <creation_ts>2012-06-14 13:48:43 -0700</creation_ts>
          <short_desc>[Chromium-Android] Should retry a few times when failed to start DumpRenderTree</short_desc>
          <delta_ts>2012-06-14 18:26:22 -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>
          
          <blocked>66687</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Xianzhu Wang">wangxianzhu</reporter>
          <assigned_to name="Xianzhu Wang">wangxianzhu</assigned_to>
          <cc>abarth</cc>
    
    <cc>dpranke</cc>
    
    <cc>jnd</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zhenghao</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>649448</commentid>
    <comment_count>0</comment_count>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2012-06-14 13:48:43 -0700</bug_when>
    <thetext>On Android sometimes &apos;am start&apos; fails due to temporary condition. For example:

00:49:07.657 11509 &quot;adb shell am start -n org.chromium.native_test/.ChromeNativeTestActivity&quot;
00:49:07.657 11509 Run adb result:
Starting: Intent { cmp=org.chromium.native_test/.ChromeNativeTestActivity }

android.os.DeadObjectException
       at android.os.BinderProxy.transact(Native Method)
       at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:1750)
       at com.android.commands.am.Am.runStart(Am.java:463)
       at com.android.commands.am.Am.run(Am.java:108)
       at com.android.commands.am.Am.main(Am.java:81)
       at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
       at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:235)
       at dalvik.system.NativeStart.main(Native Method)

Should retry a few times before giving up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649463</commentid>
    <comment_count>1</comment_count>
      <attachid>147647</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2012-06-14 13:56:45 -0700</bug_when>
    <thetext>Created attachment 147647
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649467</commentid>
    <comment_count>2</comment_count>
      <attachid>147649</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2012-06-14 13:58:47 -0700</bug_when>
    <thetext>Created attachment 147649
patch v2 (sleep before retry)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649469</commentid>
    <comment_count>3</comment_count>
      <attachid>147649</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-06-14 14:02:54 -0700</bug_when>
    <thetext>Comment on attachment 147649
patch v2 (sleep before retry)

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

r+. Leaving as cq? in case you want to make my purely optional change :).

&gt; Tools/Scripts/webkitpy/layout_tests/port/chromium_android.py:494
&gt; +            time.sleep(2)

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

r+ ... leaving cq? in case you want to make the change I suggest (it&apos;s purely optional).

&gt; Tools/Scripts/webkitpy/layout_tests/port/chromium_android.py:493
&gt; +                raise AssertionError(&apos;Failed to start DumpRenderTree application multiple times. Give up.&apos;)

You could also do:

for i in range(3):
  if self._start_once(pixel_tests, per_test_args):
    return
  _log.error(...)
  time.sleep(2)
raise AssertionError(...&apos;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649474</commentid>
    <comment_count>4</comment_count>
      <attachid>147647</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-06-14 14:05:46 -0700</bug_when>
    <thetext>Comment on attachment 147647
patch

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

&gt; Tools/Scripts/webkitpy/layout_tests/port/chromium_android.py:489
&gt; +        while True:
&gt; +            if self._start_once(pixel_tests, per_test_args):
&gt; +                break

Nit: while not self._start_once(pixel_tests, per_test_args):

&gt; Tools/Scripts/webkitpy/layout_tests/port/chromium_android.py:497
&gt;          self._port._run_adb_command([&apos;logcat&apos;, &apos;-c&apos;])
&gt;          self._port._run_adb_command([&apos;shell&apos;, &apos;echo&apos;] + self.cmd_line(pixel_tests, per_test_args) + [&apos;&gt;&apos;, COMMAND_LINE_FILE])

Do you want to rerun these every time?  Do these ever fail?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649480</commentid>
    <comment_count>5</comment_count>
      <attachid>147649</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2012-06-14 14:13:51 -0700</bug_when>
    <thetext>Comment on attachment 147649
patch v2 (sleep before retry)

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

&gt;&gt; Tools/Scripts/webkitpy/layout_tests/port/chromium_android.py:493
&gt;&gt; +                raise AssertionError(&apos;Failed to start DumpRenderTree application multiple times. Give up.&apos;)
&gt; 
&gt; You could also do:
&gt; 
&gt; for i in range(3):
&gt;   if self._start_once(pixel_tests, per_test_args):
&gt;     return
&gt;   _log.error(...)
&gt;   time.sleep(2)
&gt; raise AssertionError(...&apos;)

Nice suggestion. However I&apos;d like Tony&apos;s suggestion as we use that style elsewhere in this file :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649487</commentid>
    <comment_count>6</comment_count>
      <attachid>147647</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2012-06-14 14:19:59 -0700</bug_when>
    <thetext>Comment on attachment 147647
patch

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

&gt;&gt; Tools/Scripts/webkitpy/layout_tests/port/chromium_android.py:489
&gt;&gt; +                break
&gt; 
&gt; Nit: while not self._start_once(pixel_tests, per_test_args):

Done.

&gt;&gt; Tools/Scripts/webkitpy/layout_tests/port/chromium_android.py:497
&gt;&gt;          self._port._run_adb_command([&apos;shell&apos;, &apos;echo&apos;] + self.cmd_line(pixel_tests, per_test_args) + [&apos;&gt;&apos;, COMMAND_LINE_FILE])
&gt; 
&gt; Do you want to rerun these every time?  Do these ever fail?

&apos;logcat -c&apos; which is to clear the Android log is necessary because we don&apos;t want duplicated logs during retries.
Initialize command line is not necessary to do every time, but I&apos;d keep _start_once() a complete function to start DRT. And it is logically the precondition of &apos;am start&apos; and I&apos;d keep them together.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649491</commentid>
    <comment_count>7</comment_count>
      <attachid>147653</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2012-06-14 14:21:36 -0700</bug_when>
    <thetext>Created attachment 147653
patch v3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649494</commentid>
    <comment_count>8</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-06-14 14:24:41 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 147647 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=147647&amp;action=review
&gt; 
&gt; &gt;&gt; Tools/Scripts/webkitpy/layout_tests/port/chromium_android.py:497
&gt; &gt;&gt;          self._port._run_adb_command([&apos;shell&apos;, &apos;echo&apos;] + self.cmd_line(pixel_tests, per_test_args) + [&apos;&gt;&apos;, COMMAND_LINE_FILE])
&gt; &gt; 
&gt; &gt; Do you want to rerun these every time?  Do these ever fail?
&gt; 
&gt; &apos;logcat -c&apos; which is to clear the Android log is necessary because we don&apos;t want duplicated logs during retries.
&gt; Initialize command line is not necessary to do every time, but I&apos;d keep _start_once() a complete function to start DRT. And it is logically the precondition of &apos;am start&apos; and I&apos;d keep them together.

I was thinking it might be helpful to move these two commands before the while loop. It might be useful to have the logcat output for when &apos;am start&apos; fails.  I don&apos;t feel strongly about this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649501</commentid>
    <comment_count>9</comment_count>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2012-06-14 14:30:01 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #6)
&gt; &gt; (From update of attachment 147647 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=147647&amp;action=review
&gt; &gt; 
&gt; &gt; &gt;&gt; Tools/Scripts/webkitpy/layout_tests/port/chromium_android.py:497
&gt; &gt; &gt;&gt;          self._port._run_adb_command([&apos;shell&apos;, &apos;echo&apos;] + self.cmd_line(pixel_tests, per_test_args) + [&apos;&gt;&apos;, COMMAND_LINE_FILE])
&gt; &gt; &gt; 
&gt; &gt; &gt; Do you want to rerun these every time?  Do these ever fail?
&gt; &gt; 
&gt; &gt; &apos;logcat -c&apos; which is to clear the Android log is necessary because we don&apos;t want duplicated logs during retries.
&gt; &gt; Initialize command line is not necessary to do every time, but I&apos;d keep _start_once() a complete function to start DRT. And it is logically the precondition of &apos;am start&apos; and I&apos;d keep them together.
&gt; 
&gt; I was thinking it might be helpful to move these two commands before the while loop. It might be useful to have the logcat output for when &apos;am start&apos; fails.  I don&apos;t feel strongly about this.

The error message of &apos;am start&apos; won&apos;t be lost. Log is cleared before &apos;am start&apos; to remove useless logs produced by other Android activities before this &apos;am start&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649507</commentid>
    <comment_count>10</comment_count>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2012-06-14 14:35:25 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; (In reply to comment #6)
&gt; &gt; &gt; (From update of attachment 147647 [details] [details] [details])
&gt; &gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=147647&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt;&gt; Tools/Scripts/webkitpy/layout_tests/port/chromium_android.py:497
&gt; &gt; &gt; &gt;&gt;          self._port._run_adb_command([&apos;shell&apos;, &apos;echo&apos;] + self.cmd_line(pixel_tests, per_test_args) + [&apos;&gt;&apos;, COMMAND_LINE_FILE])
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Do you want to rerun these every time?  Do these ever fail?
&gt; &gt; &gt; 
&gt; &gt; &gt; &apos;logcat -c&apos; which is to clear the Android log is necessary because we don&apos;t want duplicated logs during retries.
&gt; &gt; &gt; Initialize command line is not necessary to do every time, but I&apos;d keep _start_once() a complete function to start DRT. And it is logically the precondition of &apos;am start&apos; and I&apos;d keep them together.
&gt; &gt; 
&gt; &gt; I was thinking it might be helpful to move these two commands before the while loop. It might be useful to have the logcat output for when &apos;am start&apos; fails.  I don&apos;t feel strongly about this.
&gt; 
&gt; The error message of &apos;am start&apos; won&apos;t be lost. Log is cleared before &apos;am start&apos; to remove useless logs produced by other Android activities before this &apos;am start&apos;.

Correction:
... produced by other Android activities or previous _start_once() (which has already been outputted)...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649508</commentid>
    <comment_count>11</comment_count>
      <attachid>147653</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2012-06-14 14:41:00 -0700</bug_when>
    <thetext>Comment on attachment 147653
patch v3

cq+. Verified with Tony offline.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649514</commentid>
    <comment_count>12</comment_count>
      <attachid>147653</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2012-06-14 14:49:44 -0700</bug_when>
    <thetext>Comment on attachment 147653
patch v3

Want to add a line self.stop() to ensure clear state before retry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649525</commentid>
    <comment_count>13</comment_count>
      <attachid>147659</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2012-06-14 15:02:09 -0700</bug_when>
    <thetext>Created attachment 147659
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649706</commentid>
    <comment_count>14</comment_count>
      <attachid>147659</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-14 18:26:17 -0700</bug_when>
    <thetext>Comment on attachment 147659
patch for landing

Clearing flags on attachment: 147659

Committed r120385: &lt;http://trac.webkit.org/changeset/120385&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649707</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-14 18:26:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147647</attachid>
            <date>2012-06-14 13:56:45 -0700</date>
            <delta_ts>2012-06-14 14:19:59 -0700</delta_ts>
            <desc>patch</desc>
            <filename>89124</filename>
            <type>text/plain</type>
            <size>3196</size>
            <attacher name="Xianzhu Wang">wangxianzhu</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDEyMDM2MCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE1IEBACisyMDEyLTA2LTE0ICBYaWFuemh1IFdhbmcgIDx3YW5neGlhbnpodUBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtLUFuZHJvaWRdIFNob3VsZCByZXRyeSBhIGZldyB0
aW1lcyB3aGVuIGZhaWxlZCB0byBzdGFydCBEdW1wUmVuZGVyVHJlZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODkxMjQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvY2hyb21pdW1fYW5kcm9pZC5weToKKyAgICAgICAgKENocm9taXVtQW5kcm9p
ZERyaXZlci5fc3RhcnQpOgorICAgICAgICAoQ2hyb21pdW1BbmRyb2lkRHJpdmVyKToKKyAgICAg
ICAgKENocm9taXVtQW5kcm9pZERyaXZlci5fc3RhcnRfb25jZSk6CisKIDIwMTItMDYtMTQgIElh
biBWb2xsaWNrICA8dm9sbGlja0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBD
ZXJ0YWluIHNldHRpbmdzIGluIENDU2V0dGluZ3MgY291bGQgYmUgZ2xvYmFsCkluZGV4OiBUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2FuZHJvaWQucHkK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9j
aHJvbWl1bV9hbmRyb2lkLnB5CShyZXZpc2lvbiAxMjAzNDYpCisrKyBUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2FuZHJvaWQucHkJKHdvcmtpbmcgY29w
eSkKQEAgLTQ4Myw5ICs0ODMsMjMgQEAgY2xhc3MgQ2hyb21pdW1BbmRyb2lkRHJpdmVyKGNocm9t
aXVtLkNocgogCiAgICAgICAgIENocm9taXVtQW5kcm9pZERyaXZlci5fc3RhcnRlZF9kcml2ZXIg
PSBzZWxmCiAKKyAgICAgICAgcmV0cmllcyA9IDAKKyAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAg
ICAgICAgIGlmIHNlbGYuX3N0YXJ0X29uY2UocGl4ZWxfdGVzdHMsIHBlcl90ZXN0X2FyZ3MpOgor
ICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICBfbG9nLmVycm9yKCdGYWlsZWQgdG8g
c3RhcnQgRHVtcFJlbmRlclRyZWUgYXBwbGljYXRpb24uIExvZzpcbicgKyBzZWxmLl9wb3J0Ll9n
ZXRfbG9nY2F0KCkpCisgICAgICAgICAgICByZXRyaWVzICs9IDEKKyAgICAgICAgICAgIGlmIHJl
dHJpZXMgPj0gMzoKKyAgICAgICAgICAgICAgICByYWlzZSBBc3NlcnRpb25FcnJvcignRmFpbGVk
IHRvIHN0YXJ0IER1bXBSZW5kZXJUcmVlIGFwcGxpY2F0aW9uIG11bHRpcGxlIHRpbWVzLiBHaXZl
IHVwLicpCisKKyAgICBkZWYgX3N0YXJ0X29uY2Uoc2VsZiwgcGl4ZWxfdGVzdHMsIHBlcl90ZXN0
X2FyZ3MpOgogICAgICAgICBzZWxmLl9wb3J0Ll9ydW5fYWRiX2NvbW1hbmQoWydsb2djYXQnLCAn
LWMnXSkKICAgICAgICAgc2VsZi5fcG9ydC5fcnVuX2FkYl9jb21tYW5kKFsnc2hlbGwnLCAnZWNo
byddICsgc2VsZi5jbWRfbGluZShwaXhlbF90ZXN0cywgcGVyX3Rlc3RfYXJncykgKyBbJz4nLCBD
T01NQU5EX0xJTkVfRklMRV0pCi0gICAgICAgIHNlbGYuX3BvcnQuX3J1bl9hZGJfY29tbWFuZChb
J3NoZWxsJywgJ2FtJywgJ3N0YXJ0JywgJy1uJywgRFJUX0FDVElWSVRZX0ZVTExfTkFNRV0pCisg
ICAgICAgIHN0YXJ0X3Jlc3VsdCA9IHNlbGYuX3BvcnQuX3J1bl9hZGJfY29tbWFuZChbJ3NoZWxs
JywgJ2FtJywgJ3N0YXJ0JywgJy1uJywgRFJUX0FDVElWSVRZX0ZVTExfTkFNRV0pCisgICAgICAg
IGlmIHN0YXJ0X3Jlc3VsdC5maW5kKCdFeGNlcHRpb24nKSAhPSAtMToKKyAgICAgICAgICAgIF9s
b2cuZXJyb3IoJ0ZhaWxlZCB0byBzdGFydCBEdW1wUmVuZGVyVHJlZSBhcHBsaWNhdGlvbi4gRXhj
ZXB0aW9uOlxuJyArIHN0YXJ0X3Jlc3VsdCkKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCiAg
ICAgICAgIHNlY29uZHMgPSAwCiAgICAgICAgIHdoaWxlIChub3Qgc2VsZi5fZmlsZV9leGlzdHNf
b25fZGV2aWNlKHNlbGYuX2luX2ZpZm9fcGF0aCkgb3IKICAgICAgICAgICAgICAgIG5vdCBzZWxm
Ll9maWxlX2V4aXN0c19vbl9kZXZpY2Uoc2VsZi5fb3V0X2ZpZm9fcGF0aCkgb3IKQEAgLTQ5Myw4
ICs1MDcsNyBAQCBjbGFzcyBDaHJvbWl1bUFuZHJvaWREcml2ZXIoY2hyb21pdW0uQ2hyCiAgICAg
ICAgICAgICB0aW1lLnNsZWVwKDEpCiAgICAgICAgICAgICBzZWNvbmRzICs9IDEKICAgICAgICAg
ICAgIGlmIHNlY29uZHMgPj0gRFJUX1NUQVJUX1NUT1BfVElNRU9VVF9TRUNTOgotICAgICAgICAg
ICAgICAgIF9sb2cuZXJyb3IoJ0ZhaWxlZCB0byBzdGFydCBEdW1wUmVuZGVyVHJlZUFwcGxpY2F0
aW9uLiBMb2c6XG4nICsgc2VsZi5fcG9ydC5fZ2V0X2xvZ2NhdCgpKQotICAgICAgICAgICAgICAg
IHJhaXNlIEFzc2VydGlvbkVycm9yKCdGYWlsZWQgdG8gc3RhcnQgRHVtcFJlbmRlclRyZWUgYXBw
bGljYXRpb24uJykKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKIAogICAgICAgICBzaGVs
bF9jbWQgPSBzZWxmLl9wb3J0Ll9hZGJfY29tbWFuZCArIFsnc2hlbGwnXQogICAgICAgICBleGVj
dXRpdmUgPSBzZWxmLl9wb3J0Ll9leGVjdXRpdmUKQEAgLTUzNyw3ICs1NTAsNyBAQCBjbGFzcyBD
aHJvbWl1bUFuZHJvaWREcml2ZXIoY2hyb21pdW0uQ2hyCiAgICAgICAgIGVsc2U6CiAgICAgICAg
ICAgICAjIEluZm9ybSB0aGUgZGVhZGxvY2sgZGV0ZWN0b3IgdGhhdCB0aGUgc3RhcnR1cCBpcyBz
dWNjZXNzZnVsIHdpdGhvdXQgZGVhZGxvY2suCiAgICAgICAgICAgICBub3JtYWxfc3RhcnR1cF9l
dmVudC5zZXQoKQotICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICByZXR1cm4gVHJ1ZQog
CiAgICAgZGVmIHJ1bl90ZXN0KHNlbGYsIGRyaXZlcl9pbnB1dCk6CiAgICAgICAgIGRyaXZlcl9v
dXRwdXQgPSBjaHJvbWl1bS5DaHJvbWl1bURyaXZlci5ydW5fdGVzdChzZWxmLCBkcml2ZXJfaW5w
dXQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147649</attachid>
            <date>2012-06-14 13:58:47 -0700</date>
            <delta_ts>2012-06-14 14:21:36 -0700</delta_ts>
            <desc>patch v2 (sleep before retry)</desc>
            <filename>89124</filename>
            <type>text/plain</type>
            <size>3223</size>
            <attacher name="Xianzhu Wang">wangxianzhu</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDEyMDM2MCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE1IEBACisyMDEyLTA2LTE0ICBYaWFuemh1IFdhbmcgIDx3YW5neGlhbnpodUBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtLUFuZHJvaWRdIFNob3VsZCByZXRyeSBhIGZldyB0
aW1lcyB3aGVuIGZhaWxlZCB0byBzdGFydCBEdW1wUmVuZGVyVHJlZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODkxMjQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvY2hyb21pdW1fYW5kcm9pZC5weToKKyAgICAgICAgKENocm9taXVtQW5kcm9p
ZERyaXZlci5fc3RhcnQpOgorICAgICAgICAoQ2hyb21pdW1BbmRyb2lkRHJpdmVyKToKKyAgICAg
ICAgKENocm9taXVtQW5kcm9pZERyaXZlci5fc3RhcnRfb25jZSk6CisKIDIwMTItMDYtMTQgIElh
biBWb2xsaWNrICA8dm9sbGlja0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBD
ZXJ0YWluIHNldHRpbmdzIGluIENDU2V0dGluZ3MgY291bGQgYmUgZ2xvYmFsCkluZGV4OiBUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2FuZHJvaWQucHkK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9j
aHJvbWl1bV9hbmRyb2lkLnB5CShyZXZpc2lvbiAxMjAzNDYpCisrKyBUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2FuZHJvaWQucHkJKHdvcmtpbmcgY29w
eSkKQEAgLTQ4Myw5ICs0ODMsMjQgQEAgY2xhc3MgQ2hyb21pdW1BbmRyb2lkRHJpdmVyKGNocm9t
aXVtLkNocgogCiAgICAgICAgIENocm9taXVtQW5kcm9pZERyaXZlci5fc3RhcnRlZF9kcml2ZXIg
PSBzZWxmCiAKKyAgICAgICAgcmV0cmllcyA9IDAKKyAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAg
ICAgICAgIGlmIHNlbGYuX3N0YXJ0X29uY2UocGl4ZWxfdGVzdHMsIHBlcl90ZXN0X2FyZ3MpOgor
ICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICBfbG9nLmVycm9yKCdGYWlsZWQgdG8g
c3RhcnQgRHVtcFJlbmRlclRyZWUgYXBwbGljYXRpb24uIExvZzpcbicgKyBzZWxmLl9wb3J0Ll9n
ZXRfbG9nY2F0KCkpCisgICAgICAgICAgICByZXRyaWVzICs9IDEKKyAgICAgICAgICAgIGlmIHJl
dHJpZXMgPj0gMzoKKyAgICAgICAgICAgICAgICByYWlzZSBBc3NlcnRpb25FcnJvcignRmFpbGVk
IHRvIHN0YXJ0IER1bXBSZW5kZXJUcmVlIGFwcGxpY2F0aW9uIG11bHRpcGxlIHRpbWVzLiBHaXZl
IHVwLicpCisgICAgICAgICAgICB0aW1lLnNsZWVwKDIpCisKKyAgICBkZWYgX3N0YXJ0X29uY2Uo
c2VsZiwgcGl4ZWxfdGVzdHMsIHBlcl90ZXN0X2FyZ3MpOgogICAgICAgICBzZWxmLl9wb3J0Ll9y
dW5fYWRiX2NvbW1hbmQoWydsb2djYXQnLCAnLWMnXSkKICAgICAgICAgc2VsZi5fcG9ydC5fcnVu
X2FkYl9jb21tYW5kKFsnc2hlbGwnLCAnZWNobyddICsgc2VsZi5jbWRfbGluZShwaXhlbF90ZXN0
cywgcGVyX3Rlc3RfYXJncykgKyBbJz4nLCBDT01NQU5EX0xJTkVfRklMRV0pCi0gICAgICAgIHNl
bGYuX3BvcnQuX3J1bl9hZGJfY29tbWFuZChbJ3NoZWxsJywgJ2FtJywgJ3N0YXJ0JywgJy1uJywg
RFJUX0FDVElWSVRZX0ZVTExfTkFNRV0pCisgICAgICAgIHN0YXJ0X3Jlc3VsdCA9IHNlbGYuX3Bv
cnQuX3J1bl9hZGJfY29tbWFuZChbJ3NoZWxsJywgJ2FtJywgJ3N0YXJ0JywgJy1uJywgRFJUX0FD
VElWSVRZX0ZVTExfTkFNRV0pCisgICAgICAgIGlmIHN0YXJ0X3Jlc3VsdC5maW5kKCdFeGNlcHRp
b24nKSAhPSAtMToKKyAgICAgICAgICAgIF9sb2cuZXJyb3IoJ0ZhaWxlZCB0byBzdGFydCBEdW1w
UmVuZGVyVHJlZSBhcHBsaWNhdGlvbi4gRXhjZXB0aW9uOlxuJyArIHN0YXJ0X3Jlc3VsdCkKKyAg
ICAgICAgICAgIHJldHVybiBGYWxzZQorCiAgICAgICAgIHNlY29uZHMgPSAwCiAgICAgICAgIHdo
aWxlIChub3Qgc2VsZi5fZmlsZV9leGlzdHNfb25fZGV2aWNlKHNlbGYuX2luX2ZpZm9fcGF0aCkg
b3IKICAgICAgICAgICAgICAgIG5vdCBzZWxmLl9maWxlX2V4aXN0c19vbl9kZXZpY2Uoc2VsZi5f
b3V0X2ZpZm9fcGF0aCkgb3IKQEAgLTQ5Myw4ICs1MDgsNyBAQCBjbGFzcyBDaHJvbWl1bUFuZHJv
aWREcml2ZXIoY2hyb21pdW0uQ2hyCiAgICAgICAgICAgICB0aW1lLnNsZWVwKDEpCiAgICAgICAg
ICAgICBzZWNvbmRzICs9IDEKICAgICAgICAgICAgIGlmIHNlY29uZHMgPj0gRFJUX1NUQVJUX1NU
T1BfVElNRU9VVF9TRUNTOgotICAgICAgICAgICAgICAgIF9sb2cuZXJyb3IoJ0ZhaWxlZCB0byBz
dGFydCBEdW1wUmVuZGVyVHJlZUFwcGxpY2F0aW9uLiBMb2c6XG4nICsgc2VsZi5fcG9ydC5fZ2V0
X2xvZ2NhdCgpKQotICAgICAgICAgICAgICAgIHJhaXNlIEFzc2VydGlvbkVycm9yKCdGYWlsZWQg
dG8gc3RhcnQgRHVtcFJlbmRlclRyZWUgYXBwbGljYXRpb24uJykKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gRmFsc2UKIAogICAgICAgICBzaGVsbF9jbWQgPSBzZWxmLl9wb3J0Ll9hZGJfY29tbWFu
ZCArIFsnc2hlbGwnXQogICAgICAgICBleGVjdXRpdmUgPSBzZWxmLl9wb3J0Ll9leGVjdXRpdmUK
QEAgLTUzNyw3ICs1NTEsNyBAQCBjbGFzcyBDaHJvbWl1bUFuZHJvaWREcml2ZXIoY2hyb21pdW0u
Q2hyCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAjIEluZm9ybSB0aGUgZGVhZGxvY2sgZGV0
ZWN0b3IgdGhhdCB0aGUgc3RhcnR1cCBpcyBzdWNjZXNzZnVsIHdpdGhvdXQgZGVhZGxvY2suCiAg
ICAgICAgICAgICBub3JtYWxfc3RhcnR1cF9ldmVudC5zZXQoKQotICAgICAgICAgICAgcmV0dXJu
CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQogCiAgICAgZGVmIHJ1bl90ZXN0KHNlbGYsIGRyaXZl
cl9pbnB1dCk6CiAgICAgICAgIGRyaXZlcl9vdXRwdXQgPSBjaHJvbWl1bS5DaHJvbWl1bURyaXZl
ci5ydW5fdGVzdChzZWxmLCBkcml2ZXJfaW5wdXQpCg==
</data>
<flag name="review"
          id="155189"
          type_id="1"
          status="+"
          setter="dpranke"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147653</attachid>
            <date>2012-06-14 14:21:36 -0700</date>
            <delta_ts>2012-06-14 15:02:09 -0700</delta_ts>
            <desc>patch v3</desc>
            <filename>89124</filename>
            <type>text/plain</type>
            <size>3179</size>
            <attacher name="Xianzhu Wang">wangxianzhu</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDEyMDM2MCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE1IEBACisyMDEyLTA2LTE0ICBYaWFuemh1IFdhbmcgIDx3YW5neGlhbnpodUBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtLUFuZHJvaWRdIFNob3VsZCByZXRyeSBhIGZldyB0
aW1lcyB3aGVuIGZhaWxlZCB0byBzdGFydCBEdW1wUmVuZGVyVHJlZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODkxMjQKKworICAgICAgICBSZXZpZXdl
ZCBieSBEaXJrIFByYW5rZS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvY2hyb21pdW1fYW5kcm9pZC5weToKKyAgICAgICAgKENocm9taXVtQW5kcm9pZERy
aXZlci5fc3RhcnQpOgorICAgICAgICAoQ2hyb21pdW1BbmRyb2lkRHJpdmVyKToKKyAgICAgICAg
KENocm9taXVtQW5kcm9pZERyaXZlci5fc3RhcnRfb25jZSk6CisKIDIwMTItMDYtMTQgIElhbiBW
b2xsaWNrICA8dm9sbGlja0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBDZXJ0
YWluIHNldHRpbmdzIGluIENDU2V0dGluZ3MgY291bGQgYmUgZ2xvYmFsCkluZGV4OiBUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2FuZHJvaWQucHkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJv
bWl1bV9hbmRyb2lkLnB5CShyZXZpc2lvbiAxMjAzNDYpCisrKyBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2FuZHJvaWQucHkJKHdvcmtpbmcgY29weSkK
QEAgLTQ4Myw5ICs0ODMsMjIgQEAgY2xhc3MgQ2hyb21pdW1BbmRyb2lkRHJpdmVyKGNocm9taXVt
LkNocgogCiAgICAgICAgIENocm9taXVtQW5kcm9pZERyaXZlci5fc3RhcnRlZF9kcml2ZXIgPSBz
ZWxmCiAKKyAgICAgICAgcmV0cmllcyA9IDAKKyAgICAgICAgd2hpbGUgbm90IHNlbGYuX3N0YXJ0
X29uY2UocGl4ZWxfdGVzdHMsIHBlcl90ZXN0X2FyZ3MpOgorICAgICAgICAgICAgX2xvZy5lcnJv
cignRmFpbGVkIHRvIHN0YXJ0IER1bXBSZW5kZXJUcmVlIGFwcGxpY2F0aW9uLiBMb2c6XG4nICsg
c2VsZi5fcG9ydC5fZ2V0X2xvZ2NhdCgpKQorICAgICAgICAgICAgcmV0cmllcyArPSAxCisgICAg
ICAgICAgICBpZiByZXRyaWVzID49IDM6CisgICAgICAgICAgICAgICAgcmFpc2UgQXNzZXJ0aW9u
RXJyb3IoJ0ZhaWxlZCB0byBzdGFydCBEdW1wUmVuZGVyVHJlZSBhcHBsaWNhdGlvbiBtdWx0aXBs
ZSB0aW1lcy4gR2l2ZSB1cC4nKQorICAgICAgICAgICAgdGltZS5zbGVlcCgyKQorCisgICAgZGVm
IF9zdGFydF9vbmNlKHNlbGYsIHBpeGVsX3Rlc3RzLCBwZXJfdGVzdF9hcmdzKToKICAgICAgICAg
c2VsZi5fcG9ydC5fcnVuX2FkYl9jb21tYW5kKFsnbG9nY2F0JywgJy1jJ10pCiAgICAgICAgIHNl
bGYuX3BvcnQuX3J1bl9hZGJfY29tbWFuZChbJ3NoZWxsJywgJ2VjaG8nXSArIHNlbGYuY21kX2xp
bmUocGl4ZWxfdGVzdHMsIHBlcl90ZXN0X2FyZ3MpICsgWyc+JywgQ09NTUFORF9MSU5FX0ZJTEVd
KQotICAgICAgICBzZWxmLl9wb3J0Ll9ydW5fYWRiX2NvbW1hbmQoWydzaGVsbCcsICdhbScsICdz
dGFydCcsICctbicsIERSVF9BQ1RJVklUWV9GVUxMX05BTUVdKQorICAgICAgICBzdGFydF9yZXN1
bHQgPSBzZWxmLl9wb3J0Ll9ydW5fYWRiX2NvbW1hbmQoWydzaGVsbCcsICdhbScsICdzdGFydCcs
ICctbicsIERSVF9BQ1RJVklUWV9GVUxMX05BTUVdKQorICAgICAgICBpZiBzdGFydF9yZXN1bHQu
ZmluZCgnRXhjZXB0aW9uJykgIT0gLTE6CisgICAgICAgICAgICBfbG9nLmVycm9yKCdGYWlsZWQg
dG8gc3RhcnQgRHVtcFJlbmRlclRyZWUgYXBwbGljYXRpb24uIEV4Y2VwdGlvbjpcbicgKyBzdGFy
dF9yZXN1bHQpCisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKwogICAgICAgICBzZWNvbmRzID0g
MAogICAgICAgICB3aGlsZSAobm90IHNlbGYuX2ZpbGVfZXhpc3RzX29uX2RldmljZShzZWxmLl9p
bl9maWZvX3BhdGgpIG9yCiAgICAgICAgICAgICAgICBub3Qgc2VsZi5fZmlsZV9leGlzdHNfb25f
ZGV2aWNlKHNlbGYuX291dF9maWZvX3BhdGgpIG9yCkBAIC00OTMsOCArNTA2LDcgQEAgY2xhc3Mg
Q2hyb21pdW1BbmRyb2lkRHJpdmVyKGNocm9taXVtLkNocgogICAgICAgICAgICAgdGltZS5zbGVl
cCgxKQogICAgICAgICAgICAgc2Vjb25kcyArPSAxCiAgICAgICAgICAgICBpZiBzZWNvbmRzID49
IERSVF9TVEFSVF9TVE9QX1RJTUVPVVRfU0VDUzoKLSAgICAgICAgICAgICAgICBfbG9nLmVycm9y
KCdGYWlsZWQgdG8gc3RhcnQgRHVtcFJlbmRlclRyZWVBcHBsaWNhdGlvbi4gTG9nOlxuJyArIHNl
bGYuX3BvcnQuX2dldF9sb2djYXQoKSkKLSAgICAgICAgICAgICAgICByYWlzZSBBc3NlcnRpb25F
cnJvcignRmFpbGVkIHRvIHN0YXJ0IER1bXBSZW5kZXJUcmVlIGFwcGxpY2F0aW9uLicpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAKICAgICAgICAgc2hlbGxfY21kID0gc2VsZi5fcG9y
dC5fYWRiX2NvbW1hbmQgKyBbJ3NoZWxsJ10KICAgICAgICAgZXhlY3V0aXZlID0gc2VsZi5fcG9y
dC5fZXhlY3V0aXZlCkBAIC01MzcsNyArNTQ5LDcgQEAgY2xhc3MgQ2hyb21pdW1BbmRyb2lkRHJp
dmVyKGNocm9taXVtLkNocgogICAgICAgICBlbHNlOgogICAgICAgICAgICAgIyBJbmZvcm0gdGhl
IGRlYWRsb2NrIGRldGVjdG9yIHRoYXQgdGhlIHN0YXJ0dXAgaXMgc3VjY2Vzc2Z1bCB3aXRob3V0
IGRlYWRsb2NrLgogICAgICAgICAgICAgbm9ybWFsX3N0YXJ0dXBfZXZlbnQuc2V0KCkKLSAgICAg
ICAgICAgIHJldHVybgorICAgICAgICAgICAgcmV0dXJuIFRydWUKIAogICAgIGRlZiBydW5fdGVz
dChzZWxmLCBkcml2ZXJfaW5wdXQpOgogICAgICAgICBkcml2ZXJfb3V0cHV0ID0gY2hyb21pdW0u
Q2hyb21pdW1Ecml2ZXIucnVuX3Rlc3Qoc2VsZiwgZHJpdmVyX2lucHV0KQo=
</data>
<flag name="commit-queue"
          id="155194"
          type_id="3"
          status="-"
          setter="wangxianzhu"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147659</attachid>
            <date>2012-06-14 15:02:09 -0700</date>
            <delta_ts>2012-06-14 18:26:17 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>89124a</filename>
            <type>text/plain</type>
            <size>3204</size>
            <attacher name="Xianzhu Wang">wangxianzhu</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDEyMDM2MCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE1IEBACisyMDEyLTA2LTE0ICBYaWFuemh1IFdhbmcgIDx3YW5neGlhbnpodUBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtLUFuZHJvaWRdIFNob3VsZCByZXRyeSBhIGZldyB0
aW1lcyB3aGVuIGZhaWxlZCB0byBzdGFydCBEdW1wUmVuZGVyVHJlZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODkxMjQKKworICAgICAgICBSZXZpZXdl
ZCBieSBEaXJrIFByYW5rZS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvY2hyb21pdW1fYW5kcm9pZC5weToKKyAgICAgICAgKENocm9taXVtQW5kcm9pZERy
aXZlci5fc3RhcnQpOgorICAgICAgICAoQ2hyb21pdW1BbmRyb2lkRHJpdmVyKToKKyAgICAgICAg
KENocm9taXVtQW5kcm9pZERyaXZlci5fc3RhcnRfb25jZSk6CisKIDIwMTItMDYtMTQgIElhbiBW
b2xsaWNrICA8dm9sbGlja0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBDZXJ0
YWluIHNldHRpbmdzIGluIENDU2V0dGluZ3MgY291bGQgYmUgZ2xvYmFsCkluZGV4OiBUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2FuZHJvaWQucHkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJv
bWl1bV9hbmRyb2lkLnB5CShyZXZpc2lvbiAxMjAzNDYpCisrKyBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2FuZHJvaWQucHkJKHdvcmtpbmcgY29weSkK
QEAgLTQ4Myw5ICs0ODMsMjMgQEAgY2xhc3MgQ2hyb21pdW1BbmRyb2lkRHJpdmVyKGNocm9taXVt
LkNocgogCiAgICAgICAgIENocm9taXVtQW5kcm9pZERyaXZlci5fc3RhcnRlZF9kcml2ZXIgPSBz
ZWxmCiAKKyAgICAgICAgcmV0cmllcyA9IDAKKyAgICAgICAgd2hpbGUgbm90IHNlbGYuX3N0YXJ0
X29uY2UocGl4ZWxfdGVzdHMsIHBlcl90ZXN0X2FyZ3MpOgorICAgICAgICAgICAgX2xvZy5lcnJv
cignRmFpbGVkIHRvIHN0YXJ0IER1bXBSZW5kZXJUcmVlIGFwcGxpY2F0aW9uLiBMb2c6XG4nICsg
c2VsZi5fcG9ydC5fZ2V0X2xvZ2NhdCgpKQorICAgICAgICAgICAgcmV0cmllcyArPSAxCisgICAg
ICAgICAgICBpZiByZXRyaWVzID49IDM6CisgICAgICAgICAgICAgICAgcmFpc2UgQXNzZXJ0aW9u
RXJyb3IoJ0ZhaWxlZCB0byBzdGFydCBEdW1wUmVuZGVyVHJlZSBhcHBsaWNhdGlvbiBtdWx0aXBs
ZSB0aW1lcy4gR2l2ZSB1cC4nKQorICAgICAgICAgICAgc2VsZi5zdG9wKCkKKyAgICAgICAgICAg
IHRpbWUuc2xlZXAoMikKKworICAgIGRlZiBfc3RhcnRfb25jZShzZWxmLCBwaXhlbF90ZXN0cywg
cGVyX3Rlc3RfYXJncyk6CiAgICAgICAgIHNlbGYuX3BvcnQuX3J1bl9hZGJfY29tbWFuZChbJ2xv
Z2NhdCcsICctYyddKQogICAgICAgICBzZWxmLl9wb3J0Ll9ydW5fYWRiX2NvbW1hbmQoWydzaGVs
bCcsICdlY2hvJ10gKyBzZWxmLmNtZF9saW5lKHBpeGVsX3Rlc3RzLCBwZXJfdGVzdF9hcmdzKSAr
IFsnPicsIENPTU1BTkRfTElORV9GSUxFXSkKLSAgICAgICAgc2VsZi5fcG9ydC5fcnVuX2FkYl9j
b21tYW5kKFsnc2hlbGwnLCAnYW0nLCAnc3RhcnQnLCAnLW4nLCBEUlRfQUNUSVZJVFlfRlVMTF9O
QU1FXSkKKyAgICAgICAgc3RhcnRfcmVzdWx0ID0gc2VsZi5fcG9ydC5fcnVuX2FkYl9jb21tYW5k
KFsnc2hlbGwnLCAnYW0nLCAnc3RhcnQnLCAnLW4nLCBEUlRfQUNUSVZJVFlfRlVMTF9OQU1FXSkK
KyAgICAgICAgaWYgc3RhcnRfcmVzdWx0LmZpbmQoJ0V4Y2VwdGlvbicpICE9IC0xOgorICAgICAg
ICAgICAgX2xvZy5lcnJvcignRmFpbGVkIHRvIHN0YXJ0IER1bXBSZW5kZXJUcmVlIGFwcGxpY2F0
aW9uLiBFeGNlcHRpb246XG4nICsgc3RhcnRfcmVzdWx0KQorICAgICAgICAgICAgcmV0dXJuIEZh
bHNlCisKICAgICAgICAgc2Vjb25kcyA9IDAKICAgICAgICAgd2hpbGUgKG5vdCBzZWxmLl9maWxl
X2V4aXN0c19vbl9kZXZpY2Uoc2VsZi5faW5fZmlmb19wYXRoKSBvcgogICAgICAgICAgICAgICAg
bm90IHNlbGYuX2ZpbGVfZXhpc3RzX29uX2RldmljZShzZWxmLl9vdXRfZmlmb19wYXRoKSBvcgpA
QCAtNDkzLDggKzUwNyw3IEBAIGNsYXNzIENocm9taXVtQW5kcm9pZERyaXZlcihjaHJvbWl1bS5D
aHIKICAgICAgICAgICAgIHRpbWUuc2xlZXAoMSkKICAgICAgICAgICAgIHNlY29uZHMgKz0gMQog
ICAgICAgICAgICAgaWYgc2Vjb25kcyA+PSBEUlRfU1RBUlRfU1RPUF9USU1FT1VUX1NFQ1M6Ci0g
ICAgICAgICAgICAgICAgX2xvZy5lcnJvcignRmFpbGVkIHRvIHN0YXJ0IER1bXBSZW5kZXJUcmVl
QXBwbGljYXRpb24uIExvZzpcbicgKyBzZWxmLl9wb3J0Ll9nZXRfbG9nY2F0KCkpCi0gICAgICAg
ICAgICAgICAgcmFpc2UgQXNzZXJ0aW9uRXJyb3IoJ0ZhaWxlZCB0byBzdGFydCBEdW1wUmVuZGVy
VHJlZSBhcHBsaWNhdGlvbi4nKQorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQogCiAgICAg
ICAgIHNoZWxsX2NtZCA9IHNlbGYuX3BvcnQuX2FkYl9jb21tYW5kICsgWydzaGVsbCddCiAgICAg
ICAgIGV4ZWN1dGl2ZSA9IHNlbGYuX3BvcnQuX2V4ZWN1dGl2ZQpAQCAtNTM3LDcgKzU1MCw3IEBA
IGNsYXNzIENocm9taXVtQW5kcm9pZERyaXZlcihjaHJvbWl1bS5DaHIKICAgICAgICAgZWxzZToK
ICAgICAgICAgICAgICMgSW5mb3JtIHRoZSBkZWFkbG9jayBkZXRlY3RvciB0aGF0IHRoZSBzdGFy
dHVwIGlzIHN1Y2Nlc3NmdWwgd2l0aG91dCBkZWFkbG9jay4KICAgICAgICAgICAgIG5vcm1hbF9z
dGFydHVwX2V2ZW50LnNldCgpCi0gICAgICAgICAgICByZXR1cm4KKyAgICAgICAgICAgIHJldHVy
biBUcnVlCiAKICAgICBkZWYgcnVuX3Rlc3Qoc2VsZiwgZHJpdmVyX2lucHV0KToKICAgICAgICAg
ZHJpdmVyX291dHB1dCA9IGNocm9taXVtLkNocm9taXVtRHJpdmVyLnJ1bl90ZXN0KHNlbGYsIGRy
aXZlcl9pbnB1dCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>