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

Example C clients do not disconnect on protocol errors

VotersWatch issueWatchersLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • proton-0.16.0
    • proton-c-0.18.0
    • examples, proton-c
    • None

    Description

      If you take libuv_recv example C program and set up a "server" with

      $ nc -l 5672 < leak-f1c681da874efe3b168d6bd00e1de53c5a3823ea

      and then run

      $ ./libuv_recv -a 127.0.0.1:5672/jms.queue.example
      [0x69ab390]:Error decoding frame: PN_UNDERFLOW not enough data to decode
      \x00S\x12\xc04\x0a\xa1\x0bmy_receiverCBP\x02\x00\x00\x00S(\xc0\x14\x01\xa1\x11jms.queue.example\x00S)E@BC
      

      then libuv_recv does not quit even after I kill the "server" with ^C (which should close the socket). This happens with all C example receivers. It does not happen with examples/python/simple_recv, which just disconnects and then keeps trying to reconnect. I am not sure if the disconnect behavior is just missing from the C clients (in that case it is not a big deal) or if it gets stuck somewhere deeper in proton-c (in which case it may actually impact someone).

      Attachments

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            aconway Alan Conway
            jdanek Jiri Daněk
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment