Bug 680934 - JMS client hangs with a large no. (100 - 300) of transient topic subscriptions
Summary: JMS client hangs with a large no. (100 - 300) of transient topic subscriptions
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Red Hat Enterprise MRG
Classification: Red Hat
Component: qpid-java
Version: Development
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: ---
: ---
Assignee: Rajith Attapattu
QA Contact: MRG Quality Engineering
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-02-28 15:12 UTC by Kim van der Riet
Modified: 2011-04-01 18:47 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2011-04-01 18:47:30 UTC
Target Upstream Version:


Attachments (Terms of Use)
JMS client script, run from the java/tools/bin directory (4.38 KB, application/x-sh)
2011-02-28 15:12 UTC, Kim van der Riet
no flags Details

Description Kim van der Riet 2011-02-28 15:12:05 UTC
Created attachment 481389 [details]
JMS client script, run from the java/tools/bin directory

While testing topic scalability of the C++ broker using a JMS client, there is a limit to the number of transient subscriptions which may be established before which the client freezes. The test (attached) increases the number of subscriptions using the progression 1,3,10,30, 100, 300, 1000... but freezes while executing the 300 test or the 1000 test (which has never succeeded). 

Details:

Single box test: mrg42 running RHEL-6.0
Local in-tree build r.1072197/r.4440

Broker: rm -rf /tmp/rhm; ./qpidd -m no --auth no --max-connections 10100 --load-module /home/kpvdr/mrg/store/lib/.libs/msgstore.so --store-dir /tmp --log-enable info+

Client env:
export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64
export QPID_JAVA_HOME=/home/kpvdr/mrg/qpid/java
export QPID_TEST_HOME=/home/kpvdr/mrg/qpid/java/tools
export VENDOR_LIB=/home/kpvdr/mrg/qpid/java/build/lib

Client: Running script perf_topic_report.sh (attached) from the java/tools/bin directory. Note that the durable tests are commented out, only transient tests are running.

The pub.out file looks normal, but the sub.out file frequently shows that the test has frozen after the warmup is complete and during the main tests:

[kpvdr@mrg42 mrg]$ grep "Warming up" qpid/java/tools/bin/sub.out | wc -l
1000
[kpvdr@mrg42 mrg]$ grep "Starting test" qpid/java/tools/bin/sub.out | wc -l
372

In addition, all frozen tests contain one or more occurrences of the following error message in sub.out:

IoReceiver - localhost/127.0.0.1:5672 2011-02-28 09:21:32,201 WARN [apache.qpid.transport.SessionDelegate] CLOSED: [ssn:"a8278a9d-a3ba-47dd-8421-4a9db4797722"]

Comment 1 Kim van der Riet 2011-04-01 18:47:30 UTC
This problem appears to be related to the test itself. When the test was modified to allow multiple threads, the mechanism to force the test to wait for all subs to be ready was not updated, and so after only 1 sub was ready, the pub was started.

The test script has been updated to wait for all subs to be ready before starting the pubs, and this problem no longer exhibits.


Note You need to log in before you can comment on or make changes to this bug.