Re: [VOTE] Release 0.12

2011-08-22 Thread Robbie Gemmell
Bump. Any updates?

Robbie

On 16 August 2011 19:10, Justin Ross jr...@redhat.com wrote:
 Last call.  I'll check tomorrow and consider this vote closed if there's no
 new discussion.

 On Tue, 9 Aug 2011, Justin Ross wrote:

 Howdy, all.  The last-minute blocker, QPID-3394, has been fixed, and there
 are no open blocker jiras against 0.12.  The proposed final RC, from
 revision 1154981 of the 0.12 release branch, is available here:

  http://people.apache.org/~jross/qpid-0.12/

 If you favor releasing this distribution as Qpid 0.12, vote +1.  If you
 are aware of problems that ought to prevent this distribution from being
 released, vote -1.

 If the release proceeds, I'll take the final steps to publicize and
 distribute the release.  That should take one or two days.

 ---
 0.12 release page: https://cwiki.apache.org/qpid/012-release.html

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



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



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



Review Request: QPID-3415 CRAM-MD5-HASHED not supported by 0-10 protocol (+ no suppport for custom SASL mechanisms).

2011-08-22 Thread Keith Wall

---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/1608/
---

Review request for qpid and rajith attapattu.


Summary
---

This patch changes the 0-10 code path to create the SASL callback handler using 
the CallbackHandlerRegistry.   This allows the 0-10 code path to support SASL 
mechanisms requiring other callback handlers, such as CRAM-MD5-HASHED.  Support 
for the sasl_mechs client connection option has been retained and now applies 
to the 0-8..0-9-1 code paths too.

If the user *specifies* a sasl_mechs client connection option the behaviour of 
the code is unchanged from the previous version: it restricts the list of SASL 
mechanisms in use.

If the user *does not specify* a sasl_mechs client connection option, the old 
code used a hardcoded PLAIN default.  This is no longer the case.  Now the 
client will use the first SASL mechanism from the list 
CallbackHandlerRegistry.properties that is also available on the server.

Removed dead code and strengthen unit tests.
 


This addresses bug QPID-3415.
https://issues.apache.org/jira/browse/QPID-3415


Diffs
-

  
/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnectionDelegate_0_10.java
 1160136 
  
/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/handler/ConnectionStartMethodHandler.java
 1160136 
  
/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/security/CallbackHandlerRegistry.java
 1160136 
  
/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/security/CallbackHandlerRegistry.properties
 1160136 
  
/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/ClientDelegate.java
 1160136 
  
/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Connection.java 
1160136 
  
/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/ConnectionSettings.java
 1160136 
  
/trunk/qpid/java/common/src/test/java/org/apache/qpid/transport/ConnectionTest.java
 1160136 
  
/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/ConnectionTest.java
 1160136 
  
/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/message/UTF8Test.java
 1160136 

Diff: https://reviews.apache.org/r/1608/diff


Testing
---

Improved unit testing. Run java, cpp and cpp.ssl profiles. I am not able to 
test GSSAPI locally. 


Thanks,

Keith



Re: [JAVA] build breakage with older ant/java

2011-08-22 Thread Keith Wall
On 18 August 2011 16:14, Gordon Sim g...@redhat.com wrote:

 On 08/18/2011 04:09 PM, Robbie Gemmell wrote:

 The rationale for the change was to add an extension point to the
 build system to enable client modules, such as transports and
 authentication/authorisation add-ons. The easiest way of doing this
 was the property used which has happened to involve requiring a 3 year
 old version of Ant.

 Should it be a policy to support things that are over 6 years old at
 this point? RHEL4? I've been seeing RHEL5 based builds getting broken
 with increasing regularity recently...


 I'm not suggesting it should be policy. All I was asking was for
 clarification and context on the change in question to help inform any
 possible proposals on alternatives.

 While we shouldn't have to contort ourselves to workaround the lack of well
 established features, if there are simple alternatives that are less
 exclusive that is surely a reasonable thing to consider.


I commited a change under QPID-3365 to avoid the dependency on Ant 1.7.1.
The build should now be working under Ant 1.6.x once again.





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




Re: [JAVA] build breakage with older ant/java

2011-08-22 Thread Gordon Sim

On 08/22/2011 11:16 AM, Keith Wall wrote:

On 18 August 2011 16:14, Gordon Simg...@redhat.com  wrote:


On 08/18/2011 04:09 PM, Robbie Gemmell wrote:


The rationale for the change was to add an extension point to the
build system to enable client modules, such as transports and
authentication/authorisation add-ons. The easiest way of doing this
was the property used which has happened to involve requiring a 3 year
old version of Ant.

Should it be a policy to support things that are over 6 years old at
this point? RHEL4? I've been seeing RHEL5 based builds getting broken
with increasing regularity recently...



I'm not suggesting it should be policy. All I was asking was for
clarification and context on the change in question to help inform any
possible proposals on alternatives.

While we shouldn't have to contort ourselves to workaround the lack of well
established features, if there are simple alternatives that are less
exclusive that is surely a reasonable thing to consider.



I commited a change under QPID-3365 to avoid the dependency on Ant 1.7.1.
The build should now be working under Ant 1.6.x once again.


Thanks!

(I'll stress again that I am not by any means suggesting there should be 
a policy to support older versions. However I very much appreciate the 
gesture here).


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



[jira] [Created] (QPID-3444) the Java broker does not reject 0-10 exchange (un)bind commands which use empty strings for the change name

2011-08-22 Thread Robbie Gemmell (JIRA)
the Java broker does not reject 0-10 exchange (un)bind commands which use empty 
strings for the change name
---

 Key: QPID-3444
 URL: https://issues.apache.org/jira/browse/QPID-3444
 Project: Qpid
  Issue Type: Bug
  Components: Java Broker
Affects Versions: 0.10, 0.9, 0.8, 0.7, 0.6, 0.11, 0.12
Reporter: Robbie Gemmell
Assignee: Robbie Gemmell
 Fix For: 0.13


The Java broker verifies that the exchange (un)bind commands have an exchange 
value set, however it does not reject those which have an empty string defined, 
whcih is also interpreted as the default exchange. it shoudl issue an 
ILLEGAL_ARGUMENT exception.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



[jira] [Commented] (QPID-3415) CRAM-MD5-HASHED not supported by 0-10 protocol (+ no suppport for custom SASL mechanisms).

2011-08-22 Thread Keith Wall (JIRA)

[ 
https://issues.apache.org/jira/browse/QPID-3415?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13088578#comment-13088578
 ] 

Keith Wall commented on QPID-3415:
--

Hi Rajith

Would you mind reviewing my patch for this Jira?  It is on review board:

https://reviews.apache.org/r/1608/

cheers Keith.

 CRAM-MD5-HASHED not supported by 0-10 protocol (+ no suppport for custom SASL 
 mechanisms).
 --

 Key: QPID-3415
 URL: https://issues.apache.org/jira/browse/QPID-3415
 Project: Qpid
  Issue Type: Bug
  Components: Java Client
Affects Versions: 0.10
Reporter: Keith Wall
Assignee: Keith Wall
 Fix For: 0.13


 If the Java broker is configured to use the Base64MD5Password password 
 database the Java client is unable to connect even if they use the sasl_mechs 
 broker option in the connection URL (sasl_mechs='CRAM-MD5-HASHED').  
 Instead the user sees:
 {code}
 org.apache.qpid.AMQException: Cannot connect to broker: Callback handler with 
 support for AuthorizeCallback required
 {code}
 The user can work around the problem by passing the -Dqpid.amqp.version 
 system property to the client, and selecting a protocol  0-10.
 The problem is happening because on the 0-10 code path on the client, the 
 SASL CallbackHandler in use is hardcoded to UsernamePasswordCallbackhandler 
 (ClientDelegate), rather than using the facilities of CallbackHandlerRegistry 
 (as does the 0-8 and 0-9* code paths). CRAM-MD5-HASHED requires the use of a 
 different Callbackhandler.
 This also inhibits the use of custom SASL methods by the client.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



[jira] [Updated] (QPID-3440) the Destination cache in AMQMessageDelegate_0_10 does not work

2011-08-22 Thread Robbie Gemmell (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-3440?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Robbie Gemmell updated QPID-3440:
-

Attachment: QPID-3440_wip.patch

Attaching an initial patch, with test to verify the issue and addition of 
equals() and hashCode() methods to the generated file causing the problem.

Not yet applied becuase doing so breaks PropertyValueTest. This is due to 
failing a Destination equality test, despite the fact the toString of the 
destinations is actually the same (which it wasnt before), but the equals check 
fails because of a change in underlying object in use, due to the horrible 
number of different objects and ways to instantiate them in our wonderfully 
dispirate Destination handling.

 the Destination cache in AMQMessageDelegate_0_10 does not work
 --

 Key: QPID-3440
 URL: https://issues.apache.org/jira/browse/QPID-3440
 Project: Qpid
  Issue Type: Bug
  Components: Java Client
Affects Versions: 0.6, 0.7, 0.8, 0.9, 0.10, 0.11, 0.12
Reporter: Robbie Gemmell
Assignee: Robbie Gemmell
 Fix For: 0.13

 Attachments: QPID-3440_wip.patch


 The Destination cache in AMQMessageDelegate_0_10 does not work, because it 
 indexes the cache by the underlying ReplyTo transport class, which has no 
 equals() implementation.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



[jira] [Updated] (QPID-3437) qpid-config address option confusing in help

2011-08-22 Thread Pavel Moravec (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-3437?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pavel Moravec updated QPID-3437:


   Component/s: Documentation
Labels: patch  (was: )
   Description: 
qpid-config --help prints confusing / ambiguity information how to use address
option (-a user/password@broker). On first place it is specified without -a
option (wrong), second place is not descriptive about address syntax:

qpid-config --help
Usage:  qpid-config [OPTIONS]
..
ADDRESS syntax:

  [username/password@] hostname [:port]
  [username/password@] ip-address [:port]
..
  General Options:
..
-a address, --broker-addr=address
Address of qpidd broker

Proposed patch removes the ADDRESS syntax part and adds the address syntax to 
-a option (to follow structure of the help).


  was:
Different qpid-* tools use different command line options for authentication. 
E.g.:

qpid-perftest   --username guest --password passwd -b broker --mechanism MECH
qpid-config -a guest/passwd@broker --sasl-mechanism=MECH
qpid-stat   guest/passwd@broker -sasl-mechanism=MECH

Further to that, some tools (i.e. qpid-tool) don't have an option to set up 
SASL mechanism at all.

It makes sense to unify these options, plus add missing where desired.

See attached table with list of tools, their options and some further comments 
(some minor bugs found as well).

Remaining Estimate: 1h
 Original Estimate: 1h
   Summary: qpid-config address option confusing in help  (was: 
Unify credentials options in qpid tools)

 qpid-config address option confusing in help
 

 Key: QPID-3437
 URL: https://issues.apache.org/jira/browse/QPID-3437
 Project: Qpid
  Issue Type: Improvement
  Components: Documentation, Tools
Affects Versions: 0.10
Reporter: Pavel Moravec
Priority: Minor
  Labels: patch
 Attachments: qpid_tools_authentication.ods

   Original Estimate: 1h
  Remaining Estimate: 1h

 qpid-config --help prints confusing / ambiguity information how to use address
 option (-a user/password@broker). On first place it is specified without -a
 option (wrong), second place is not descriptive about address syntax:
 qpid-config --help
 Usage:  qpid-config [OPTIONS]
 ..
 ADDRESS syntax:
   [username/password@] hostname [:port]
   [username/password@] ip-address [:port]
 ..
   General Options:
 ..
 -a address, --broker-addr=address
 Address of qpidd broker
 Proposed patch removes the ADDRESS syntax part and adds the address syntax to 
 -a option (to follow structure of the help).

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



[jira] [Created] (QPID-3441) Correct spelling error in C++ broker's QMF schema

2011-08-22 Thread Paul Colby (JIRA)
Correct spelling error in C++ broker's QMF schema
-

 Key: QPID-3441
 URL: https://issues.apache.org/jira/browse/QPID-3441
 Project: Qpid
  Issue Type: Task
  Components: C++ Broker
Affects Versions: 0.10
Reporter: Paul Colby
Priority: Trivial


The word Infrastructure has been misspelled as Infrastucture (missing an 
r) in cpp/src/qmf/org/apache/qpid/broker/Connection.cpp (line 150 for the 
0.10 release).

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



[jira] [Created] (QPID-3440) the Destination cache in AMQMessageDelegate_0_10 does not work

2011-08-22 Thread Robbie Gemmell (JIRA)
the Destination cache in AMQMessageDelegate_0_10 does not work
--

 Key: QPID-3440
 URL: https://issues.apache.org/jira/browse/QPID-3440
 Project: Qpid
  Issue Type: Bug
  Components: Java Client
Affects Versions: 0.10, 0.9, 0.8, 0.7, 0.6, 0.11, 0.12
Reporter: Robbie Gemmell
Assignee: Robbie Gemmell
 Fix For: 0.13


The Destination cache in AMQMessageDelegate_0_10 does not work, because it 
indexes the cache by the underlying ReplyTo transport class, which has no 
equals() implementation.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



[jira] [Updated] (QPID-3437) qpid-config address option confusing in help

2011-08-22 Thread Pavel Moravec (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-3437?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pavel Moravec updated QPID-3437:


Attachment: 0006-Bug-732369-Help-address-ambiguity-for-qpid-config.patch

patch proposal

 qpid-config address option confusing in help
 

 Key: QPID-3437
 URL: https://issues.apache.org/jira/browse/QPID-3437
 Project: Qpid
  Issue Type: Improvement
  Components: Documentation, Tools
Affects Versions: 0.10
Reporter: Pavel Moravec
Priority: Minor
  Labels: patch
 Attachments: 
 0006-Bug-732369-Help-address-ambiguity-for-qpid-config.patch

   Original Estimate: 1h
  Remaining Estimate: 1h

 qpid-config --help prints confusing / ambiguity information how to use address
 option (-a user/password@broker). On first place it is specified without -a
 option (wrong), second place is not descriptive about address syntax:
 qpid-config --help
 Usage:  qpid-config [OPTIONS]
 ..
 ADDRESS syntax:
   [username/password@] hostname [:port]
   [username/password@] ip-address [:port]
 ..
   General Options:
 ..
 -a address, --broker-addr=address
 Address of qpidd broker
 Proposed patch removes the ADDRESS syntax part and adds the address syntax to 
 -a option (to follow structure of the help).

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



[jira] [Created] (QPID-3442) qpid-tool schema descriptions repeated / duplicated

2011-08-22 Thread Paul Colby (JIRA)
qpid-tool schema descriptions repeated / duplicated
---

 Key: QPID-3442
 URL: https://issues.apache.org/jira/browse/QPID-3442
 Project: Qpid
  Issue Type: Bug
  Components: Tools
Affects Versions: 0.10
 Environment: Linux version 2.6.18-194.32.1.el5 
(mockbu...@builder10.centos.org) (gcc version 4.1.2 20080704 (Red Hat 
4.1.2-48)) #1 SMP Wed Jan 5 17:52:25 EST 2011
Python 2.4.3


Linux version 2.6.32-5-amd64 (Debian 2.6.32-35) (da...@debian.org) (gcc version 
4.3.5 (Debian 4.3.5-4) ) #1 SMP Tue Jun 14 09:42:28 UTC 2011
Python 2.6.6
Reporter: Paul Colby
Priority: Minor


It seems that when qpid-tool displays a schema element with no description, it 
repeats the previous element's description (if any) instead.

For example:
{code}
qpid: schema connection
Object Class: Table Class: 
org.apache.qpid.broker:connection:_data(1cb21a64-b290-c47d-40bc-5ea42cffd7c7)
ElementType  Access  Unit  Notes  Description

=
vhostRef   reference ReadCreateindex
addressshort-string  ReadCreateindex
incoming   boolean   ReadCreate
SystemConnection   boolean   ReadCreate   
Infrastucture/ Inter-system connection (Cluster, Federation, ...)
federationLink boolean   ReadOnly Is this a 
federation link
authIdentity   short-string  ReadOnly authId of 
connection if authentication enabled
remoteProcessName  long-string   ReadOnly  optional   Name of 
executable running as remote client
remotePid  uint32ReadOnly  optional   Process ID of 
remote client
remoteParentPiduint32ReadOnly  optional   Parent 
Process ID of remote client
shadow boolean   ReadOnly True for 
shadow connections
closingbooleanTrue for 
shadow connections
framesFromClient   uint64 True for 
shadow connections
framesToClient uint64 True for 
shadow connections
bytesFromClientuint64 True for 
shadow connections
bytesToClient  uint64 True for 
shadow connections
msgsFromClient uint64 True for 
shadow connections
msgsToClient   uint64 True for 
shadow connections

  Method: close
qpid:
{code}

If this example, you can see that the {{shadow}} element's description ({{True 
for shadow connections}}) has been repeated for all elements after it.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



[jira] [Created] (QPID-3445) Assertion, and unexpected exception in qpid::messaging::decode

2011-08-22 Thread Paul Colby (JIRA)
Assertion, and unexpected exception in qpid::messaging::decode
--

 Key: QPID-3445
 URL: https://issues.apache.org/jira/browse/QPID-3445
 Project: Qpid
  Issue Type: Bug
  Components: C++ Client
Affects Versions: 0.10, Future
Reporter: Paul Colby


Although this is technically two different bug reports, they are very closely 
related, and should probably be tested / fixed together, so I'm reporting them 
both here... hope that's okay ;)

Both {{qpid::messaging::decode}} functions can assert, or throw an unexpected 
{{qpid::framing::IllegalArgumentException}} on invalid input.

Consider the following code fragment:
{code}
const qpid::messaging::Message message(foo);
try {
qpid::types::Variant::Map map;
qpid::messaging::decode(message, map); // asserts in 
qpid::framing::Buffer::getLong
} catch (const qpid::messaging::EncodingException ex) {
std::cout  qpid::messaging::EncodingException   ex.what()  
std::endl;
}
std::cout  done  std::endl; // never reached.
{code}

In that example, the {{qpid::messaging::decode}} function will result in an 
assertion in {{qpid::framing::Buffer::getLong}} as that function assumes / 
requires the buffer to be at least 4 bytes.  Clearly in this case the decode 
should fail, but ideally it should fail in a catchable way, not an assertion.

I would think the right solution would be to add a minimum size check to the 
{{qpid::framing::FieldTable::decode}} function.  But it could also be solved by 
adding the size check to the {{qpid::messaging::decode}} and/or  
{{qpid::framing::Buffer::getLong}} functions.

As a temporary workaround, client code can add a size check before the 
{{decode}} call, like:

{code}
const qpid::messaging::Message message(foo);
try {
if (message.getContent().size()  4)
throw qpid::messaging::EncodingException(message too small);
qpid::types::Variant::Map map;
qpid::messaging::decode(message, map);
} catch (const qpid::messaging::EncodingException ex) {
std::cout  qpid::messaging::EncodingException   ex.what()  
std::endl;
}
std::cout  done  std::endl;
{code}

But now if we extend the message a little, so that it is at least 4 bytes long 
like so:
{code}
const qpid::messaging::Message message(\0\0\0\7foo, 7);
try {
if (message.getContent().size()  4)
throw qpid::messaging::EncodingException(message too small);
qpid::types::Variant::Map map;
qpid::messaging::decode(message, map);
} catch (const qpid::messaging::EncodingException ex) {
std::cout  qpid::messaging::EncodingException   ex.what()  
std::endl;
}
std::cout  done  std::endl; // never reached.
{code}

Then we run into a second problem.  In that case, the {{done}} line is still 
not reached, because a {{qpid::framing::IllegalArgumentException}} is thrown in 
{{qpid::framing::FieldTable::decode}} with message {{Not enough data for field 
table.}}.  However, this exception type is not listed in the documentation for 
the {{qpid::messaging::decode}} function - the documentation only mentions 
{{EncodingException}}, and the two share no common ancestry until right back at 
{{std::exception}}.

Although one solution might be just to add {{IllegalArgumentException}} to the 
documentation, I suspect a preferable solution would be to catch the 
{{IllegalArgumentException}} in {{qpid::messaging::decode}} and re-throw it as 
an {{EncodingException}} like:
{code}
 static void decode(const Message message, typename C::ObjectType object, 
const std::string encoding)
 {
 checkEncoding(message, encoding);
-C::decode(message.getContent(), object);
+try {
+C::decode(message.getContent(), object);
+} catch (const qpid::Exception ex) {
+throw EncodingException(ex.what());
+}
 }
{code}

A quick code review shows that {{qpid::framing::FieldTable::decode}} (and thus 
{{qpid::messaging::decode}}) can also throw the {{OutOfBounds}} exception, 
which, like {{IllegalArgumentException}}, descends from {{qpid::Exception}}.  
So a final solution might look something like:
{code}
Index: framing/FieldTable.cpp
===
--- framing/FieldTable.cpp  (revision 1160172)
+++ framing/FieldTable.cpp  (working copy)
@@ -198,10 +198,12 @@

 void FieldTable::decode(Buffer buffer){
 clear();
+if (buffer.available()  4)
+throw IllegalArgumentException(QPID_MSG(Not enough data for field 
table.));
 uint32_t len = buffer.getLong();
 if (len) {
 uint32_t available = buffer.available();
-if (available  len)
+if ((available  len) || (available  4))
 throw IllegalArgumentException(QPID_MSG(Not enough data for field 
table.));
 uint32_t count = buffer.getLong();
 uint32_t leftover = available - len;
Index: messaging/Message.cpp

[jira] [Created] (QPID-3443) the C++ broker uses the wrong exception type when clients try to modify the default exchange

2011-08-22 Thread Robbie Gemmell (JIRA)
the C++ broker uses the wrong exception type when clients try to modify the 
default exchange


 Key: QPID-3443
 URL: https://issues.apache.org/jira/browse/QPID-3443
 Project: Qpid
  Issue Type: Bug
  Components: C++ Broker
Affects Versions: 0.13
Reporter: Robbie Gemmell
 Fix For: Future


Various test cases in AddressBasedDestinationTest are failing on the C++ test 
profiles, due to an exception being returned indicating the client tried to 
modify the default exchange. The exception is a NOT_ALLOWED, but the 0-10 spec 
says this should be met with an ILLEGAL_ARGUMENT exception.

Eg:


Testcase: testDestinationOnSend took 0.207 sec
Caused an ERROR
Error registering consumer: org.apache.qpid.AMQException: ch=0 id=0 
ExecutionException(errorCode=NOT_ALLOWED, commandId=4, classCode=7, 
commandCode=4, fieldI
ndex=0, description=not-allowed: Bind not allowed for default exchange 
(qpid/broker/Broker.cpp:920), errorInfo={}) [error code 530: not allowed]
javax.jms.JMSException: Error registering consumer: 
org.apache.qpid.AMQException: ch=0 id=0 
ExecutionException(errorCode=NOT_ALLOWED, commandId=4, classCode=
7, commandCode=4, fieldIndex=0, description=not-allowed: Bind not allowed for 
default exchange (qpid/broker/Broker.cpp:920), errorInfo={}) [error code 530: n
ot allowed]
at org.apache.qpid.client.AMQSession$4.execute(AMQSession.java:2057)
at org.apache.qpid.client.AMQSession$4.execute(AMQSession.java:2000)
at 
org.apache.qpid.client.AMQConnectionDelegate_0_10.executeRetrySupport(AMQConnectionDelegate_0_10.java:325)
at 
org.apache.qpid.client.AMQConnection.executeRetrySupport(AMQConnection.java:570)
at 
org.apache.qpid.client.failover.FailoverRetrySupport.execute(FailoverRetrySupport.java:102)
at 
org.apache.qpid.client.AMQSession.createConsumerImpl(AMQSession.java:1998)
at org.apache.qpid.client.AMQSession.createConsumer(AMQSession.java:971)
at 
org.apache.qpid.test.client.destination.AddressBasedDestinationTest.testDestinationOnSend(AddressBasedDestinationTest.java:1119)
at 
org.apache.qpid.test.utils.QpidBrokerTestCase.runBare(QpidBrokerTestCase.java:243)
at org.apache.qpid.test.utils.QpidTestCase.run(QpidTestCase.java:128)
Caused by: org.apache.qpid.AMQException: ch=0 id=0 
ExecutionException(errorCode=NOT_ALLOWED, commandId=4, classCode=7, 
commandCode=4, fieldIndex=0, descripti
on=not-allowed: Bind not allowed for default exchange 
(qpid/broker/Broker.cpp:920), errorInfo={}) [error code 530: not allowed]
at 
org.apache.qpid.client.AMQSession_0_10.setCurrentException(AMQSession_0_10.java:1058)
at 
org.apache.qpid.client.AMQSession_0_10.sync(AMQSession_0_10.java:1038)
at 
org.apache.qpid.client.AMQSession_0_10.sendQueueBind(AMQSession_0_10.java:377)
at org.apache.qpid.client.AMQSession$2.execute(AMQSession.java:678)
at 
org.apache.qpid.client.failover.FailoverNoopSupport.execute(FailoverNoopSupport.java:67)
at org.apache.qpid.client.AMQSession.bindQueue(AMQSession.java:674)
at 
org.apache.qpid.client.AMQSession.registerConsumer(AMQSession.java:2854)
at org.apache.qpid.client.AMQSession.access$500(AMQSession.java:120)
at org.apache.qpid.client.AMQSession$4.execute(AMQSession.java:2034)



--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



[jira] [Updated] (QPID-3437) qpid-config address option confusing in help

2011-08-22 Thread Pavel Moravec (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-3437?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pavel Moravec updated QPID-3437:


Attachment: (was: qpid_tools_authentication.ods)

 qpid-config address option confusing in help
 

 Key: QPID-3437
 URL: https://issues.apache.org/jira/browse/QPID-3437
 Project: Qpid
  Issue Type: Improvement
  Components: Documentation, Tools
Affects Versions: 0.10
Reporter: Pavel Moravec
Priority: Minor
  Labels: patch
 Attachments: 
 0006-Bug-732369-Help-address-ambiguity-for-qpid-config.patch

   Original Estimate: 1h
  Remaining Estimate: 1h

 qpid-config --help prints confusing / ambiguity information how to use address
 option (-a user/password@broker). On first place it is specified without -a
 option (wrong), second place is not descriptive about address syntax:
 qpid-config --help
 Usage:  qpid-config [OPTIONS]
 ..
 ADDRESS syntax:
   [username/password@] hostname [:port]
   [username/password@] ip-address [:port]
 ..
   General Options:
 ..
 -a address, --broker-addr=address
 Address of qpidd broker
 Proposed patch removes the ADDRESS syntax part and adds the address syntax to 
 -a option (to follow structure of the help).

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



[jira] [Commented] (QPID-3415) CRAM-MD5-HASHED not supported by 0-10 protocol (+ no suppport for custom SASL mechanisms).

2011-08-22 Thread jirapos...@reviews.apache.org (JIRA)

[ 
https://issues.apache.org/jira/browse/QPID-3415?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13088624#comment-13088624
 ] 

jirapos...@reviews.apache.org commented on QPID-3415:
-


---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/1608/
---

Review request for qpid and rajith attapattu.


Summary
---

This patch changes the 0-10 code path to create the SASL callback handler using 
the CallbackHandlerRegistry.   This allows the 0-10 code path to support SASL 
mechanisms requiring other callback handlers, such as CRAM-MD5-HASHED.  Support 
for the sasl_mechs client connection option has been retained and now applies 
to the 0-8..0-9-1 code paths too.

If the user *specifies* a sasl_mechs client connection option the behaviour of 
the code is unchanged from the previous version: it restricts the list of SASL 
mechanisms in use.

If the user *does not specify* a sasl_mechs client connection option, the old 
code used a hardcoded PLAIN default.  This is no longer the case.  Now the 
client will use the first SASL mechanism from the list 
CallbackHandlerRegistry.properties that is also available on the server.

Removed dead code and strengthen unit tests.
 


This addresses bug QPID-3415.
https://issues.apache.org/jira/browse/QPID-3415


Diffs
-

  
/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnectionDelegate_0_10.java
 1160136 
  
/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/handler/ConnectionStartMethodHandler.java
 1160136 
  
/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/security/CallbackHandlerRegistry.java
 1160136 
  
/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/security/CallbackHandlerRegistry.properties
 1160136 
  
/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/ClientDelegate.java
 1160136 
  
/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Connection.java 
1160136 
  
/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/ConnectionSettings.java
 1160136 
  
/trunk/qpid/java/common/src/test/java/org/apache/qpid/transport/ConnectionTest.java
 1160136 
  
/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/ConnectionTest.java
 1160136 
  
/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/message/UTF8Test.java
 1160136 

Diff: https://reviews.apache.org/r/1608/diff


Testing
---

Improved unit testing. Run java, cpp and cpp.ssl profiles. I am not able to 
test GSSAPI locally. 


Thanks,

Keith



 CRAM-MD5-HASHED not supported by 0-10 protocol (+ no suppport for custom SASL 
 mechanisms).
 --

 Key: QPID-3415
 URL: https://issues.apache.org/jira/browse/QPID-3415
 Project: Qpid
  Issue Type: Bug
  Components: Java Client
Affects Versions: 0.10
Reporter: Keith Wall
Assignee: Keith Wall
 Fix For: 0.13


 If the Java broker is configured to use the Base64MD5Password password 
 database the Java client is unable to connect even if they use the sasl_mechs 
 broker option in the connection URL (sasl_mechs='CRAM-MD5-HASHED').  
 Instead the user sees:
 {code}
 org.apache.qpid.AMQException: Cannot connect to broker: Callback handler with 
 support for AuthorizeCallback required
 {code}
 The user can work around the problem by passing the -Dqpid.amqp.version 
 system property to the client, and selecting a protocol  0-10.
 The problem is happening because on the 0-10 code path on the client, the 
 SASL CallbackHandler in use is hardcoded to UsernamePasswordCallbackhandler 
 (ClientDelegate), rather than using the facilities of CallbackHandlerRegistry 
 (as does the 0-8 and 0-9* code paths). CRAM-MD5-HASHED requires the use of a 
 different Callbackhandler.
 This also inhibits the use of custom SASL methods by the client.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



[jira] [Assigned] (QPID-3415) CRAM-MD5-HASHED not supported by 0-10 protocol (+ no suppport for custom SASL mechanisms).

2011-08-22 Thread Keith Wall (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-3415?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Keith Wall reassigned QPID-3415:


Assignee: Rajith Attapattu  (was: Keith Wall)

 CRAM-MD5-HASHED not supported by 0-10 protocol (+ no suppport for custom SASL 
 mechanisms).
 --

 Key: QPID-3415
 URL: https://issues.apache.org/jira/browse/QPID-3415
 Project: Qpid
  Issue Type: Bug
  Components: Java Client
Affects Versions: 0.10
Reporter: Keith Wall
Assignee: Rajith Attapattu
 Fix For: 0.13


 If the Java broker is configured to use the Base64MD5Password password 
 database the Java client is unable to connect even if they use the sasl_mechs 
 broker option in the connection URL (sasl_mechs='CRAM-MD5-HASHED').  
 Instead the user sees:
 {code}
 org.apache.qpid.AMQException: Cannot connect to broker: Callback handler with 
 support for AuthorizeCallback required
 {code}
 The user can work around the problem by passing the -Dqpid.amqp.version 
 system property to the client, and selecting a protocol  0-10.
 The problem is happening because on the 0-10 code path on the client, the 
 SASL CallbackHandler in use is hardcoded to UsernamePasswordCallbackhandler 
 (ClientDelegate), rather than using the facilities of CallbackHandlerRegistry 
 (as does the 0-8 and 0-9* code paths). CRAM-MD5-HASHED requires the use of a 
 different Callbackhandler.
 This also inhibits the use of custom SASL methods by the client.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



[jira] [Assigned] (QPID-3445) Assertion, and unexpected exception in qpid::messaging::decode

2011-08-22 Thread Gordon Sim (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-3445?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Gordon Sim reassigned QPID-3445:


Assignee: Gordon Sim

 Assertion, and unexpected exception in qpid::messaging::decode
 --

 Key: QPID-3445
 URL: https://issues.apache.org/jira/browse/QPID-3445
 Project: Qpid
  Issue Type: Bug
  Components: C++ Client
Affects Versions: 0.10, Future
Reporter: Paul Colby
Assignee: Gordon Sim

 Although this is technically two different bug reports, they are very closely 
 related, and should probably be tested / fixed together, so I'm reporting 
 them both here... hope that's okay ;)
 Both {{qpid::messaging::decode}} functions can assert, or throw an unexpected 
 {{qpid::framing::IllegalArgumentException}} on invalid input.
 Consider the following code fragment:
 {code}
 const qpid::messaging::Message message(foo);
 try {
 qpid::types::Variant::Map map;
 qpid::messaging::decode(message, map); // asserts in 
 qpid::framing::Buffer::getLong
 } catch (const qpid::messaging::EncodingException ex) {
 std::cout  qpid::messaging::EncodingException   ex.what()  
 std::endl;
 }
 std::cout  done  std::endl; // never reached.
 {code}
 In that example, the {{qpid::messaging::decode}} function will result in an 
 assertion in {{qpid::framing::Buffer::getLong}} as that function assumes / 
 requires the buffer to be at least 4 bytes.  Clearly in this case the decode 
 should fail, but ideally it should fail in a catchable way, not an assertion.
 I would think the right solution would be to add a minimum size check to the 
 {{qpid::framing::FieldTable::decode}} function.  But it could also be solved 
 by adding the size check to the {{qpid::messaging::decode}} and/or  
 {{qpid::framing::Buffer::getLong}} functions.
 As a temporary workaround, client code can add a size check before the 
 {{decode}} call, like:
 {code}
 const qpid::messaging::Message message(foo);
 try {
 if (message.getContent().size()  4)
 throw qpid::messaging::EncodingException(message too small);
 qpid::types::Variant::Map map;
 qpid::messaging::decode(message, map);
 } catch (const qpid::messaging::EncodingException ex) {
 std::cout  qpid::messaging::EncodingException   ex.what()  
 std::endl;
 }
 std::cout  done  std::endl;
 {code}
 But now if we extend the message a little, so that it is at least 4 bytes 
 long like so:
 {code}
 const qpid::messaging::Message message(\0\0\0\7foo, 7);
 try {
 if (message.getContent().size()  4)
 throw qpid::messaging::EncodingException(message too small);
 qpid::types::Variant::Map map;
 qpid::messaging::decode(message, map);
 } catch (const qpid::messaging::EncodingException ex) {
 std::cout  qpid::messaging::EncodingException   ex.what()  
 std::endl;
 }
 std::cout  done  std::endl; // never reached.
 {code}
 Then we run into a second problem.  In that case, the {{done}} line is 
 still not reached, because a {{qpid::framing::IllegalArgumentException}} is 
 thrown in {{qpid::framing::FieldTable::decode}} with message {{Not enough 
 data for field table.}}.  However, this exception type is not listed in the 
 documentation for the {{qpid::messaging::decode}} function - the 
 documentation only mentions {{EncodingException}}, and the two share no 
 common ancestry until right back at {{std::exception}}.
 Although one solution might be just to add {{IllegalArgumentException}} to 
 the documentation, I suspect a preferable solution would be to catch the 
 {{IllegalArgumentException}} in {{qpid::messaging::decode}} and re-throw it 
 as an {{EncodingException}} like:
 {code}
  static void decode(const Message message, typename C::ObjectType 
 object, const std::string encoding)
  {
  checkEncoding(message, encoding);
 -C::decode(message.getContent(), object);
 +try {
 +C::decode(message.getContent(), object);
 +} catch (const qpid::Exception ex) {
 +throw EncodingException(ex.what());
 +}
  }
 {code}
 A quick code review shows that {{qpid::framing::FieldTable::decode}} (and 
 thus {{qpid::messaging::decode}}) can also throw the {{OutOfBounds}} 
 exception, which, like {{IllegalArgumentException}}, descends from 
 {{qpid::Exception}}.  So a final solution might look something like:
 {code}
 Index: framing/FieldTable.cpp
 ===
 --- framing/FieldTable.cpp  (revision 1160172)
 +++ framing/FieldTable.cpp  (working copy)
 @@ -198,10 +198,12 @@
  void FieldTable::decode(Buffer buffer){
  clear();
 +if (buffer.available()  4)
 +throw IllegalArgumentException(QPID_MSG(Not enough data for field 
 table.));
  uint32_t len = buffer.getLong();
  if (len) {
  

[jira] [Updated] (QPID-3446) Deadlock is observed on simultaneous closing of connection on both Java client and broker when java broker is shut down

2011-08-22 Thread Alex Rudyy (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-3446?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Alex Rudyy updated QPID-3446:
-

Attachment: deadlock.txt

 Deadlock is observed on simultaneous closing of connection on both Java 
 client and broker when  java broker is shut down
 

 Key: QPID-3446
 URL: https://issues.apache.org/jira/browse/QPID-3446
 Project: Qpid
  Issue Type: Bug
  Components: Java Broker, Java Client
Affects Versions: 0.10, 0.11, 0.12
Reporter: Alex Rudyy
Assignee: Robbie Gemmell
 Attachments: deadlock.txt


 Deadlock is observed on simultaneous closing of connection on both client and 
 broker when broker is shut down.
 Found one Java-level deadlock:
 =
 Thread-0:
   waiting to lock monitor 0x59d53cf8 (object 0xbbea, a 
 java.lang.Object),
   which is held by MinaNetworkTransport(Acceptor)-12
 MinaNetworkTransport(Acceptor)-12:
   waiting for ownable synchronizer 0xbbed8b10, (a 
 java.util.concurrent.locks.ReentrantLock$NonfairSync),
   which is held by 
 SubFlushRunner-org.apache.qpid.server.subscription.Subscription_0_10@6ce7ce4c
 SubFlushRunner-org.apache.qpid.server.subscription.Subscription_0_10@6ce7ce4c:
   waiting to lock monitor 0x59671c58 (object 0xbbf11540, a 
 [Lorg.apache.qpid.transport.Method;),
   which is held by MinaNetworkTransport(Acceptor)-12
 Java stack information for the threads listed above:
 ===
 Thread-0:
 at org.apache.qpid.transport.Connection.close(Connection.java:586)
 - waiting to lock 0xbbea (a java.lang.Object)
 at 
 org.apache.qpid.server.transport.ServerConnection.close(ServerConnection.java:269)
 at 
 org.apache.qpid.server.connection.ConnectionRegistry.closeConnection(ConnectionRegistry.java:58)
 at 
 org.apache.qpid.server.connection.ConnectionRegistry.close(ConnectionRegistry.java:50)
 at 
 org.apache.qpid.server.virtualhost.VirtualHostImpl.close(VirtualHostImpl.java:574)
 at 
 org.apache.qpid.server.virtualhost.VirtualHostRegistry.close(VirtualHostRegistry.java:105)
 at 
 org.apache.qpid.server.registry.ApplicationRegistry.close(ApplicationRegistry.java:443)
 at 
 org.apache.qpid.server.registry.ApplicationRegistry.close(ApplicationRegistry.java:470)
 at 
 org.apache.qpid.server.registry.ConfigurationFileApplicationRegistry.close(ConfigurationFileApplicationRegistry.java:53)
 at 
 org.apache.qpid.server.registry.ApplicationRegistry.remove(ApplicationRegistry.java:203)
 at 
 org.apache.qpid.server.registry.ApplicationRegistry$ShutdownService.run(ApplicationRegistry.java:126)
 at java.lang.Thread.run(Thread.java:662)
 MinaNetworkTransport(Acceptor)-12:
 at sun.misc.Unsafe.park(Native Method)
 - parking to wait for  0xbbed8b10 (a 
 java.util.concurrent.locks.ReentrantLock$NonfairSync)
 at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
 at 
 java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:811)
 at 
 java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:842)
 at 
 java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1178)
 at 
 java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:186)
 at 
 java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:262)
 at 
 org.apache.qpid.server.subscription.Subscription_0_10.getSendLock(Subscription_0_10.java:663)
 at 
 org.apache.qpid.server.transport.ServerSession.unregister(ServerSession.java:409)
 at 
 org.apache.qpid.server.transport.ServerSessionDelegate.closed(ServerSessionDelegate.java:1250)
 at org.apache.qpid.transport.Session.closed(Session.java:1041)
 - locked 0xbbf11540 (a [Lorg.apache.qpid.transport.Method;)
 at org.apache.qpid.transport.Connection.closed(Connection.java:551)
 - locked 0xbbea (a java.lang.Object)
 at 
 org.apache.qpid.transport.network.Assembler.closed(Assembler.java:110)
 at 
 org.apache.qpid.transport.network.InputHandler.closed(InputHandler.java:202)
 at 
 org.apache.qpid.server.protocol.ProtocolEngine_0_10.closed(ProtocolEngine_0_10.java:176)
 at 
 org.apache.qpid.server.protocol.MultiVersionProtocolEngine.closed(MultiVersionProtocolEngine.java:86)
 at 
 org.apache.qpid.transport.network.mina.MinaNetworkHandler.sessionClosed(MinaNetworkHandler.java:136)
 at 
 

[jira] [Updated] (QPID-3444) the Java broker does not reject 0-10 exchange (un)bind commands which use empty strings for the exchange name

2011-08-22 Thread Robbie Gemmell (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-3444?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Robbie Gemmell updated QPID-3444:
-

Summary: the Java broker does not reject 0-10 exchange (un)bind commands 
which use empty strings for the exchange name  (was: the Java broker does not 
reject 0-10 exchange (un)bind commands which use empty strings for the change 
name)

 the Java broker does not reject 0-10 exchange (un)bind commands which use 
 empty strings for the exchange name
 -

 Key: QPID-3444
 URL: https://issues.apache.org/jira/browse/QPID-3444
 Project: Qpid
  Issue Type: Bug
  Components: Java Broker
Affects Versions: 0.6, 0.7, 0.8, 0.9, 0.10, 0.11, 0.12
Reporter: Robbie Gemmell
Assignee: Robbie Gemmell
 Fix For: 0.13


 The Java broker verifies that the exchange (un)bind commands have an exchange 
 value set, however it does not reject those which have an empty string 
 defined, whcih is also interpreted as the default exchange. it shoudl issue 
 an ILLEGAL_ARGUMENT exception.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



[jira] [Updated] (QPID-2904) RollbackOrderTest#testOrderingAfterRollback fails on java.0.10 test profiles

2011-08-22 Thread Keith Wall (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-2904?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Keith Wall updated QPID-2904:
-

  Component/s: (was: Java Client)
  Environment: 
Linux 2.6.9-67.EL #1 Wed Nov 7 13:41:13 EST 2007 i686 i686 i386 GNU/Linux
Intel(R) Pentium(R) 4 CPU 3.00GHz
Affects Version/s: 0.12
   0.11
   0.8
   0.9
   0.10

 RollbackOrderTest#testOrderingAfterRollback fails on java.0.10 test profiles
 

 Key: QPID-2904
 URL: https://issues.apache.org/jira/browse/QPID-2904
 Project: Qpid
  Issue Type: Bug
  Components: Java Broker
Affects Versions: 0.7, 0.8, 0.9, 0.10, 0.11, 0.12
 Environment: Linux 2.6.9-67.EL #1 Wed Nov 7 13:41:13 EST 2007 i686 
 i686 i386 GNU/Linux
 Intel(R) Pentium(R) 4 CPU 3.00GHz
Reporter: Robbie Gemmell

 org.apache.qpid.test.client.RollbackOrderTest#testOrderingAfterRollback fails 
 on the java.0.10 test profiles:
 TestName: testOrderingAfterRollback Duration: 8.416
 Incorrect Message Received expected:0 but 
 was:33
 
 junit.framework.AssertionFailedError: 
 Incorrect Message Received expected:0 but was:33
   at 
 org.apache.qpid.test.client.RollbackOrderTest.testOrderingAfterRollback(RollbackOrderTest.java:111)
   at 
 org.apache.qpid.test.utils.QpidBrokerTestCase.runBare(QpidBrokerTestCase.java:232)
   at org.apache.qpid.test.utils.QpidTestCase.run(QpidTestCase.java:120)
 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



[jira] [Commented] (QPID-2904) RollbackOrderTest#testOrderingAfterRollback fails on java.0.10 test profiles

2011-08-22 Thread Keith Wall (JIRA)

[ 
https://issues.apache.org/jira/browse/QPID-2904?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13088686#comment-13088686
 ] 

Keith Wall commented on QPID-2904:
--

This is a race condition Broker side.

The problem occurs frequently on an old spec'd machine.  On newer machines, I 
find I need to run the test all night before I see a single failure.

By modifying the assert message, it can be seen that the appearance is non 
deterministic:

{code}
junit.framework.AssertionFailedError: Incorrect Message Received (cycle 6) 
expected:0 but was:7
junit.framework.AssertionFailedError: Incorrect Message Received (cycle 16) 
expected:0 but was:6
junit.framework.AssertionFailedError: Incorrect Message Received (cycle 8) 
expected:0 but was:7
{code}




 RollbackOrderTest#testOrderingAfterRollback fails on java.0.10 test profiles
 

 Key: QPID-2904
 URL: https://issues.apache.org/jira/browse/QPID-2904
 Project: Qpid
  Issue Type: Bug
  Components: Java Broker
Affects Versions: 0.7, 0.8, 0.9, 0.10, 0.11, 0.12
 Environment: Linux 2.6.9-67.EL #1 Wed Nov 7 13:41:13 EST 2007 i686 
 i686 i386 GNU/Linux
 Intel(R) Pentium(R) 4 CPU 3.00GHz
Reporter: Robbie Gemmell

 org.apache.qpid.test.client.RollbackOrderTest#testOrderingAfterRollback fails 
 on the java.0.10 test profiles:
 TestName: testOrderingAfterRollback Duration: 8.416
 Incorrect Message Received expected:0 but 
 was:33
 
 junit.framework.AssertionFailedError: 
 Incorrect Message Received expected:0 but was:33
   at 
 org.apache.qpid.test.client.RollbackOrderTest.testOrderingAfterRollback(RollbackOrderTest.java:111)
   at 
 org.apache.qpid.test.utils.QpidBrokerTestCase.runBare(QpidBrokerTestCase.java:232)
   at org.apache.qpid.test.utils.QpidTestCase.run(QpidTestCase.java:120)
 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



[jira] [Commented] (QPID-3438) cluster auth failure increments cnx count

2011-08-22 Thread Alan Conway (JIRA)

[ 
https://issues.apache.org/jira/browse/QPID-3438?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13088689#comment-13088689
 ] 

Alan Conway commented on QPID-3438:
---

See review https://reviews.apache.org/r/1591/

 cluster auth failure increments cnx count
 -

 Key: QPID-3438
 URL: https://issues.apache.org/jira/browse/QPID-3438
 Project: Qpid
  Issue Type: Bug
  Components: C++ Broker
Reporter: michael j. goulish
Assignee: michael j. goulish
 Fix For: 0.14


 If a cluster brokers are authenticating, and an attempted cnx fails due to an 
 auth problem, the broker nevertheless increments its cnx counter.  Which 
 means it eventually runs out of available connections -- even if there aren't 
 any open.  :-(

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



[jira] [Commented] (QPID-2904) RollbackOrderTest#testOrderingAfterRollback fails on java.0.10 test profiles

2011-08-22 Thread Keith Wall (JIRA)

[ 
https://issues.apache.org/jira/browse/QPID-2904?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13088707#comment-13088707
 ] 

Keith Wall commented on QPID-2904:
--

Investigation shows that the problem is broker side.

It is race condition between the Mina Acceptor threads processing the commands 
and the SubFlushRunner.  There is an unlucky timing where the SubFlusherRunner 
can be already executing when the MessageStop command arrives.  If the 
SubFlushRunner has past the point where it checks the Subscription state (if 
(subActive==true) in SimpleAMQQueue#attemptDelivery method), it can go on to 
put the 'wrong' first message on the wire.

On the slow box, we regularly see the SubFlushRunner yield after the passing if 
subActive==true check only to wake up later (whilst the MessageRelease commands 
are being processed) and put its message (the wrong message) on the wire 
(before the client has sent MessageFlow).



 RollbackOrderTest#testOrderingAfterRollback fails on java.0.10 test profiles
 

 Key: QPID-2904
 URL: https://issues.apache.org/jira/browse/QPID-2904
 Project: Qpid
  Issue Type: Bug
  Components: Java Broker
Affects Versions: 0.7, 0.8, 0.9, 0.10, 0.11, 0.12
 Environment: Linux 2.6.9-67.EL #1 Wed Nov 7 13:41:13 EST 2007 i686 
 i686 i386 GNU/Linux
 Intel(R) Pentium(R) 4 CPU 3.00GHz
Reporter: Robbie Gemmell

 org.apache.qpid.test.client.RollbackOrderTest#testOrderingAfterRollback fails 
 on the java.0.10 test profiles:
 TestName: testOrderingAfterRollback Duration: 8.416
 Incorrect Message Received expected:0 but 
 was:33
 
 junit.framework.AssertionFailedError: 
 Incorrect Message Received expected:0 but was:33
   at 
 org.apache.qpid.test.client.RollbackOrderTest.testOrderingAfterRollback(RollbackOrderTest.java:111)
   at 
 org.apache.qpid.test.utils.QpidBrokerTestCase.runBare(QpidBrokerTestCase.java:232)
   at org.apache.qpid.test.utils.QpidTestCase.run(QpidTestCase.java:120)
 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



Re: Review Request: Provides the EventNotifier type, plus example agent and unit test.

2011-08-22 Thread Andrew Stitcher


 On 2011-08-19 21:47:12, Kenneth Giusti wrote:
  trunk/qpid/cpp/src/qmf/EventNotifierImpl.h, line 36
  https://reviews.apache.org/r/1557/diff/1/?file=33112#file33112line36
 
  May I make a suggestion - take a look at qpid::sys::IOHandle in the 
  qpid code.  This is an abstract class that hides the OS-specific bits 
  (fd/Socket) pretty well.  We could do something _like_ that here - add 
  another level of abstraction by having getHandle() return a class instead 
  of an 'int'.
  
  Or, perhaps not as pretty just typedef the return value using 
  different OS-specific conditional compile:
  
  #if defined(_WIN32)
  #include whatever windoze headers
  typedef whatever windoze stuff IOHandle;
  #else
  typedef int IOHandle;
  #endif
  
  then we define:
  
  IOHandle getHandle() const;
  
  
 

The trouble is copying IOHandle can't help you!

Ultimately providing an OS specific handle from an OS independent abstraction 
can't be done in an OS independent way. You always need to have a particular 
API with an OS specific signature to return the OS specific handle so you can 
use that handle together with your other application specific handling, at the 
very least the operation of returning an OS handle from an IOHandle is a 
non-portable part of the API.

I suppose if that is the only non-portable part of the API then you're in a 
better shape than before, and it may be possible to do something clever(ish) 
with templates to avoid the actual header files being different so that might 
be a direction:

Something like:

template typename OSHandle
OSHandle getOSHandle(IOHandle);

and then define

template int getOSHandleint(IOHandle); for unix and
template HANDLE getOSHandleHANDLE(IOHandle); for Windows.

- Completely untested thoughts - worth practically what you paid for them.


- Andrew


---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/1557/#review1569
---


On 2011-08-19 18:30:06, Darryl Pierce wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://reviews.apache.org/r/1557/
 ---
 
 (Updated 2011-08-19 18:30:06)
 
 
 Review request for qpid, Kenneth Giusti, michael goulish, and Ted Ross.
 
 
 Summary
 ---
 
 Provides a new method for providing notification to an interested party when 
 new messages are received.
 
 The EventNotifier class can be associated with either a console or agent 
 session. The object provides a file descriptor which then becomes readable 
 when there are messages to be processed.
 
 This implementation only supports Posix. There is some work necessary to get 
 a Windows implementation in place.
 
 
 Diffs
 -
 
   trunk/qpid/cpp/bindings/qmf2/examples/cpp/Makefile.am 1159329 
   trunk/qpid/cpp/bindings/qmf2/examples/cpp/event_driven_list_agents.cpp 
 PRE-CREATION 
   trunk/qpid/cpp/include/qmf/AgentSession.h 1159329 
   trunk/qpid/cpp/include/qmf/ConsoleSession.h 1159329 
   trunk/qpid/cpp/include/qmf/EventNotifier.h PRE-CREATION 
   trunk/qpid/cpp/src/CMakeLists.txt 1159329 
   trunk/qpid/cpp/src/qmf.mk 1159329 
   trunk/qpid/cpp/src/qmf/AgentSession.cpp 1159329 
   trunk/qpid/cpp/src/qmf/AgentSessionImpl.h PRE-CREATION 
   trunk/qpid/cpp/src/qmf/ConsoleSession.cpp 1159329 
   trunk/qpid/cpp/src/qmf/ConsoleSessionImpl.h 1159329 
   trunk/qpid/cpp/src/qmf/EventNotifier.cpp PRE-CREATION 
   trunk/qpid/cpp/src/qmf/EventNotifierImpl.h PRE-CREATION 
   trunk/qpid/cpp/src/qmf/EventNotifierImpl.cpp PRE-CREATION 
   trunk/qpid/cpp/src/qmf/PosixEventNotifierImpl.cpp PRE-CREATION 
   trunk/qpid/cpp/src/tests/EventNotifierTest.cpp PRE-CREATION 
   trunk/qpid/cpp/src/tests/Makefile.am 1159329 
 
 Diff: https://reviews.apache.org/r/1557/diff
 
 
 Testing
 ---
 
 An example agent takes the existing list_agents and uses an EventNotifier to 
 respond to incoming messages rather than blocking on the 
 ConsoleSession.nextReceiver() API.
 
 A unit test verifies that the file handle provides by the EventNotifier type 
 is properly updating on incoming messgaes.
 
 
 Thanks,
 
 Darryl
 




[jira] [Created] (QPID-3447) Creating invalid federation link causes file descriptor leak

2011-08-22 Thread Pavel Moravec (JIRA)
Creating invalid federation link causes file descriptor leak


 Key: QPID-3447
 URL: https://issues.apache.org/jira/browse/QPID-3447
 Project: Qpid
  Issue Type: Bug
  Components: C++ Broker
Affects Versions: 0.10
Reporter: Pavel Moravec


Specifying invalid IP address of destination broker causes repeatable file
descriptor leak.

Steps to Reproduce:
1. qpid-route -v link add localhost 10:17700
(alternativelly, create a dynamic route likeqpid-route dynamic add 
localhost 10:17700 amq.direct )
2. lsof -p $(pgrep qpidd) | grep can't identify protocol

Since then, lsof will show can't identify protocol file descriptors whose 
number is increasing in time.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



[jira] [Updated] (QPID-3447) Creating invalid federation link causes file descriptor leak

2011-08-22 Thread Pavel Moravec (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-3447?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pavel Moravec updated QPID-3447:


Attachment: fd_leak.patch

Patch proposal.

The root cause of the FD leak is missing Socket::close() method when ::connect 
method returns negative (i.e. connection fails).

Patch adds the close method invocation plus logs the failure via QPID_LOG.

 Creating invalid federation link causes file descriptor leak
 

 Key: QPID-3447
 URL: https://issues.apache.org/jira/browse/QPID-3447
 Project: Qpid
  Issue Type: Bug
  Components: C++ Broker
Affects Versions: 0.10
Reporter: Pavel Moravec
  Labels: patch
 Attachments: fd_leak.patch

   Original Estimate: 2h
  Remaining Estimate: 2h

 Specifying invalid IP address of destination broker causes repeatable file
 descriptor leak.
 Steps to Reproduce:
 1. qpid-route -v link add localhost 10:17700
 (alternativelly, create a dynamic route likeqpid-route dynamic add 
 localhost 10:17700 amq.direct )
 2. lsof -p $(pgrep qpidd) | grep can't identify protocol
 Since then, lsof will show can't identify protocol file descriptors whose 
 number is increasing in time.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



Re: Review Request: Provides the EventNotifier type, plus example agent and unit test.

2011-08-22 Thread Darryl Pierce


 On 2011-08-19 21:47:12, Kenneth Giusti wrote:
  trunk/qpid/cpp/src/qmf/EventNotifierImpl.h, line 36
  https://reviews.apache.org/r/1557/diff/1/?file=33112#file33112line36
 
  May I make a suggestion - take a look at qpid::sys::IOHandle in the 
  qpid code.  This is an abstract class that hides the OS-specific bits 
  (fd/Socket) pretty well.  We could do something _like_ that here - add 
  another level of abstraction by having getHandle() return a class instead 
  of an 'int'.
  
  Or, perhaps not as pretty just typedef the return value using 
  different OS-specific conditional compile:
  
  #if defined(_WIN32)
  #include whatever windoze headers
  typedef whatever windoze stuff IOHandle;
  #else
  typedef int IOHandle;
  #endif
  
  then we define:
  
  IOHandle getHandle() const;
  
  
 
 
 Andrew Stitcher wrote:
 The trouble is copying IOHandle can't help you!
 
 Ultimately providing an OS specific handle from an OS independent 
 abstraction can't be done in an OS independent way. You always need to have a 
 particular API with an OS specific signature to return the OS specific handle 
 so you can use that handle together with your other application specific 
 handling, at the very least the operation of returning an OS handle from an 
 IOHandle is a non-portable part of the API.
 
 I suppose if that is the only non-portable part of the API then you're in 
 a better shape than before, and it may be possible to do something 
 clever(ish) with templates to avoid the actual header files being different 
 so that might be a direction:
 
 Something like:
 
 template typename OSHandle
 OSHandle getOSHandle(IOHandle);
 
 and then define
 
 template int getOSHandleint(IOHandle); for unix and
 template HANDLE getOSHandleHANDLE(IOHandle); for Windows.
 
 - Completely untested thoughts - worth practically what you paid for them.


There is a WSAPoll() API [1] that's available in Windows that takes a file 
handle ala poll().

[1] - http://msdn.microsoft.com/en-us/library/ms741669%28v=vs.85%29.aspx


- Darryl


---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/1557/#review1569
---


On 2011-08-19 18:30:06, Darryl Pierce wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://reviews.apache.org/r/1557/
 ---
 
 (Updated 2011-08-19 18:30:06)
 
 
 Review request for qpid, Kenneth Giusti, michael goulish, and Ted Ross.
 
 
 Summary
 ---
 
 Provides a new method for providing notification to an interested party when 
 new messages are received.
 
 The EventNotifier class can be associated with either a console or agent 
 session. The object provides a file descriptor which then becomes readable 
 when there are messages to be processed.
 
 This implementation only supports Posix. There is some work necessary to get 
 a Windows implementation in place.
 
 
 Diffs
 -
 
   trunk/qpid/cpp/bindings/qmf2/examples/cpp/Makefile.am 1159329 
   trunk/qpid/cpp/bindings/qmf2/examples/cpp/event_driven_list_agents.cpp 
 PRE-CREATION 
   trunk/qpid/cpp/include/qmf/AgentSession.h 1159329 
   trunk/qpid/cpp/include/qmf/ConsoleSession.h 1159329 
   trunk/qpid/cpp/include/qmf/EventNotifier.h PRE-CREATION 
   trunk/qpid/cpp/src/CMakeLists.txt 1159329 
   trunk/qpid/cpp/src/qmf.mk 1159329 
   trunk/qpid/cpp/src/qmf/AgentSession.cpp 1159329 
   trunk/qpid/cpp/src/qmf/AgentSessionImpl.h PRE-CREATION 
   trunk/qpid/cpp/src/qmf/ConsoleSession.cpp 1159329 
   trunk/qpid/cpp/src/qmf/ConsoleSessionImpl.h 1159329 
   trunk/qpid/cpp/src/qmf/EventNotifier.cpp PRE-CREATION 
   trunk/qpid/cpp/src/qmf/EventNotifierImpl.h PRE-CREATION 
   trunk/qpid/cpp/src/qmf/EventNotifierImpl.cpp PRE-CREATION 
   trunk/qpid/cpp/src/qmf/PosixEventNotifierImpl.cpp PRE-CREATION 
   trunk/qpid/cpp/src/tests/EventNotifierTest.cpp PRE-CREATION 
   trunk/qpid/cpp/src/tests/Makefile.am 1159329 
 
 Diff: https://reviews.apache.org/r/1557/diff
 
 
 Testing
 ---
 
 An example agent takes the existing list_agents and uses an EventNotifier to 
 respond to incoming messages rather than blocking on the 
 ConsoleSession.nextReceiver() API.
 
 A unit test verifies that the file handle provides by the EventNotifier type 
 is properly updating on incoming messgaes.
 
 
 Thanks,
 
 Darryl
 




[jira] [Resolved] (QPID-3423) Timing and Performance Improvements in QMF Libraries

2011-08-22 Thread Ted Ross (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-3423?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ted Ross resolved QPID-3423.


Resolution: Fixed

 Timing and Performance Improvements in QMF Libraries
 

 Key: QPID-3423
 URL: https://issues.apache.org/jira/browse/QPID-3423
 Project: Qpid
  Issue Type: Improvement
  Components: Qpid Managment Framework
Reporter: Ted Ross
Assignee: Ted Ross
Priority: Minor
 Fix For: 0.13


 This change improves the performance of the QMF console and agent libraries 
 in two ways:
 1) Reduces the wake-up frequency for periodic processing.  This improves 
 power consumption in tickless kernels.
 2) Removes the thread join from close(), allowing many console/agent 
 instances sharing a connection to be closed simultaneously.  This causes the 
 threads to be shut down in parallel instead of serially waiting for each 
 instance to shut down.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



Re: [VOTE] Release 0.12

2011-08-22 Thread Justin Ross
Sorry, I'm responsible for the delay.  It's staged on apache dist, and 
I've got the web site diff nearly ready.


Justin

On Mon, 22 Aug 2011, Robbie Gemmell wrote:


Bump. Any updates?

Robbie

On 16 August 2011 19:10, Justin Ross jr...@redhat.com wrote:

Last call.  I'll check tomorrow and consider this vote closed if there's no
new discussion.

On Tue, 9 Aug 2011, Justin Ross wrote:


Howdy, all.  The last-minute blocker, QPID-3394, has been fixed, and there
are no open blocker jiras against 0.12.  The proposed final RC, from
revision 1154981 of the 0.12 release branch, is available here:

 http://people.apache.org/~jross/qpid-0.12/

If you favor releasing this distribution as Qpid 0.12, vote +1.  If you
are aware of problems that ought to prevent this distribution from being
released, vote -1.

If the release proceeds, I'll take the final steps to publicize and
distribute the release.  That should take one or two days.

---
0.12 release page: https://cwiki.apache.org/qpid/012-release.html

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




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




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



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

Re: Welcome Keith as committer

2011-08-22 Thread Alan Conway

Welcome aboard Keith!

On 08/17/2011 01:22 PM, Carl Trieloff wrote:


Keith has been nominated and voted onto Qpid as a committer and has
accepted. Please welcome him

regards
Carl.

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



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



[jira] [Closed] (QPID-2904) RollbackOrderTest#testOrderingAfterRollback fails on java.0.10 test profiles

2011-08-22 Thread Keith Wall (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-2904?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Keith Wall closed QPID-2904.


   Resolution: Fixed
Fix Version/s: 0.13

Apply patch from Robbie Gemmell and myself.

 RollbackOrderTest#testOrderingAfterRollback fails on java.0.10 test profiles
 

 Key: QPID-2904
 URL: https://issues.apache.org/jira/browse/QPID-2904
 Project: Qpid
  Issue Type: Bug
  Components: Java Broker
Affects Versions: 0.7, 0.8, 0.9, 0.10, 0.11, 0.12
 Environment: Linux 2.6.9-67.EL #1 Wed Nov 7 13:41:13 EST 2007 i686 
 i686 i386 GNU/Linux
 Intel(R) Pentium(R) 4 CPU 3.00GHz
Reporter: Robbie Gemmell
 Fix For: 0.13


 org.apache.qpid.test.client.RollbackOrderTest#testOrderingAfterRollback fails 
 on the java.0.10 test profiles:
 TestName: testOrderingAfterRollback Duration: 8.416
 Incorrect Message Received expected:0 but 
 was:33
 
 junit.framework.AssertionFailedError: 
 Incorrect Message Received expected:0 but was:33
   at 
 org.apache.qpid.test.client.RollbackOrderTest.testOrderingAfterRollback(RollbackOrderTest.java:111)
   at 
 org.apache.qpid.test.utils.QpidBrokerTestCase.runBare(QpidBrokerTestCase.java:232)
   at org.apache.qpid.test.utils.QpidTestCase.run(QpidTestCase.java:120)
 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



[jira] [Issue Comment Edited] (QPID-2904) RollbackOrderTest#testOrderingAfterRollback fails on java.0.10 test profiles

2011-08-22 Thread Keith Wall (JIRA)

[ 
https://issues.apache.org/jira/browse/QPID-2904?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13088766#comment-13088766
 ] 

Keith Wall edited comment on QPID-2904 at 8/22/11 3:33 PM:
---

Applied patch from Robbie Gemmell and myself.

  was (Author: k-wall):
Apply patch from Robbie Gemmell and myself.
  
 RollbackOrderTest#testOrderingAfterRollback fails on java.0.10 test profiles
 

 Key: QPID-2904
 URL: https://issues.apache.org/jira/browse/QPID-2904
 Project: Qpid
  Issue Type: Bug
  Components: Java Broker
Affects Versions: 0.7, 0.8, 0.9, 0.10, 0.11, 0.12
 Environment: Linux 2.6.9-67.EL #1 Wed Nov 7 13:41:13 EST 2007 i686 
 i686 i386 GNU/Linux
 Intel(R) Pentium(R) 4 CPU 3.00GHz
Reporter: Robbie Gemmell
 Fix For: 0.13


 org.apache.qpid.test.client.RollbackOrderTest#testOrderingAfterRollback fails 
 on the java.0.10 test profiles:
 TestName: testOrderingAfterRollback Duration: 8.416
 Incorrect Message Received expected:0 but 
 was:33
 
 junit.framework.AssertionFailedError: 
 Incorrect Message Received expected:0 but was:33
   at 
 org.apache.qpid.test.client.RollbackOrderTest.testOrderingAfterRollback(RollbackOrderTest.java:111)
   at 
 org.apache.qpid.test.utils.QpidBrokerTestCase.runBare(QpidBrokerTestCase.java:232)
   at org.apache.qpid.test.utils.QpidTestCase.run(QpidTestCase.java:120)
 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



Re: [VOTE] Release 0.12

2011-08-22 Thread Robbie Gemmell
Excellent. We should probably have (perhaps need?) a [RESULT] [VOTE]
mail for the record books.

Robbie

On 22 August 2011 15:55, Justin Ross jus...@redhat.com wrote:
 Sorry, I'm responsible for the delay.  It's staged on apache dist, and I've
 got the web site diff nearly ready.

 Justin

 On Mon, 22 Aug 2011, Robbie Gemmell wrote:

 Bump. Any updates?

 Robbie

 On 16 August 2011 19:10, Justin Ross jr...@redhat.com wrote:

 Last call.  I'll check tomorrow and consider this vote closed if there's
 no
 new discussion.

 On Tue, 9 Aug 2011, Justin Ross wrote:

 Howdy, all.  The last-minute blocker, QPID-3394, has been fixed, and
 there
 are no open blocker jiras against 0.12.  The proposed final RC, from
 revision 1154981 of the 0.12 release branch, is available here:

  http://people.apache.org/~jross/qpid-0.12/

 If you favor releasing this distribution as Qpid 0.12, vote +1.  If you
 are aware of problems that ought to prevent this distribution from being
 released, vote -1.

 If the release proceeds, I'll take the final steps to publicize and
 distribute the release.  That should take one or two days.

 ---
 0.12 release page: https://cwiki.apache.org/qpid/012-release.html

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



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



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




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


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



[jira] [Assigned] (QPID-3437) qpid-config address option confusing in help

2011-08-22 Thread Ted Ross (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-3437?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ted Ross reassigned QPID-3437:
--

Assignee: Nuno Santos

 qpid-config address option confusing in help
 

 Key: QPID-3437
 URL: https://issues.apache.org/jira/browse/QPID-3437
 Project: Qpid
  Issue Type: Improvement
  Components: Documentation, Tools
Affects Versions: 0.10
Reporter: Pavel Moravec
Assignee: Nuno Santos
Priority: Minor
  Labels: patch
 Attachments: 
 0006-Bug-732369-Help-address-ambiguity-for-qpid-config.patch

   Original Estimate: 1h
  Remaining Estimate: 1h

 qpid-config --help prints confusing / ambiguity information how to use address
 option (-a user/password@broker). On first place it is specified without -a
 option (wrong), second place is not descriptive about address syntax:
 qpid-config --help
 Usage:  qpid-config [OPTIONS]
 ..
 ADDRESS syntax:
   [username/password@] hostname [:port]
   [username/password@] ip-address [:port]
 ..
   General Options:
 ..
 -a address, --broker-addr=address
 Address of qpidd broker
 Proposed patch removes the ADDRESS syntax part and adds the address syntax to 
 -a option (to follow structure of the help).

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



[jira] [Resolved] (QPID-3441) Correct spelling error in C++ broker's QMF schema

2011-08-22 Thread Ted Ross (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-3441?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ted Ross resolved QPID-3441.


   Resolution: Fixed
Fix Version/s: 0.13

 Correct spelling error in C++ broker's QMF schema
 -

 Key: QPID-3441
 URL: https://issues.apache.org/jira/browse/QPID-3441
 Project: Qpid
  Issue Type: Task
  Components: C++ Broker
Affects Versions: 0.10
Reporter: Paul Colby
Assignee: Ted Ross
Priority: Trivial
 Fix For: 0.13


 The word Infrastructure has been misspelled as Infrastucture (missing an 
 r) in cpp/src/qmf/org/apache/qpid/broker/Connection.cpp (line 150 for the 
 0.10 release).

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



Re: svn commit: r1160325 - /qpid/trunk/qpid/specs/management-schema.xml

2011-08-22 Thread Gordon Sim

On 08/22/2011 05:30 PM, tr...@apache.org wrote:

Author: tross
Date: Mon Aug 22 16:30:09 2011
New Revision: 1160325

URL: http://svn.apache.org/viewvc?rev=1160325view=rev
Log:
QPID-3441 - Correct spelling error in C++ broker's QMF schema

Modified:
 qpid/trunk/qpid/specs/management-schema.xml

Modified: qpid/trunk/qpid/specs/management-schema.xml
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/specs/management-schema.xml?rev=1160325r1=1160324r2=1160325view=diff
==
--- qpid/trunk/qpid/specs/management-schema.xml (original)
+++ qpid/trunk/qpid/specs/management-schema.xml Mon Aug 22 16:30:09 2011
@@ -254,7 +254,7 @@
  property name=vhostRef type=objId  references=Vhost access=RC index=y 
parentRef=y/
  property name=address  type=sstr   access=RC index=y/
  property name=incoming type=bool   access=RC/
-property name=SystemConnection   type=bool   access=RC desc=Infrastucture/ 
Inter-system connection (Cluster, Federation, ...)/
+property name=SystemConnection   type=bool   access=RC desc=Infrasrtucture/ 
Inter-system connection (Cluster, Federation, ...)/
  property name=userProxyAuth  type=bool   access=RO desc=Authorization 
to proxy for users not on broker/
  property name=federationLink type=bool   access=RO desc=Is this a 
federation link/
  property name=authIdentity   type=sstr   access=RO desc=authId of 
connection if authentication enabled/


I think you have swapped one type for another there ;-)

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



[jira] [Updated] (QPID-2901) A number of tests sporadically fails with 0.10 profiles on attempt to commit transaction due to exception in org.apache.qpid.transport.Session#sync

2011-08-22 Thread Alex Rudyy (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-2901?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Alex Rudyy updated QPID-2901:
-

  Description: 
The following stack trace is printed for failed commit

org.apache.qpid.transport.SessionException: ch=0 id=0 
ExecutionException(errorCode=INTERNAL_ERROR, commandId=13, 
description=Exception processing command: java.lang.RuntimeException: Failed to 
commit transaction)
at org.apache.qpid.transport.Session.sync(Session.java:807)
at org.apache.qpid.transport.Session.sync(Session.java:772)
at org.apache.qpid.transport.Session.invoke(Session.java:732)
at org.apache.qpid.transport.Session.invoke(Session.java:561)
at 
org.apache.qpid.transport.SessionInvoker.txCommit(SessionInvoker.java:148)
at 
org.apache.qpid.client.AMQSession_0_10.sendCommit(AMQSession_0_10.java:423)
at 
org.apache.qpid.client.AMQSession_0_10.commit(AMQSession_0_10.java:1008)
at 
org.apache.qpid.systest.TestingBaseCase$1.run(TestingBaseCase.java:105)
at java.lang.Thread.run(Thread.java:619)

This is the list of failing tests:
org.apache.qpid.systest.SubscriptionTest#testTopicDurableConsumerMessageAge
org.apache.qpid.systest.SubscriptionTest#testTopicDurableConsumerMessageCount
org.apache.qpid.systest.TopicTest#org.apache.qpid.systest.TopicTest 
org.apache.qpid.systest.TopicTest#testTopicDurableConsumerMessageAge
org.apache.qpid.systest.GlobalQueuesTest#testTopicDurableConsumerMessageAge
org.apache.qpid.systest.GlobalTopicsTest#testTopicDurableConsumerMessageSize
org.apache.qpid.systest.GlobalTopicsTest#testTopicDurableConsumerMessageAge

  was:
The following SCD tests (22 in total) all continuously fail on the java.0.10 
test profiles because the client was not disconnected:
org.apache.qpid.systest.GlobalQueuesTest#*
org.apache.qpid.systest.GlobalTopicsTest#*
org.apache.qpid.systest.MergeConfigurationTest#*
org.apache.qpid.systest.SubscriptionTest#*
org.apache.qpid.systest.TopicTest#*



org.apache.qpid.systest.GlobalQueuesTest (6)
TestName: testTopicConsumerMessageCount Duration: 13.105

Client was not disconnected


junit.framework.AssertionFailedError: Client 
was not disconnected
at 
org.apache.qpid.systest.TestingBaseCase.topicConsumer(TestingBaseCase.java:176)
at 
org.apache.qpid.systest.GlobalQueuesTest.testTopicConsumerMessageCount(GlobalQueuesTest.java:106)
at 
org.apache.qpid.test.utils.QpidBrokerTestCase.runBare(QpidBrokerTestCase.java:232)
at org.apache.qpid.test.utils.QpidTestCase.run(QpidTestCase.java:120)


TestName: testTopicConsumerMessageSize Duration: 11.096

Client was not disconnected


junit.framework.AssertionFailedError: Client 
was not disconnected
at 
org.apache.qpid.systest.TestingBaseCase.topicConsumer(TestingBaseCase.java:176)
at 
org.apache.qpid.systest.GlobalQueuesTest.testTopicConsumerMessageSize(GlobalQueuesTest.java:129)
at 
org.apache.qpid.test.utils.QpidBrokerTestCase.runBare(QpidBrokerTestCase.java:232)
at org.apache.qpid.test.utils.QpidTestCase.run(QpidTestCase.java:120)


TestName: testTopicConsumerMessageAge Duration: 11.019

Client was not disconnected


junit.framework.AssertionFailedError: Client 
was not disconnected
at 
org.apache.qpid.systest.TestingBaseCase.topicConsumer(TestingBaseCase.java:176)
at 
org.apache.qpid.systest.GlobalQueuesTest.testTopicConsumerMessageAge(GlobalQueuesTest.java:150)
at 
org.apache.qpid.test.utils.QpidBrokerTestCase.runBare(QpidBrokerTestCase.java:232)
at org.apache.qpid.test.utils.QpidTestCase.run(QpidTestCase.java:120)


TestName: testTopicDurableConsumerMessageCount Duration: 10.838

Client was not disconnected


junit.framework.AssertionFailedError: Client 
was not disconnected
at 
org.apache.qpid.systest.TestingBaseCase.topicConsumer(TestingBaseCase.java:176)
at 
org.apache.qpid.systest.GlobalQueuesTest.testTopicDurableConsumerMessageCount(GlobalQueuesTest.java:172)
at 
org.apache.qpid.test.utils.QpidBrokerTestCase.runBare(QpidBrokerTestCase.java:232)
at org.apache.qpid.test.utils.QpidTestCase.run(QpidTestCase.java:120)


TestName: testTopicDurableConsumerMessageSize Duration: 10.81

Client was not disconnected


junit.framework.AssertionFailedError: Client 
was not 

[RESULT] Re: [VOTE] Release 0.12

2011-08-22 Thread jross
Indeed!  Qpid 0.12 has been approved by vote for release.  There were ten 
votes in favor and none against.


The 0.12 bits are propagating to mirrors right now.  I'll update the 
website as soon as that's complete.


Thanks, everyone.
Justin

On Mon, 22 Aug 2011, Robbie Gemmell wrote:


Excellent. We should probably have (perhaps need?) a [RESULT] [VOTE]
mail for the record books.

Robbie

On 22 August 2011 15:55, Justin Ross jus...@redhat.com wrote:

Sorry, I'm responsible for the delay.  It's staged on apache dist, and I've
got the web site diff nearly ready.

Justin

On Mon, 22 Aug 2011, Robbie Gemmell wrote:


Bump. Any updates?

Robbie

On 16 August 2011 19:10, Justin Ross jr...@redhat.com wrote:


Last call.  I'll check tomorrow and consider this vote closed if there's
no
new discussion.

On Tue, 9 Aug 2011, Justin Ross wrote:


Howdy, all.  The last-minute blocker, QPID-3394, has been fixed, and
there
are no open blocker jiras against 0.12.  The proposed final RC, from
revision 1154981 of the 0.12 release branch, is available here:

 http://people.apache.org/~jross/qpid-0.12/

If you favor releasing this distribution as Qpid 0.12, vote +1.  If you
are aware of problems that ought to prevent this distribution from being
released, vote -1.

If the release proceeds, I'll take the final steps to publicize and
distribute the release.  That should take one or two days.

---
0.12 release page: https://cwiki.apache.org/qpid/012-release.html

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




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




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





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



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



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

[jira] [Assigned] (QPID-3442) qpid-tool schema descriptions repeated / duplicated

2011-08-22 Thread Ted Ross (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-3442?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ted Ross reassigned QPID-3442:
--

Assignee: Ted Ross

 qpid-tool schema descriptions repeated / duplicated
 ---

 Key: QPID-3442
 URL: https://issues.apache.org/jira/browse/QPID-3442
 Project: Qpid
  Issue Type: Bug
  Components: Tools
Affects Versions: 0.10
 Environment: Linux version 2.6.18-194.32.1.el5 
 (mockbu...@builder10.centos.org) (gcc version 4.1.2 20080704 (Red Hat 
 4.1.2-48)) #1 SMP Wed Jan 5 17:52:25 EST 2011
 Python 2.4.3
 Linux version 2.6.32-5-amd64 (Debian 2.6.32-35) (da...@debian.org) (gcc 
 version 4.3.5 (Debian 4.3.5-4) ) #1 SMP Tue Jun 14 09:42:28 UTC 2011
 Python 2.6.6
Reporter: Paul Colby
Assignee: Ted Ross
Priority: Minor

 It seems that when qpid-tool displays a schema element with no description, 
 it repeats the previous element's description (if any) instead.
 For example:
 {code}
 qpid: schema connection
 Object Class: Table Class: 
 org.apache.qpid.broker:connection:_data(1cb21a64-b290-c47d-40bc-5ea42cffd7c7)
 ElementType  Access  Unit  Notes  Description
 
 =
 vhostRef   reference ReadCreateindex
 addressshort-string  ReadCreateindex
 incoming   boolean   ReadCreate
 SystemConnection   boolean   ReadCreate   
 Infrastucture/ Inter-system connection (Cluster, Federation, ...)
 federationLink boolean   ReadOnly Is this a 
 federation link
 authIdentity   short-string  ReadOnly authId of 
 connection if authentication enabled
 remoteProcessName  long-string   ReadOnly  optional   Name of 
 executable running as remote client
 remotePid  uint32ReadOnly  optional   Process ID 
 of remote client
 remoteParentPiduint32ReadOnly  optional   Parent 
 Process ID of remote client
 shadow boolean   ReadOnly True for 
 shadow connections
 closingbooleanTrue for 
 shadow connections
 framesFromClient   uint64 True for 
 shadow connections
 framesToClient uint64 True for 
 shadow connections
 bytesFromClientuint64 True for 
 shadow connections
 bytesToClient  uint64 True for 
 shadow connections
 msgsFromClient uint64 True for 
 shadow connections
 msgsToClient   uint64 True for 
 shadow connections
   Method: close
 qpid:
 {code}
 If this example, you can see that the {{shadow}} element's description 
 ({{True for shadow connections}}) has been repeated for all elements after 
 it.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



[jira] [Resolved] (QPID-3442) qpid-tool schema descriptions repeated / duplicated

2011-08-22 Thread Ted Ross (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-3442?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ted Ross resolved QPID-3442.


   Resolution: Fixed
Fix Version/s: 0.13

 qpid-tool schema descriptions repeated / duplicated
 ---

 Key: QPID-3442
 URL: https://issues.apache.org/jira/browse/QPID-3442
 Project: Qpid
  Issue Type: Bug
  Components: Tools
Affects Versions: 0.10
 Environment: Linux version 2.6.18-194.32.1.el5 
 (mockbu...@builder10.centos.org) (gcc version 4.1.2 20080704 (Red Hat 
 4.1.2-48)) #1 SMP Wed Jan 5 17:52:25 EST 2011
 Python 2.4.3
 Linux version 2.6.32-5-amd64 (Debian 2.6.32-35) (da...@debian.org) (gcc 
 version 4.3.5 (Debian 4.3.5-4) ) #1 SMP Tue Jun 14 09:42:28 UTC 2011
 Python 2.6.6
Reporter: Paul Colby
Assignee: Ted Ross
Priority: Minor
 Fix For: 0.13


 It seems that when qpid-tool displays a schema element with no description, 
 it repeats the previous element's description (if any) instead.
 For example:
 {code}
 qpid: schema connection
 Object Class: Table Class: 
 org.apache.qpid.broker:connection:_data(1cb21a64-b290-c47d-40bc-5ea42cffd7c7)
 ElementType  Access  Unit  Notes  Description
 
 =
 vhostRef   reference ReadCreateindex
 addressshort-string  ReadCreateindex
 incoming   boolean   ReadCreate
 SystemConnection   boolean   ReadCreate   
 Infrastucture/ Inter-system connection (Cluster, Federation, ...)
 federationLink boolean   ReadOnly Is this a 
 federation link
 authIdentity   short-string  ReadOnly authId of 
 connection if authentication enabled
 remoteProcessName  long-string   ReadOnly  optional   Name of 
 executable running as remote client
 remotePid  uint32ReadOnly  optional   Process ID 
 of remote client
 remoteParentPiduint32ReadOnly  optional   Parent 
 Process ID of remote client
 shadow boolean   ReadOnly True for 
 shadow connections
 closingbooleanTrue for 
 shadow connections
 framesFromClient   uint64 True for 
 shadow connections
 framesToClient uint64 True for 
 shadow connections
 bytesFromClientuint64 True for 
 shadow connections
 bytesToClient  uint64 True for 
 shadow connections
 msgsFromClient uint64 True for 
 shadow connections
 msgsToClient   uint64 True for 
 shadow connections
   Method: close
 qpid:
 {code}
 If this example, you can see that the {{shadow}} element's description 
 ({{True for shadow connections}}) has been repeated for all elements after 
 it.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



Re: Review Request: Provides the EventNotifier type, plus example agent and unit test.

2011-08-22 Thread Steve Huston
FWIW, WSAPoll is not available on XP; it was introduced at Vista.

- Original Message -
From: Darryl Pierce dpie...@redhat.com
To: Ted Ross tr...@apache.org, Kenneth Giusti kgiu...@apache.org, 
michael goulish mgoul...@redhat.com
Cc: Andrew Stitcher astitc...@apache.org, Darryl Pierce 
dpie...@redhat.com, qpid dev@qpid.apache.org
Sent: Monday, August 22, 2011 10:37:02 AM
Subject: Re: Review Request: Provides the EventNotifier type, plus example 
agent and unit test.



 On 2011-08-19 21:47:12, Kenneth Giusti wrote:
  trunk/qpid/cpp/src/qmf/EventNotifierImpl.h, line 36
  https://reviews.apache.org/r/1557/diff/1/?file=33112#file33112line36
 
  May I make a suggestion - take a look at qpid::sys::IOHandle in the 
  qpid code.  This is an abstract class that hides the OS-specific bits 
  (fd/Socket) pretty well.  We could do something _like_ that here - add 
  another level of abstraction by having getHandle() return a class instead 
  of an 'int'.
  
  Or, perhaps not as pretty just typedef the return value using 
  different OS-specific conditional compile:
  
  #if defined(_WIN32)
  #include whatever windoze headers
  typedef whatever windoze stuff IOHandle;
  #else
  typedef int IOHandle;
  #endif
  
  then we define:
  
  IOHandle getHandle() const;
  
  
 
 
 Andrew Stitcher wrote:
 The trouble is copying IOHandle can't help you!
 
 Ultimately providing an OS specific handle from an OS independent 
 abstraction can't be done in an OS independent way. You always need to have a 
 particular API with an OS specific signature to return the OS specific handle 
 so you can use that handle together with your other application specific 
 handling, at the very least the operation of returning an OS handle from an 
 IOHandle is a non-portable part of the API.
 
 I suppose if that is the only non-portable part of the API then you're in 
 a better shape than before, and it may be possible to do something 
 clever(ish) with templates to avoid the actual header files being different 
 so that might be a direction:
 
 Something like:
 
 template typename OSHandle
 OSHandle getOSHandle(IOHandle);
 
 and then define
 
 template int getOSHandleint(IOHandle); for unix and
 template HANDLE getOSHandleHANDLE(IOHandle); for Windows.
 
 - Completely untested thoughts - worth practically what you paid for them.


There is a WSAPoll() API [1] that's available in Windows that takes a file 
handle ala poll().

[1] - http://msdn.microsoft.com/en-us/library/ms741669%28v=vs.85%29.aspx


- Darryl


---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/1557/#review1569
---


On 2011-08-19 18:30:06, Darryl Pierce wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://reviews.apache.org/r/1557/
 ---
 
 (Updated 2011-08-19 18:30:06)
 
 
 Review request for qpid, Kenneth Giusti, michael goulish, and Ted Ross.
 
 
 Summary
 ---
 
 Provides a new method for providing notification to an interested party when 
 new messages are received.
 
 The EventNotifier class can be associated with either a console or agent 
 session. The object provides a file descriptor which then becomes readable 
 when there are messages to be processed.
 
 This implementation only supports Posix. There is some work necessary to get 
 a Windows implementation in place.
 
 
 Diffs
 -
 
   trunk/qpid/cpp/bindings/qmf2/examples/cpp/Makefile.am 1159329 
   trunk/qpid/cpp/bindings/qmf2/examples/cpp/event_driven_list_agents.cpp 
 PRE-CREATION 
   trunk/qpid/cpp/include/qmf/AgentSession.h 1159329 
   trunk/qpid/cpp/include/qmf/ConsoleSession.h 1159329 
   trunk/qpid/cpp/include/qmf/EventNotifier.h PRE-CREATION 
   trunk/qpid/cpp/src/CMakeLists.txt 1159329 
   trunk/qpid/cpp/src/qmf.mk 1159329 
   trunk/qpid/cpp/src/qmf/AgentSession.cpp 1159329 
   trunk/qpid/cpp/src/qmf/AgentSessionImpl.h PRE-CREATION 
   trunk/qpid/cpp/src/qmf/ConsoleSession.cpp 1159329 
   trunk/qpid/cpp/src/qmf/ConsoleSessionImpl.h 1159329 
   trunk/qpid/cpp/src/qmf/EventNotifier.cpp PRE-CREATION 
   trunk/qpid/cpp/src/qmf/EventNotifierImpl.h PRE-CREATION 
   trunk/qpid/cpp/src/qmf/EventNotifierImpl.cpp PRE-CREATION 
   trunk/qpid/cpp/src/qmf/PosixEventNotifierImpl.cpp PRE-CREATION 
   trunk/qpid/cpp/src/tests/EventNotifierTest.cpp PRE-CREATION 
   trunk/qpid/cpp/src/tests/Makefile.am 1159329 
 
 Diff: https://reviews.apache.org/r/1557/diff
 
 
 Testing
 ---
 
 An example agent takes the existing list_agents and uses an EventNotifier to 
 respond to incoming messages rather than blocking on the 
 ConsoleSession.nextReceiver() API.
 
 A unit test verifies that the file 

Re: Review Request: Provides the EventNotifier type, plus example agent and unit test.

2011-08-22 Thread Darryl L. Pierce
On Mon, Aug 22, 2011 at 12:46:43PM -0500, Steve Huston wrote:
 FWIW, WSAPoll is not available on XP; it was introduced at Vista.

But the SOCKET type, which is used by WSAPoll as well as pre-existing
functions to retrieve data from a socket, does. And since what we're
looking for is what the appropriate return type on Windows should be,
I'm planning to do:

#ifdef WIN32
#include winsock2.h
typedef SOCKET QMF_IO_HANDLE;
#else
typedef int QMF_IO_HANDLE;
#endif

-- 
Darryl L. Pierce, Sr. Software Engineer @ Red Hat, Inc.
Delivering value year after year.
Red Hat ranks #1 in value among software vendors.
http://www.redhat.com/promo/vendor/



pgpTjyPzuYbEV.pgp
Description: PGP signature


Re: Review Request: Provides the EventNotifier type, plus example agent and unit test.

2011-08-22 Thread Andrew Stitcher
Sorry for replying to myself, but sometimes curiosity just gets the
better of me...

On Mon, 2011-08-22 at 16:45 -0400, Andrew Stitcher wrote:
 On Mon, 2011-08-22 at 16:37 -0400, Darryl L. Pierce wrote:
  On Mon, Aug 22, 2011 at 12:46:43PM -0500, Steve Huston wrote:
   FWIW, WSAPoll is not available on XP; it was introduced at Vista.
  
  But the SOCKET type, which is used by WSAPoll as well as pre-existing
  functions to retrieve data from a socket, does. And since what we're
  looking for is what the appropriate return type on Windows should be,
  I'm planning to do:
  
  #ifdef WIN32
  #include winsock2.h
  typedef SOCKET QMF_IO_HANDLE;
  #else
  typedef int QMF_IO_HANDLE;
  #endif
 
 Can you use the winsock SOCKET type as a general windows HANDLE? ie is
 it valid as an input to WaitForMultipleObjects()? If you can then SOCKET
 is good enough for integration into an applications main loop if not
 then it isn't sufficient.

After some googling it seems that Winsock SOCKETs are really not
equivalent in the way you want to Unix file descriptors and can't in
themselves be used in the same sort of places. But you can create a
windows HANDLE from a SOCKET by using WSAEventSelect() but you need to
know what event (read/write/etc.) you want the HANDLE triggered for.

In any event the simple #ifdef scheme above is not very useful in the
real world.

Andrew



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



Re: Review Request: Provides the EventNotifier type, plus example agent and unit test.

2011-08-22 Thread Darryl L. Pierce
On Mon, Aug 22, 2011 at 04:45:24PM -0400, Andrew Stitcher wrote:
  But the SOCKET type, which is used by WSAPoll as well as pre-existing
  functions to retrieve data from a socket, does. And since what we're
  looking for is what the appropriate return type on Windows should be,
  I'm planning to do:
  
  #ifdef WIN32
  #include winsock2.h
  typedef SOCKET QMF_IO_HANDLE;
  #else
  typedef int QMF_IO_HANDLE;
  #endif
 
 Can you use the winsock SOCKET type as a general windows HANDLE? ie is
 it valid as an input to WaitForMultipleObjects()? If you can then SOCKET
 is good enough for integration into an applications main loop if not
 then it isn't sufficient.

SOCKET is the first argument used in the recv() function [1] which can
be used to do just that (use MSG_WAITALL with a buffer size of 1 should
block until the EventNotifier pushes a byte into the socket if none is
there). And on Vista and later SOCKET is an element of the struct passed
into WSAPoll().

Granted, looking on the MSDN page there's a two-year old report that, on
WinXP, MSG_WAITALL seems to not be supported. I'll check and ensure that
it's working on XP.

[1] - http://msdn.microsoft.com/en-us/library/ms740121%28v=VS.85%29.aspx

-- 
Darryl L. Pierce, Sr. Software Engineer @ Red Hat, Inc.
Delivering value year after year.
Red Hat ranks #1 in value among software vendors.
http://www.redhat.com/promo/vendor/



pgpB2Q7XG2BWD.pgp
Description: PGP signature


Re: Review Request: Provides the EventNotifier type, plus example agent and unit test.

2011-08-22 Thread Darryl L. Pierce
On Mon, Aug 22, 2011 at 04:54:46PM -0400, Andrew Stitcher wrote:
 After some googling it seems that Winsock SOCKETs are really not
 equivalent in the way you want to Unix file descriptors and can't in
 themselves be used in the same sort of places. But you can create a
 windows HANDLE from a SOCKET by using WSAEventSelect() but you need to
 know what event (read/write/etc.) you want the HANDLE triggered for.
 
 In any event the simple #ifdef scheme above is not very useful in the
 real world.

So I guess what we're looking at are possibly two different things. I'm
looking at EventNotifier to, in the getHandle() method, return something
that will work like a file descriptor but on Windows. Is a SOCKET +
recv() combination not going to serve that purpose? I'll defer to
someone with more Windows experience on this. But to me it seems they
should provide the same type of functionality as an FD + polls() or
select().

-- 
Darryl L. Pierce, Sr. Software Engineer @ Red Hat, Inc.
Delivering value year after year.
Red Hat ranks #1 in value among software vendors.
http://www.redhat.com/promo/vendor/



pgpkLSv47sUIu.pgp
Description: PGP signature


Re: Review Request: Provides the EventNotifier type, plus example agent and unit test.

2011-08-22 Thread Steve Huston
SOCKET + recv() is not a general notifier mechanism.

WSAPoll is not available on XP, so that's out.

SOCKET does work with select(). As Andrew noted, it's not directly usable in 
WaitForMultipleObjects().

What do you expect that the caller will need (or want) to do with this thing?

-Steve

- Original Message -
From: Darryl L. Pierce dpie...@redhat.com
To: Andrew Stitcher astitc...@redhat.com
Cc: dev@qpid.apache.org, Steve Huston shus...@riverace.com, Ted Ross 
tr...@apache.org, Kenneth Giusti kgiu...@apache.org, michael goulish 
mgoul...@redhat.com
Sent: Monday, August 22, 2011 5:09:45 PM
Subject: Re: Review Request: Provides the EventNotifier type, plus example 
agent and unit test.

On Mon, Aug 22, 2011 at 04:54:46PM -0400, Andrew Stitcher wrote:
 After some googling it seems that Winsock SOCKETs are really not
 equivalent in the way you want to Unix file descriptors and can't in
 themselves be used in the same sort of places. But you can create a
 windows HANDLE from a SOCKET by using WSAEventSelect() but you need to
 know what event (read/write/etc.) you want the HANDLE triggered for.
 
 In any event the simple #ifdef scheme above is not very useful in the
 real world.

So I guess what we're looking at are possibly two different things. I'm
looking at EventNotifier to, in the getHandle() method, return something
that will work like a file descriptor but on Windows. Is a SOCKET +
recv() combination not going to serve that purpose? I'll defer to
someone with more Windows experience on this. But to me it seems they
should provide the same type of functionality as an FD + polls() or
select().

-- 
Darryl L. Pierce, Sr. Software Engineer @ Red Hat, Inc.
Delivering value year after year.
Red Hat ranks #1 in value among software vendors.
http://www.redhat.com/promo/vendor/


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



[jira] [Commented] (QPID-3447) Creating invalid federation link causes file descriptor leak

2011-08-22 Thread Andrew Stitcher (JIRA)

[ 
https://issues.apache.org/jira/browse/QPID-3447?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13089061#comment-13089061
 ] 

Andrew Stitcher commented on QPID-3447:
---

Note the attached fix is not the fix that was applied as it only ameliorates 
the symptom of running out of file handles rather than fixing the underlying 
Socket leak.

 Creating invalid federation link causes file descriptor leak
 

 Key: QPID-3447
 URL: https://issues.apache.org/jira/browse/QPID-3447
 Project: Qpid
  Issue Type: Bug
  Components: C++ Broker
Affects Versions: 0.10
Reporter: Pavel Moravec
Assignee: Andrew Stitcher
  Labels: patch
 Fix For: 0.13

 Attachments: fd_leak.patch

   Original Estimate: 2h
  Remaining Estimate: 2h

 Specifying invalid IP address of destination broker causes repeatable file
 descriptor leak.
 Steps to Reproduce:
 1. qpid-route -v link add localhost 10:17700
 (alternativelly, create a dynamic route likeqpid-route dynamic add 
 localhost 10:17700 amq.direct )
 2. lsof -p $(pgrep qpidd) | grep can't identify protocol
 Since then, lsof will show can't identify protocol file descriptors whose 
 number is increasing in time.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira



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



Re: Review Request: Provides the EventNotifier type, plus example agent and unit test.

2011-08-22 Thread Andrew Stitcher
On Mon, 2011-08-22 at 17:09 -0400, Darryl L. Pierce wrote:
 ...
 
 So I guess what we're looking at are possibly two different things. I'm
 looking at EventNotifier to, in the getHandle() method, return something
 that will work like a file descriptor but on Windows.

The problem is that the closest thing to a Unix file descriptor on
Windows is a HANDLE. But SOCKETs are not HANDLEs.

If all your application wants to do is receive data from sockets and
multiplex that then a windows SOCKET is fine.

But given you're writing a library which will be used by some arbitrary
application I don't see how you can assert that the only thing this
unknown application will be allowed to do in parallel in it's main loop
with qmf is other network operations.

Andrew



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



[jira] [Updated] (QPID-3445) Assertion, and unexpected exception in qpid::messaging::decode

2011-08-22 Thread Paul Colby (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-3445?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Paul Colby updated QPID-3445:
-

Attachment: QPID-3445.diff

Attached a patch including the suggestions above, and equivalent changes to 
{{qpid::framing::List::decode}} too.

Patch is against http://svn.apache.org/repos/asf/qpid/trunk at revision 1160478.

 Assertion, and unexpected exception in qpid::messaging::decode
 --

 Key: QPID-3445
 URL: https://issues.apache.org/jira/browse/QPID-3445
 Project: Qpid
  Issue Type: Bug
  Components: C++ Client
Affects Versions: 0.10, Future
Reporter: Paul Colby
Assignee: Gordon Sim
 Attachments: QPID-3445.diff


 Although this is technically two different bug reports, they are very closely 
 related, and should probably be tested / fixed together, so I'm reporting 
 them both here... hope that's okay ;)
 Both {{qpid::messaging::decode}} functions can assert, or throw an unexpected 
 {{qpid::framing::IllegalArgumentException}} on invalid input.
 Consider the following code fragment:
 {code}
 const qpid::messaging::Message message(foo);
 try {
 qpid::types::Variant::Map map;
 qpid::messaging::decode(message, map); // asserts in 
 qpid::framing::Buffer::getLong
 } catch (const qpid::messaging::EncodingException ex) {
 std::cout  qpid::messaging::EncodingException   ex.what()  
 std::endl;
 }
 std::cout  done  std::endl; // never reached.
 {code}
 In that example, the {{qpid::messaging::decode}} function will result in an 
 assertion in {{qpid::framing::Buffer::getLong}} as that function assumes / 
 requires the buffer to be at least 4 bytes.  Clearly in this case the decode 
 should fail, but ideally it should fail in a catchable way, not an assertion.
 I would think the right solution would be to add a minimum size check to the 
 {{qpid::framing::FieldTable::decode}} function.  But it could also be solved 
 by adding the size check to the {{qpid::messaging::decode}} and/or  
 {{qpid::framing::Buffer::getLong}} functions.
 As a temporary workaround, client code can add a size check before the 
 {{decode}} call, like:
 {code}
 const qpid::messaging::Message message(foo);
 try {
 if (message.getContent().size()  4)
 throw qpid::messaging::EncodingException(message too small);
 qpid::types::Variant::Map map;
 qpid::messaging::decode(message, map);
 } catch (const qpid::messaging::EncodingException ex) {
 std::cout  qpid::messaging::EncodingException   ex.what()  
 std::endl;
 }
 std::cout  done  std::endl;
 {code}
 But now if we extend the message a little, so that it is at least 4 bytes 
 long like so:
 {code}
 const qpid::messaging::Message message(\0\0\0\7foo, 7);
 try {
 if (message.getContent().size()  4)
 throw qpid::messaging::EncodingException(message too small);
 qpid::types::Variant::Map map;
 qpid::messaging::decode(message, map);
 } catch (const qpid::messaging::EncodingException ex) {
 std::cout  qpid::messaging::EncodingException   ex.what()  
 std::endl;
 }
 std::cout  done  std::endl; // never reached.
 {code}
 Then we run into a second problem.  In that case, the {{done}} line is 
 still not reached, because a {{qpid::framing::IllegalArgumentException}} is 
 thrown in {{qpid::framing::FieldTable::decode}} with message {{Not enough 
 data for field table.}}.  However, this exception type is not listed in the 
 documentation for the {{qpid::messaging::decode}} function - the 
 documentation only mentions {{EncodingException}}, and the two share no 
 common ancestry until right back at {{std::exception}}.
 Although one solution might be just to add {{IllegalArgumentException}} to 
 the documentation, I suspect a preferable solution would be to catch the 
 {{IllegalArgumentException}} in {{qpid::messaging::decode}} and re-throw it 
 as an {{EncodingException}} like:
 {code}
  static void decode(const Message message, typename C::ObjectType 
 object, const std::string encoding)
  {
  checkEncoding(message, encoding);
 -C::decode(message.getContent(), object);
 +try {
 +C::decode(message.getContent(), object);
 +} catch (const qpid::Exception ex) {
 +throw EncodingException(ex.what());
 +}
  }
 {code}
 A quick code review shows that {{qpid::framing::FieldTable::decode}} (and 
 thus {{qpid::messaging::decode}}) can also throw the {{OutOfBounds}} 
 exception, which, like {{IllegalArgumentException}}, descends from 
 {{qpid::Exception}}.  So a final solution might look something like:
 {code}
 Index: framing/FieldTable.cpp
 ===
 --- framing/FieldTable.cpp  (revision 1160172)
 +++ framing/FieldTable.cpp  (working copy)
 @@ -198,10 +198,12 @@
  void