Uploaded image for project: 'Qpid Proton'
  1. Qpid Proton
  2. PROTON-2275

idle_timeout connection option not working for SSL connections on Windows

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • proton-c
    • None
    • Windows client connecting to SSL broker

    Description

      Steps to reproduce:

      1. Connect your receiver to an SSL-capable broker. The receiver has to be running on Windows.
      2. Set the idle_timeout connection option to e.g. 2 seconds in your proton::messaging_handler instance.
      3. In the on_message callback, sleep for longer than idle_timeout. This should trigger the on_transport_error callback with a amqp:resource-limit-exceeded: local-idle-timeout expired error. On Windows this does not happen.

      I saw that the above scenario worked correctly when connecting to a non-SSL broker but failed with an SSL broker. I looked at the difference between the two code paths and found that for the same input (transport->output_buffer being empty and transport->close_sent == true) transport.c returns PN_EOS while schannel.c returned 0. After ensuring that schannel.c matches the behaviour of transport.c, the problem went away.

      Suggested fix: https://github.com/apache/qpid-proton/pull/255

      Attachments

        Activity

          People

            Unassigned Unassigned
            attilakun Attila Kun
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: