Re: [VOTE] Release 0.12
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).
--- 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
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
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
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).
[ 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
[ 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
[ 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
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
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
[ 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
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
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
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
[ 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).
[ 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).
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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.
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
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
[ 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.
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
[ 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
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
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
[ 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
[ 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
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
[ 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
[ 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
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
[ 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
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
[ 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
[ 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.
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.
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.
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.
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.
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.
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
[ 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.
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
[ 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