Qpid
  1. Qpid
  2. QPID-3759

Heartbeat timeout in Windows does not lead to timely reconnect

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major 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.

      1. main.cpp
        1 kB
        Chuck Rolke

        Activity

        Justin Ross made changes -
        Status Resolved [ 5 ] Closed [ 6 ]
        Robbie Gemmell made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Justin Ross made changes -
        Assignee Cliff Jansen [ cliffjansen ]
        Fix Version/s 0.17 [ 12320179 ]
        Chuck Rolke made changes -
        Field Original Value New Value
        Attachment main.cpp [ 12510503 ]
        Chuck Rolke created issue -

          People

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

            Dates

            • Created:
              Updated:
              Resolved:

              Development