WebKit Bugzilla
Attachment 345801 Details for
Bug 188029
: Speculative fix for StorageProcess crash
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-188029-20180725163455.patch (text/plain), 2.88 KB, created by
Alex Christensen
on 2018-07-25 16:34:56 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Alex Christensen
Created:
2018-07-25 16:34:56 PDT
Size:
2.88 KB
patch
obsolete
>Index: Source/WebCore/ChangeLog >=================================================================== >--- Source/WebCore/ChangeLog (revision 234218) >+++ Source/WebCore/ChangeLog (working copy) >@@ -1,3 +1,20 @@ >+2018-07-25 Alex Christensen <achristensen@webkit.org> >+ >+ Speculative fix for StorageProcess crash >+ https://bugs.webkit.org/show_bug.cgi?id=188029 >+ <rdar://problem/41629014> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ There is a very rare crash probably from HashTable corruption. >+ Maybe this is null in UniqueIDBDatabaseConnection::connectionClosedFromClient. >+ Maybe this is caused by IDBConnectionToClient's m_databaseConnections being accessed from multiple threads. >+ >+ * Modules/indexeddb/server/IDBConnectionToClient.cpp: >+ (WebCore::IDBServer::IDBConnectionToClient::registerDatabaseConnection): >+ (WebCore::IDBServer::IDBConnectionToClient::unregisterDatabaseConnection): >+ * Modules/indexeddb/server/IDBConnectionToClient.h: >+ > 2018-07-25 Zalan Bujtas <zalan@apple.com> > > REGRESSION(r227577) Text on TV & Movies page doesn't wrap properly in iTunes >Index: Source/WebCore/Modules/indexeddb/server/IDBConnectionToClient.cpp >=================================================================== >--- Source/WebCore/Modules/indexeddb/server/IDBConnectionToClient.cpp (revision 234209) >+++ Source/WebCore/Modules/indexeddb/server/IDBConnectionToClient.cpp (working copy) >@@ -29,6 +29,7 @@ > #if ENABLE(INDEXED_DATABASE) > > #include "UniqueIDBDatabaseConnection.h" >+#include <wtf/MainThread.h> > > namespace WebCore { > namespace IDBServer { >@@ -165,13 +166,22 @@ void IDBConnectionToClient::didGetAllDat > > void IDBConnectionToClient::registerDatabaseConnection(UniqueIDBDatabaseConnection& connection) > { >+ ASSERT(isMainThread()); > ASSERT(!m_databaseConnections.contains(&connection)); >- m_databaseConnections.add(&connection); >+ >+ { >+ Locker<Lock> locker(m_databaseConnectionsLock); >+ m_databaseConnections.add(&connection); >+ } > } > > void IDBConnectionToClient::unregisterDatabaseConnection(UniqueIDBDatabaseConnection& connection) > { >- m_databaseConnections.remove(&connection); >+ ASSERT(isMainThread()); >+ { >+ Locker<Lock> locker(m_databaseConnectionsLock); >+ m_databaseConnections.remove(&connection); >+ } > } > > void IDBConnectionToClient::connectionToClientClosed() >Index: Source/WebCore/Modules/indexeddb/server/IDBConnectionToClient.h >=================================================================== >--- Source/WebCore/Modules/indexeddb/server/IDBConnectionToClient.h (revision 234209) >+++ Source/WebCore/Modules/indexeddb/server/IDBConnectionToClient.h (working copy) >@@ -84,6 +84,7 @@ private: > > Ref<IDBConnectionToClientDelegate> m_delegate; > HashSet<UniqueIDBDatabaseConnection*> m_databaseConnections; >+ Lock m_databaseConnectionsLock; > }; > > } // namespace IDBServer
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
Flags:
cdumez
:
review-
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 188029
: 345801