Uploaded image for project: 'Qpid'
  1. Qpid
  2. QPID-3759

Heartbeat timeout in Windows does not lead to timely reconnect

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 0.14
    • Fix Version/s: 0.17
    • Component/s: C++ Client
    • Labels:
      None
    • Environment:

      Windows C++ messaging

      Description

      Reported by Wolf Wolfswinkel on Qpid users http://qpid.2158936.n2.nabble.com/Heartbeats-in-C-broker-on-Windows-td7118702.html 22-Dec-2011

      The simplest test case is in attached main.cpp. Establish a good network connection to the broker and then start the program. It creates a connection, sends two messages, and then pauses for 15 seconds. During the pause disconnect the network connection to the broker for at least two heartbeat timeouts (12 seconds).

      After the heartbeat timeout the timer task fires and a debug trace shows:
      Traffic timeout, TCPConnector::abort, TCPConnector::eof, TCPConnector::close

      But the connection is not actually closed until something happens on the network to wake up the thread waiting in Poller::run().

      The timer event appears unable to interrupt the IO thread waiting for the completion port.

        Attachments

        1. main.cpp
          1 kB
          Chuck Rolke

          Activity

            People

            • Assignee:
              cliffjansen Cliff Jansen
              Reporter:
              chug Chuck Rolke
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: