Changeset 189546 in webkit


Ignore:
Timestamp:
Sep 9, 2015 1:39:32 PM (9 years ago)
Author:
ap@apple.com
Message:

fast/dom/rtl-scroll-to-leftmost-and-resize.html is a flaky timeout - IPC drops messages
https://bugs.webkit.org/show_bug.cgi?id=148951

Reviewed by Anders Carlsson.

Source/WebKit2:

  • Platform/IPC/Connection.cpp:

(IPC::Connection::waitForMessage): Don't modify m_waitingForMessage without holding
a lock. This is not part of this fix, but seems necessary for correctness.
(IPC::Connection::processIncomingMessage): Don't interrupt a wait that has already succeeded.

LayoutTests:

  • platform/mac-wk2/TestExpectations: Unmark the test (it still fails per platform/mac

expectations, which is unrelated).

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r189545 r189546  
     12015-09-09  Alexey Proskuryakov  <ap@apple.com>
     2
     3        fast/dom/rtl-scroll-to-leftmost-and-resize.html is a flaky timeout - IPC drops messages
     4        https://bugs.webkit.org/show_bug.cgi?id=148951
     5
     6        Reviewed by Anders Carlsson.
     7
     8        * platform/mac-wk2/TestExpectations: Unmark the test (it still fails per platform/mac
     9        expectations, which is unrelated).
     10
    1112015-09-09  Youenn Fablet  <youenn.fablet@crf.canon.fr>
    212
  • trunk/LayoutTests/platform/mac-wk2/TestExpectations

    r189491 r189546  
    271271webkit.org/b/147075 [ Release Yosemite ] http/tests/cache/disk-cache/disk-cache-disable.html [ Pass Failure ]
    272272
    273 webkit.org/b/148951 fast/dom/rtl-scroll-to-leftmost-and-resize.html [ Pass Failure Timeout ]
    274 
    275273### END OF (1) Classified failures with bug reports
    276274########################################
  • trunk/Source/WebKit2/ChangeLog

    r189513 r189546  
     12015-09-09  Alexey Proskuryakov  <ap@apple.com>
     2
     3        fast/dom/rtl-scroll-to-leftmost-and-resize.html is a flaky timeout - IPC drops messages
     4        https://bugs.webkit.org/show_bug.cgi?id=148951
     5
     6        Reviewed by Anders Carlsson.
     7
     8        * Platform/IPC/Connection.cpp:
     9        (IPC::Connection::waitForMessage): Don't modify m_waitingForMessage without holding
     10        a lock. This is not part of this fix, but seems necessary for correctness.
     11        (IPC::Connection::processIncomingMessage): Don't interrupt a wait that has already succeeded.
     12
    1132015-09-08  Daniel Bates  <dabates@apple.com>
    214
  • trunk/Source/WebKit2/Platform/IPC/Connection.cpp

    r188793 r189546  
    445445        bool didTimeout = !m_waitForMessageCondition.waitUntil(lock, absoluteTimeout);
    446446        // We timed out, lost our connection, or a sync message came in with InterruptWaitingIfSyncMessageArrives, so stop waiting.
    447         if (didTimeout || m_waitingForMessage->messageWaitingInterrupted)
     447        if (didTimeout || m_waitingForMessage->messageWaitingInterrupted) {
     448            m_waitingForMessage = nullptr;
    448449            break;
    449     }
    450 
    451     m_waitingForMessage = nullptr;
     450        }
     451    }
    452452
    453453    return nullptr;
     
    698698        std::lock_guard<Lock> lock(m_waitForMessageMutex);
    699699
    700         if (m_waitingForMessage && m_waitingForMessage->messageReceiverName == message->messageReceiverName() && m_waitingForMessage->messageName == message->messageName() && m_waitingForMessage->destinationID == message->destinationID()) {
    701             m_waitingForMessage->decoder = WTF::move(message);
    702             ASSERT(m_waitingForMessage->decoder);
    703             m_waitForMessageCondition.notifyOne();
    704             return;
    705         }
    706 
    707         if (m_waitingForMessage && (m_waitingForMessage->waitForMessageFlags & InterruptWaitingIfSyncMessageArrives) && message->isSyncMessage()) {
    708             m_waitingForMessage->messageWaitingInterrupted = true;
    709             m_waitForMessageCondition.notifyOne();
     700        if (m_waitingForMessage && !m_waitingForMessage->decoder) {
     701            if (m_waitingForMessage->messageReceiverName == message->messageReceiverName() && m_waitingForMessage->messageName == message->messageName() && m_waitingForMessage->destinationID == message->destinationID()) {
     702                m_waitingForMessage->decoder = WTF::move(message);
     703                ASSERT(m_waitingForMessage->decoder);
     704                m_waitForMessageCondition.notifyOne();
     705                return;
     706            }
     707
     708            if ((m_waitingForMessage->waitForMessageFlags & InterruptWaitingIfSyncMessageArrives) && message->isSyncMessage()) {
     709                m_waitingForMessage->messageWaitingInterrupted = true;
     710                m_waitForMessageCondition.notifyOne();
     711            }
    710712        }
    711713    }
Note: See TracChangeset for help on using the changeset viewer.