<?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>64337</bug_id>
          
          <creation_ts>2011-07-11 18:57:17 -0700</creation_ts>
          <short_desc>[EFL] Refactor scheduleDispatchFunctionsOnMainThread to fix crash.</short_desc>
          <delta_ts>2011-07-17 19:59:07 -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>WebKit EFL</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>
          <dependson>64515</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryuan Choi">ryuan.choi</reporter>
          <assigned_to name="Ryuan Choi">ryuan.choi</assigned_to>
          <cc>gyuyoung.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>leandro</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>435407</commentid>
    <comment_count>0</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2011-07-11 18:57:17 -0700</bug_when>
    <thetext>When ecore_timer_add is called in child thread, it worked well.
It&apos;s because ecore doesn&apos;t check where ecore_timer_add is called, although ecore_timer_add should be called in main thread.

However, some checks were introduced at (E svn r61041)
and I got below error messages.

CRI&lt;27517&gt;: ecore_thread.c:859 _ecore_thread_assert_main_loop_thread() Call to ecore_timer_add from wrong thread!

Program received signal SIGABRT, Aborted.
[Switching to Thread 0xb6765b70 (LWP 27521)]
0x00110832 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
(gdb)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435409</commentid>
    <comment_count>1</comment_count>
      <attachid>100414</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2011-07-11 19:04:44 -0700</bug_when>
    <thetext>Created attachment 100414
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435467</commentid>
    <comment_count>2</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-07-11 21:04:27 -0700</bug_when>
    <thetext>In latest ecore library,  there is same crash on EWebLauncher.

CRI&lt;1406&gt;: ecore_thread.c:869 _ecore_thread_assert_main_loop_thread() Call to ecore_timer_add from wrong thread!
Aborted

I look over this patch. It looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435627</commentid>
    <comment_count>3</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2011-07-12 07:08:52 -0700</bug_when>
    <thetext>The weird part to me is that ecore_time_add is currently called from a method named scheduleDispatchFunctionsOnMainThread, so it should be called from the main thread.

If you get a backtrace when the assert in ecore is hit, where is scheduleDispatchFunctionsOnMainThread currently being called?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436030</commentid>
    <comment_count>4</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2011-07-12 15:39:58 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; The weird part to me is that ecore_time_add is currently called from a method named scheduleDispatchFunctionsOnMainThread, so it should be called from the main thread.
&gt; 
&gt; If you get a backtrace when the assert in ecore is hit, where is scheduleDispatchFunctionsOnMainThread currently being called?

scheduleDispatchFunctionsOnMainThread is called in child thread.
So, we should change it to prevent assert.

(gdb) bt
#0  0x00110832 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
#1  0x021ca651 in *__GI_raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#2  0x021cda82 in *__GI_abort () at abort.c:92
#3  0x002f61cf in _ecore_thread_assert_main_loop_thread (function=0x2fd0b8 &quot;ecore_timer_add&quot;) at ecore_thread.c:860
#4  0x002f46d3 in ecore_timer_add (in=0, func=0x1886240 &lt;WTF::timeoutFired(void*)&gt;, data=0x0) at ecore_timer.c:144
#5  0x0188629e in WTF::scheduleDispatchFunctionsOnMainThread() ()
   from /workspace/webkits/efl-webkit/WebKitBuild/Release/WebKit/libewebkit.so.0
#6  0x01866e62 in WTF::callOnMainThread(void (*)(void*), void*) ()
   from /workspace/webkits/efl-webkit/WebKitBuild/Release/WebKit/libewebkit.so.0
#7  0x009c6a74 in WebCore::IconDatabase::performURLImport() ()
   from /workspace/webkits/efl-webkit/WebKitBuild/Release/WebKit/libewebkit.so.0
#8  0x009c86a8 in WebCore::IconDatabase::iconDatabaseSyncThread() ()
   from /workspace/webkits/efl-webkit/WebKitBuild/Release/WebKit/libewebkit.so.0
#9  0x01868c0f in WTF::threadEntryPoint(void*) ()
   from /workspace/webkits/efl-webkit/WebKitBuild/Release/WebKit/libewebkit.so.0
#10 0x01ceb96e in start_thread (arg=0xb6765b70) at pthread_create.c:300
#11 0x0226da4e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436052</commentid>
    <comment_count>5</comment_count>
      <attachid>100414</attachid>
    <who name="Leandro Pereira">leandro</who>
    <bug_when>2011-07-12 16:19:41 -0700</bug_when>
    <thetext>Comment on attachment 100414
Patch

I don&apos;t like this approach. This will constantly wake the process up (every time the main loop is idle) to check a flag and sleep again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436060</commentid>
    <comment_count>6</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2011-07-12 16:29:14 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 100414 [details])
&gt; I don&apos;t like this approach. This will constantly wake the process up (every time the main loop is idle) to check a flag and sleep again.

I agree. we need better idea if possible.
Does we have any good alternative to wake main_thread in child thread?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436111</commentid>
    <comment_count>7</comment_count>
      <attachid>100596</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2011-07-12 17:32:45 -0700</bug_when>
    <thetext>Created attachment 100596
pipe_approach</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436130</commentid>
    <comment_count>8</comment_count>
      <attachid>100596</attachid>
    <who name="Leandro Pereira">leandro</who>
    <bug_when>2011-07-12 18:06:07 -0700</bug_when>
    <thetext>Comment on attachment 100596
pipe_approach

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

This looks better, but I&apos;m not familiar with Ecore_Pipe; I&apos;ll check the documentation (and code) tomorrow and do a proper informal review. In the meantime, informal r- for the reasons below.

&gt; Source/JavaScriptCore/wtf/efl/MainThreadEfl.cpp:43
&gt; +static void deletePipe();
&gt; +static Ecore_Pipe* pipe;

You could implement the needed OwnPtrEfl function for Ecore_Pipe, and get rid of deletePipe() (and the associated atexit() call below). Also, you should use a better name than simply &quot;pipe&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436208</commentid>
    <comment_count>9</comment_count>
      <attachid>100617</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2011-07-12 20:41:53 -0700</bug_when>
    <thetext>Created attachment 100617
pipe_approach2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436210</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-12 20:44:35 -0700</bug_when>
    <thetext>Attachment 100617 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1

Source/JavaScriptCore/wtf/OwnPtrCommon.h:56:  Ecore_Pipe is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 1 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436213</commentid>
    <comment_count>11</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2011-07-12 20:52:27 -0700</bug_when>
    <thetext>The style bot complained about some struct names, but they are false positives.

(In reply to comment #8)
&gt; (From update of attachment 100596 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=100596&amp;action=review
&gt; 
&gt; This looks better, but I&apos;m not familiar with Ecore_Pipe; I&apos;ll check the documentation (and code) tomorrow and do a proper informal review. In the meantime, informal r- for the reasons below.
&gt; 
&gt; &gt; Source/JavaScriptCore/wtf/efl/MainThreadEfl.cpp:43
&gt; &gt; +static void deletePipe();
&gt; &gt; +static Ecore_Pipe* pipe;
&gt; 
&gt; You could implement the needed OwnPtrEfl function for Ecore_Pipe, and get rid of deletePipe() (and the associated atexit() call below). Also, you should use a better name than simply &quot;pipe&quot;.

I fixed almost what you mentioned. but I can&apos;t give good name for &quot;pipe&quot;
Now I just changed it to &quot;pipeObject&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436214</commentid>
    <comment_count>12</comment_count>
      <attachid>100617</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-07-12 20:55:43 -0700</bug_when>
    <thetext>Comment on attachment 100617
pipe_approach2

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

&gt;&gt; Source/JavaScriptCore/wtf/OwnPtrCommon.h:56
&gt;&gt; +typedef struct _Ecore_Pipe Ecore_Pipe;
&gt; 
&gt; Ecore_Pipe is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]

I think we need to let style checker not check &quot;readability/naming rule&quot;. However, we are obliged to ignore this style error because this file is common file. Existed codes already have same style error.

~/webkit/WebKit$ Tools/Scripts/check-webkit-style Source/JavaScriptCore/wtf/OwnPtrCommon.h 
Source/JavaScriptCore/wtf/OwnPtrCommon.h:54:  Ecore_Evas is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/JavaScriptCore/wtf/OwnPtrCommon.h:55:  Evas_Object is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436415</commentid>
    <comment_count>13</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2011-07-13 07:06:45 -0700</bug_when>
    <thetext>Doesn&apos;t it make more sense to put the OwnPtr stuff in a separate patch? I think it&apos;s easier for it to get reviewed and integrated.

&gt;&gt;&gt; Source/JavaScriptCore/wtf/OwnPtrCommon.h:56
&gt;&gt;&gt; +typedef struct _Ecore_Pipe Ecore_Pipe;

BTW, I&apos;d rather keep these typedefs sorted alphabetically (here, below and in the implementation).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437354</commentid>
    <comment_count>14</comment_count>
      <attachid>100871</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2011-07-14 15:11:10 -0700</bug_when>
    <thetext>Created attachment 100871
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437796</commentid>
    <comment_count>15</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2011-07-15 09:35:49 -0700</bug_when>
    <thetext>&gt; Source/JavaScriptCore/wtf/efl/MainThreadEfl.cpp:43
&gt; +static Eina_Bool timeoutFired(void*);

Why not implement it here and save one declaration?

&gt; Source/JavaScriptCore/wtf/efl/MainThreadEfl.cpp:44
&gt; +static OwnPtr&lt;Ecore_Pipe&gt; pipeObject;

Hmm, I&apos;ve got some reservations with this idiom.

It is creating a global static non-POD object, so its destructor will be called after the program finishes, and in an undefined order. If your main() calls ecore_shutdown(), pipeObject&apos;s destructor will call ecore_pipe_del() after ecore_shutdown() has been called.

In this case, what I can see that people sometimes do is use the DEFINE_STATIC_LOCAL macro: the pointer will end up being leaked, but as it is only one object that will stay alive during the whole lifetime of the program people don&apos;t seem to care much.

&gt; Source/JavaScriptCore/wtf/efl/MainThreadEfl.cpp:48
&gt; +    ecore_timer_add(0, timeoutFired, 0);

Is it necessary to have both a timer and a pipe or could monitorDispatchFunctions() call dispatchFunctionsFromMainThread() right away?

&gt; Source/JavaScriptCore/wtf/efl/MainThreadEfl.cpp:-45
&gt; -static Eina_Bool timeoutFired(void*)

Why?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438100</commentid>
    <comment_count>16</comment_count>
      <attachid>101082</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2011-07-15 18:30:55 -0700</bug_when>
    <thetext>Created attachment 101082
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438102</commentid>
    <comment_count>17</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2011-07-15 18:35:28 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; &gt; Source/JavaScriptCore/wtf/efl/MainThreadEfl.cpp:43
&gt; &gt; +static Eina_Bool timeoutFired(void*);
&gt; 
&gt; Why not implement it here and save one declaration?
&gt; 
&gt; &gt; Source/JavaScriptCore/wtf/efl/MainThreadEfl.cpp:44
&gt; &gt; +static OwnPtr&lt;Ecore_Pipe&gt; pipeObject;
&gt; 
&gt; Hmm, I&apos;ve got some reservations with this idiom.
&gt; 
&gt; It is creating a global static non-POD object, so its destructor will be called after the program finishes, and in an undefined order. If your main() calls ecore_shutdown(), pipeObject&apos;s destructor will call ecore_pipe_del() after ecore_shutdown() has been called.
&gt; 
&gt; In this case, what I can see that people sometimes do is use the DEFINE_STATIC_LOCAL macro: the pointer will end up being leaked, but as it is only one object that will stay alive during the whole lifetime of the program people don&apos;t seem to care much.
&gt; 

Thank you for your comment.
You make me and this patch smarter.

I tried like you mentioned. 

&gt; &gt; Source/JavaScriptCore/wtf/efl/MainThreadEfl.cpp:48
&gt; &gt; +    ecore_timer_add(0, timeoutFired, 0);
&gt; 
&gt; Is it necessary to have both a timer and a pipe or could monitorDispatchFunctions() call dispatchFunctionsFromMainThread() right away?
&gt; 
&gt; &gt; Source/JavaScriptCore/wtf/efl/MainThreadEfl.cpp:-45
&gt; &gt; -static Eina_Bool timeoutFired(void*)
&gt; 
&gt; Why?

I don&apos;t know why I can&apos;t catch it.
You&apos;re right. It&apos;s stupid.

I fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438228</commentid>
    <comment_count>18</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2011-07-16 18:27:25 -0700</bug_when>
    <thetext>&gt; Source/JavaScriptCore/ChangeLog:8
&gt; +        but in a main thread.

&quot;the&quot; main thread, as there is only one.

&gt; Source/JavaScriptCore/wtf/efl/MainThreadEfl.cpp:44
&gt; +DEFINE_STATIC_LOCAL(OwnPtr&lt;Ecore_Pipe&gt;, pipeObject, ());

The usual idiom is to use this inside a function (see, for example, wtf/gtk/ThreadingGtk.cpp or, for something which looks like what you will have to do here, WebCore/dom/UserTypingGestureIndicator.cpp).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438232</commentid>
    <comment_count>19</comment_count>
      <attachid>101110</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2011-07-16 19:01:18 -0700</bug_when>
    <thetext>Created attachment 101110
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438233</commentid>
    <comment_count>20</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2011-07-16 19:05:24 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; &gt; Source/JavaScriptCore/ChangeLog:8
&gt; &gt; +        but in a main thread.
&gt; 
&gt; &quot;the&quot; main thread, as there is only one.

fixed.

&gt; 
&gt; &gt; Source/JavaScriptCore/wtf/efl/MainThreadEfl.cpp:44
&gt; &gt; +DEFINE_STATIC_LOCAL(OwnPtr&lt;Ecore_Pipe&gt;, pipeObject, ());
&gt; 
&gt; The usual idiom is to use this inside a function (see, for example, wtf/gtk/ThreadingGtk.cpp or, for something which looks like what you will have to do here, WebCore/dom/UserTypingGestureIndicator.cpp).

Although I didn&apos;t understand fully,
I prepared new patch like you mentioned.
Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438247</commentid>
    <comment_count>21</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2011-07-16 21:54:53 -0700</bug_when>
    <thetext>LGTM, informal r+.

(In reply to comment #20)
&gt; Although I didn&apos;t understand fully,
&gt; I prepared new patch like you mentioned.
&gt; Thanks.

What part was not clear? Technically speaking, the only difference between the last two patches is that the object only gets created when it is first invoked; the moving of the macro to a function was mostly to keep the code consistent with the other uses of DEFINE_STATIC_LOCAL (if you grep the source tree, you can see that there are no uses of it in the global scope).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438250</commentid>
    <comment_count>22</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2011-07-16 22:00:05 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; LGTM, informal r+.
&gt; 
&gt; (In reply to comment #20)
&gt; &gt; Although I didn&apos;t understand fully,
&gt; &gt; I prepared new patch like you mentioned.
&gt; &gt; Thanks.
&gt; 
&gt; What part was not clear? Technically speaking, the only difference between the last two patches is that the object only gets created when it is first invoked; the moving of the macro to a function was mostly to keep the code consistent with the other uses of DEFINE_STATIC_LOCAL (if you grep the source tree, you can see that there are no uses of it in the global scope).

Ah, I didn&apos;t consider when it is created.
Thanks for kind explanation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438325</commentid>
    <comment_count>23</comment_count>
      <attachid>101110</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-17 19:59:01 -0700</bug_when>
    <thetext>Comment on attachment 101110
Patch

Clearing flags on attachment: 101110

Committed r91171: &lt;http://trac.webkit.org/changeset/91171&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438326</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-17 19:59:07 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100414</attachid>
            <date>2011-07-11 19:04:44 -0700</date>
            <delta_ts>2011-07-12 17:32:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64337-20110712110449.patch</filename>
            <type>text/plain</type>
            <size>2498</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTA4MDEKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGI5
NDYxMDkzY2M2ODgyYjU5Y2FkYTEwMGU0YzU0YjVmMTg1ZjIzMmIuLjE4NmVkNmM0YjQyN2MyYjBh
MzMyMWE3N2YxYjVjMzJlYmNkNzRiZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIyIEBACisyMDExLTA3LTExICBSeXVhbiBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNv
bT4KKworICAgICAgICBbRUZMXSBSZWZhY3RvciBzY2hlZHVsZURpc3BhdGNoRnVuY3Rpb25zT25N
YWluVGhyZWFkIHRvIGZpeCBjcmFzaC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY0MzM3CisKKyAgICAgICAgTW92ZSBlY29yZV90aW1lcl9hZGQgZnJv
bSBzY2hlZHVsZURpc3BhdGNoRnVuY3Rpb25zT25NYWluVGhyZWFkIHRvIG1vbml0b3JEaXNwYXRj
aEZ1bmN0aW9ucworICAgICAgICB3aGljaCBpcyBuZXdseSBhZGRlZCB0byBtb25pdG9yIHdoZXRo
ZXIgc2NoZWR1bGVEaXNwYXRjaEZ1bmN0aW9uc09uTWFpblRocmVhZAorICAgICAgICBpcyBjYWxs
ZWQuCisgICAgICAgIFRoaXMgaXMgbmVlZGVkIGJlY2F1c2UgZWNvcmVfdGltZXIgc2hvdWxkIG5v
dCBiZSBjYWxsZWQgaW4gYSBjaGlsZCB0aHJlYWQsCisgICAgICAgIGJ1dCBpbiBhIG1haW4gdGhy
ZWFkLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
d3RmL2VmbC9NYWluVGhyZWFkRWZsLmNwcDoKKyAgICAgICAgKFdURjo6aW5pdGlhbGl6ZU1haW5U
aHJlYWRQbGF0Zm9ybSk6CisgICAgICAgIChXVEY6OnN0b3BJZGxlcik6CisgICAgICAgIChXVEY6
OnNjaGVkdWxlRGlzcGF0Y2hGdW5jdGlvbnNPbk1haW5UaHJlYWQpOgorICAgICAgICAoV1RGOjpt
b25pdG9yRGlzcGF0Y2hGdW5jdGlvbnMpOgorCiAyMDExLTA3LTExICBGaWxpcCBQaXpsbyAgPGZw
aXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgREZHIHNwZWN1bGF0aXZlIEpJVCBkb2VzIG5vdCBn
dWFyZCBpdHNlbGYgYWdhaW5zdCBmbG9hdGluZyBwb2ludCBzcGVjdWxhdGlvbgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9lZmwvTWFpblRocmVhZEVmbC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL2VmbC9NYWluVGhyZWFkRWZsLmNwcAppbmRleCA4Nzc0ZDIw
YjY2M2UyNTQzNDRmYzZkNzgzZDAxMzM2OTJiZWM2MTZjLi42OWEwZjEzMWU3MjUyMTE5N2I2ODQw
YWNmMWMwNGY3MjBkNjFiZTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3Rm
L2VmbC9NYWluVGhyZWFkRWZsLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL2Vm
bC9NYWluVGhyZWFkRWZsLmNwcApAQCAtMzgsOCArMzgsMjQgQEAKIAogbmFtZXNwYWNlIFdURiB7
CiAKK3N0YXRpYyBFaW5hX0Jvb2wgc2NoZWR1bGVEaXNwYXRjaEZ1bmN0aW9ucyA9IEVJTkFfRkFM
U0U7CitzdGF0aWMgRWNvcmVfSWRsZXIqIGlkbGVyID0gMDsKKworc3RhdGljIEVpbmFfQm9vbCBt
b25pdG9yRGlzcGF0Y2hGdW5jdGlvbnModm9pZCopOworc3RhdGljIHZvaWQgc3RvcElkbGVyKCk7
CisKIHZvaWQgaW5pdGlhbGl6ZU1haW5UaHJlYWRQbGF0Zm9ybSgpCiB7CisgICAgaWRsZXIgPSBl
Y29yZV9pZGxlcl9hZGQobW9uaXRvckRpc3BhdGNoRnVuY3Rpb25zLCAwKTsKKyAgICBhdGV4aXQo
c3RvcElkbGVyKTsKK30KKwordm9pZCBzdG9wSWRsZXIoKQoreworICAgIGlmIChpZGxlcikgewor
ICAgICAgICBlY29yZV9pZGxlcl9kZWwoaWRsZXIpOworICAgICAgICBpZGxlciA9IDA7CisgICAg
fQogfQogCiBzdGF0aWMgRWluYV9Cb29sIHRpbWVvdXRGaXJlZCh2b2lkKikKQEAgLTUwLDggKzY2
LDE4IEBAIHN0YXRpYyBFaW5hX0Jvb2wgdGltZW91dEZpcmVkKHZvaWQqKQogCiB2b2lkIHNjaGVk
dWxlRGlzcGF0Y2hGdW5jdGlvbnNPbk1haW5UaHJlYWQoKQogewotICAgIGVjb3JlX3RpbWVyX2Fk
ZCgwLCB0aW1lb3V0RmlyZWQsIDApOworICAgIC8vIE5vIHN5bmNocm9uaXphdGlvbiBpcyByZXF1
aXJlZCBiZWNhdXNlIGNhbGxlciBjb3ZlcnMgaXQuCisgICAgc2NoZWR1bGVEaXNwYXRjaEZ1bmN0
aW9ucyA9IEVJTkFfVFJVRTsKIH0KIAorRWluYV9Cb29sIG1vbml0b3JEaXNwYXRjaEZ1bmN0aW9u
cyh2b2lkKikKK3sKKyAgICBpZiAoIXNjaGVkdWxlRGlzcGF0Y2hGdW5jdGlvbnMpCisgICAgICAg
IHJldHVybiBFQ09SRV9DQUxMQkFDS19SRU5FVzsKKworICAgIGVjb3JlX3RpbWVyX2FkZCgwLCB0
aW1lb3V0RmlyZWQsIDApOworICAgIHNjaGVkdWxlRGlzcGF0Y2hGdW5jdGlvbnMgPSBFSU5BX0ZB
TFNFOworICAgIHJldHVybiBFQ09SRV9DQUxMQkFDS19SRU5FVzsKK30KIAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100596</attachid>
            <date>2011-07-12 17:32:45 -0700</date>
            <delta_ts>2011-07-12 20:41:47 -0700</delta_ts>
            <desc>pipe_approach</desc>
            <filename>bug-64337-20110713093257.patch</filename>
            <type>text/plain</type>
            <size>2266</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTA4NzIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDc4
ZGQ3YjIzZDI1NjNhOTkwNzcwMmQyNzQ3ZTZjMTBjZjk0MDYzM2YuLjVkMjZjYmQ2YTJmZTM5NzAx
M2JjYTNjODBjMDg1ZWZjYWZmMzZmOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIzIEBACisyMDExLTA3LTEyICBSeXVhbiBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNv
bT4KKworICAgICAgICBbRUZMXSBSZWZhY3RvciBzY2hlZHVsZURpc3BhdGNoRnVuY3Rpb25zT25N
YWluVGhyZWFkIHRvIGZpeCBjcmFzaC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY0MzM3CisKKyAgICAgICAgTW92ZSBlY29yZV90aW1lcl9hZGQgZnJv
bSBzY2hlZHVsZURpc3BhdGNoRnVuY3Rpb25zT25NYWluVGhyZWFkIHRvIG1vbml0b3JEaXNwYXRj
aEZ1bmN0aW9ucworICAgICAgICB3aGljaCBpcyBuZXdseSBhZGRlZCB0byBtb25pdG9yIHdoZXRo
ZXIgc2NoZWR1bGVEaXNwYXRjaEZ1bmN0aW9uc09uTWFpblRocmVhZAorICAgICAgICBpcyBjYWxs
ZWQuCisgICAgICAgIFRoaXMgaXMgbmVlZGVkIGJlY2F1c2UgZWNvcmVfdGltZXIgc2hvdWxkIG5v
dCBiZSBjYWxsZWQgaW4gYSBjaGlsZCB0aHJlYWQsCisgICAgICAgIGJ1dCBpbiBhIG1haW4gdGhy
ZWFkLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
d3RmL2VmbC9NYWluVGhyZWFkRWZsLmNwcDoKKyAgICAgICAgKFdURjo6bW9uaXRvckRpc3BhdGNo
RnVuY3Rpb25zKToKKyAgICAgICAgKFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRQbGF0Zm9ybSk6
CisgICAgICAgIChXVEY6OnRpbWVvdXRGaXJlZCk6CisgICAgICAgIChXVEY6OmRlbGV0ZVBpcGUp
OgorICAgICAgICAoV1RGOjpzY2hlZHVsZURpc3BhdGNoRnVuY3Rpb25zT25NYWluVGhyZWFkKToK
KwogMjAxMS0wNy0xMiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAg
IENPTExFQ1RfT05fRVZFUllfQUxMT0NBVElPTiBubyBsb25nZXIgd29ya3MuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL2VmbC9NYWluVGhyZWFkRWZsLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvZWZsL01haW5UaHJlYWRFZmwuY3BwCmluZGV4IDg3NzRkMjBi
NjYzZTI1NDM0NGZjNmQ3ODNkMDEzMzY5MmJlYzYxNmMuLmE5NjFjMjU2ZGI5MzljYTcyZjgzZTRl
NGI3ZGU5YTRkMGNmOGRhOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
ZWZsL01haW5UaHJlYWRFZmwuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvZWZs
L01haW5UaHJlYWRFZmwuY3BwCkBAIC0zOCwyMCArMzgsMzUgQEAKIAogbmFtZXNwYWNlIFdURiB7
CiAKK3N0YXRpYyBFaW5hX0Jvb2wgdGltZW91dEZpcmVkKHZvaWQqKTsKK3N0YXRpYyB2b2lkIGRl
bGV0ZVBpcGUoKTsKK3N0YXRpYyBFY29yZV9QaXBlKiBwaXBlOworCitzdGF0aWMgdm9pZCBtb25p
dG9yRGlzcGF0Y2hGdW5jdGlvbnModm9pZCosIHZvaWQqLCB1bnNpZ25lZCBpbnQpCit7CisgICAg
ZWNvcmVfdGltZXJfYWRkKDAsIHRpbWVvdXRGaXJlZCwgMCk7Cit9CisKIHZvaWQgaW5pdGlhbGl6
ZU1haW5UaHJlYWRQbGF0Zm9ybSgpCiB7CisgICAgcGlwZSA9IGVjb3JlX3BpcGVfYWRkKG1vbml0
b3JEaXNwYXRjaEZ1bmN0aW9ucywgMCk7CisgICAgYXRleGl0KGRlbGV0ZVBpcGUpOwogfQogCi1z
dGF0aWMgRWluYV9Cb29sIHRpbWVvdXRGaXJlZCh2b2lkKikKK0VpbmFfQm9vbCB0aW1lb3V0Rmly
ZWQodm9pZCopCiB7CiAgICAgZGlzcGF0Y2hGdW5jdGlvbnNGcm9tTWFpblRocmVhZCgpOwogICAg
IHJldHVybiBFQ09SRV9DQUxMQkFDS19DQU5DRUw7CiB9CiAKLXZvaWQgc2NoZWR1bGVEaXNwYXRj
aEZ1bmN0aW9uc09uTWFpblRocmVhZCgpCit2b2lkIGRlbGV0ZVBpcGUoKQogewotICAgIGVjb3Jl
X3RpbWVyX2FkZCgwLCB0aW1lb3V0RmlyZWQsIDApOworICAgIGVjb3JlX3BpcGVfZGVsKHBpcGUp
OwogfQogCit2b2lkIHNjaGVkdWxlRGlzcGF0Y2hGdW5jdGlvbnNPbk1haW5UaHJlYWQoKQorewor
ICAgIGVjb3JlX3BpcGVfd3JpdGUocGlwZSwgIiIsIDApOworfQogCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100617</attachid>
            <date>2011-07-12 20:41:53 -0700</date>
            <delta_ts>2011-07-14 00:26:16 -0700</delta_ts>
            <desc>pipe_approach2</desc>
            <filename>bug-64337-20110713124206.patch</filename>
            <type>text/plain</type>
            <size>3763</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTA4NzIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDc4
ZGQ3YjIzZDI1NjNhOTkwNzcwMmQyNzQ3ZTZjMTBjZjk0MDYzM2YuLjk1NGE5MTIzMmE3OGExODIw
NGFlZTI1NTY4MWMwZTdlOGEzZWNhMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI1IEBACisyMDExLTA3LTEyICBSeXVhbiBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNv
bT4KKworICAgICAgICBbRUZMXSBSZWZhY3RvciBzY2hlZHVsZURpc3BhdGNoRnVuY3Rpb25zT25N
YWluVGhyZWFkIHRvIGZpeCBjcmFzaC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY0MzM3CisKKyAgICAgICAgTW92ZSBlY29yZV90aW1lcl9hZGQgZnJv
bSBzY2hlZHVsZURpc3BhdGNoRnVuY3Rpb25zT25NYWluVGhyZWFkIHRvIEVjb3JlX1BpcGUKKyAg
ICAgICAgaGFuZGxlciwgb3IgbW9uaXRvckRpc3BhdGNoRnVuY3Rpb25zIHdoaWNoIGlzIG5ld2x5
IGFkZGVkIHRvIG1vbml0b3Igd2hldGhlcgorICAgICAgICBzY2hlZHVsZURpc3BhdGNoRnVuY3Rp
b25zT25NYWluVGhyZWFkIGlzIGNhbGxlZC4KKyAgICAgICAgVGhpcyBpcyBuZWVkZWQgYmVjYXVz
ZSBlY29yZV90aW1lciBzaG91bGQgbm90IGJlIGNhbGxlZCBpbiBhIGNoaWxkIHRocmVhZCwKKyAg
ICAgICAgYnV0IGluIGEgbWFpbiB0aHJlYWQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvT3duUHRyQ29tbW9uLmg6CisgICAgICAgICogd3Rm
L2VmbC9NYWluVGhyZWFkRWZsLmNwcDoKKyAgICAgICAgKFdURjo6bW9uaXRvckRpc3BhdGNoRnVu
Y3Rpb25zKToKKyAgICAgICAgKFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRQbGF0Zm9ybSk6Cisg
ICAgICAgIChXVEY6OnRpbWVvdXRGaXJlZCk6CisgICAgICAgIChXVEY6OnNjaGVkdWxlRGlzcGF0
Y2hGdW5jdGlvbnNPbk1haW5UaHJlYWQpOgorICAgICAgICAqIHd0Zi9lZmwvT3duUHRyRWZsLmNw
cDogQWRkIE93blB0ciBzcGVjaWFsaXphdGlvbiBmb3IgRWNvcmVfUGlwZS4KKyAgICAgICAgKFdU
Rjo6ZGVsZXRlT3duZWRQdHIpOgorCiAyMDExLTA3LTEyICBGaWxpcCBQaXpsbyAgPGZwaXpsb0Bh
cHBsZS5jb20+CiAKICAgICAgICAgQ09MTEVDVF9PTl9FVkVSWV9BTExPQ0FUSU9OIG5vIGxvbmdl
ciB3b3Jrcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvT3duUHRyQ29t
bW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL093blB0ckNvbW1vbi5oCmluZGV4IGQy
YWJkYjUzZWM3MDQ0ZTUzNTUzMTg0Y2JmNDEzNThmZmIyY2I3M2EuLmVlMWVhZjkxOWIzNDUyZTc4
NjM2MzMzZDBlY2Q1OTYyMDQ3NDI1NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93dGYvT3duUHRyQ29tbW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Pd25Q
dHJDb21tb24uaApAQCAtNTMsNiArNTMsNyBAQCB0eXBlZGVmIHN0cnVjdCBJTWVtU3BhY2UgSU1l
bVNwYWNlOwogI2lmIFBMQVRGT1JNKEVGTCkKIHR5cGVkZWYgc3RydWN0IF9FY29yZV9FdmFzIEVj
b3JlX0V2YXM7CiB0eXBlZGVmIHN0cnVjdCBfRXZhc19PYmplY3QgRXZhc19PYmplY3Q7Cit0eXBl
ZGVmIHN0cnVjdCBfRWNvcmVfUGlwZSBFY29yZV9QaXBlOwogI2VuZGlmCiAKIG5hbWVzcGFjZSBX
VEYgewpAQCAtODcsNiArODgsNyBAQCBuYW1lc3BhY2UgV1RGIHsKICNpZiBQTEFURk9STShFRkwp
CiAgICAgdm9pZCBkZWxldGVPd25lZFB0cihFY29yZV9FdmFzKik7CiAgICAgdm9pZCBkZWxldGVP
d25lZFB0cihFdmFzX09iamVjdCopOworICAgIHZvaWQgZGVsZXRlT3duZWRQdHIoRWNvcmVfUGlw
ZSopOwogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi9lZmwvTWFpblRocmVhZEVmbC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd3RmL2VmbC9NYWluVGhyZWFkRWZsLmNwcAppbmRleCA4Nzc0ZDIwYjY2M2UyNTQzNDRm
YzZkNzgzZDAxMzM2OTJiZWM2MTZjLi4xY2EwMTczZmUxZjYzYjVkOTNmYTNhM2EyMzJjZjIxZWRh
Zjk4MzRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL2VmbC9NYWluVGhy
ZWFkRWZsLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL2VmbC9NYWluVGhyZWFk
RWZsLmNwcApAQCAtMzUsMTQgKzM1LDI1IEBACiAjaW5jbHVkZSAiTWFpblRocmVhZC5oIgogCiAj
aW5jbHVkZSA8RWNvcmUuaD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdURiB7CiAKK3N0YXRpYyBFaW5hX0Jvb2wgdGlt
ZW91dEZpcmVkKHZvaWQqKTsKK3N0YXRpYyBPd25QdHI8RWNvcmVfUGlwZT4gcGlwZU9iamVjdDsK
Kworc3RhdGljIHZvaWQgbW9uaXRvckRpc3BhdGNoRnVuY3Rpb25zKHZvaWQqLCB2b2lkKiwgdW5z
aWduZWQgaW50KQoreworICAgIGVjb3JlX3RpbWVyX2FkZCgwLCB0aW1lb3V0RmlyZWQsIDApOwor
fQorCiB2b2lkIGluaXRpYWxpemVNYWluVGhyZWFkUGxhdGZvcm0oKQogeworICAgIHBpcGVPYmpl
Y3QgPSBhZG9wdFB0cihlY29yZV9waXBlX2FkZChtb25pdG9yRGlzcGF0Y2hGdW5jdGlvbnMsIDAp
KTsKIH0KIAotc3RhdGljIEVpbmFfQm9vbCB0aW1lb3V0RmlyZWQodm9pZCopCitFaW5hX0Jvb2wg
dGltZW91dEZpcmVkKHZvaWQqKQogewogICAgIGRpc3BhdGNoRnVuY3Rpb25zRnJvbU1haW5UaHJl
YWQoKTsKICAgICByZXR1cm4gRUNPUkVfQ0FMTEJBQ0tfQ0FOQ0VMOwpAQCAtNTAsOCArNjEsNyBA
QCBzdGF0aWMgRWluYV9Cb29sIHRpbWVvdXRGaXJlZCh2b2lkKikKIAogdm9pZCBzY2hlZHVsZURp
c3BhdGNoRnVuY3Rpb25zT25NYWluVGhyZWFkKCkKIHsKLSAgICBlY29yZV90aW1lcl9hZGQoMCwg
dGltZW91dEZpcmVkLCAwKTsKKyAgICBlY29yZV9waXBlX3dyaXRlKHBpcGVPYmplY3QuZ2V0KCks
ICIiLCAwKTsKIH0KIAotCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3Rm
L2VmbC9Pd25QdHJFZmwuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9lZmwvT3duUHRy
RWZsLmNwcAppbmRleCA2NmVlYWU5YzIwYWI3NjZhMTgxOTZhMGQ1YzVhY2M3OTE3NDI1MmVhLi43
ZWM1MTcwMjkxZjAxMjk4MGRmYjcwZjEyZTM1N2M5OGEwYzk0ZDA4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL2VmbC9Pd25QdHJFZmwuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93dGYvZWZsL093blB0ckVmbC5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJPd25QdHIuaCIKIAorI2luY2x1ZGUgPEVjb3JlLmg+
CiAjaW5jbHVkZSA8RWNvcmVfRXZhcy5oPgogI2luY2x1ZGUgPEV2YXMuaD4KIApAQCAtNDMsNCAr
NDQsMTAgQEAgdm9pZCBkZWxldGVPd25lZFB0cihFdmFzX09iamVjdCogcHRyKQogICAgIGV2YXNf
b2JqZWN0X2RlbChwdHIpOwogfQogCit2b2lkIGRlbGV0ZU93bmVkUHRyKEVjb3JlX1BpcGUqIHB0
cikKK3sKKyAgICBpZiAocHRyKQorICAgICAgICBlY29yZV9waXBlX2RlbChwdHIpOworfQorCiB9
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100871</attachid>
            <date>2011-07-14 15:11:10 -0700</date>
            <delta_ts>2011-07-15 18:30:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64337-20110715071134.patch</filename>
            <type>text/plain</type>
            <size>2310</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTEwMDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGZm
NjBhYTg4YzBkN2JhODRjNWM2NDA5ZDI3YTAwZTBkNTBiOWZlMmIuLjVhYTkzN2YyZDIyOWM2N2M1
YzUxMzdiZTg4YmI5OTQ2YzZhYTc3YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIyIEBACisyMDExLTA3LTE0ICBSeXVhbiBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNv
bT4KKworICAgICAgICBbRUZMXSBSZWZhY3RvciBzY2hlZHVsZURpc3BhdGNoRnVuY3Rpb25zT25N
YWluVGhyZWFkIHRvIGZpeCBjcmFzaC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY0MzM3CisKKyAgICAgICAgTW92ZSBlY29yZV90aW1lcl9hZGQgZnJv
bSBzY2hlZHVsZURpc3BhdGNoRnVuY3Rpb25zT25NYWluVGhyZWFkIHRvIEVjb3JlX1BpcGUKKyAg
ICAgICAgaGFuZGxlciwgb3IgbW9uaXRvckRpc3BhdGNoRnVuY3Rpb25zIHdoaWNoIGlzIG5ld2x5
IGFkZGVkIHRvIG1vbml0b3Igd2hldGhlcgorICAgICAgICBzY2hlZHVsZURpc3BhdGNoRnVuY3Rp
b25zT25NYWluVGhyZWFkIGlzIGNhbGxlZC4KKyAgICAgICAgVGhpcyBpcyBuZWVkZWQgYmVjYXVz
ZSBlY29yZV90aW1lciBzaG91bGQgbm90IGJlIGNhbGxlZCBpbiBhIGNoaWxkIHRocmVhZCwKKyAg
ICAgICAgYnV0IGluIGEgbWFpbiB0aHJlYWQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvZWZsL01haW5UaHJlYWRFZmwuY3BwOgorICAgICAg
ICAoV1RGOjptb25pdG9yRGlzcGF0Y2hGdW5jdGlvbnMpOgorICAgICAgICAoV1RGOjppbml0aWFs
aXplTWFpblRocmVhZFBsYXRmb3JtKToKKyAgICAgICAgKFdURjo6dGltZW91dEZpcmVkKToKKyAg
ICAgICAgKFdURjo6c2NoZWR1bGVEaXNwYXRjaEZ1bmN0aW9uc09uTWFpblRocmVhZCk6CisKIDIw
MTEtMDctMTMgIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0MjAyCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL2VmbC9NYWluVGhyZWFkRWZsLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvZWZsL01haW5UaHJlYWRFZmwuY3BwCmluZGV4IDg3NzRkMjBi
NjYzZTI1NDM0NGZjNmQ3ODNkMDEzMzY5MmJlYzYxNmMuLjFjYTAxNzNmZTFmNjNiNWQ5M2ZhM2Ez
YTIzMmNmMjFlZGFmOTgzNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
ZWZsL01haW5UaHJlYWRFZmwuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvZWZs
L01haW5UaHJlYWRFZmwuY3BwCkBAIC0zNSwxNCArMzUsMjUgQEAKICNpbmNsdWRlICJNYWluVGhy
ZWFkLmgiCiAKICNpbmNsdWRlIDxFY29yZS5oPgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNp
bmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV1RGIHsKIAorc3RhdGljIEVp
bmFfQm9vbCB0aW1lb3V0RmlyZWQodm9pZCopOworc3RhdGljIE93blB0cjxFY29yZV9QaXBlPiBw
aXBlT2JqZWN0OworCitzdGF0aWMgdm9pZCBtb25pdG9yRGlzcGF0Y2hGdW5jdGlvbnModm9pZCos
IHZvaWQqLCB1bnNpZ25lZCBpbnQpCit7CisgICAgZWNvcmVfdGltZXJfYWRkKDAsIHRpbWVvdXRG
aXJlZCwgMCk7Cit9CisKIHZvaWQgaW5pdGlhbGl6ZU1haW5UaHJlYWRQbGF0Zm9ybSgpCiB7Cisg
ICAgcGlwZU9iamVjdCA9IGFkb3B0UHRyKGVjb3JlX3BpcGVfYWRkKG1vbml0b3JEaXNwYXRjaEZ1
bmN0aW9ucywgMCkpOwogfQogCi1zdGF0aWMgRWluYV9Cb29sIHRpbWVvdXRGaXJlZCh2b2lkKikK
K0VpbmFfQm9vbCB0aW1lb3V0RmlyZWQodm9pZCopCiB7CiAgICAgZGlzcGF0Y2hGdW5jdGlvbnNG
cm9tTWFpblRocmVhZCgpOwogICAgIHJldHVybiBFQ09SRV9DQUxMQkFDS19DQU5DRUw7CkBAIC01
MCw4ICs2MSw3IEBAIHN0YXRpYyBFaW5hX0Jvb2wgdGltZW91dEZpcmVkKHZvaWQqKQogCiB2b2lk
IHNjaGVkdWxlRGlzcGF0Y2hGdW5jdGlvbnNPbk1haW5UaHJlYWQoKQogewotICAgIGVjb3JlX3Rp
bWVyX2FkZCgwLCB0aW1lb3V0RmlyZWQsIDApOworICAgIGVjb3JlX3BpcGVfd3JpdGUocGlwZU9i
amVjdC5nZXQoKSwgIiIsIDApOwogfQogCi0KIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101082</attachid>
            <date>2011-07-15 18:30:55 -0700</date>
            <delta_ts>2011-07-16 19:01:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64337-20110716103127.patch</filename>
            <type>text/plain</type>
            <size>2014</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTExMzUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGFl
YWE1YTc5ZTYxZDM1NDM2NjIxMTVhZGQyMGNkM2E4M2RiMzQ4ZDUuLjFiZjE1Y2Q0NmFmMTYxYWUz
OGEzNmQ2MDgwOWMyODViNTQ4NDg1MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE5IEBACisyMDExLTA3LTE1ICBSeXVhbiBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNv
bT4KKworICAgICAgICBbRUZMXSBSZWZhY3RvciBzY2hlZHVsZURpc3BhdGNoRnVuY3Rpb25zT25N
YWluVGhyZWFkIHRvIGZpeCBjcmFzaC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY0MzM3CisKKyAgICAgICAgUmVwbGFjZSBlY29yZV90aW1lcl9hZGQg
dG8gRWNvcmVfUGlwZS4KKyAgICAgICAgVGhpcyBpcyBuZWVkZWQgYmVjYXVzZSBlY29yZV90aW1l
ciBzaG91bGQgbm90IGJlIGNhbGxlZCBpbiBhIGNoaWxkIHRocmVhZCwKKyAgICAgICAgYnV0IGlu
IGEgbWFpbiB0aHJlYWQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiB3dGYvZWZsL01haW5UaHJlYWRFZmwuY3BwOgorICAgICAgICAoV1RGOjptb25p
dG9yRGlzcGF0Y2hGdW5jdGlvbnMpOgorICAgICAgICAoV1RGOjppbml0aWFsaXplTWFpblRocmVh
ZFBsYXRmb3JtKToKKyAgICAgICAgKFdURjo6c2NoZWR1bGVEaXNwYXRjaEZ1bmN0aW9uc09uTWFp
blRocmVhZCk6CisKIDIwMTEtMDctMTUgIE1hcmsgUm93ZSAgPG1yb3dlQGFwcGxlLmNvbT4KIAog
ICAgICAgICBGaXggdGhlIGJ1aWxkLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9lZmwvTWFpblRocmVhZEVmbC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL2Vm
bC9NYWluVGhyZWFkRWZsLmNwcAppbmRleCA4Nzc0ZDIwYjY2M2UyNTQzNDRmYzZkNzgzZDAxMzM2
OTJiZWM2MTZjLi4xNjI5OWE3ZTQ0MjhjMTI3M2RhYjExOTEyZmFiMWNhMTkyODg1MjA3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL2VmbC9NYWluVGhyZWFkRWZsLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL2VmbC9NYWluVGhyZWFkRWZsLmNwcApAQCAt
MzUsMjMgKzM1LDI3IEBACiAjaW5jbHVkZSAiTWFpblRocmVhZC5oIgogCiAjaW5jbHVkZSA8RWNv
cmUuaD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIu
aD4KKyNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBXVEYgewogCi12
b2lkIGluaXRpYWxpemVNYWluVGhyZWFkUGxhdGZvcm0oKQorREVGSU5FX1NUQVRJQ19MT0NBTChP
d25QdHI8RWNvcmVfUGlwZT4sIHBpcGVPYmplY3QsICgpKTsKKworc3RhdGljIHZvaWQgbW9uaXRv
ckRpc3BhdGNoRnVuY3Rpb25zKHZvaWQqLCB2b2lkKiwgdW5zaWduZWQgaW50KQogeworICAgIGRp
c3BhdGNoRnVuY3Rpb25zRnJvbU1haW5UaHJlYWQoKTsKIH0KIAotc3RhdGljIEVpbmFfQm9vbCB0
aW1lb3V0RmlyZWQodm9pZCopCit2b2lkIGluaXRpYWxpemVNYWluVGhyZWFkUGxhdGZvcm0oKQog
ewotICAgIGRpc3BhdGNoRnVuY3Rpb25zRnJvbU1haW5UaHJlYWQoKTsKLSAgICByZXR1cm4gRUNP
UkVfQ0FMTEJBQ0tfQ0FOQ0VMOworICAgIHBpcGVPYmplY3QgPSBhZG9wdFB0cihlY29yZV9waXBl
X2FkZChtb25pdG9yRGlzcGF0Y2hGdW5jdGlvbnMsIDApKTsKIH0KIAogdm9pZCBzY2hlZHVsZURp
c3BhdGNoRnVuY3Rpb25zT25NYWluVGhyZWFkKCkKIHsKLSAgICBlY29yZV90aW1lcl9hZGQoMCwg
dGltZW91dEZpcmVkLCAwKTsKKyAgICBlY29yZV9waXBlX3dyaXRlKHBpcGVPYmplY3QuZ2V0KCks
ICIiLCAwKTsKIH0KIAotCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101110</attachid>
            <date>2011-07-16 19:01:18 -0700</date>
            <delta_ts>2011-07-17 19:59:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64337-20110717110115.patch</filename>
            <type>text/plain</type>
            <size>2178</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTExNTkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDNl
ZTM3ZWEyMDBhMWMzOGQyMjZlMmVkOTNhMWViZWU1NTI5OWNjYjkuLjhjY2Y3ZTQyMGMxYzYxYTFi
YmYyYTVhYmFjYTcwN2EyZGM3MTE2ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIwIEBACisyMDExLTA3LTE2ICBSeXVhbiBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNv
bT4KKworICAgICAgICBbRUZMXSBSZWZhY3RvciBzY2hlZHVsZURpc3BhdGNoRnVuY3Rpb25zT25N
YWluVGhyZWFkIHRvIGZpeCBjcmFzaC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY0MzM3CisKKyAgICAgICAgUmVwbGFjZSBlY29yZV90aW1lcl9hZGQg
dG8gRWNvcmVfUGlwZS4KKyAgICAgICAgVGhpcyBpcyBuZWVkZWQgYmVjYXVzZSBlY29yZV90aW1l
ciBzaG91bGQgbm90IGJlIGNhbGxlZCBpbiBhIGNoaWxkIHRocmVhZCwKKyAgICAgICAgYnV0IGlu
IHRoZSBtYWluIHRocmVhZC4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHd0Zi9lZmwvTWFpblRocmVhZEVmbC5jcHA6CisgICAgICAgIChXVEY6OnBp
cGVPYmplY3QpOgorICAgICAgICAoV1RGOjptb25pdG9yRGlzcGF0Y2hGdW5jdGlvbnMpOgorICAg
ICAgICAoV1RGOjppbml0aWFsaXplTWFpblRocmVhZFBsYXRmb3JtKToKKyAgICAgICAgKFdURjo6
c2NoZWR1bGVEaXNwYXRjaEZ1bmN0aW9uc09uTWFpblRocmVhZCk6CisKIDIwMTEtMDctMTYgIEZp
bGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBERkcgc3BlY3VsYXRpdmUg
SklUIGhhcyBkZWFkIGNvZGUgZm9yIHNsb3cgY2FsbHMgZm9yIGJyYW5jaGVzLgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9lZmwvTWFpblRocmVhZEVmbC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL2VmbC9NYWluVGhyZWFkRWZsLmNwcAppbmRleCA4Nzc0ZDIw
YjY2M2UyNTQzNDRmYzZkNzgzZDAxMzM2OTJiZWM2MTZjLi41M2FkY2IyYjFmOWUzNjZiM2M0MTJl
OWU4MWQ0NGI1ODcyNWQyNTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3Rm
L2VmbC9NYWluVGhyZWFkRWZsLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL2Vm
bC9NYWluVGhyZWFkRWZsLmNwcApAQCAtMzUsMjMgKzM1LDMxIEBACiAjaW5jbHVkZSAiTWFpblRo
cmVhZC5oIgogCiAjaW5jbHVkZSA8RWNvcmUuaD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+
CiAKIG5hbWVzcGFjZSBXVEYgewogCi12b2lkIGluaXRpYWxpemVNYWluVGhyZWFkUGxhdGZvcm0o
KQorc3RhdGljIE93blB0cjxFY29yZV9QaXBlPiYgcGlwZU9iamVjdCgpCiB7CisgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChPd25QdHI8RWNvcmVfUGlwZT4sIHBpcGVPYmplY3QsICgpKTsKKyAgICBy
ZXR1cm4gcGlwZU9iamVjdDsKIH0KIAotc3RhdGljIEVpbmFfQm9vbCB0aW1lb3V0RmlyZWQodm9p
ZCopCitzdGF0aWMgdm9pZCBtb25pdG9yRGlzcGF0Y2hGdW5jdGlvbnModm9pZCosIHZvaWQqLCB1
bnNpZ25lZCBpbnQpCiB7CiAgICAgZGlzcGF0Y2hGdW5jdGlvbnNGcm9tTWFpblRocmVhZCgpOwot
ICAgIHJldHVybiBFQ09SRV9DQUxMQkFDS19DQU5DRUw7CiB9CiAKLXZvaWQgc2NoZWR1bGVEaXNw
YXRjaEZ1bmN0aW9uc09uTWFpblRocmVhZCgpCit2b2lkIGluaXRpYWxpemVNYWluVGhyZWFkUGxh
dGZvcm0oKQogewotICAgIGVjb3JlX3RpbWVyX2FkZCgwLCB0aW1lb3V0RmlyZWQsIDApOworICAg
IHBpcGVPYmplY3QoKSA9IGFkb3B0UHRyKGVjb3JlX3BpcGVfYWRkKG1vbml0b3JEaXNwYXRjaEZ1
bmN0aW9ucywgMCkpOwogfQogCit2b2lkIHNjaGVkdWxlRGlzcGF0Y2hGdW5jdGlvbnNPbk1haW5U
aHJlYWQoKQoreworICAgIGVjb3JlX3BpcGVfd3JpdGUocGlwZU9iamVjdCgpLmdldCgpLCAiIiwg
MCk7Cit9CiAKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>