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

[c++ client]msg::Connection.open() never return when FQDN url is provided and broker not started

    Details

    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: qpid-cpp-1.36.0
    • Fix Version/s: None
    • Component/s: C++ Client
    • Labels:
      None
    • Environment:

      Description

      Test 1

      The conditions are :

      • the broker is not started.
      • the IP address is set in the url.
      • the IP is reachable by ping
        Output : the open() function exit and isOpen() returns false.
        Result : => Expected behavior
        source code:
        msg::Connection *connection = new msg::Connection("amqp:tcp:166.99.224.88:5672", "{protocol: amqp1.0}");
        connection->setOption("transport", "tcp");
        connection->setOption("reconnect", false);
        connection->open();
        printf("connection %s to AMQP broker \n",(connection->isOpen()) ? "OK" : "KO");
        

        logs are

        2017-10-03 08:54:00 [Messaging] debug Protocol defaults:
        2017-10-03 08:57:31 [Messaging] debug Trying versions amqp1.0
        2017-10-03 08:57:31 [Messaging] debug Driver started
        2017-10-03 08:57:31 [Messaging] debug tcp:166.99.224.88:5672 Connecting ...
        2017-10-03 08:57:31 [Client] debug Set TCP_NODELAY
        2017-10-03 08:57:31 [Messaging] debug Failed to connect: Connection refused
        connection KO to AMQP broker
        

      Test 2

      The conditions are :

      • the broker is not started.
      • the FQDN address is set in the url.
      • the FQDN is reachable by ping
        Output : the open() function never exit, and EpollPoller.cpp:357 complains "No such file or directory".

      Result : => Failed

      ping <FQDN>
      PING <FQDN> (166.99.224.88) 56(84) bytes of data.
      64 bytes from 166.99.224.88: icmp_seq=1 ttl=128 time=2.01 ms
      64 bytes from 166.99.224.88: icmp_seq=2 ttl=128 time=1.19 ms
      

      source code:

      msg::Connection *connection = new msg::Connection("amqp:tcp:<FQDN>:5672", "{protocol: amqp1.0}");
      connection->setOption("transport", "tcp");
      connection->setOption("reconnect", false);
      connection->open();
      printf("connection %s to AMQP broker \n",(connection->isOpen()) ? "OK" : "KO");
      

      logs are

      2017-10-03 08:38:04 [Messaging] debug Protocol defaults: 
      2017-10-03 08:38:05 [Messaging] debug Trying versions amqp1.0
      2017-10-03 08:38:05 [Messaging] debug Driver started
      2017-10-03 08:38:05 [Messaging] debug tcp:<FQDN brokername>:5672 Connecting ...
      2017-10-03 08:50:49 [Client] debug Set TCP_NODELAY
      2017-10-03 08:50:49 [System] debug Ignored socket connect error: Connection refused
      2017-10-03 08:50:49 [System] debug Exception constructed: Network is unreachable: <FQDN>:5672 (/usr/src/packages/BUILD/src/qpid/sys/posix/BSDSocket.cpp:161)
      2017-10-03 08:50:49 [System] debug Ignored socket connect exception: Network is unreachable: <FQDN>:5672 (/usr/src/packages/BUILD/src/qpid/sys/posix/BSDSocket.cpp:161)
      2017-10-03 08:50:49 [System] debug Exception constructed: No such file or directory (/usr/src/packages/BUILD/src/qpid/sys/epoll/EpollPoller.cpp:357)
      

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              gerald38 Gerald Guillaume
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated: