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

Running client/server C++ client examples fail against the Java Broker with 'Cannot declare queue..'

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 0.30
    • 0.31
    • Broker-J, C++ Client
    • None
    • Qpid C++ client
      Built from source from Trunk (rev 1638936)
      Running on Fedora 20 (guest OS).

      Qpid Java Broker
      Trunk (rev 1638936)
      Running on Mac OS X

    Description

      Running the Qpid C++ client examples client/server against a clean Java Broker ends with the following error being emitted by the server example.

      2014-11-13 23:20:09 [Client] debug treating target address as queue: 8564d8c8-1fc3-4a96-bb04-4e21795049e2#;{node:{type:queue}}
      2014-11-13 23:20:09 [Network] trace SENT [[10.211.55.15:55482-192.168.1.6:5672]]: Frame[BEbe; channel=1; {QueueDeclareBody: queue=8564d8c8-1fc3-4a96-bb04-4e21795049e2#; alternate-exchange=; passive=1; arguments={}; }]
      2014-11-13 23:20:09 [Network] trace RECV [[10.211.55.15:55482-192.168.1.6:5672]]: Frame[BEbe; channel=1; {ExecutionExceptionBody: error-code=405; command-id=8; description=Cannot declare queue('8564d8c8-1fc3-4a96-bb04-4e21795049e2#'), as exclusive queue with same name declared on another session; }]
      2014-11-13 23:20:09 [System] debug Exception constructed: Cannot declare queue('8564d8c8-1fc3-4a96-bb04-4e21795049e2#'), as exclusive queue with same name declared on another session
      2014-11-13 23:20:09 [Client] warning Exception received from broker: resource-locked: Cannot declare queue('8564d8c8-1fc3-4a96-bb04-4e21795049e2#'), as exclusive queue with same name declared on another session [caused by 8 \x00:\x00]
      resource-locked: Cannot declare queue('8564d8c8-1fc3-4a96-bb04-4e21795049e2#'), as exclusive queue with same name declared on another session
      

      It appears that both the client and server declare the temporary queue for the response:

      (client)
      2014-11-13 23:20:09 [Network] trace SENT [[10.211.55.15:55483-192.168.1.6:5672]]: Frame[BEbe; channel=1; {QueueDeclareBody: queue=8564d8c8-1fc3-4a96-bb04-4e21795049e2#; alternate-exchange=; exclusive=1; auto-delete=1; arguments={}; }]
      
      (server)
      2014-11-13 23:20:09 [Network] trace SENT [[10.211.55.15:55482-192.168.1.6:5672]]: Frame[BEbe; channel=1; {QueueDeclareBody: queue=8564d8c8-1fc3-4a96-bb04-4e21795049e2#; alternate-exchange=; passive=1; arguments={}; }]
      

      The error suggests a behaviour difference between CPP and Java Broker around the handling of the passive flag.

      I am running:

      ./server 192.168.1.6:5672   '{username:guest,password:guest}'
      ./client 192.168.1.6:5672   '{username:guest,password:guest}'
      

      with QPID_LOG_ENABLE set for tracing.

      export QPID_LOG_ENABLE="trace+"
      

      Java Broker is out of the box i.e. default Auth Provider (Plain) and default password db.

      I get no error when running the same programs against the CPP broker.

      Attachments

        1. client.log
          10 kB
          Keith Wall
        2. server.log
          11 kB
          Keith Wall

        Activity

          People

            rgodfrey Robert Godfrey
            kwall Keith Wall
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: