<?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>183046</bug_id>
          
          <creation_ts>2018-02-22 10:49:30 -0800</creation_ts>
          <short_desc>ServiceWorkerContainer::scheduleJob() fails to isolate copy the jobData before passing it to the main thread</short_desc>
          <delta_ts>2018-02-22 11:46:23 -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></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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1401463</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-02-22 10:49:30 -0800</bug_when>
    <thetext>ServiceWorkerContainer::scheduleJob() fails to isolate copy the jobData before passing it to the main thread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401464</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-02-22 10:50:07 -0800</bug_when>
    <thetext>&lt;rdar://problem/37793395&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401465</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-02-22 10:51:18 -0800</bug_when>
    <thetext>I suspect this is the reason for those crashes:
Thread 5 Crashed ↩:: WebCore: Worker
0   libsystem_platform.dylib      	0x00007fff7580cf49 _platform_memmove$VARIANT$Haswell + 41
1   com.apple.JavaScriptCore      	0x00007fff4fd8c761 WTF::StringImpl::create(unsigned short const*, unsigned int) + 177
2   com.apple.JavaScriptCore      	0x00007fff4fd8bc1e WTF::String::isolatedCopy() const &amp; + 46
3   com.apple.WebCore             	0x00007fff5b57f8e1 WebCore::ResourceRequestBase::setAsIsolatedCopy(WebCore::ResourceRequest const&amp;) + 657
4   com.apple.WebCore             	0x00007fff5b57f63b WebCore::ResourceRequestBase::isolatedCopy() const + 107
5   com.apple.WebCore             	0x00007fff5b34b049 WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge(WebCore::ThreadableLoaderClientWrapper&amp;, WebCore::WorkerLoaderProxy&amp;, WTF::String const&amp;, WebCore::ResourceRequest&amp;&amp;, WebCore::ThreadableLoaderOptions const&amp;, WTF::String const&amp;, WebCore::WorkerGlobalScope&amp;) + 745
6   com.apple.WebCore             	0x00007fff5b34aa52 WebCore::WorkerThreadableLoader::WorkerThreadableLoader(WebCore::WorkerGlobalScope&amp;, WebCore::ThreadableLoaderClient&amp;, WTF::String const&amp;, WebCore::ResourceRequest&amp;&amp;, WebCore::ThreadableLoaderOptions const&amp;, WTF::String const&amp;) + 226
7   com.apple.WebCore             	0x00007fff5b34a577 WebCore::ThreadableLoader::create(WebCore::ScriptExecutionContext&amp;, WebCore::ThreadableLoaderClient&amp;, WebCore::ResourceRequest&amp;&amp;, WebCore::ThreadableLoaderOptions const&amp;, WTF::String&amp;&amp;) + 103
8   com.apple.WebCore             	0x00007fff5b832f63 WebCore::WorkerScriptLoader::loadAsynchronously(WebCore::ScriptExecutionContext&amp;, WebCore::ResourceRequest&amp;&amp;, WebCore::FetchOptions::Mode, WebCore::FetchOptions::Cache, WebCore::FetchOptions::Redirect, WebCore::ContentSecurityPolicyEnforcement, WebCore::WorkerScriptLoaderClient&amp;) + 819
9   com.apple.WebCore             	0x00007fff5b842c6d WebCore::ServiceWorkerJob::fetchScriptWithContext(WebCore::ScriptExecutionContext&amp;, WebCore::FetchOptions::Cache) + 381
10  com.apple.WebCore             	0x00007fff5b83bfa8 WTF::Function&lt;void (WebCore::ScriptExecutionContext&amp;)&gt;::CallableWrapper&lt;WebCore::SWClientConnection::postTaskForJob(WTF::ObjectIdentifier&lt;WebCore::ServiceWorkerJobIdentifierType&gt;, WebCore::SWClientConnection::IsJobComplete, WTF::Function&lt;void (WebCore::ServiceWorkerJob&amp;)&gt;&amp;&amp;)::$_2&gt;::call(WebCore::ScriptExecutionContext&amp;) + 72
11  com.apple.WebCore             	0x00007fff5b831ed0 WebCore::WorkerRunLoop::runInMode(WebCore::WorkerGlobalScope*, WebCore::ModePredicate const&amp;, WebCore::WorkerRunLoop::WaitMode) + 416
12  com.apple.WebCore             	0x00007fff5b831cd0 WebCore::WorkerRunLoop::run(WebCore::WorkerGlobalScope*) + 96
13  com.apple.WebCore             	0x00007fff5b834276 WebCore::WorkerThread::workerThread() + 1030
14  com.apple.JavaScriptCore      	0x00007fff50962f44 WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*) + 228
15  com.apple.JavaScriptCore      	0x00007fff4fd8c209 WTF::wtfThreadEntryPoint(void*) + 9
16  libsystem_pthread.dylib       	0x00007fff758136c1 _pthread_body + 340
17  libsystem_pthread.dylib       	0x00007fff7581356d _pthread_start + 377
18  libsystem_pthread.dylib       	0x00007fff75812c5d thread_start + 13

