<?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>205286</bug_id>
          
          <creation_ts>2019-12-16 10:42:45 -0800</creation_ts>
          <short_desc>REGRESSION: [ Mac wk2 ] imported/w3c/web-platform-tests/service-workers/service-worker/update-no-cache-request-headers.https.html is a flaky failure</short_desc>
          <delta_ts>2019-12-16 15:33:29 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Service Workers</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>https://github.com/web-platform-tests/wpt/pull/20797</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="Truitt Savell">tsavell</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bot-watchers-bugzilla</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1598970</commentid>
    <comment_count>0</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2019-12-16 10:42:45 -0800</bug_when>
    <thetext>imported/w3c/web-platform-tests/service-workers/service-worker/update-no-cache-request-headers.https.html

This test is a flakey failure on Mac WK2. It began failing around r253457

History:
https://results.webkit.org/?suite=layout-tests&amp;test=imported%2Fw3c%2Fweb-platform-tests%2Fservice-workers%2Fservice-worker%2Fupdate-no-cache-request-headers.https.html

Diff:
--- /Volumes/Data/slave/highsierra-release-tests-wk2/build/layout-test-results/imported/w3c/web-platform-tests/service-workers/service-worker/update-no-cache-request-headers.https-expected.txt
+++ /Volumes/Data/slave/highsierra-release-tests-wk2/build/layout-test-results/imported/w3c/web-platform-tests/service-workers/service-worker/update-no-cache-request-headers.https-actual.txt
@@ -1,3 +1,3 @@
 
-PASS headers in no-cache mode 
+FAIL headers in no-cache mode promise_test: Unhandled rejection with value: object &quot;TypeError: null is not an object (evaluating &apos;newWorker.postMessage&apos;)&quot;
 

I am able to reproduced this failure by simply running the test, but I could not find a regression point due to the test continuing to fail locally on any revision.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598971</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-16 10:43:36 -0800</bug_when>
    <thetext>&lt;rdar://problem/57976344&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599033</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-12-16 12:36:56 -0800</bug_when>
    <thetext>This particular test was not updated in r253457.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599038</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-12-16 12:40:38 -0800</bug_when>
    <thetext>The test seems to do:
  await registration.update();
  const newWorker = registration.installing;

And sometimes, newWorker is null. This may indicate the service worker is already done installing and is now activating or activated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599041</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-12-16 12:47:07 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #2)
&gt; This particular test was not updated in r253457.

test-request-headers-worker.js &amp; test-request-headers-worker.py were however updated in r253457 and are both used by update-no-cache-request-headers.https.html.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599051</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-12-16 12:59:45 -0800</bug_when>
    <thetext>Looks like I can reproduce like so:
run-webkit-tests --repeat-each=100 imported/w3c/web-platform-tests/service-workers/service-worker/update-no-cache-request-headers.https.html -f</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599054</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-12-16 13:11:21 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #5)
&gt; Looks like I can reproduce like so:
&gt; run-webkit-tests --repeat-each=100
&gt; imported/w3c/web-platform-tests/service-workers/service-worker/update-no-
&gt; cache-request-headers.https.html -f

