Title: [191341] trunk/Source/WebKit2
- Revision
- 191341
- Author
- [email protected]
- Date
- 2015-10-20 08:04:44 -0700 (Tue, 20 Oct 2015)
Log Message
[UNIX] ASSERTION FAILED: m_shouldWaitForSyncReplies in Connection::connectionDidClose()
https://bugs.webkit.org/show_bug.cgi?id=150361
Reviewed by Martin Robinson.
It doesn't always happen because it depends on how sockets are
closed, and the state of the threads. The problem is that we are
not handling the case when the read fails because we closed the
connection. In that case we log the error and call
Connection::connectionDidClose(). But it was connectionDidClose()
the one closing the socket. So, in this particular case it's not an
error but a normal termination, and we shouldn't try to close the
connection again. Something similar can happen while sending a
message, and we get a broken pipe error, but in that case we are
only printing the error, so it's harmless.
* Platform/IPC/unix/ConnectionUnix.cpp:
(IPC::Connection::readyReadHandler): Only print error and call
connectionDidClose() if we are still connected when read fails.
(IPC::Connection::sendOutgoingMessage): Only print error if we are
still connected when send fails.
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (191340 => 191341)
--- trunk/Source/WebKit2/ChangeLog 2015-10-20 12:03:56 UTC (rev 191340)
+++ trunk/Source/WebKit2/ChangeLog 2015-10-20 15:04:44 UTC (rev 191341)
@@ -1,5 +1,29 @@
2015-10-20 Carlos Garcia Campos <[email protected]>
+ [UNIX] ASSERTION FAILED: m_shouldWaitForSyncReplies in Connection::connectionDidClose()
+ https://bugs.webkit.org/show_bug.cgi?id=150361
+
+ Reviewed by Martin Robinson.
+
+ It doesn't always happen because it depends on how sockets are
+ closed, and the state of the threads. The problem is that we are
+ not handling the case when the read fails because we closed the
+ connection. In that case we log the error and call
+ Connection::connectionDidClose(). But it was connectionDidClose()
+ the one closing the socket. So, in this particular case it's not an
+ error but a normal termination, and we shouldn't try to close the
+ connection again. Something similar can happen while sending a
+ message, and we get a broken pipe error, but in that case we are
+ only printing the error, so it's harmless.
+
+ * Platform/IPC/unix/ConnectionUnix.cpp:
+ (IPC::Connection::readyReadHandler): Only print error and call
+ connectionDidClose() if we are still connected when read fails.
+ (IPC::Connection::sendOutgoingMessage): Only print error if we are
+ still connected when send fails.
+
+2015-10-20 Carlos Garcia Campos <[email protected]>
+
[GTK] Graphics corruption when entering/leaving AC mode quickly
https://bugs.webkit.org/show_bug.cgi?id=150323
Modified: trunk/Source/WebKit2/Platform/IPC/unix/ConnectionUnix.cpp (191340 => 191341)
--- trunk/Source/WebKit2/Platform/IPC/unix/ConnectionUnix.cpp 2015-10-20 12:03:56 UTC (rev 191340)
+++ trunk/Source/WebKit2/Platform/IPC/unix/ConnectionUnix.cpp 2015-10-20 15:04:44 UTC (rev 191341)
@@ -338,8 +338,10 @@
if (errno == EAGAIN || errno == EWOULDBLOCK)
return;
- WTFLogAlways("Error receiving IPC message on socket %d in process %d: %s", m_socketDescriptor, getpid(), strerror(errno));
- connectionDidClose();
+ if (m_isConnected) {
+ WTFLogAlways("Error receiving IPC message on socket %d in process %d: %s", m_socketDescriptor, getpid(), strerror(errno));
+ connectionDidClose();
+ }
return;
}
@@ -513,7 +515,8 @@
continue;
}
- WTFLogAlways("Error sending IPC message: %s", strerror(errno));
+ if (m_isConnected)
+ WTFLogAlways("Error sending IPC message: %s", strerror(errno));
return false;
}
return true;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes