Changeset 164787 in webkit


Ignore:
Timestamp:
Feb 27, 2014 3:30:23 AM (10 years ago)
Author:
Carlos Garcia Campos
Message:

[GTK] Web Inspector doesn't work with network process enabled
https://bugs.webkit.org/show_bug.cgi?id=127651

Reviewed by Sergio Villar Senin.

The problem is that the web inspector loads so many resources,
that when using the network process, a lot of IPC traffic is
generated causing the send buffer of the socket to be full. When
that happens sendmsg() fails with EAGAIN, because we are using non
blocking sockets, and we are not handling neither EAGAIN nor
EWOULDBLOCK errors (we do when reading from the socket, though).

  • Platform/IPC/unix/ConnectionUnix.cpp:

(IPC::Connection::readyReadHandler): Add a log message to know
when reading from the socket fails for any unhandled error.
(IPC::Connection::sendOutgoingMessage): Handle EAGAIN and
EWOULDBLOCK errors to try again in those cases. Also add a log
message for unhandled errors.

Location:
trunk/Source/WebKit2
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r164779 r164787  
     12014-02-27  Carlos Garcia Campos  <cgarcia@igalia.com>
     2
     3        [GTK] Web Inspector doesn't work with network process enabled
     4        https://bugs.webkit.org/show_bug.cgi?id=127651
     5
     6        Reviewed by Sergio Villar Senin.
     7
     8        The problem is that the web inspector loads so many resources,
     9        that when using the network process, a lot of IPC traffic is
     10        generated causing the send buffer of the socket to be full. When
     11        that happens sendmsg() fails with EAGAIN, because we are using non
     12        blocking sockets, and we are not handling neither EAGAIN nor
     13        EWOULDBLOCK errors (we do when reading from the socket, though).
     14
     15        * Platform/IPC/unix/ConnectionUnix.cpp:
     16        (IPC::Connection::readyReadHandler): Add a log message to know
     17        when reading from the socket fails for any unhandled error.
     18        (IPC::Connection::sendOutgoingMessage): Handle EAGAIN and
     19        EWOULDBLOCK errors to try again in those cases. Also add a log
     20        message for unhandled errors.
     21
    1222014-02-26  Philippe Normand  <pnormand@igalia.com>
    223
  • trunk/Source/WebKit2/Platform/IPC/unix/ConnectionUnix.cpp

    r163292 r164787  
    358358
    359359            // FIXME: Handle other errors here?
     360            WTFLogAlways("Error receiving IPC message: %s", strerror(errno));
    360361            return;
    361362        }
     
    522523    int bytesSent = 0;
    523524    while ((bytesSent = sendmsg(m_socketDescriptor, &message, 0)) == -1) {
    524         if (errno != EINTR)
    525             return false;
     525        if (errno == EINTR || errno == EAGAIN || errno == EWOULDBLOCK)
     526            continue;
     527
     528        WTFLogAlways("Error sending IPC message: %s", strerror(errno));
     529        return false;
    526530    }
    527531    return true;
Note: See TracChangeset for help on using the changeset viewer.