Since ServiceWorkerJob::fetchScriptWithContext() uses the scriptURL from the jobData to construct the ResourceRequest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401472</commentid>
    <comment_count>3</comment_count>
      <attachid>334457</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-02-22 10:58:57 -0800</bug_when>
    <thetext>Created attachment 334457
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401488</commentid>
    <comment_count>4</comment_count>
      <attachid>334457</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-22 11:46:22 -0800</bug_when>
    <thetext>Comment on attachment 334457
Patch

Clearing flags on attachment: 334457

Committed r228928: &lt;https://trac.webkit.org/changeset/228928&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401489</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-22 11:46:23 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334457</attachid>
            <date>2018-02-22 10:58:57 -0800</date>
            <delta_ts>2018-02-22 11:46:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183046-20180222105857.patch</filename>
            <type>text/plain</type>
            <size>2052</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4OTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDUwY2FhNDEyM2Y5ZGUw
NTZmYjA2NWExZTljNDQ0NWM4ZGQ4YzRjNS4uMzQzMzIyZjVlZTgwZDMzMjE3NjhlMDU0NDMyZmM4
NDBiN2Q4NDdmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE4LTAyLTIyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU2VydmljZVdvcmtlckNvbnRh
aW5lcjo6c2NoZWR1bGVKb2IoKSBmYWlscyB0byBpc29sYXRlIGNvcHkgdGhlIGpvYkRhdGEgYmVm
b3JlIHBhc3NpbmcgaXQgdG8gdGhlIG1haW4gdGhyZWFkCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODMwNDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzM3NzkzMzk1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE1ha2Ugc3VyZSB3ZSBpc29sYXRlIGNvcHkgdGhlIGpvYkRhdGEgYmVmb3JlIHBhc3Npbmcg
aXQgdG8gdGhlIG1haW4gdGhyZWFkIGluIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OnNjaGVkdWxl
Sm9iKCkuCisgICAgICAgIFRoZSBqb2JEYXRhIGNvbnRhaW5zIFN0cmluZ3MgLyBVUkxzIHNvIGl0
IGlzIG5vdCBzYWZlIHRvIGhhdmUgbm9uLWlzb2xhdGVkIGNvcGllcyBvZiBpdCBvbiB2YXJpb3Vz
IHRocmVhZHMuCisKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRh
aW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpzY2hl
ZHVsZUpvYik6CisKIDIwMTgtMDItMjIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCByZWxlYXNlIGFzc2VydHMgZm9yIHNlcnZpY2Ugd29ya2VyIGZldGNo
IGFuZCBwb3N0TWVzc2FnZSBldmVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcAppbmRleCBiYjQzZDNkYTZl
MTdmOWY2MzEyYWZmYjlkMzYyY2MzMzg1ZGQ2NzNhLi4xOTliZTQxN2RkZGMwN2JhMWU4NzBiNzVh
NjFkNzJiNDBmMGU2MjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3BwCkBAIC0yMzgsMTEgKzIzOCwxMSBA
QCB2b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OnNjaGVkdWxlSm9iKFJlZjxTZXJ2aWNlV29y
a2VySm9iPiYmIGpvYikKIAogICAgIHNldFBlbmRpbmdBY3Rpdml0eSh0aGlzKTsKIAotICAgIGF1
dG8gam9iRGF0YSA9IGpvYi0+ZGF0YSgpOworICAgIGF1dG8mIGpvYkRhdGEgPSBqb2ItPmRhdGEo
KTsKICAgICBhdXRvIHJlc3VsdCA9IG1fam9iTWFwLmFkZChqb2ItPmlkZW50aWZpZXIoKSwgV1RG
TW92ZShqb2IpKTsKICAgICBBU1NFUlRfVU5VU0VEKHJlc3VsdCwgcmVzdWx0LmlzTmV3RW50cnkp
OwogCi0gICAgY2FsbE9uTWFpblRocmVhZChbY29ubmVjdGlvbiA9IG1fc3dDb25uZWN0aW9uLCBj
b250ZXh0SWRlbnRpZmllciA9IHRoaXMtPmNvbnRleHRJZGVudGlmaWVyKCksIGpvYkRhdGEgPSBX
VEZNb3ZlKGpvYkRhdGEpXSB7CisgICAgY2FsbE9uTWFpblRocmVhZChbY29ubmVjdGlvbiA9IG1f
c3dDb25uZWN0aW9uLCBjb250ZXh0SWRlbnRpZmllciA9IHRoaXMtPmNvbnRleHRJZGVudGlmaWVy
KCksIGpvYkRhdGEgPSBqb2JEYXRhLmlzb2xhdGVkQ29weSgpXSB7CiAgICAgICAgIGNvbm5lY3Rp
b24tPnNjaGVkdWxlSm9iKGNvbnRleHRJZGVudGlmaWVyLCBqb2JEYXRhKTsKICAgICB9KTsKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>