<?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>188480</bug_id>
          
          <creation_ts>2018-08-10 15:33:06 -0700</creation_ts>
          <short_desc>[macOS] Multiple third party apps crash due to the thread safety check in TimerBase::setNextFireTime</short_desc>
          <delta_ts>2019-06-19 20:12:51 -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>WebCore Misc.</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>ap</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dbates</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jonlee</cc>
    
    <cc>mjs</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1449396</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-08-10 15:33:06 -0700</bug_when>
    <thetext>Multiple third party applications are crashing inside TimerBase::setNextFireTime due to the thread-safety release assert introduced in http://trac.webkit.org/r233821 to diagnose shared timer heap corruption caused by thread safety issues.

We did catch &amp; fix multiple bugs thanks to this release assert but this release assertion is hit by third party apps invoking WebView APIs in non-main threads on macOS.


&lt;rdar://problem/43158535&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1449398</commentid>
    <comment_count>1</comment_count>
      <attachid>346935</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-08-10 15:36:51 -0700</bug_when>
    <thetext>Created attachment 346935
Diable release assert in WebKit1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1449399</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-08-10 15:38:48 -0700</bug_when>
    <thetext>We initially planned to add a linked-on-or-after check but Jon Lee pointed out that then third party app developers may not realize the crash is caused by their misuse of the API because it&apos;d be crashing deep down in WebKit framework.

I think we should add a thread-safety check in our public API instead but that should probably be done in a separate patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1449400</commentid>
    <comment_count>3</comment_count>
      <attachid>346935</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2018-08-10 15:42:49 -0700</bug_when>
    <thetext>Comment on attachment 346935
Diable release assert in WebKit1

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        Supress the release assert in WebKit1 on macOS (isInWebProcess is always true in non-Cocoa platforms).

Suppress*

&gt; Source/WebCore/ChangeLog:11
&gt; +        In the future, we should consider throwing Objective-C exceptions when thrid party apps call WebKit1

third*</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1449401</commentid>
    <comment_count>4</comment_count>
      <attachid>346935</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-08-10 15:42:53 -0700</bug_when>
    <thetext>Comment on attachment 346935
Diable release assert in WebKit1

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

&gt; Source/WebCore/platform/Timer.cpp:198
&gt; -    RELEASE_ASSERT(WebThreadIsEnabled() || canAccessThreadLocalDataForThread(m_thread.get()));
&gt; +    RELEASE_ASSERT(canAccessThreadLocalDataForThread(m_thread.get()) || WebThreadIsEnabled());

I&apos;m changing the order for consistency &amp; reduce the runtime cost.
After this, we&apos;d only check WebThreadIsEnabled() when the assertion failed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1449405</commentid>
    <comment_count>5</comment_count>
      <attachid>346935</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-08-10 16:04:29 -0700</bug_when>
    <thetext>Comment on attachment 346935
Diable release assert in WebKit1

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

&gt; Source/WebCore/platform/Timer.cpp:200
&gt; +    RELEASE_ASSERT(canAccessThreadLocalDataForThread(m_thread.get()) || !isInWebProcess());

Why don&apos;t we use a linked-on-or-after check for this? We want people to fix their apps when the re-compile.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1449406</commentid>
    <comment_count>6</comment_count>
      <attachid>346935</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2018-08-10 16:18:14 -0700</bug_when>
    <thetext>Comment on attachment 346935
Diable release assert in WebKit1

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

&gt;&gt; Source/WebCore/ChangeLog:9
&gt;&gt; +        Supress the release assert in WebKit1 on macOS (isInWebProcess is always true in non-Cocoa platforms).
&gt; 
&gt; Suppress*

It is possible that this will replace one common crash signature with many random ones - WebKit is quite likely to break when on a background thread. What evidence do we have that this patch reduces crash count?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1449410</commentid>
    <comment_count>7</comment_count>
      <attachid>346935</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2018-08-10 16:32:31 -0700</bug_when>
    <thetext>Comment on attachment 346935
Diable release assert in WebKit1

r- to add linked-on-or-after check and logging for developer to tell them how to fix the issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1449420</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-08-10 17:13:07 -0700</bug_when>
    <thetext>Turns out that are a lot of crashes that don&apos;t go through [WebView loadRequest:] so I guess we&apos;d just add a linked-on-or-after check and not add a logging.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1449424</commentid>
    <comment_count>9</comment_count>
      <attachid>346944</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-08-10 17:19:15 -0700</bug_when>
    <thetext>Created attachment 346944
Updated per review comment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1449425</commentid>
    <comment_count>10</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-08-10 17:20:24 -0700</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #6)
&gt; Comment on attachment 346935 [details]
&gt; Diable release assert in WebKit1
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=346935&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/ChangeLog:9
&gt; &gt;&gt; +        Supress the release assert in WebKit1 on macOS (isInWebProcess is always true in non-Cocoa platforms).
&gt; &gt; 
&gt; &gt; Suppress*
&gt; 
&gt; It is possible that this will replace one common crash signature with many
&gt; random ones - WebKit is quite likely to break when on a background thread.
&gt; What evidence do we have that this patch reduces crash count?

That&apos;s true but we have some reports saying that the apps that used not to crash are now crashing with a much higher frequency in Mojave with this stack trace.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1449443</commentid>
    <comment_count>11</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-08-10 19:01:26 -0700</bug_when>
    <thetext>Committed r234778: &lt;https://trac.webkit.org/changeset/234778&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1449444</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-08-10 19:03:28 -0700</bug_when>
    <thetext>&lt;rdar://problem/43166861&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546386</commentid>
    <comment_count>13</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-06-19 20:12:51 -0700</bug_when>
    <thetext>@Ryosuke

We fixed the root cause of this at r246578. So, at some point, we can revert this suppression.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346935</attachid>
            <date>2018-08-10 15:36:51 -0700</date>
            <delta_ts>2018-08-10 17:19:14 -0700</delta_ts>
            <desc>Diable release assert in WebKit1</desc>
            <filename>bug-188480-20180810153650.patch</filename>
            <type>text/plain</type>
            <size>2566</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzNDc3MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDE4LTA4LTEwICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFttYWNPU10gTXVsdGlwbGUgdGhp
cmQgcGFydHkgYXBwcyBjcmFzaCBkdWUgdG8gdGhlIHRocmVhZCBzYWZldHkgY2hlY2sgaW4gVGlt
ZXJCYXNlOjpzZXROZXh0RmlyZVRpbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE4ODQ4MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDMxNTg1MzU+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcmVz
cyB0aGUgcmVsZWFzZSBhc3NlcnQgaW4gV2ViS2l0MSBvbiBtYWNPUyAoaXNJbldlYlByb2Nlc3Mg
aXMgYWx3YXlzIHRydWUgaW4gbm9uLUNvY29hIHBsYXRmb3JtcykuCisKKyAgICAgICAgSW4gdGhl
IGZ1dHVyZSwgd2Ugc2hvdWxkIGNvbnNpZGVyIHRocm93aW5nIE9iamVjdGl2ZS1DIGV4Y2VwdGlv
bnMgd2hlbiB0aHJpZCBwYXJ0eSBhcHBzIGNhbGwgV2ViS2l0MQorICAgICAgICBvciBXZWJLaXQy
IEFQSXMgaW4gbm9uLW1haW4gdGhyZWFkcy4KKworICAgICAgICAqIHBsYXRmb3JtL1RpbWVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSk6CisgICAgICAgIChX
ZWJDb3JlOjpUaW1lckJhc2U6OnNldE5leHRGaXJlVGltZSk6CisKIDIwMTgtMDgtMTAgIERhbmll
bCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIENsZWFudXA6IFJlbW92ZSB1
bm5lY2Vzc2FyeSBjb2RlIHRvIHJlc3VtZSBhbmltYXRpb25zIGZyb20gQ2FjaGVkRnJhbWVCYXNl
OjpyZXN0b3JlKCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5jcHAJKHJldmlzaW9uIDIz
NDY4MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlRpbWVy
LmgiCiAKKyNpbmNsdWRlICJSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCIKICNpbmNsdWRlICJT
aGFyZWRUaW1lci5oIgogI2luY2x1ZGUgIlRocmVhZEdsb2JhbERhdGEuaCIKICNpbmNsdWRlICJU
aHJlYWRUaW1lcnMuaCIKQEAgLTE5NCw5ICsxOTUsOSBAQCBUaW1lckJhc2U6On5UaW1lckJhc2Uo
KQogewogI2lmIFVTRShXRUJfVEhSRUFEKQogICAgIEFTU0VSVChjYW5BY2Nlc3NUaHJlYWRMb2Nh
bERhdGFGb3JUaHJlYWQobV90aHJlYWQuZ2V0KCkpKTsKLSAgICBSRUxFQVNFX0FTU0VSVChXZWJU
aHJlYWRJc0VuYWJsZWQoKSB8fCBjYW5BY2Nlc3NUaHJlYWRMb2NhbERhdGFGb3JUaHJlYWQobV90
aHJlYWQuZ2V0KCkpKTsKKyAgICBSRUxFQVNFX0FTU0VSVChjYW5BY2Nlc3NUaHJlYWRMb2NhbERh
dGFGb3JUaHJlYWQobV90aHJlYWQuZ2V0KCkpIHx8IFdlYlRocmVhZElzRW5hYmxlZCgpKTsKICNl
bHNlCi0gICAgUkVMRUFTRV9BU1NFUlQoY2FuQWNjZXNzVGhyZWFkTG9jYWxEYXRhRm9yVGhyZWFk
KG1fdGhyZWFkLmdldCgpKSk7CisgICAgUkVMRUFTRV9BU1NFUlQoY2FuQWNjZXNzVGhyZWFkTG9j
YWxEYXRhRm9yVGhyZWFkKG1fdGhyZWFkLmdldCgpKSB8fCAhaXNJbldlYlByb2Nlc3MoKSk7CiAj
ZW5kaWYKICAgICBzdG9wKCk7CiAgICAgQVNTRVJUKCFpbkhlYXAoKSk7CkBAIC0zNjYsOSArMzY3
LDkgQEAgdm9pZCBUaW1lckJhc2U6OnNldE5leHRGaXJlVGltZShNb25vdG9uaQogewogI2lmIFVT
RShXRUJfVEhSRUFEKQogICAgIEFTU0VSVChjYW5BY2Nlc3NUaHJlYWRMb2NhbERhdGFGb3JUaHJl
YWQobV90aHJlYWQuZ2V0KCkpKTsKLSAgICBSRUxFQVNFX0FTU0VSVChXZWJUaHJlYWRJc0VuYWJs
ZWQoKSB8fCBjYW5BY2Nlc3NUaHJlYWRMb2NhbERhdGFGb3JUaHJlYWQobV90aHJlYWQuZ2V0KCkp
KTsKKyAgICBSRUxFQVNFX0FTU0VSVChjYW5BY2Nlc3NUaHJlYWRMb2NhbERhdGFGb3JUaHJlYWQo
bV90aHJlYWQuZ2V0KCkpIHx8IFdlYlRocmVhZElzRW5hYmxlZCgpKTsKICNlbHNlCi0gICAgUkVM
RUFTRV9BU1NFUlQoY2FuQWNjZXNzVGhyZWFkTG9jYWxEYXRhRm9yVGhyZWFkKG1fdGhyZWFkLmdl
dCgpKSk7CisgICAgUkVMRUFTRV9BU1NFUlQoY2FuQWNjZXNzVGhyZWFkTG9jYWxEYXRhRm9yVGhy
ZWFkKG1fdGhyZWFkLmdldCgpKSB8fCAhaXNJbldlYlByb2Nlc3MoKSk7CiAjZW5kaWYKICAgICBS
RUxFQVNFX0FTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFtX3dhc0RlbGV0ZWQpOwog
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346944</attachid>
            <date>2018-08-10 17:19:15 -0700</date>
            <delta_ts>2018-08-10 17:41:15 -0700</delta_ts>
            <desc>Updated per review comment</desc>
            <filename>bug-188480-20180810171915.patch</filename>
            <type>text/plain</type>
            <size>4550</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyMzQ3NzcpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE4LTA4LTEwICBSeW9zdWtlIE5pd2EgIDxybml3
YUB3ZWJraXQub3JnPgorCisgICAgICAgIFttYWNPU10gTXVsdGlwbGUgdGhpcmQgcGFydHkgYXBw
cyBjcmFzaCBkdWUgdG8gdGhlIHRocmVhZCBzYWZldHkgY2hlY2sgaW4gVGltZXJCYXNlOjpzZXRO
ZXh0RmlyZVRpbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE4ODQ4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZGVkIHRoZSBTREsgdmVyc2lvbiBmb3IgbWFjT1MgTW9qYXZlLgorCisgICAgICAgICog
d3RmL3NwaS9kYXJ3aW4vZHlsZFNQSS5oOgorCiAyMDE4LTA4LTEwICBBbnR0aSBLb2l2aXN0byAg
PGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgT3B0aW9uU2V0IGZvciB2YXJpb3VzIFJl
bmRlckxheWVyIGZsYWdzCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9zcGkvZGFyd2luL2R5bGRTUEku
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9zcGkvZGFyd2luL2R5bGRTUEkuaAkocmV2
aXNpb24gMjM0NzcyKQorKysgU291cmNlL1dURi93dGYvc3BpL2Rhcndpbi9keWxkU1BJLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQ1LDYgKzQ1LDEwIEBACiAjZGVmaW5lIERZTERfTUFDT1NYX1ZFUlNJ
T05fMTBfMTMgMHgwMDBBMEQwMAogI2VuZGlmCiAKKyNpZm5kZWYgRFlMRF9NQUNPU1hfVkVSU0lP
Tl8xMF8xNAorI2RlZmluZSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE0IDB4MDAwQTBFMDAKKyNl
bmRpZgorCiAjZWxzZQogCiAjZGVmaW5lIERZTERfSU9TX1ZFUlNJT05fM18wIDB4MDAwMzAwMDAK
QEAgLTYxLDYgKzY1LDcgQEAKICNkZWZpbmUgRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xMSAweDAw
MEEwQjAwCiAjZGVmaW5lIERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTIgMHgwMDBBMEMwMAogI2Rl
ZmluZSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzEzIDB4MDAwQTBEMDAKKyNkZWZpbmUgRFlMRF9N
QUNPU1hfVkVSU0lPTl8xMF8xNCAweDAwMEEwRTAwCiAKICNlbmRpZgogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMzQ3NzIpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwyMCBAQAorMjAxOC0wOC0xMCAgUnlvc3VrZSBOaXdhICA8cm5pd2FA
d2Via2l0Lm9yZz4KKworICAgICAgICBbbWFjT1NdIE11bHRpcGxlIHRoaXJkIHBhcnR5IGFwcHMg
Y3Jhc2ggZHVlIHRvIHRoZSB0aHJlYWQgc2FmZXR5IGNoZWNrIGluIFRpbWVyQmFzZTo6c2V0TmV4
dEZpcmVUaW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xODg0ODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBTdXBwcmVzcyB0aGUgcmVsZWFzZSBhc3NlcnQgaW4gV2ViS2l0MSBvbiBtYWNPUyAoaXNJbldl
YlByb2Nlc3MgaXMgYWx3YXlzIHRydWUgaW4gbm9uLUNvY29hIHBsYXRmb3JtcykuCisKKyAgICAg
ICAgSW4gdGhlIGZ1dHVyZSwgd2Ugc2hvdWxkIGNvbnNpZGVyIHRocm93aW5nIE9iamVjdGl2ZS1D
IGV4Y2VwdGlvbnMgd2hlbiB0aGlyZCBwYXJ0eSBhcHBzIGNhbGwgV2ViS2l0MQorICAgICAgICBv
ciBXZWJLaXQyIEFQSXMgaW4gbm9uLW1haW4gdGhyZWFkcy4KKworICAgICAgICAqIHBsYXRmb3Jt
L1RpbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNob3VsZFN1cHByZXNzVGhyZWFkU2FmZXR5
Q2hlY2spOiBFeHRyYWN0ZWQgb3V0IG9mIH5UaW1lckJhc2UgYW5kIHNldE5leHRGaXJlVGltZS4K
KyAgICAgICAgKFdlYkNvcmU6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSk6CisgICAgICAgIChXZWJD
b3JlOjpUaW1lckJhc2U6OnNldE5leHRGaXJlVGltZSk6CisKIDIwMTgtMDgtMTAgIERhbmllbCBC
YXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIENsZWFudXA6IFJlbW92ZSB1bm5l
Y2Vzc2FyeSBjb2RlIHRvIHJlc3VtZSBhbmltYXRpb25zIGZyb20gQ2FjaGVkRnJhbWVCYXNlOjpy
ZXN0b3JlKCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5jcHAJKHJldmlzaW9uIDIzNDc3
MikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlRpbWVyLmgi
CiAKKyNpbmNsdWRlICJSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCIKICNpbmNsdWRlICJTaGFy
ZWRUaW1lci5oIgogI2luY2x1ZGUgIlRocmVhZEdsb2JhbERhdGEuaCIKICNpbmNsdWRlICJUaHJl
YWRUaW1lcnMuaCIKQEAgLTM2LDYgKzM3LDEwIEBACiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQu
aD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKKyNpZiBVU0UoV0VCX1RIUkVBRCkgfHwgUExB
VEZPUk0oTUFDKQorI2luY2x1ZGUgPHd0Zi9zcGkvZGFyd2luL2R5bGRTUEkuaD4KKyNlbmRpZgor
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFRpbWVySGVhcFJlZmVyZW5jZTsKQEAgLTE4
NCw2ICsxODksMTcgQEAgaW5saW5lIGJvb2wgVGltZXJIZWFwTGVzc1RoYW5GdW5jdGlvbjo6bwog
CiAvLyAtLS0tLS0tLS0tLS0tLS0tCiAKK3N0YXRpYyBib29sIHNob3VsZFN1cHByZXNzVGhyZWFk
U2FmZXR5Q2hlY2soKQoreworI2lmIFVTRShXRUJfVEhSRUFEKQorICAgIHJldHVybiBXZWJUaHJl
YWRJc0VuYWJsZWQoKTsKKyNlbGlmIFBMQVRGT1JNKE1BQykKKyAgICByZXR1cm4gIWlzSW5XZWJQ
cm9jZXNzKCkgJiYgYXBwbGljYXRpb25TREtWZXJzaW9uKCkgPCBEWUxEX01BQ09TWF9WRVJTSU9O
XzEwXzE0OworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKwogVGltZXJCYXNl
OjpUaW1lckJhc2UoKQogICAgIDogbV9oZWFwSW5kZXgoLTEpCiAgICAgLCBtX3dhc0RlbGV0ZWQo
ZmFsc2UpCkBAIC0xOTIsMTIgKzIwOCw4IEBAIFRpbWVyQmFzZTo6VGltZXJCYXNlKCkKIAogVGlt
ZXJCYXNlOjp+VGltZXJCYXNlKCkKIHsKLSNpZiBVU0UoV0VCX1RIUkVBRCkKICAgICBBU1NFUlQo
Y2FuQWNjZXNzVGhyZWFkTG9jYWxEYXRhRm9yVGhyZWFkKG1fdGhyZWFkLmdldCgpKSk7Ci0gICAg
UkVMRUFTRV9BU1NFUlQoV2ViVGhyZWFkSXNFbmFibGVkKCkgfHwgY2FuQWNjZXNzVGhyZWFkTG9j
YWxEYXRhRm9yVGhyZWFkKG1fdGhyZWFkLmdldCgpKSk7Ci0jZWxzZQotICAgIFJFTEVBU0VfQVNT
RVJUKGNhbkFjY2Vzc1RocmVhZExvY2FsRGF0YUZvclRocmVhZChtX3RocmVhZC5nZXQoKSkpOwot
I2VuZGlmCisgICAgUkVMRUFTRV9BU1NFUlQoY2FuQWNjZXNzVGhyZWFkTG9jYWxEYXRhRm9yVGhy
ZWFkKG1fdGhyZWFkLmdldCgpKSB8fCBzaG91bGRTdXBwcmVzc1RocmVhZFNhZmV0eUNoZWNrKCkp
OwogICAgIHN0b3AoKTsKICAgICBBU1NFUlQoIWluSGVhcCgpKTsKICAgICBtX3dhc0RlbGV0ZWQg
PSB0cnVlOwpAQCAtMzY0LDEyICszNzYsOCBAQCB2b2lkIFRpbWVyQmFzZTo6dXBkYXRlSGVhcElm
TmVlZGVkKE1vbm90CiAKIHZvaWQgVGltZXJCYXNlOjpzZXROZXh0RmlyZVRpbWUoTW9ub3Rvbmlj
VGltZSBuZXdUaW1lKQogewotI2lmIFVTRShXRUJfVEhSRUFEKQogICAgIEFTU0VSVChjYW5BY2Nl
c3NUaHJlYWRMb2NhbERhdGFGb3JUaHJlYWQobV90aHJlYWQuZ2V0KCkpKTsKLSAgICBSRUxFQVNF
X0FTU0VSVChXZWJUaHJlYWRJc0VuYWJsZWQoKSB8fCBjYW5BY2Nlc3NUaHJlYWRMb2NhbERhdGFG
b3JUaHJlYWQobV90aHJlYWQuZ2V0KCkpKTsKLSNlbHNlCi0gICAgUkVMRUFTRV9BU1NFUlQoY2Fu
QWNjZXNzVGhyZWFkTG9jYWxEYXRhRm9yVGhyZWFkKG1fdGhyZWFkLmdldCgpKSk7Ci0jZW5kaWYK
KyAgICBSRUxFQVNFX0FTU0VSVChjYW5BY2Nlc3NUaHJlYWRMb2NhbERhdGFGb3JUaHJlYWQobV90
aHJlYWQuZ2V0KCkpIHx8IHNob3VsZFN1cHByZXNzVGhyZWFkU2FmZXR5Q2hlY2soKSk7CiAgICAg
UkVMRUFTRV9BU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighbV93YXNEZWxldGVkKTsK
IAogICAgIGlmIChtX3VuYWxpZ25lZE5leHRGaXJlVGltZSAhPSBuZXdUaW1lKQo=
</data>
<flag name="review"
          id="364767"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>