Bug 761186

Summary: Java client mishandles tcp_nodelay when specified as part of the broker URL
Product: Red Hat Enterprise MRG Reporter: Justin Ross <jross>
Component: qpid-javaAssignee: Rajith Attapattu <rattapat+nobody>
Status: CLOSED ERRATA QA Contact: ppecka <ppecka>
Severity: medium Docs Contact:
Priority: medium    
Version: 2.0CC: jneedle, ppecka, zkraus
Target Milestone: 2.1.2   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: qpid-java-0.14-1.el5 Doc Type: Bug Fix
Doc Text:
Cause: JMS client incorrectly defaults to false when tcp_nodelay property is incorrectly specified in the connection URL. Consequence: The JMS client TCP-NODELAY setting defaults to false (Should be true). Fix: The code now use true as the default value when trying to parse the connection URL. Result: The client defaults to true even if there is any error in the connection URL.
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-04-30 17:53:25 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 753238, 783492    

Description Justin Ross 2011-12-07 20:33:50 UTC
See https://issues.apache.org/jira/browse/QPID-3659

Comment 1 Justin Ross 2011-12-07 20:53:48 UTC
Fixed upstream at http://svn.apache.org/viewvc?view=rev&rev=1211611

Rajith, please provide verification steps.

Comment 2 Justin Ross 2011-12-08 15:06:29 UTC
The upstream fix has two consequences: 1. it logs the state of the tcp_nodelay setting, and 2. it alters the handling of boolean properties in connection urls.

Comment 4 Rajith Attapattu 2012-01-18 21:46:37 UTC
As for verification.

The client now defaults to tcp_nodelay=true if the user incorrectly specifies the value in the connection URL.

We also log the value of tcp_nodelay.

Verification is via visual inspection in debug mode.

Comment 5 ppecka 2012-02-17 08:50:32 UTC
Verified on RHEL5, RHEL6:
except message is logged on "info" level
2012-02-12 20:12:30 info Set TCP_NODELAY on connection to [::1]:56647

# rpm -qa | grep qpid
qpid-tests-0.14-1.el6.noarch
rh-qpid-cpp-tests-0.14-6.el6.x86_64
qpid-java-common-0.14-1.el6.noarch
qpid-tools-0.14-1.el6.noarch
qpid-cpp-server-0.14-6.el6.x86_64
qpid-cpp-server-ssl-0.14-6.el6.x86_64
qpid-cpp-client-devel-docs-0.14-6.el6.noarch
qpid-jca-0.14-7.el6.noarch
qpid-cpp-client-0.14-6.el6.x86_64
qpid-cpp-client-ssl-0.14-6.el6.x86_64
qpid-qmf-0.14-3.el6.x86_64
qpid-cpp-server-rdma-0.14-6.el6.x86_64
qpid-cpp-server-store-0.14-6.el6.x86_64
ruby-qpid-0.7.946106-2.el6.x86_64
qpid-java-client-0.14-1.el6.noarch
python-qpid-qmf-0.14-3.el6.x86_64
qpid-cpp-server-cluster-0.14-6.el6.x86_64
qpid-cpp-server-devel-0.14-6.el6.x86_64
ruby-qpid-qmf-0.14-3.el6.x86_64
qpid-cpp-client-devel-0.14-6.el6.x86_64
qpid-qmf-devel-0.14-3.el6.x86_64
qpid-cpp-debuginfo-0.14-6.el6.x86_64
qpid-java-example-0.14-1.el6.noarch
qpid-cpp-client-rdma-0.14-6.el6.x86_64
python-qpid-0.14-3.el6.noarch
fence-virtd-libvirt-qpid-0.2.3-5.el6.x86_64
qpid-cpp-server-xml-0.14-6.el6.x86_64

Comment 7 Rajith Attapattu 2012-03-12 14:58:10 UTC
    Technical note added. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    New Contents:
Cause: JMS client incorrectly defaults to false when tcp_nodelay property is incorrectly specified in the connection URL.

Consequence:  The JMS client TCP-NODELAY setting defaults to false (Should be true).

Fix:  The code now use true as the default value when trying to parse the connection URL.

Result:  The client defaults to true even if there is any error in the connection URL.

Comment 8 errata-xmlrpc 2012-04-30 17:53:25 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHSA-2012-0529.html