WebKit Bugzilla
Attachment 343750 Details for
Bug 187115
: Crash under SWServer::unregisterServiceWorkerClient()
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-187115-20180627140318.patch (text/plain), 1.97 KB, created by
Chris Dumez
on 2018-06-27 14:02:52 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Chris Dumez
Created:
2018-06-27 14:02:52 PDT
Size:
1.97 KB
patch
obsolete
>Subversion Revision: 233262 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 2be8419cace7739f6020b882f7ae8f4d6f7cbf5d..c95af38a41e35264c5f46b45a8891b047432dad0 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,22 @@ >+2018-06-27 Chris Dumez <cdumez@apple.com> >+ >+ Crash under SWServer::unregisterServiceWorkerClient() >+ https://bugs.webkit.org/show_bug.cgi?id=187115 >+ <rdar://problem/41539197> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Connections are usually destroyed before their SWServer. However, as per crash traces, it is possible >+ for SWServers to get destroyed while they still have connections. When this happens, the connections >+ (which are owned by the SWServer) get destroyed with other SWServer data members. In turn, the >+ connection destructor tries to unregister its clients from the server that is currently being destroyed. >+ >+ To address the issue, the SWServer destructor now destroys remaining connections early, before SWServer's >+ other data members get destroyed. >+ >+ * workers/service/server/SWServer.cpp: >+ (WebCore::SWServer::~SWServer): >+ > 2018-06-27 Zalan Bujtas <zalan@apple.com> > > [LFC] Move formatting context root layout logic to a dedicated function. >diff --git a/Source/WebCore/workers/service/server/SWServer.cpp b/Source/WebCore/workers/service/server/SWServer.cpp >index 714fd380ed29084253302dd1e2a8f2be75e8bb2f..74391a0450df454475afcd89e34f73a7f66e9740 100644 >--- a/Source/WebCore/workers/service/server/SWServer.cpp >+++ b/Source/WebCore/workers/service/server/SWServer.cpp >@@ -64,6 +64,10 @@ HashSet<SWServer*>& SWServer::allServers() > > SWServer::~SWServer() > { >+ // Destroy the remaining connections before the SWServer gets destroyed since they have a raw pointer >+ // to the server and since they try to unregister clients from the server in their destructor. >+ m_connections.clear(); >+ > allServers().remove(this); > } >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 187115
: 343750