<?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>66640</bug_id>
          
          <creation_ts>2011-08-21 23:03:52 -0700</creation_ts>
          <short_desc>[GTK] WebProcess crash on hitting assertion m_isWaitingForDidUpdate in DrawingAreaImpl</short_desc>
          <delta_ts>2011-08-24 10:56:03 -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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Amruth Raj">amruthraj</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
    
    <cc>aroben</cc>
    
    <cc>mrobinson</cc>
    
    <cc>ravi.kasibhatla</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>454461</commentid>
    <comment_count>0</comment_count>
    <who name="Amruth Raj">amruthraj</who>
    <bug_when>2011-08-21 23:03:52 -0700</bug_when>
    <thetext>This is a crash happening sometimes during page load with the following backtrace.

Program terminated with signal 11, Segmentation fault.
#0  0x00007f3f7dae68f0 in WebKit::DrawingAreaImpl::display (this=0xe204e0) at ../../Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp:560
560	    ASSERT(!m_isWaitingForDidUpdate);
(gdb) bt
#0  0x00007f3f7dae68f0 in WebKit::DrawingAreaImpl::display (this=0xe204e0) at ../../Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp:560
#1  0x00007f3f7dae683e in WebKit::DrawingAreaImpl::displayTimerFired (this=0xe204e0) at ../../Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp:552
#2  0x00007f3f7dae800e in Timer&lt;WebKit::DrawingAreaImpl&gt;::fired (this=0xe20570) at ../../Source/WebKit2/Platform/RunLoop.h:128
#3  0x00007f3f7d97602b in RunLoop::TimerBase::timerFiredCallback (timer=0xe20570) at ../../Source/WebKit2/Platform/gtk/RunLoopGtk.cpp:108
#4  0x00007f3f7a1b84eb in g_timeout_dispatch (source=0x135ff90, callback=&lt;value optimized out&gt;, user_data=&lt;value optimized out&gt;)
    at /build/buildd/glib2.0-2.28.6/./glib/gmain.c:3882
#5  0x00007f3f7a1b6bcd in g_main_dispatch (context=0xde0e60) at /build/buildd/glib2.0-2.28.6/./glib/gmain.c:2440
#6  g_main_context_dispatch (context=0xde0e60) at /build/buildd/glib2.0-2.28.6/./glib/gmain.c:3013
#7  0x00007f3f7a1b73a8 in g_main_context_iterate (context=0xde0e60, block=&lt;value optimized out&gt;, dispatch=1, self=&lt;value optimized out&gt;)
    at /build/buildd/glib2.0-2.28.6/./glib/gmain.c:3091
#8  0x00007f3f7a1b79f2 in g_main_loop_run (loop=0xddfb30) at /build/buildd/glib2.0-2.28.6/./glib/gmain.c:3299
#9  0x00007f3f7d975e0d in RunLoop::run () at ../../Source/WebKit2/Platform/gtk/RunLoopGtk.cpp:56
#10 0x00007f3f7da6d7ab in WebKit::WebProcessMainGtk (argc=2, argv=0x7fffc94b6eb8) at ../../Source/WebKit2/WebProcess/gtk/WebProcessMainGtk.cpp:71
#11 0x00000000004007e4 in main (argc=2, argv=0x7fffc94b6eb8) at ../../Source/WebKit2/gtk/MainGtk.cpp:31

The usecase(though not consistent always) to reproduce this problem a little easily is:
Load http://hp.com in MiniBrowser
While the page keeps loading, keep on doing a maximize-unmaximize the window and it crashes in between.

I see the following sequence happening which is leading to a crash:
displayTimer callback gets triggered
UpdateInfo gets created and displayTimer is stopped in DrawingAreaImpl::display
WebProcess sends an Update event to the UIProcess
The acknowledgement from UI Process hasn&apos;t been sent yet
displayTimer callback in WebProcess gets triggered again and hits the ASSERT statement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454541</commentid>
    <comment_count>1</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-08-22 05:54:22 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; displayTimer callback in WebProcess gets triggered again and hits the ASSERT statement.

Do you know when/why the display timer is firing again?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454599</commentid>
    <comment_count>2</comment_count>
    <who name="Amruth Raj">amruthraj</who>
    <bug_when>2011-08-22 07:43:54 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; (In reply to comment #0)
&gt; &gt; displayTimer callback in WebProcess gets triggered again and hits the ASSERT statement.
&gt; 
&gt; Do you know when/why the display timer is firing again?
I am not sure. I will debug that. There are only a couple of places where displayTimer gets started. I&apos;ll put some prints and check it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454648</commentid>
    <comment_count>3</comment_count>
    <who name="Amruth Raj">amruthraj</who>
    <bug_when>2011-08-22 10:03:33 -0700</bug_when>
    <thetext>I found the problem to be with the GTK RunLoop::TimerBase implementation.

This happens when a timer gets created from another timerfired callback. In the present case, displayTimerFired does an m_displayTimer.startOneShot().

RunLoop::TimerBase maintains a single m_timerSource. This is causing a problem when trying to destroy the old timer which got fired. It is clearing the newly created timerSource.

I think the solution to this problem could be to pass the timerSource as a userdata that can be received in the callback function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456009</commentid>
    <comment_count>4</comment_count>
      <attachid>104972</attachid>
    <who name="Amruth Raj">amruthraj</who>
    <bug_when>2011-08-24 01:34:35 -0700</bug_when>
    <thetext>Created attachment 104972
Handle the case of a new timer getting created from another timer callback

Thanks to Martin for suggesting a simpler approach to fix this bug.
check-webkit-style was reporting a couple of errors in the files that I touched. With this patch, I have included fixes for these as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456015</commentid>
    <comment_count>5</comment_count>
    <who name="Amruth Raj">amruthraj</who>
    <bug_when>2011-08-24 01:47:12 -0700</bug_when>
    <thetext>I&apos;m listing the sequence of events again for more clarity:

RunLoop::TimerBase::timerFiredCallback gets called.

This calls timer-&gt;fired() resulting in a call to DrawingAreaImpl::displayTimerFired.

This creates a new one shot timer resulting in a call to RunLoop::TimerBase::start which overrides m_timerSource with a new value.

Next, the previous timer&apos;s destroyNotifyCallback gets called which sets the newly created m_timerSource to 0.

This results in the next timer never getting stopped even though a stop is called on it and eventually leads to a crash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456087</commentid>
    <comment_count>6</comment_count>
      <attachid>104972</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-08-24 07:15:52 -0700</bug_when>
    <thetext>Comment on attachment 104972
Handle the case of a new timer getting created from another timer callback

This looks fine to me, but it would probably be good for a GTK expert to have a look as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456115</commentid>
    <comment_count>7</comment_count>
      <attachid>105002</attachid>
    <who name="Amruth Raj">amruthraj</who>
    <bug_when>2011-08-24 08:40:45 -0700</bug_when>
    <thetext>Created attachment 105002
Add description in ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456200</commentid>
    <comment_count>8</comment_count>
      <attachid>105002</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-24 10:55:58 -0700</bug_when>
    <thetext>Comment on attachment 105002
Add description in ChangeLog

Clearing flags on attachment: 105002

Committed r93711: &lt;http://trac.webkit.org/changeset/93711&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456201</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-24 10:56:03 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104972</attachid>
            <date>2011-08-24 01:34:35 -0700</date>
            <delta_ts>2011-08-24 08:40:45 -0700</delta_ts>
            <desc>Handle the case of a new timer getting created from another timer callback</desc>
            <filename>fix-66640.patch</filename>
            <type>text/plain</type>
            <size>3240</size>
            <attacher name="Amruth Raj">amruthraj</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDkzNjk1KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDgtMjMgIEFtcnV0aCBS
YWogIDxhbXJ1dGhyYWpAbW90b3JvbGEuY29tPgorCisgICAgICAgIFtHVEtdIFdlYlByb2Nlc3Mg
Y3Jhc2ggb24gaGl0dGluZyBhc3NlcnRpb24gbV9pc1dhaXRpbmdGb3JEaWRVcGRhdGUgaW4gRHJh
d2luZ0FyZWFJbXBsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02NjY0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogUGxhdGZvcm0vUnVuTG9vcC5oOgorICAgICAgICAqIFBsYXRmb3JtL2d0ay9SdW5Mb29w
R3RrLmNwcDoKKyAgICAgICAgKFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZENhbGxiYWNr
KToKKyAgICAgICAgKFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQpOgorCiAyMDExLTA4LTIzICBB
bmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUHJlcGFyZSBX
S1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIgZm9yIHRoZSBuZXcgdGV4dCBpbnB1dCBtb2RlbApJ
bmRleDogU291cmNlL1dlYktpdDIvUGxhdGZvcm0vUnVuTG9vcC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL1J1bkxvb3AuaAkocmV2aXNpb24gOTM1MDIpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9SdW5Mb29wLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0
LDcgQEAgdHlwZWRlZiBpbnQgZ2Jvb2xlYW47CiBjbGFzcyBXb3JrSXRlbTsKIAogbmFtZXNwYWNl
IENvcmVJUEMgewotICAgIGNsYXNzIEJpbmFyeVNlbWFwaG9yZTsKK2NsYXNzIEJpbmFyeVNlbWFw
aG9yZTsKIH0KIAogY2xhc3MgUnVuTG9vcCB7CkBAIC0xMDQsNyArMTA0LDYgQEAgcHVibGljOgog
ICAgICAgICBib29sIG1faXNSZXBlYXRpbmc7CiAjZWxpZiBQTEFURk9STShHVEspCiAgICAgICAg
IHN0YXRpYyBnYm9vbGVhbiB0aW1lckZpcmVkQ2FsbGJhY2soUnVuTG9vcDo6VGltZXJCYXNlKik7
Ci0gICAgICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3lOb3RpZnlDYWxsYmFjayhSdW5Mb29wOjpUaW1l
ckJhc2UqKTsKICAgICAgICAgZ2Jvb2xlYW4gaXNSZXBlYXRpbmcoKSBjb25zdCB7IHJldHVybiBt
X2lzUmVwZWF0aW5nOyB9CiAgICAgICAgIHZvaWQgY2xlYXJUaW1lclNvdXJjZSgpOwogICAgICAg
ICBHUmVmUHRyPEdTb3VyY2U+IG1fdGltZXJTb3VyY2U7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9ndGsvUnVuTG9vcEd0ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vZ3RrL1J1bkxvb3BHdGsuY3BwCShyZXZpc2lvbiA5MzUwMikKKysrIFNvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL2d0ay9SdW5Mb29wR3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcs
OCArMjcsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJ1bkxvb3AuaCIKIAot
I2luY2x1ZGUgIldvcmtJdGVtLmgiCiAjaW5jbHVkZSAiV0tCYXNlLmgiCisjaW5jbHVkZSAiV29y
a0l0ZW0uaCIKICNpbmNsdWRlIDxnbGliLmg+CiAKIFJ1bkxvb3A6OlJ1bkxvb3AoKQpAQCAtOTgs
MTUgKzk4LDE1IEBAIHZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpjbGVhclRpbWVyU291cmMKICAg
ICBtX3RpbWVyU291cmNlID0gMDsKIH0KIAotdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OmRlc3Ry
b3lOb3RpZnlDYWxsYmFjayhSdW5Mb29wOjpUaW1lckJhc2UqIHRpbWVyKQotewotICAgIHRpbWVy
LT5jbGVhclRpbWVyU291cmNlKCk7Ci19Ci0KIGdib29sZWFuIFJ1bkxvb3A6OlRpbWVyQmFzZTo6
dGltZXJGaXJlZENhbGxiYWNrKFJ1bkxvb3A6OlRpbWVyQmFzZSogdGltZXIpCiB7CisgICAgR1Nv
dXJjZSogY3VycmVudFRpbWVyU291cmNlID0gdGltZXItPm1fdGltZXJTb3VyY2UuZ2V0KCk7Cisg
ICAgYm9vbCBpc1JlcGVhdGluZyA9IHRpbWVyLT5pc1JlcGVhdGluZygpOworICAgIC8vIFRoaXMg
Y2FuIGNoYW5nZSB0aGUgdGltZXJTb3VyY2UgYnkgc3RhcnRpbmcgYSBuZXcgdGltZXIgd2l0aGlu
IHRoZSBjYWxsYmFjay4KICAgICB0aW1lci0+ZmlyZWQoKTsKLSAgICByZXR1cm4gdGltZXItPmlz
UmVwZWF0aW5nKCk7CisgICAgaWYgKCFpc1JlcGVhdGluZyAmJiBjdXJyZW50VGltZXJTb3VyY2Ug
PT0gdGltZXItPm1fdGltZXJTb3VyY2UuZ2V0KCkpCisgICAgICAgIHRpbWVyLT5jbGVhclRpbWVy
U291cmNlKCk7CisgICAgcmV0dXJuIGlzUmVwZWF0aW5nOwogfQogCiB2b2lkIFJ1bkxvb3A6OlRp
bWVyQmFzZTo6c3RhcnQoZG91YmxlIGZpcmVJbnRlcnZhbCwgYm9vbCByZXBlYXQpCkBAIC0xMTYs
OCArMTE2LDcgQEAgdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0KGRvdWJsZSBmaQogCiAg
ICAgbV90aW1lclNvdXJjZSA9IGFkb3B0R1JlZihnX3RpbWVvdXRfc291cmNlX25ldyhzdGF0aWNf
Y2FzdDxndWludD4oZmlyZUludGVydmFsICogMTAwMCkpKTsKICAgICBtX2lzUmVwZWF0aW5nID0g
cmVwZWF0OwotICAgIGdfc291cmNlX3NldF9jYWxsYmFjayhtX3RpbWVyU291cmNlLmdldCgpLCBy
ZWludGVycHJldF9jYXN0PEdTb3VyY2VGdW5jPigmUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZp
cmVkQ2FsbGJhY2spLCB0aGlzLAotICAgICAgICAgICAgICAgICAgICAgICAgICByZWludGVycHJl
dF9jYXN0PEdEZXN0cm95Tm90aWZ5PigmUnVuTG9vcDo6VGltZXJCYXNlOjpkZXN0cm95Tm90aWZ5
Q2FsbGJhY2spKTsKKyAgICBnX3NvdXJjZV9zZXRfY2FsbGJhY2sobV90aW1lclNvdXJjZS5nZXQo
KSwgcmVpbnRlcnByZXRfY2FzdDxHU291cmNlRnVuYz4oJlJ1bkxvb3A6OlRpbWVyQmFzZTo6dGlt
ZXJGaXJlZENhbGxiYWNrKSwgdGhpcywgMCk7CiAgICAgZ19zb3VyY2VfYXR0YWNoKG1fdGltZXJT
b3VyY2UuZ2V0KCksIG1fcnVuTG9vcC0+bV9ydW5Mb29wQ29udGV4dCk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105002</attachid>
            <date>2011-08-24 08:40:45 -0700</date>
            <delta_ts>2011-08-24 10:55:58 -0700</delta_ts>
            <desc>Add description in ChangeLog</desc>
            <filename>fix-66640.patch.1</filename>
            <type>text/plain</type>
            <size>3743</size>
            <attacher name="Amruth Raj">amruthraj</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDkzNjk1KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDgtMjMgIEFtcnV0aCBS
YWogIDxhbXJ1dGhyYWpAbW90b3JvbGEuY29tPgorCisgICAgICAgIFtHVEtdIFdlYlByb2Nlc3Mg
Y3Jhc2ggb24gaGl0dGluZyBhc3NlcnRpb24gbV9pc1dhaXRpbmdGb3JEaWRVcGRhdGUgaW4gRHJh
d2luZ0FyZWFJbXBsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02NjY0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoZSBjcmFzaCBoYXBwZW5zIHdoZW4gYSBuZXcgdGltZXIgaXMgY3JlYXRlZCBpbiBhbiBl
eGlzdGluZyB0aW1lciBjYWxsYmFjay4gU2luY2UgCisgICAgICAgIFRpbWVyQmFzZSBoYXMgYSBz
aW5nbGUgR1NvdXJjZSogaXQgZ2V0cyBvdmVycmlkZGVuIGFuZCB0aGUgb2xkIHRpbWVyIGNhbiBu
ZXZlciBnZXQKKyAgICAgICAgc3RvcHBlZC4gVG8gaGFuZGxlIHRoaXMsIGtlZXAgYSBjb3B5IG9m
IHRoZSBvbGQgdGltZXIgYW5kIHVzZSBpdCBmb3IgZGVzdHJ1Y3Rpb24uCisKKyAgICAgICAgKiBQ
bGF0Zm9ybS9SdW5Mb29wLmg6CisgICAgICAgICogUGxhdGZvcm0vZ3RrL1J1bkxvb3BHdGsuY3Bw
OgorICAgICAgICAoUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkQ2FsbGJhY2spOgorICAg
ICAgICBTdG9yZSB0aGUgdGltZXJTb3VyY2Ugc28gdGhhdCBldmVuIGlmIGl0IGlzIG1vZGlmaWVk
IGJ5IHRoZSB0aW1lciBjYWxsYmFjaywKKyAgICAgICAgaXQgY2FuIGJlIHJlc3RvcmVkIGZvciBm
cmVlaW5nIGl0LgorICAgICAgICAoUnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydCk6CisgICAgICAg
IFJlbW92ZSBkZXN0cm95Tm90aWZ5Q2FsbGJhY2suIERlc3RydWN0aW9uIGlzIG5vdyBoYW5kbGVk
IGluIHRpbWVyRmlyZWRDYWxsYmFjayBpdHNlbGYuCisKIDIwMTEtMDgtMjMgIEFuZGVycyBDYXJs
c3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBQcmVwYXJlIFdLVGV4dElucHV0
V2luZG93Q29udHJvbGxlciBmb3IgdGhlIG5ldyB0ZXh0IGlucHV0IG1vZGVsCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9SdW5Mb29wLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vUnVuTG9vcC5oCShyZXZpc2lvbiA5MzUwMikKKysrIFNvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL1J1bkxvb3AuaAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQsNyBAQCB0eXBl
ZGVmIGludCBnYm9vbGVhbjsKIGNsYXNzIFdvcmtJdGVtOwogCiBuYW1lc3BhY2UgQ29yZUlQQyB7
Ci0gICAgY2xhc3MgQmluYXJ5U2VtYXBob3JlOworY2xhc3MgQmluYXJ5U2VtYXBob3JlOwogfQog
CiBjbGFzcyBSdW5Mb29wIHsKQEAgLTEwNCw3ICsxMDQsNiBAQCBwdWJsaWM6CiAgICAgICAgIGJv
b2wgbV9pc1JlcGVhdGluZzsKICNlbGlmIFBMQVRGT1JNKEdUSykKICAgICAgICAgc3RhdGljIGdi
b29sZWFuIHRpbWVyRmlyZWRDYWxsYmFjayhSdW5Mb29wOjpUaW1lckJhc2UqKTsKLSAgICAgICAg
c3RhdGljIHZvaWQgZGVzdHJveU5vdGlmeUNhbGxiYWNrKFJ1bkxvb3A6OlRpbWVyQmFzZSopOwog
ICAgICAgICBnYm9vbGVhbiBpc1JlcGVhdGluZygpIGNvbnN0IHsgcmV0dXJuIG1faXNSZXBlYXRp
bmc7IH0KICAgICAgICAgdm9pZCBjbGVhclRpbWVyU291cmNlKCk7CiAgICAgICAgIEdSZWZQdHI8
R1NvdXJjZT4gbV90aW1lclNvdXJjZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2d0
ay9SdW5Mb29wR3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9n
dGsvUnVuTG9vcEd0ay5jcHAJKHJldmlzaW9uIDkzNTAyKQorKysgU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vZ3RrL1J1bkxvb3BHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw4ICsyNyw4IEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUnVuTG9vcC5oIgogCi0jaW5jbHVkZSAi
V29ya0l0ZW0uaCIKICNpbmNsdWRlICJXS0Jhc2UuaCIKKyNpbmNsdWRlICJXb3JrSXRlbS5oIgog
I2luY2x1ZGUgPGdsaWIuaD4KIAogUnVuTG9vcDo6UnVuTG9vcCgpCkBAIC05OCwxNSArOTgsMTUg
QEAgdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OmNsZWFyVGltZXJTb3VyYwogICAgIG1fdGltZXJT
b3VyY2UgPSAwOwogfQogCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6ZGVzdHJveU5vdGlmeUNh
bGxiYWNrKFJ1bkxvb3A6OlRpbWVyQmFzZSogdGltZXIpCi17Ci0gICAgdGltZXItPmNsZWFyVGlt
ZXJTb3VyY2UoKTsKLX0KLQogZ2Jvb2xlYW4gUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVk
Q2FsbGJhY2soUnVuTG9vcDo6VGltZXJCYXNlKiB0aW1lcikKIHsKKyAgICBHU291cmNlKiBjdXJy
ZW50VGltZXJTb3VyY2UgPSB0aW1lci0+bV90aW1lclNvdXJjZS5nZXQoKTsKKyAgICBib29sIGlz
UmVwZWF0aW5nID0gdGltZXItPmlzUmVwZWF0aW5nKCk7CisgICAgLy8gVGhpcyBjYW4gY2hhbmdl
IHRoZSB0aW1lclNvdXJjZSBieSBzdGFydGluZyBhIG5ldyB0aW1lciB3aXRoaW4gdGhlIGNhbGxi
YWNrLgogICAgIHRpbWVyLT5maXJlZCgpOwotICAgIHJldHVybiB0aW1lci0+aXNSZXBlYXRpbmco
KTsKKyAgICBpZiAoIWlzUmVwZWF0aW5nICYmIGN1cnJlbnRUaW1lclNvdXJjZSA9PSB0aW1lci0+
bV90aW1lclNvdXJjZS5nZXQoKSkKKyAgICAgICAgdGltZXItPmNsZWFyVGltZXJTb3VyY2UoKTsK
KyAgICByZXR1cm4gaXNSZXBlYXRpbmc7CiB9CiAKIHZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpz
dGFydChkb3VibGUgZmlyZUludGVydmFsLCBib29sIHJlcGVhdCkKQEAgLTExNiw4ICsxMTYsNyBA
QCB2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQoZG91YmxlIGZpCiAKICAgICBtX3RpbWVy
U291cmNlID0gYWRvcHRHUmVmKGdfdGltZW91dF9zb3VyY2VfbmV3KHN0YXRpY19jYXN0PGd1aW50
PihmaXJlSW50ZXJ2YWwgKiAxMDAwKSkpOwogICAgIG1faXNSZXBlYXRpbmcgPSByZXBlYXQ7Ci0g
ICAgZ19zb3VyY2Vfc2V0X2NhbGxiYWNrKG1fdGltZXJTb3VyY2UuZ2V0KCksIHJlaW50ZXJwcmV0
X2Nhc3Q8R1NvdXJjZUZ1bmM+KCZSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWRDYWxsYmFj
ayksIHRoaXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8R0Rl
c3Ryb3lOb3RpZnk+KCZSdW5Mb29wOjpUaW1lckJhc2U6OmRlc3Ryb3lOb3RpZnlDYWxsYmFjaykp
OworICAgIGdfc291cmNlX3NldF9jYWxsYmFjayhtX3RpbWVyU291cmNlLmdldCgpLCByZWludGVy
cHJldF9jYXN0PEdTb3VyY2VGdW5jPigmUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkQ2Fs
bGJhY2spLCB0aGlzLCAwKTsKICAgICBnX3NvdXJjZV9hdHRhY2gobV90aW1lclNvdXJjZS5nZXQo
KSwgbV9ydW5Mb29wLT5tX3J1bkxvb3BDb250ZXh0KTsKIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>