You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by gregory james marsh <ma...@cse.ohio-state.edu> on 2009/05/12 18:05:07 UTC

Problem with qpid-route & -t rdma

Hello,

I've run into a problem when using "qpid-route -t rdma route add" to setup 
an rdma federation link between 2 brokers.  I've attached some simple code 
that replicates the problem by sending just 1 message.

Here's the setup.  I have 4 nodes as follows:

(publisher) -> (broker1) -> federation route -> (broker2) -> (consumer)


Through trial and error I've found that when I send 1 message with payload 
size 7989 or greater, the (broker1) qpidd crashes with following error:

*******************
qpidd: qpid/amqp_0_10/Connection.cpp:93: virtual size_t 
qpid::amqp_0_10::Connection::encode(const char*, size_t): Assertion 
`workQueue.empty() || workQueue.front().encodedSize() <= size' failed.
*******************


This does not happen on rdma with message sizes 7888 or less.  It does not 
happen with tcp at all.


Here is explanation of how to use attached code to (hopefully) replicate:

I set my path and ld lib path env vars by running "source 
qpid-m5-env.bash."

0. Compile the 2 cpp files with make and attached Makefile.

1. Start qpidd on the (broker1) & (broker2) hosts using "start_qpidd.bash"

2. Setup the route btw the broker hosts using "simple_fed_rdma.bash". 
I've also included "simple_fed_tcp.bash" that does it in tcp.

3. Start the consumer with "rdma_fed_bug_cons.exe".  Use rdma or tcp 
protocol according to how you've setup the route in step 2.

$ ./rdma_fed_bug_cons.exe
Usage: ./rdma_fed_bug_cons.exe
   [broker_ip_addr]
   [protocol (tcp|rdma)]


4.  Start the consumer with "rdma_fed_bug_pub.exe".  Use rdma or tcp 
protocol according to how you've setup the route.

$ ./rdma_fed_bug_pub.exe
Usage: ./rdma_fed_bug_pub.exe
   [broker_ip_addr]
   [msg_size]
   [protocol (tcp|rdma)]

Again with rdma route and rdma protocol on clients, a msg_size 7989 or 
greater should crash.



My 4 hosts each have the following Mellanox Infiniband HCA with an 
assigned IPoIB interface address showing in "ifconfig".  We are using 
OFED-1.3.1 drivers.  The OS is Red Hat Enterprise Linux Server 5.

$ ibstat
CA 'mthca0'
         CA type: MT25208
         Number of ports: 2
         Firmware version: 5.1.400
         Hardware version: a0
         Node GUID: 0x0002c9020023c300
         System image GUID: 0x0002c9020023c303
         Port 1:
                 State: Active
                 Physical state: LinkUp
                 Rate: 20
                 Base lid: 2
                 LMC: 0
                 SM lid: 1
                 Capability mask: 0x02510a68
                 Port GUID: 0x0002c9020023c301
         Port 2:
                 State: Down
                 Physical state: Polling
                 Rate: 10
                 Base lid: 0
                 LMC: 0
                 SM lid: 0
                 Capability mask: 0x02510a68
                 Port GUID: 0x0002c9020023c302


Thanks for looking into this.  Let me know if you have any problems 
compiling/running my code.

Greg Marsh
Network Based Computing Lab
Ohio State University


Re: Problem with qpid-route & -t rdma

Posted by Andrew Stitcher <as...@redhat.com>.
On Tue, 2009-05-12 at 12:05 -0400, gregory james marsh wrote:
> Hello,
> 
> I've run into a problem when using "qpid-route -t rdma route add" to setup 
> an rdma federation link between 2 brokers.  I've attached some simple code 
> that replicates the problem by sending just 1 message.
...
> Thanks for looking into this.  Let me know if you have any problems 
> compiling/running my code.

I'd strongly suggest creating a jira in our bug tracking system for this
- http://issues.apache.org/jira/browse/QPID

You can attach the code that you use to replicate this, and paste your
explanation into the bug body.

I know I don't have time to look at this now, and I expect the same goes
for other people. Creating a bug ensures that the problem won't be
forgotten.

Andrew
  


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org