When it fails, the registration has no installing or waiting worker. It only an an active worker, which is the same one as before the update.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599060</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-12-16 13:16:20 -0800</bug_when>
    <thetext>We fail because of this check:
    // If newestWorker is not null, newestWorker&apos;s script url equals job&apos;s script url with the exclude fragments
    // flag set, and script&apos;s source text is a byte-for-byte match with newestWorker&apos;s script resource&apos;s source
    // text, then:
    if (newestWorker &amp;&amp; equalIgnoringFragmentIdentifier(newestWorker-&gt;scriptURL(), job.scriptURL) &amp;&amp; result.script == newestWorker-&gt;script()) {

in SWServerJobQueue::scriptFetchFinished(const ServiceWorkerFetchResult&amp;).

test-request-headers-worker.js is supposed to include a timestamp to make it unique. Maybe the initial install and the update happen so quickly after one another that the timestamp does not have time to change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599066</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-12-16 13:29:58 -0800</bug_when>
    <thetext>Indeed, it seems that if I replace the timestamp in the script with a uuid, the test is no longer flaky:
diff --git a/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/test-request-headers-worker.py b/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/test-request-headers-worker.py
index d3057057763..e7bdea368dd 100644
--- a/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/test-request-headers-worker.py
+++ b/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/test-request-headers-worker.py
@@ -1,6 +1,7 @@
 import json
 import os
 import time
+import uuid
 
 def main(request, response):
   path = os.path.join(os.path.dirname(__file__),
@@ -9,7 +10,7 @@ def main(request, response):
 
   data = {key:request.headers[key] for key,value in request.headers.iteritems()}
   body = body.replace(&quot;%HEADERS%&quot;, json.dumps(data))
-  body = body.replace(&quot;%TIMESTAMP%&quot;, str(time.time()))
+  body = body.replace(&quot;%TIMESTAMP%&quot;, str(uuid.uuid4()))
 
   headers = []
   headers.append((&quot;ETag&quot;, &quot;etag&quot;))</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599076</commentid>
    <comment_count>9</comment_count>
      <attachid>385807</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-12-16 13:43:48 -0800</bug_when>
    <thetext>Created attachment 385807
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599165</commentid>
    <comment_count>10</comment_count>
      <attachid>385807</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-16 15:33:27 -0800</bug_when>
    <thetext>Comment on attachment 385807
Patch

Clearing flags on attachment: 385807

Committed r253592: &lt;https://trac.webkit.org/changeset/253592&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599166</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-16 15:33:29 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385807</attachid>
            <date>2019-12-16 13:43:48 -0800</date>
            <delta_ts>2019-12-16 15:33:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205286-20191216134347.patch</filename>
            <type>text/plain</type>
            <size>3554</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzNTU0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpp
bmRleCBmZjg2YTY5MWU2MmZlNDQ1NDhlN2Q4OTE4YTFmZGIzZmFhNzQxM2Q5Li42MGMzMTAxOWZh
Nzg3YTUxZmZhYmQ0NThhNGRhZDdhZGYxMjUwNTkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxOS0xMi0xNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT046IFsgTWFjIHdrMiBdIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0
ZS1uby1jYWNoZS1yZXF1ZXN0LWhlYWRlcnMuaHR0cHMuaHRtbCBpcyBhIGZsYWt5IGZhaWx1cmUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTI4Ngor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTc5NzYzNDQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIHRlc3QgdHJpZ2dlcnMgYSByZWdpc3RyYXRp
b24gdXBkYXRlIGFuZCB0aGVuIGV4cGVjdHMgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcgdG8gYmUg
bm9uLW51bGwKKyAgICAgICAgb25jZSB0aGUgcmVnaXN0cmF0aW9uIHVwZGF0ZSBwcm9taXNlIGlz
IHJlc29sdmVkLiBUaGlzIGlzIG9ubHkgdHJ1ZSBpZiB0aGUgY29udGVudCBvZiB0aGUgc2Vydmlj
ZQorICAgICAgICB3b3JrZXIgc2NyaXB0IGlzIGRpZmZlcmVudCBzaW5jZSBsYXN0IHVwZGF0ZS4g
VGhlIHNjcmlwdCBpbmNsdWRlZCBhIHRpbWVzdGFtcCB0byB0cnkgYW5kIG1ha2UKKyAgICAgICAg
dGhlIHNjcmlwdCBkaWZmZXJlbnQgZXZlcnkgdGltZSBidXQgaXQgd291bGQgc29tZXRpbWVzIG5v
dCBzdWZmaWNlIGlmIHRoZSB1cGRhdGUgaGFwcGVucyBxdWlja2x5CisgICAgICAgIGVub3VnaC4g
VG8gYWRkcmVzcyB0aGUgaXNzdWUsIGluY2x1ZGUgYSBVVUlEIGluIHRoZSBzY3JpcHQgaW5zdGVh
ZCBvZiBhIHRpbWVzdGFtcC4KKworICAgICAgICBVcHN0cmVhbSBQUjogaHR0cHM6Ly9naXRodWIu
Y29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvcHVsbC8yMDc5NworCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdGVz
dC1yZXF1ZXN0LWhlYWRlcnMtd29ya2VyLmpzOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Rlc3QtcmVxdWVzdC1o
ZWFkZXJzLXdvcmtlci5weToKKyAgICAgICAgKG1haW4pOgorCiAyMDE5LTEyLTEzICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IFBvc3RNZXNzYWdl
T3B0aW9ucyBmb3IgcG9zdE1lc3NhZ2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy90ZXN0LXJlcXVlc3QtaGVhZGVycy13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvdGVzdC1yZXF1ZXN0LWhlYWRlcnMtd29ya2VyLmpzCmluZGV4IDhkNDc1OTEy
ZGNmOTYxN2FlYTVkMGM5ODAxNjAzY2Q4MzBmNmJkNGQuLjU2NmUyZTk5ODRiNWQ2YjVkM2E3OTcz
ODU0MmYxYjJiMjRkMWY2YjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy90ZXN0LXJlcXVlc3QtaGVhZGVycy13b3JrZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL3Rlc3QtcmVxdWVzdC1oZWFkZXJzLXdvcmtlci5qcwpAQCAtMSw1ICsxLDUgQEAK
LS8vIEFkZCBhIHVuaXF1ZSB0aW1lc3RhbXAgcGVyIHJlcXVlc3QgdG8gaW5kdWNlIHNlcnZpY2Ug
d29ya2VyIHNjcmlwdCB1cGRhdGUuCi0vLyBUaW1lIHN0YW1wOiAlVElNRVNUQU1QJQorLy8gQWRk
IGEgdW5pcXVlIFVVSUQgcGVyIHJlcXVlc3QgdG8gaW5kdWNlIHNlcnZpY2Ugd29ya2VyIHNjcmlw
dCB1cGRhdGUuCisvLyBUaW1lIHN0YW1wOiAlVVVJRCUKIAogLy8gVGhlIHNlcnZlciBpbmplY3Rz
IHRoZSByZXF1ZXN0IGhlYWRlcnMgaGVyZSBhcyBhIEpTT04gc3RyaW5nLgogY29uc3QgaGVhZGVy
c0FzSnNvbiA9IGAlSEVBREVSUyVgOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL3Rlc3QtcmVxdWVzdC1oZWFkZXJzLXdvcmtlci5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy90ZXN0LXJlcXVlc3QtaGVhZGVycy13b3JrZXIucHkKaW5kZXggZDMwNTcwNTc3
NjNjYTMxNDE2YzliM2FmZWJmMmVhMDNiOWQ5NGJhNS4uYjEyOGEyYTY4OTE1OWFmM2U3MWE5NzBi
ZTFlMTk5YWEwYWJjMmRiZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L3Rlc3QtcmVxdWVzdC1oZWFkZXJzLXdvcmtlci5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvdGVzdC1yZXF1ZXN0LWhlYWRlcnMtd29ya2VyLnB5CkBAIC0xLDYgKzEsNiBAQAog
aW1wb3J0IGpzb24KIGltcG9ydCBvcwotaW1wb3J0IHRpbWUKK2ltcG9ydCB1dWlkCiAKIGRlZiBt
YWluKHJlcXVlc3QsIHJlc3BvbnNlKToKICAgcGF0aCA9IG9zLnBhdGguam9pbihvcy5wYXRoLmRp
cm5hbWUoX19maWxlX18pLApAQCAtOSw3ICs5LDcgQEAgZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9u
c2UpOgogCiAgIGRhdGEgPSB7a2V5OnJlcXVlc3QuaGVhZGVyc1trZXldIGZvciBrZXksdmFsdWUg
aW4gcmVxdWVzdC5oZWFkZXJzLml0ZXJpdGVtcygpfQogICBib2R5ID0gYm9keS5yZXBsYWNlKCIl
SEVBREVSUyUiLCBqc29uLmR1bXBzKGRhdGEpKQotICBib2R5ID0gYm9keS5yZXBsYWNlKCIlVElN
RVNUQU1QJSIsIHN0cih0aW1lLnRpbWUoKSkpCisgIGJvZHkgPSBib2R5LnJlcGxhY2UoIiVVVUlE
JSIsIHN0cih1dWlkLnV1aWQ0KCkpKQogCiAgIGhlYWRlcnMgPSBbXQogICBoZWFkZXJzLmFwcGVu
ZCgoIkVUYWciLCAiZXRhZyIpKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>