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

Heartbeat timeout in Windows does not lead to timely reconnect

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 0.14
    • 0.17
    • C++ Client
    • None
    • 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
          Charles E. Rolke

        Activity

          People

            cliffjansen Clifford Jansen
            chug Charles E. Rolke
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: