[jira] [Commented] (DISPATCH-1656) Allow user-configured connection properties in the Open performative

2020-05-14 Thread Keith Wall (Jira)


[ 
https://issues.apache.org/jira/browse/DISPATCH-1656?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17107415#comment-17107415
 ] 

Keith Wall commented on DISPATCH-1656:
--

As the AMQP open field properties is of type fields[1]  it feels odd that the 
router configuration property  restrict it to only string pairings.   Would it 
be possible if the openProperties string was stringified JSON that must be a 
map?  That way the user would be free to make use of other types. It  would 
mean you could lean on the well defined JSON parsing rule, escape syntax 
(rather than having Dispatch having special parsing rules for this 
configuration item).

That said, I am anticipating the EnMasse use-case will be name/string value 
pairs.

[~lulf] any thoughts?

[1] 
http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-transport-v1.0-os.html#type-open

> Allow user-configured connection properties in the Open performative
> 
>
> Key: DISPATCH-1656
> URL: https://issues.apache.org/jira/browse/DISPATCH-1656
> Project: Qpid Dispatch
>  Issue Type: New Feature
>  Components: Router Node
>Reporter: Ken Giusti
>Assignee: Ken Giusti
>Priority: Major
> Fix For: 1.13.0
>
>
> This feature would add a new "openProperties" attribute to the 
> org.apache.qpid.dispatch.connector and org.apache.qpid.dispatch.listener 
> management entities. This new attribute is type string and is optional.
> If supplied it will consist of a series of one or more field entries 
> separated by commas. A field entry is text in the form "key: value", where 
> "key" that can be encoded as a valid AMQP 1.0 Symbol type. Value will be 
> encoded as an AMQP 1.0 String type.
> The key or value text may contain spaces, colons or commas but must be 
> enclosed in single quotes (see example below) if it does.
> Duplicate keys are NOT allowed.
> Key values that start with *qd.* or *x-opt-qd.* are reserved and must not be 
> used.
> In addition, the following keys are reserved and must not be used:
> product
>  version
>  failover-server-list
>  network-host
>  port
>  scheme
>  hostname
> The openProperties keys and values will be merged into the connection 
> properties field of the outgoing Open performative when establishing or 
> accepting connections.
> The openProperties attribute is NOT allowed on connector or listener entities 
> with roles of either "inter-router" or "edge".
> The openProperties attribute is NOT allowed on listener entities than enable 
> http, i.e. http: true.
> Example:
> {{connector {}}
>  {{   name: broker}}
>  {{   role: route-container}}
>  {{   host: 127.0.0.1}}
>  {{   port: 22180}}
>  {{   saslMechanisms: ANONYMOUS}}
>  {{   *openProperties: "foo: bar,baz:foo, bar: 'Hello: you big, wonderful 
> world!'"*}}
>  {{}}}
>  
> The resulting connection properties in the outgoing Open performative would 
> include the following map entries:
> {{Symbol(foo): String(bar),}}
>  {{Symbol(baz): String(foo),}}
>  {{Symbol(bar): String(Hello: you big, wonderful world!)}}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Comment Edited] (DISPATCH-1656) Allow user-configured connection properties in the Open performative

2020-05-14 Thread Keith Wall (Jira)


[ 
https://issues.apache.org/jira/browse/DISPATCH-1656?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17107415#comment-17107415
 ] 

Keith Wall edited comment on DISPATCH-1656 at 5/14/20, 3:40 PM:


As the AMQP open field properties is of type fields[1]  it feels odd that the 
router configuration property  restrict it to only string pairings.   Would it 
be possible if the openProperties string was stringified JSON that must be a 
map?  That way the user would be free to make use of other types. It  would 
mean you could lean on the well defined JSON parsing rule, escape syntax 
(rather than having Dispatch having special parsing rules for this 
configuration item).

That said, I am anticipating the EnMasse use-case will be name/string value 
pairs, so the proposed solution would suffice.

[~lulf] any thoughts?

[1] 
[http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-transport-v1.0-os.html#type-open]


was (Author: k-wall):
As the AMQP open field properties is of type fields[1]  it feels odd that the 
router configuration property  restrict it to only string pairings.   Would it 
be possible if the openProperties string was stringified JSON that must be a 
map?  That way the user would be free to make use of other types. It  would 
mean you could lean on the well defined JSON parsing rule, escape syntax 
(rather than having Dispatch having special parsing rules for this 
configuration item).

That said, I am anticipating the EnMasse use-case will be name/string value 
pairs.

[~lulf] any thoughts?

[1] 
http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-transport-v1.0-os.html#type-open

> Allow user-configured connection properties in the Open performative
> 
>
> Key: DISPATCH-1656
> URL: https://issues.apache.org/jira/browse/DISPATCH-1656
> Project: Qpid Dispatch
>  Issue Type: New Feature
>  Components: Router Node
>Reporter: Ken Giusti
>Assignee: Ken Giusti
>Priority: Major
> Fix For: 1.13.0
>
>
> This feature would add a new "openProperties" attribute to the 
> org.apache.qpid.dispatch.connector and org.apache.qpid.dispatch.listener 
> management entities. This new attribute is type string and is optional.
> If supplied it will consist of a series of one or more field entries 
> separated by commas. A field entry is text in the form "key: value", where 
> "key" that can be encoded as a valid AMQP 1.0 Symbol type. Value will be 
> encoded as an AMQP 1.0 String type.
> The key or value text may contain spaces, colons or commas but must be 
> enclosed in single quotes (see example below) if it does.
> Duplicate keys are NOT allowed.
> Key values that start with *qd.* or *x-opt-qd.* are reserved and must not be 
> used.
> In addition, the following keys are reserved and must not be used:
> product
>  version
>  failover-server-list
>  network-host
>  port
>  scheme
>  hostname
> The openProperties keys and values will be merged into the connection 
> properties field of the outgoing Open performative when establishing or 
> accepting connections.
> The openProperties attribute is NOT allowed on connector or listener entities 
> with roles of either "inter-router" or "edge".
> The openProperties attribute is NOT allowed on listener entities than enable 
> http, i.e. http: true.
> Example:
> {{connector {}}
>  {{   name: broker}}
>  {{   role: route-container}}
>  {{   host: 127.0.0.1}}
>  {{   port: 22180}}
>  {{   saslMechanisms: ANONYMOUS}}
>  {{   *openProperties: "foo: bar,baz:foo, bar: 'Hello: you big, wonderful 
> world!'"*}}
>  {{}}}
>  
> The resulting connection properties in the outgoing Open performative would 
> include the following map entries:
> {{Symbol(foo): String(bar),}}
>  {{Symbol(baz): String(foo),}}
>  {{Symbol(bar): String(Hello: you big, wonderful world!)}}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Commented] (DISPATCH-1635) Allow listener to specify an optional request for TLS client auth

2020-04-29 Thread Keith Wall (Jira)


[ 
https://issues.apache.org/jira/browse/DISPATCH-1635?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17095331#comment-17095331
 ] 

Keith Wall commented on DISPATCH-1635:
--

I *think* delivering this might invoke a Proton API change 
(pn_ssl_domain_set_peer_authentication) as it currently has responsibilities 
for setting the client CA and putting OpenSSL into SSL_VERIFY_PEER | 
SSL_VERIFY_FAIL_IF_NO_PEER_CERT mode.

> Allow listener to specify an optional request for TLS client auth
> -
>
> Key: DISPATCH-1635
> URL: https://issues.apache.org/jira/browse/DISPATCH-1635
> Project: Qpid Dispatch
>  Issue Type: Improvement
>Reporter: Keith Wall
>Priority: Minor
>
> Dispatch Router currently allows the user to configure a *mandatory 
> requirement* that TLS client authentication must be used for connections to a 
> TLS port.
> For some use-cases it is desirable for some clients to use TLS client-auth 
> and some clients to authenticate via other means. In Java parlance this mode 
> of operation is describing as 
> [Wanting|https://docs.oracle.com/en/java/javase/11/docs/api/java.base/javax/net/ssl/SSLServerSocket.html#setWantClientAuth(boolean)]
>  TLS client auth rather than 
> [Needing|https://docs.oracle.com/en/java/javase/11/docs/api/java.base/javax/net/ssl/SSLServerSocket.html#setNeedClientAuth(boolean)].
> It would be convenient if the configuration of TLS client auth in Dispatch 
> Router permitted the Want semantics.
> Currently with Dispatch Router to achieve this you need to configure two TLS 
> listeners, one with authenticatePeer: yes set true and the other not.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Created] (DISPATCH-1635) Allow listener to specify an optional request for TLS client auth

2020-04-29 Thread Keith Wall (Jira)
Keith Wall created DISPATCH-1635:


 Summary: Allow listener to specify an optional request for TLS 
client auth
 Key: DISPATCH-1635
 URL: https://issues.apache.org/jira/browse/DISPATCH-1635
 Project: Qpid Dispatch
  Issue Type: Improvement
Reporter: Keith Wall


Dispatch Router currently allows the user to configure a *mandatory 
requirement* that TLS client authentication must be used for connections to a 
TLS port.

For some use-cases it is desirable for some clients to use TLS client-auth and 
some clients to authenticate via other means. In Java parlance this mode of 
operation is describing as 
[Wanting|https://docs.oracle.com/en/java/javase/11/docs/api/java.base/javax/net/ssl/SSLServerSocket.html#setWantClientAuth(boolean)]
 TLS client auth rather than 
[Needing|https://docs.oracle.com/en/java/javase/11/docs/api/java.base/javax/net/ssl/SSLServerSocket.html#setNeedClientAuth(boolean)].

It would be convenient if the configuration of TLS client auth in Dispatch 
Router permitted the Want semantics.

Currently with Dispatch Router to achieve this you need to configure two TLS 
listeners, one with authenticatePeer: yes set true and the other not.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Comment Edited] (DISPATCH-1634) Expose client X509 certificate identity (TLS client auth) to the auth service delegate

2020-04-29 Thread Keith Wall (Jira)


[ 
https://issues.apache.org/jira/browse/DISPATCH-1634?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17095275#comment-17095275
 ] 

Keith Wall edited comment on DISPATCH-1634 at 4/29/20, 9:20 AM:


In the case where the SASL EXTERNAL mechanism is selected by the client, the 
router's authplugin SASL relay should be able to prepare to rewrite the 
authorization identity within response of the SASL-INIT (or SASL-RESPONSE) and 
insert the identity from the client cert..

The SASL EXTERNAL specification[1] allows the for the authorization identity to 
be empty (the client is requesting to act as the identity the server has 
associated with the client's credentials) or non empty (the client is 
requesting to act as the identity represented by the string).  In the latter 
case, if the identity provided by the authorization string doesn't match the  
identity from the client cert, as the Dispatch Router has no means to verify 
that user is entitled to impersonate that user, it should preemptively end the 
SASL negotiation negatively.

[1] https://tools.ietf.org/html/rfc4422#page-29





was (Author: k-wall):
In the case where the SASL EXTERNAL mechanism is selected by the client, the 
router's authplugin SASL relay should be able to prepare to rewrite the 
authorization identity within response of the SASL-INIT (or SASL-RESPONSE) and 
insert the identity from the client cert..

The SASL EXTERNAL specification[1] allows the for the authorization identity to 
be empty (the client is requesting to act as the identity the server has 
associated with the client's credentials) or non empty (the client is 
requesting to act as the identity represented by the string).  In the latter 
case, if the identity provided by the authorization string doesn't match the  
identity from the client cert, as the router has no means to verify that user 
is entitled to impersonate that user, it should end the SASL negotiation 
negatively.

[1] https://tools.ietf.org/html/rfc4422#page-29




> Expose client X509 certificate identity (TLS client auth) to the auth service 
> delegate
> --
>
> Key: DISPATCH-1634
> URL: https://issues.apache.org/jira/browse/DISPATCH-1634
> Project: Qpid Dispatch
>  Issue Type: Improvement
>Reporter: Keith Wall
>Priority: Major
>
> For the use-case where Dispatch Router is configured to require the client 
> use TLS client auth (authenticatePeer: yes) and the authServicePlugin is in 
> use, there needs to be a mechanism to expose the X509 certificate identity of 
> the client to the auth service so it can be used to control the`address-authz 
> response. 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Comment Edited] (DISPATCH-1634) Expose client X509 certificate identity (TLS client auth) to the auth service delegate

2020-04-29 Thread Keith Wall (Jira)


[ 
https://issues.apache.org/jira/browse/DISPATCH-1634?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17095275#comment-17095275
 ] 

Keith Wall edited comment on DISPATCH-1634 at 4/29/20, 9:18 AM:


In the case where the SASL EXTERNAL mechanism is selected by the client, the 
router's authplugin SASL relay should be able to prepare to rewrite the 
authorization identity within response of the SASL-INIT (or SASL-RESPONSE) and 
insert the identity from the client cert..

The SASL EXTERNAL specification[1] allows the for the authorization identity to 
be empty (the client is requesting to act as the identity the server has 
associated with the client's credentials) or non empty (the client is 
requesting to act as the identity represented by the string).  In the latter 
case, if the identity provided by the authorization string doesn't match the  
identity from the client cert, as the router has no means to verify that user 
is entitled to impersonate that user, it should end the SASL negotiation 
negatively.

[1] https://tools.ietf.org/html/rfc4422#page-29





was (Author: k-wall):
In the case where the SASL EXTERNAL mechanism is selected by the client, the 
router's authplugin SASL relay should be able to prepare to rewrite the 
authorization identity within response of the SASL-INIT (or SASL-RESPONSE) and 
insert the identity from the client cert..

The SASL EXTERNAL specification[1] allows the for the authorization identity to 
be empty (the client is requesting to act as the identity the server has 
associated with the client's credentials) or non empty (the client is 
requesting to act as the identity represented by the string).  In the latter 
case, if the identity provided by the authorization string doesn't match the  
identity from the client cert, as the router has no means to verify that user 
is entitled to impersonate that user, it should end the SASL negotiation 
negatively.

[1] https://tools.ietf.org/html/rfc4422#page-29






If the authenticated identity that the client supplies is identical to the one 
we would form from the client cert, then there is no need to reject... but 
otherwise (absent any other form of verification/validation) it's a way of 
trying to impersonate and potentially a security hole

> Expose client X509 certificate identity (TLS client auth) to the auth service 
> delegate
> --
>
> Key: DISPATCH-1634
> URL: https://issues.apache.org/jira/browse/DISPATCH-1634
> Project: Qpid Dispatch
>  Issue Type: Improvement
>Reporter: Keith Wall
>Priority: Major
>
> For the use-case where Dispatch Router is configured to require the client 
> use TLS client auth (authenticatePeer: yes) and the authServicePlugin is in 
> use, there needs to be a mechanism to expose the X509 certificate identity of 
> the client to the auth service so it can be used to control the`address-authz 
> response. 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Commented] (DISPATCH-1634) Expose client X509 certificate identity (TLS client auth) to the auth service delegate

2020-04-29 Thread Keith Wall (Jira)


[ 
https://issues.apache.org/jira/browse/DISPATCH-1634?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17095275#comment-17095275
 ] 

Keith Wall commented on DISPATCH-1634:
--

In the case where the SASL EXTERNAL mechanism is selected by the client, the 
router's authplugin SASL relay should be able to prepare to rewrite the 
authorization identity within response of the SASL-INIT (or SASL-RESPONSE) and 
insert the identity from the client cert..

The SASL EXTERNAL specification[1] allows the for the authorization identity to 
be empty (the client is requesting to act as the identity the server has 
associated with the client's credentials) or non empty (the client is 
requesting to act as the identity represented by the string).  In the latter 
case, if the identity provided by the authorization string doesn't match the  
identity from the client cert, as the router has no means to verify that user 
is entitled to impersonate that user, it should end the SASL negotiation 
negatively.

[1] https://tools.ietf.org/html/rfc4422#page-29






If the authenticated identity that the client supplies is identical to the one 
we would form from the client cert, then there is no need to reject... but 
otherwise (absent any other form of verification/validation) it's a way of 
trying to impersonate and potentially a security hole

> Expose client X509 certificate identity (TLS client auth) to the auth service 
> delegate
> --
>
> Key: DISPATCH-1634
> URL: https://issues.apache.org/jira/browse/DISPATCH-1634
> Project: Qpid Dispatch
>  Issue Type: Improvement
>Reporter: Keith Wall
>Priority: Major
>
> For the use-case where Dispatch Router is configured to require the client 
> use TLS client auth (authenticatePeer: yes) and the authServicePlugin is in 
> use, there needs to be a mechanism to expose the X509 certificate identity of 
> the client to the auth service so it can be used to control the`address-authz 
> response. 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Created] (DISPATCH-1634) Expose client X509 certificate identity (TLS client auth) to the auth service delegate

2020-04-29 Thread Keith Wall (Jira)
Keith Wall created DISPATCH-1634:


 Summary: Expose client X509 certificate identity (TLS client auth) 
to the auth service delegate
 Key: DISPATCH-1634
 URL: https://issues.apache.org/jira/browse/DISPATCH-1634
 Project: Qpid Dispatch
  Issue Type: Improvement
Reporter: Keith Wall


For the use-case where Dispatch Router is configured to require the client use 
TLS client auth (authenticatePeer: yes) and the authServicePlugin is in use, 
there needs to be a mechanism to expose the X509 certificate identity of the 
client to the auth service so it can be used to control the`address-authz 
response. 






--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Commented] (DISPATCH-1439) Expose create time/last transfer time through the Connection management entity

2019-10-29 Thread Keith Wall (Jira)


[ 
https://issues.apache.org/jira/browse/DISPATCH-1439?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16962089#comment-16962089
 ] 

Keith Wall commented on DISPATCH-1439:
--

[~tross] seconds since connection creation and seconds since last transfer 
would suffice. As the caller, we could use the seconds since values back into 
absolute time values, if we wished. [~lulf]?  For background - the initial use 
case would be as connection statistics to be displayed in a Console 
application. 

> Expose create time/last transfer time through the Connection management entity
> --
>
> Key: DISPATCH-1439
> URL: https://issues.apache.org/jira/browse/DISPATCH-1439
> Project: Qpid Dispatch
>  Issue Type: Improvement
>Reporter: Keith Wall
>Priority: Major
>
> Having these two additional attributes:
> * connection create time
> * connection last transfer time
> would aid fault finding activities.
> It would also serve as useful input to external tooling wishing to say, 
> balance connections to a router network.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Commented] (DISPATCH-1409) Update qdstat -l output to include the current credit

2019-10-28 Thread Keith Wall (Jira)


[ 
https://issues.apache.org/jira/browse/DISPATCH-1409?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16960877#comment-16960877
 ] 

Keith Wall commented on DISPATCH-1409:
--

I think a zero credit reached timestamp would need to be exposed.  That way, 
tools consuming the output can distinguish those links that have languished 
with zero credit for a long time and may signify a problem in either 
application or router network itself.

> Update qdstat -l output to include the current credit
> -
>
> Key: DISPATCH-1409
> URL: https://issues.apache.org/jira/browse/DISPATCH-1409
> Project: Qpid Dispatch
>  Issue Type: Improvement
>  Components: Router Node, Tools
>Affects Versions: 1.8.0
>Reporter: Ken Giusti
>Priority: Major
>  Labels: troubleshooting
>
> The (cap) field in the output of qdstat -l shows the configured capacity for 
> the link, not the current credit available/outstanding.
> In order to easily detect credit stalls it would be useful to provide the 
> current credit for the link.  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Created] (DISPATCH-1439) Expose create time/last transfer time through the Connection management entity

2019-10-04 Thread Keith Wall (Jira)
Keith Wall created DISPATCH-1439:


 Summary: Expose create time/last transfer time through the 
Connection management entity
 Key: DISPATCH-1439
 URL: https://issues.apache.org/jira/browse/DISPATCH-1439
 Project: Qpid Dispatch
  Issue Type: Improvement
Reporter: Keith Wall


Having these two additional attributes:

* connection create time
* connection last transfer time

would aid fault finding activities.

It would also serve as useful input to external tooling wishing to say, balance 
connections to a router network.




--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Comment Edited] (DISPATCH-1414) Include source/target address in the policy DENY info messages

2019-09-10 Thread Keith Wall (Jira)


[ 
https://issues.apache.org/jira/browse/DISPATCH-1414?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16926379#comment-16926379
 ] 

Keith Wall edited comment on DISPATCH-1414 at 9/10/19 7:24 AM:
---

Sorry - my error.  I thought that '' was the link name.  I see now that I 
am wrong.  It would of course, be nice to see the link name in the message too 
:).


was (Author: k-wall):
Sorry - my error.  I thought that '' was the link name.  I see now that I 
am wrong,

> Include source/target address in the policy DENY info messages
> --
>
> Key: DISPATCH-1414
> URL: https://issues.apache.org/jira/browse/DISPATCH-1414
> Project: Qpid Dispatch
>  Issue Type: Improvement
>Reporter: Keith Wall
>Assignee: Chuck Rolke
>Priority: Major
> Attachments: DISPATCH-1414.txt
>
>
> The policy DENY info message currently omits the source/target address.  This 
> impedes the diagnosis of policy misconfigurations.  Currently the message 
> looks like this:
> {{POLICY (info) [1228]: DENY AMQP Attach sender link '' for user 'u', 
> rhost '10.128.6.1', vhost 'vv' based on link target name}}



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Commented] (DISPATCH-1414) Include source/target address in the policy DENY info messages

2019-09-10 Thread Keith Wall (Jira)


[ 
https://issues.apache.org/jira/browse/DISPATCH-1414?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16926379#comment-16926379
 ] 

Keith Wall commented on DISPATCH-1414:
--

Sorry - my error.  I thought that '' was the link name.  I see now that I 
am wrong,

> Include source/target address in the policy DENY info messages
> --
>
> Key: DISPATCH-1414
> URL: https://issues.apache.org/jira/browse/DISPATCH-1414
> Project: Qpid Dispatch
>  Issue Type: Improvement
>Reporter: Keith Wall
>Assignee: Chuck Rolke
>Priority: Major
> Attachments: DISPATCH-1414.txt
>
>
> The policy DENY info message currently omits the source/target address.  This 
> impedes the diagnosis of policy misconfigurations.  Currently the message 
> looks like this:
> {{POLICY (info) [1228]: DENY AMQP Attach sender link '' for user 'u', 
> rhost '10.128.6.1', vhost 'vv' based on link target name}}



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Created] (DISPATCH-1414) Include source/target address in the policy DENY info messages

2019-09-09 Thread Keith Wall (Jira)
Keith Wall created DISPATCH-1414:


 Summary: Include source/target address in the policy DENY info 
messages
 Key: DISPATCH-1414
 URL: https://issues.apache.org/jira/browse/DISPATCH-1414
 Project: Qpid Dispatch
  Issue Type: Improvement
Reporter: Keith Wall


The policy DENY info message currently omits the source/target address.  This 
impedes the diagnosis of policy misconfigurations.  Currently the message looks 
like this:

{{POLICY (info) [1228]: DENY AMQP Attach sender link '' for user 'u', 
rhost '10.128.6.1', vhost 'vv' based on link target name}}



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Updated] (PROTON-1998) [Proton-J] Add SASL protocol trace

2019-01-28 Thread Keith Wall (JIRA)


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

Keith Wall updated PROTON-1998:
---
Summary: [Proton-J] Add SASL protocol trace  (was: [Proton-J] Add SASL 
proton trace)

> [Proton-J] Add SASL protocol trace
> --
>
> Key: PROTON-1998
> URL: https://issues.apache.org/jira/browse/PROTON-1998
> Project: Qpid Proton
>  Issue Type: Improvement
>  Components: proton-j
>Reporter: Keith Wall
>Priority: Minor
>
> Unlike Proton, Proton-J does not provide SASL frame trace if environment 
> variable PN_TRACE_FRM is set.  It would be useful if Proton-J had this 
> ability too to help diagnose SASL negotiation problem.
> Proton's SASL frame trace looks like this:
> {code:java}
> [0x7fc112c03a00]: -> SASL
> [0x7fc112c03a00]: <- SASL
> [0x7fc112c03a00]:0 <- @sasl-mechanisms(64) 
> [sasl-server-mechanisms=@PN_SYMBOL[:ANONYMOUS]]
> [0x7fc112c03a00]:0 -> @sasl-init(65) [mechanism=:ANONYMOUS, 
> initial-response=b"guest@Oslo.local"]
> [0x7fc112c03a00]:0 <- @sasl-outcome(68) [code=0]
> [0x7fc112c03a00]: -> AMQP
> [0x7fc112c03a00]:0 -> @open(16) 
> [container-id="be777c26-af6e-4935-a6be-316cc8bbdb35", hostname="127.0.0.1", 
> channel-max=32767]{code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Created] (PROTON-1998) [Proton-J] Add SASL proton trace

2019-01-28 Thread Keith Wall (JIRA)
Keith Wall created PROTON-1998:
--

 Summary: [Proton-J] Add SASL proton trace
 Key: PROTON-1998
 URL: https://issues.apache.org/jira/browse/PROTON-1998
 Project: Qpid Proton
  Issue Type: Improvement
  Components: proton-j
Reporter: Keith Wall


Unlike Proton, Proton-J does not provide SASL frame trace if environment 
variable PN_TRACE_FRM is set.  It would be useful if Proton-J had this ability 
too to help diagnose SASL negotiation problem.

Proton's SASL frame trace looks like this:
{code:java}
[0x7fc112c03a00]: -> SASL
[0x7fc112c03a00]: <- SASL
[0x7fc112c03a00]:0 <- @sasl-mechanisms(64) 
[sasl-server-mechanisms=@PN_SYMBOL[:ANONYMOUS]]
[0x7fc112c03a00]:0 -> @sasl-init(65) [mechanism=:ANONYMOUS, 
initial-response=b"guest@Oslo.local"]
[0x7fc112c03a00]:0 <- @sasl-outcome(68) [code=0]
[0x7fc112c03a00]: -> AMQP
[0x7fc112c03a00]:0 -> @open(16) 
[container-id="be777c26-af6e-4935-a6be-316cc8bbdb35", hostname="127.0.0.1", 
channel-max=32767]{code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Commented] (QPID-8269) [Broker-J] Enforce password complexity in authentication providers managing credentials

2019-01-03 Thread Keith Wall (JIRA)


[ 
https://issues.apache.org/jira/browse/QPID-8269?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16733407#comment-16733407
 ] 

Keith Wall commented on QPID-8269:
--

I think for production use-cases, Broker-J users ought to be delegating 
authentication to an enterprise authentication system (such as one exposing an 
LDAP or Kerberos API).  These systems are far better positioned to enforce 
password complexity/reuse rules /lock out.  I wouldn't recommend that an 
enterprise user uses the built in file/config base authentication system for 
anything other development use-cases.  

 

 

> [Broker-J] Enforce password complexity in authentication providers managing 
> credentials
> ---
>
> Key: QPID-8269
> URL: https://issues.apache.org/jira/browse/QPID-8269
> Project: Qpid
>  Issue Type: Improvement
>  Components: Broker-J
>Reporter: Alex Rudyy
>Priority: Major
> Fix For: qpid-java-broker-8.0.0
>
>
> Validate the password credentials in Qpid authentication providers managing 
> credentials to meet the following requirements:
> * Password length must be greater than predefined minimum password length 
> limit (8 or 16 characters, by default)
> * Passwords included in the predefined blacklist must not be allowed
> * Passwords must not include repetitive or sequential patterns of more than 3 
> characters
> * Passwords must not include the account username
> * Password must be comprised of 3 out of the following 4 elements:
> ** Lowercase characters (a through z)
> ** Uppercase characters (A through Z)
> ** Base 10 digits (0 through 9)
> ** Special or non-alphanumeric characters (@,#,+,etc)
> * Passwords must not be reused the last 12 times
> The different password complexity policies can be applied for interactive and 
> non interactive accounts.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Updated] (QPID-8245) [Broker-J] [AMQP 0-8..0-91] Decode FieldTable fields on demand

2018-09-30 Thread Keith Wall (JIRA)


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

Keith Wall updated QPID-8245:
-
Summary: [Broker-J] [AMQP 0-8..0-91] Decode FieldTable fields on demand  
(was: [Broker-J] [AMQP 0-8..0-91] Decode FiledTable fields on demand)

> [Broker-J] [AMQP 0-8..0-91] Decode FieldTable fields on demand
> --
>
> Key: QPID-8245
> URL: https://issues.apache.org/jira/browse/QPID-8245
> Project: Qpid
>  Issue Type: Improvement
>  Components: Broker-J
>Affects Versions: qpid-java-broker-7.1.0
>Reporter: Alex Rudyy
>Priority: Major
> Fix For: qpid-java-broker-7.1.0
>
> Attachments: 
> 0001-QPID-8245-Broker-J-Stop-rellocating-message-headers-.patch, 
> 0002-QPID-8245-Add-factory-methods-to-create-field-table-.patch, 
> 0003-QPID-8245-Remove-FiledTable-setters-methods-modifyin.patch, 
> 0004-QPID-8245-Decode-field-table-properties-when-require.patch, 
> 0005-QPID-8245-Remove-methods-getXXX-in-order-to-simplify.patch, 
> 0005-QPID-8245-Split-field-table-into-2-implementations.patch, 
> 0006-QPID-8245-some-code-clean-up.patch, 
> 0007-QPID-8245-Change-decoding-to-decode-only-value-for-t.patch
>
>
> At the moment all field table properties are decoded when decode 
> functionality is invoked. For use cases when only some of the field table 
> properties are queried, the decoding functionality can be changed to stop 
> decoding on getting the requested property. Potentially, such approach can 
> improve the performance of routing transient messages when destinations are 
> bound to the routing exchange using selector filters. As filter expression 
> contains only some properties, the decoding of message headers can be stopped 
> on getting all fields specified in selector expression.
> The idea is illustrated by Rob Godfrey on 
> [QPID-8238|https://issues.apache.org/jira/browse/QPID-8238?focusedCommentId=16601936=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-16601936]



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Commented] (QPID-8238) [Broker-J] Improve performance of asynchronous publishing of transient messages into topic exchange having queues bound using non-overlapping selectors

2018-09-12 Thread Keith Wall (JIRA)


[ 
https://issues.apache.org/jira/browse/QPID-8238?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16611738#comment-16611738
 ] 

Keith Wall commented on QPID-8238:
--

Hi Alex

I think separating the work in separate JIRAs would help.

I would have thought an immutable {{FieldTable}} implementations would be less 
code, so should be simpler to reason about and review for correctness, but I 
have not tried it.

With BasicContentHeaderProperties, it is not the replacement of AMQShortString 
with String that I think would help, I was actually pondering whether decoding 
on the short-string fields could be made on demand.  For many use-cases (those 
without selectors, message user-id validation is off) the the Broker does not 
need messageId/correlationId/type/userId etc, so any effort put into decoding 
these strings is for nought.  Admittedly, the short string caching it already 
has should already be preventing most of the waste.  I think any change here 
should be separated. 

Ok, so I understand that the Exchange changes should be just a  refactoring 
with no functional changes.  I'll try to have a quick look.

 

 

> [Broker-J] Improve performance of asynchronous publishing of transient 
> messages into topic exchange having queues bound using non-overlapping 
> selectors 
> 
>
> Key: QPID-8238
> URL: https://issues.apache.org/jira/browse/QPID-8238
> Project: Qpid
>  Issue Type: Improvement
>  Components: Broker-J
>Affects Versions: qpid-java-broker-7.0.6
>Reporter: Alex Rudyy
>Priority: Major
> Fix For: qpid-java-broker-7.1.0, qpid-java-broker-7.0.7
>
> Attachments: 
> 0001-QPID-8238-Use-java.lang.String-for-keys-and-values-i.patch
>
>
> The performance of asynchronous publishing of transient messages into topic 
> exchange which routes messages into queues bound using non-overlapping 
> selectors is 2-3 times slower than performance of 0.32 broker. The 
> performance degradation is observed with AMQP 0.9, though, I suspect that the 
> AMQP 0-10 protocol could be affected as well.
> I was running tests with 10 concurrent producers publishing messages  on 
> separate connections using the same routing key into 10 different queues 
> (subscribers queues) bound to the exchange using non-overlapping selectors.
> My testing showed that performance of 7.0 broker for this particular use case 
> was 2-3 times worse than performance of 0.32 broker.
> The following factors contributed to degradation of performance:
> • Copying data from direct memory into heap memory whilst decoding 
> message headers. Due to this factor, the decoding of message headers is 
> around twice slower. It seems it contributes around 70% to total performance 
> degradation
> • The message routing algorithm is slower due to need to support a new 
> feature to route messages into bound exchanges (in addition to queues) using 
> replacement routing key.
> • AMQ short strings caching contributes 5-10% to total performance 
> degradation. The caching was added to manage heap space more efficiently.
> The numbers provided here could be inaccurate due instrumentation overhead 
> whilst profiling the issue.
> Potentially, caching can be turned off but that will not improve performance 
> much.
> On other hand, adding of additional caching of strings to amqp-short-strings 
> would improve the performance a bit. Whilst evaluating selectors, the fields 
> used in selector expressions are represented as java strings but they get 
> converted every time into amqp-short-strings when looking up for message 
> header values. If 10 queues are bound to the exchange using the same binding 
> key, the selector expression is evaluated 10 times for the incoming message. 
> Thus, all selector field names are get converted into amqp-short-strings 10 
> times as well. It seems adding caching here can improve the performance. 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Commented] (QPID-8238) [Broker-J] Improve performance of asynchronous publishing of transient messages into topic exchange having queues bound using non-overlapping selectors

2018-09-11 Thread Keith Wall (JIRA)


[ 
https://issues.apache.org/jira/browse/QPID-8238?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16610224#comment-16610224
 ] 

Keith Wall commented on QPID-8238:
--

I think it would be better to separate the FieldTable optimisation and any 
LOGBACK-1027 workaround performance improvements into separate JIRAs.  This 
would make it easier for reviewers to review and users to evaluate the risk of 
taking a change (or not).   At the moment the FieldTable changes which affects 
*all* 0-x users are hidden under a Jira title that talks of topic exchange.   
Conversely, the Jira body talks of a 0-9 performance degradation yet the code 
change to the topic exchange impacts a shared 0-9, 0-10, 1.0 path.  I would 
suggest reverting the  
[c30e8ae|https://git-wip-us.apache.org/repos/asf?p=qpid-broker-j.git;h=c30e8ae] 
and  
[8c58e38|https://git-wip-us.apache.org/repos/asf?p=qpid-broker-j.git;h=8c58e38] 
from this JIRA.

On the {{FieldTable}} changes, I did like the idea expressed above to make the 
FieldTables immutable.  I was imagining turning FieldTable into an interface 
with two implementations.  One that accepts the ByteBuffer and one that adapts 
a Java Map.  The latter would be used in the BDB upgraders and the conversion 
layer.   I think this approach would make the implementation tidier and easier 
to reason about.  Separately, the idea to make the decoding of the short 
strings within the FieldTable on-demand sounds appealing.  This would benefit 
any application that was setting many string properties on a message but only 
using a subset for routing.  Did you do any testing?   (I did wonder if the 
approach would also bring benefit to the strings in 
BasicContentHeaderProperties - but that would be a separate optimisation).

On the topic exchange changes - could you add some commentary to help explain 
your thinking behind this change to allow me to review efficiently.

The turbo filter changes looked reasonable.

 

 

 

 

 

> [Broker-J] Improve performance of asynchronous publishing of transient 
> messages into topic exchange having queues bound using non-overlapping 
> selectors 
> 
>
> Key: QPID-8238
> URL: https://issues.apache.org/jira/browse/QPID-8238
> Project: Qpid
>  Issue Type: Improvement
>  Components: Broker-J
>Affects Versions: qpid-java-broker-7.0.6
>Reporter: Alex Rudyy
>Priority: Major
> Fix For: qpid-java-broker-7.1.0, qpid-java-broker-7.0.7
>
> Attachments: 
> 0001-QPID-8238-Use-java.lang.String-for-keys-and-values-i.patch
>
>
> The performance of asynchronous publishing of transient messages into topic 
> exchange which routes messages into queues bound using non-overlapping 
> selectors is 2-3 times slower than performance of 0.32 broker. The 
> performance degradation is observed with AMQP 0.9, though, I suspect that the 
> AMQP 0-10 protocol could be affected as well.
> I was running tests with 10 concurrent producers publishing messages  on 
> separate connections using the same routing key into 10 different queues 
> (subscribers queues) bound to the exchange using non-overlapping selectors.
> My testing showed that performance of 7.0 broker for this particular use case 
> was 2-3 times worse than performance of 0.32 broker.
> The following factors contributed to degradation of performance:
> • Copying data from direct memory into heap memory whilst decoding 
> message headers. Due to this factor, the decoding of message headers is 
> around twice slower. It seems it contributes around 70% to total performance 
> degradation
> • The message routing algorithm is slower due to need to support a new 
> feature to route messages into bound exchanges (in addition to queues) using 
> replacement routing key.
> • AMQ short strings caching contributes 5-10% to total performance 
> degradation. The caching was added to manage heap space more efficiently.
> The numbers provided here could be inaccurate due instrumentation overhead 
> whilst profiling the issue.
> Potentially, caching can be turned off but that will not improve performance 
> much.
> On other hand, adding of additional caching of strings to amqp-short-strings 
> would improve the performance a bit. Whilst evaluating selectors, the fields 
> used in selector expressions are represented as java strings but they get 
> converted every time into amqp-short-strings when looking up for message 
> header values. If 10 queues are bound to the exchange using the same binding 
> key, the selector expression is evaluated 10 times for the incoming message. 
> Thus, all selector field names are get converted into amqp-short-strings 10 
> times as well. It seems adding caching here can improve the 

[jira] [Comment Edited] (QPID-8238) [Broker-J] Improve performance of asynchronous publishing of transient messages into topic exchange having queues bound using non-overlapping selectors

2018-09-11 Thread Keith Wall (JIRA)


[ 
https://issues.apache.org/jira/browse/QPID-8238?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16610224#comment-16610224
 ] 

Keith Wall edited comment on QPID-8238 at 9/11/18 7:52 AM:
---

I think it would be better to separate the FieldTable optimisation and any 
LOGBACK-1027 workaround performance improvements into separate JIRAs.  This 
would make it easier for reviewers to review and users to evaluate the risk of 
taking a change (or not).   At the moment the FieldTable changes which affects 
*all* 0-x users are hidden under a Jira title that talks of topic exchange.   
Conversely, the Jira body talks of a 0-9 performance degradation yet the code 
change to the topic exchange impacts a shared 0-9, 0-10, 1.0 path.  I would 
suggest reverting the  
[c30e8ae|https://git-wip-us.apache.org/repos/asf?p=qpid-broker-j.git;h=c30e8ae] 
and  
[8c58e38|https://git-wip-us.apache.org/repos/asf?p=qpid-broker-j.git;h=8c58e38] 
from this JIRA.

On the {{FieldTable}} changes, I did like the idea expressed above to make the 
FieldTables immutable.  I was imagining turning FieldTable into an interface 
with two implementations.  One that accepts the ByteBuffer and one that adapts 
a Java Map.  The latter would be used in the BDB upgraders and the conversion 
layer.   I think this approach would make the implementation tidier and easier 
to reason about.  Separately, the idea to make the decoding of the short 
strings within the FieldTable on-demand sounds appealing.  This would benefit 
any application that was setting many string properties on a message but only 
using a subset for routing.  Did you do any testing?   (I did wonder if the 
approach would also bring benefit to the strings in 
BasicContentHeaderProperties - but that would be a separate optimisation).

On the topic exchange changes - could you add some commentary to help explain 
your thinking behind this change to allow me to review efficiently.

The turbo filter changes looked reasonable.

 

 


was (Author: k-wall):
I think it would be better to separate the FieldTable optimisation and any 
LOGBACK-1027 workaround performance improvements into separate JIRAs.  This 
would make it easier for reviewers to review and users to evaluate the risk of 
taking a change (or not).   At the moment the FieldTable changes which affects 
*all* 0-x users are hidden under a Jira title that talks of topic exchange.   
Conversely, the Jira body talks of a 0-9 performance degradation yet the code 
change to the topic exchange impacts a shared 0-9, 0-10, 1.0 path.  I would 
suggest reverting the  
[c30e8ae|https://git-wip-us.apache.org/repos/asf?p=qpid-broker-j.git;h=c30e8ae] 
and  
[8c58e38|https://git-wip-us.apache.org/repos/asf?p=qpid-broker-j.git;h=8c58e38] 
from this JIRA.

On the {{FieldTable}} changes, I did like the idea expressed above to make the 
FieldTables immutable.  I was imagining turning FieldTable into an interface 
with two implementations.  One that accepts the ByteBuffer and one that adapts 
a Java Map.  The latter would be used in the BDB upgraders and the conversion 
layer.   I think this approach would make the implementation tidier and easier 
to reason about.  Separately, the idea to make the decoding of the short 
strings within the FieldTable on-demand sounds appealing.  This would benefit 
any application that was setting many string properties on a message but only 
using a subset for routing.  Did you do any testing?   (I did wonder if the 
approach would also bring benefit to the strings in 
BasicContentHeaderProperties - but that would be a separate optimisation).

On the topic exchange changes - could you add some commentary to help explain 
your thinking behind this change to allow me to review efficiently.

The turbo filter changes looked reasonable.

 

 

 

 

 

> [Broker-J] Improve performance of asynchronous publishing of transient 
> messages into topic exchange having queues bound using non-overlapping 
> selectors 
> 
>
> Key: QPID-8238
> URL: https://issues.apache.org/jira/browse/QPID-8238
> Project: Qpid
>  Issue Type: Improvement
>  Components: Broker-J
>Affects Versions: qpid-java-broker-7.0.6
>Reporter: Alex Rudyy
>Priority: Major
> Fix For: qpid-java-broker-7.1.0, qpid-java-broker-7.0.7
>
> Attachments: 
> 0001-QPID-8238-Use-java.lang.String-for-keys-and-values-i.patch
>
>
> The performance of asynchronous publishing of transient messages into topic 
> exchange which routes messages into queues bound using non-overlapping 
> selectors is 2-3 times slower than performance of 0.32 broker. The 
> performance degradation is observed with AMQP 0.9, though, I suspect that the 
> AMQP 

[jira] [Resolved] (QPID-8233) [Broker-J][AMQP 1.0] Failure on connecting to a virtual host which is not yet active should use connection-forced error

2018-09-10 Thread Keith Wall (JIRA)


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

Keith Wall resolved QPID-8233.
--
Resolution: Fixed

> [Broker-J][AMQP 1.0] Failure on connecting to a virtual host which is not yet 
> active should use connection-forced error
> ---
>
> Key: QPID-8233
> URL: https://issues.apache.org/jira/browse/QPID-8233
> Project: Qpid
>  Issue Type: Bug
>  Components: Broker-J
>Affects Versions: qpid-java-broker-7.0.3, qpid-java-broker-7.0.2, 
> qpid-java-broker-7.0.0, qpid-java-broker-7.0.1, qpid-java-broker-7.0.4, 
> qpid-java-broker-7.0.5, qpid-java-broker-7.0.6
>Reporter: Rob Godfrey
>Assignee: Alex Rudyy
>Priority: Major
> Fix For: qpid-java-broker-7.1.0, qpid-java-broker-7.0.7
>
> Attachments: QPID-8233.diff, apache-qpid-broker-j-7.0.3-bin.zip
>
>
> Currently if a connection is made to a broker where a virtual host is in the 
> process of activating, the client received a "not-found" error with a 
> description "virtual host is not active".  A client receiving this would not 
> expect that simply retrying is likely to lead to success.
> Instead of sending "not-found" the broker should send "connection-forced" 
> which, while still inaccurate, at least indicates that the client should retry



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Commented] (QPID-8233) [Broker-J][AMQP 1.0] Failure on connecting to a virtual host which is not yet active should use connection-forced error

2018-09-10 Thread Keith Wall (JIRA)


[ 
https://issues.apache.org/jira/browse/QPID-8233?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16609815#comment-16609815
 ] 

Keith Wall commented on QPID-8233:
--

Looks reasonable to me.

> [Broker-J][AMQP 1.0] Failure on connecting to a virtual host which is not yet 
> active should use connection-forced error
> ---
>
> Key: QPID-8233
> URL: https://issues.apache.org/jira/browse/QPID-8233
> Project: Qpid
>  Issue Type: Bug
>  Components: Broker-J
>Affects Versions: qpid-java-broker-7.0.3, qpid-java-broker-7.0.2, 
> qpid-java-broker-7.0.0, qpid-java-broker-7.0.1, qpid-java-broker-7.0.4, 
> qpid-java-broker-7.0.5, qpid-java-broker-7.0.6
>Reporter: Rob Godfrey
>Assignee: Alex Rudyy
>Priority: Major
> Fix For: qpid-java-broker-7.1.0, qpid-java-broker-7.0.7
>
> Attachments: QPID-8233.diff, apache-qpid-broker-j-7.0.3-bin.zip
>
>
> Currently if a connection is made to a broker where a virtual host is in the 
> process of activating, the client received a "not-found" error with a 
> description "virtual host is not active".  A client receiving this would not 
> expect that simply retrying is likely to lead to success.
> Instead of sending "not-found" the broker should send "connection-forced" 
> which, while still inaccurate, at least indicates that the client should retry



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Resolved] (QPID-8231) [Broker-J] [AMQP 0-8...0-9-1] Broker crashes on delivery of messages from queue having attribute 'messageGroupKeyOverride' set to an empty string

2018-09-10 Thread Keith Wall (JIRA)


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

Keith Wall resolved QPID-8231.
--
Resolution: Fixed

> [Broker-J] [AMQP 0-8...0-9-1] Broker crashes on delivery of messages from 
> queue having attribute 'messageGroupKeyOverride' set to an empty string
> -
>
> Key: QPID-8231
> URL: https://issues.apache.org/jira/browse/QPID-8231
> Project: Qpid
>  Issue Type: Bug
>  Components: Broker-J
>Affects Versions: qpid-java-6.1.6, 0.32, qpid-java-6.0.8, 
> qpid-java-broker-7.0.6
>Reporter: Alex Rudyy
>Assignee: Alex Rudyy
>Priority: Major
> Fix For: qpid-java-broker-7.1.0, qpid-java-broker-7.0.7
>
>
> Broker crashes on consumption of messages from queue having attribute 
> 'messageGroupKeyOverride' set to an empty string. The following stack trace 
> is generated:
> {noformat}
> 
> #
> # Unhandled Exception java.lang.IllegalArgumentException: Property name must 
> not be the empty string in Thread IO-/127.0.0.1:63421
> #
> # Exiting
> #
> 
> java.lang.IllegalArgumentException: Property name must not be the empty string
>   at 
> org.apache.qpid.server.protocol.v0_8.FieldTable.checkPropertyName(FieldTable.java:787)
>   at 
> org.apache.qpid.server.protocol.v0_8.FieldTable.getProperty(FieldTable.java:98)
>   at 
> org.apache.qpid.server.protocol.v0_8.FieldTable.getObject(FieldTable.java:428)
>   at 
> org.apache.qpid.server.protocol.v0_8.FieldTable.get(FieldTable.java:1055)
>   at 
> org.apache.qpid.server.protocol.v0_8.FieldTable.get(FieldTable.java:1050)
>   at 
> org.apache.qpid.server.protocol.v0_8.MessageMetaData$MessageHeaderAdapter.getHeader(MessageMetaData.java:283)
>   at 
> org.apache.qpid.server.queue.AssignedConsumerMessageGroupManager.getGroupValue(AssignedConsumerMessageGroupManager.java:83)
>   at 
> org.apache.qpid.server.queue.AssignedConsumerMessageGroupManager.mightAssign(AssignedConsumerMessageGroupManager.java:61)
>   at 
> org.apache.qpid.server.queue.AbstractQueue.mightAssign(AbstractQueue.java:1335)
>   at 
> org.apache.qpid.server.queue.AbstractQueue.getNextAvailableEntry(AbstractQueue.java:2087)
>   at 
> org.apache.qpid.server.queue.AbstractQueue.consumerHasAvailableMessages(AbstractQueue.java:2234)
>   at 
> org.apache.qpid.server.queue.AbstractQueue.notifyConsumer(AbstractQueue.java:2268)
>   at 
> org.apache.qpid.server.queue.AbstractQueue.setNotifyWorkDesired(AbstractQueue.java:2245)
>   at 
> org.apache.qpid.server.queue.QueueConsumerImpl.setNotifyWorkDesired(QueueConsumerImpl.java:356)
>   at 
> org.apache.qpid.server.consumer.AbstractConsumerTarget.setNotifyWorkDesired(AbstractConsumerTarget.java:130)
>   at 
> org.apache.qpid.server.protocol.v0_8.ConsumerTarget_0_8.updateNotifyWorkDesired(ConsumerTarget_0_8.java:320)
>   at 
> org.apache.qpid.server.protocol.v0_8.AMQChannel.updateAllConsumerNotifyWorkDesired(AMQChannel.java:1495)
>   at 
> org.apache.qpid.server.protocol.v0_8.AMQChannel.receiveChannelFlow(AMQChannel.java:2319)
>   at 
> org.apache.qpid.server.protocol.v0_8.transport.ChannelFlowBody.process(ChannelFlowBody.java:98)
>   at 
> org.apache.qpid.server.protocol.v0_8.ServerDecoder.processMethod(ServerDecoder.java:126)
>   at 
> org.apache.qpid.server.protocol.v0_8.AMQDecoder.processFrame(AMQDecoder.java:203)
>   at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder.doProcessFrame(BrokerDecoder.java:141)
>   at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder.processFrame(BrokerDecoder.java:65)
>   at 
> org.apache.qpid.server.protocol.v0_8.AMQDecoder.processInput(AMQDecoder.java:185)
>   at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder$1.run(BrokerDecoder.java:104)
>   at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder$1.run(BrokerDecoder.java:97)
>   at java.security.AccessController.doPrivileged(Native Method)
>   at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder.processAMQPFrames(BrokerDecoder.java:96)
>   at 
> org.apache.qpid.server.protocol.v0_8.AMQDecoder.decode(AMQDecoder.java:118)
>   at 
> org.apache.qpid.server.protocol.v0_8.ServerDecoder.decodeBuffer(ServerDecoder.java:44)
>   at 
> org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8Impl$1.run(AMQPConnection_0_8Impl.java:257)
>   at 
> org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8Impl$1.run(AMQPConnection_0_8Impl.java:249)
>   at java.security.AccessController.doPrivileged(Native Method)
>   at 
> 

[jira] [Commented] (QPID-8231) [Broker-J] [AMQP 0-8...0-9-1] Broker crashes on delivery of messages from queue having attribute 'messageGroupKeyOverride' set to an empty string

2018-09-10 Thread Keith Wall (JIRA)


[ 
https://issues.apache.org/jira/browse/QPID-8231?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16609806#comment-16609806
 ] 

Keith Wall commented on QPID-8231:
--

Looks reasonable to me.

> [Broker-J] [AMQP 0-8...0-9-1] Broker crashes on delivery of messages from 
> queue having attribute 'messageGroupKeyOverride' set to an empty string
> -
>
> Key: QPID-8231
> URL: https://issues.apache.org/jira/browse/QPID-8231
> Project: Qpid
>  Issue Type: Bug
>  Components: Broker-J
>Affects Versions: qpid-java-6.1.6, 0.32, qpid-java-6.0.8, 
> qpid-java-broker-7.0.6
>Reporter: Alex Rudyy
>Assignee: Alex Rudyy
>Priority: Major
> Fix For: qpid-java-broker-7.1.0, qpid-java-broker-7.0.7
>
>
> Broker crashes on consumption of messages from queue having attribute 
> 'messageGroupKeyOverride' set to an empty string. The following stack trace 
> is generated:
> {noformat}
> 
> #
> # Unhandled Exception java.lang.IllegalArgumentException: Property name must 
> not be the empty string in Thread IO-/127.0.0.1:63421
> #
> # Exiting
> #
> 
> java.lang.IllegalArgumentException: Property name must not be the empty string
>   at 
> org.apache.qpid.server.protocol.v0_8.FieldTable.checkPropertyName(FieldTable.java:787)
>   at 
> org.apache.qpid.server.protocol.v0_8.FieldTable.getProperty(FieldTable.java:98)
>   at 
> org.apache.qpid.server.protocol.v0_8.FieldTable.getObject(FieldTable.java:428)
>   at 
> org.apache.qpid.server.protocol.v0_8.FieldTable.get(FieldTable.java:1055)
>   at 
> org.apache.qpid.server.protocol.v0_8.FieldTable.get(FieldTable.java:1050)
>   at 
> org.apache.qpid.server.protocol.v0_8.MessageMetaData$MessageHeaderAdapter.getHeader(MessageMetaData.java:283)
>   at 
> org.apache.qpid.server.queue.AssignedConsumerMessageGroupManager.getGroupValue(AssignedConsumerMessageGroupManager.java:83)
>   at 
> org.apache.qpid.server.queue.AssignedConsumerMessageGroupManager.mightAssign(AssignedConsumerMessageGroupManager.java:61)
>   at 
> org.apache.qpid.server.queue.AbstractQueue.mightAssign(AbstractQueue.java:1335)
>   at 
> org.apache.qpid.server.queue.AbstractQueue.getNextAvailableEntry(AbstractQueue.java:2087)
>   at 
> org.apache.qpid.server.queue.AbstractQueue.consumerHasAvailableMessages(AbstractQueue.java:2234)
>   at 
> org.apache.qpid.server.queue.AbstractQueue.notifyConsumer(AbstractQueue.java:2268)
>   at 
> org.apache.qpid.server.queue.AbstractQueue.setNotifyWorkDesired(AbstractQueue.java:2245)
>   at 
> org.apache.qpid.server.queue.QueueConsumerImpl.setNotifyWorkDesired(QueueConsumerImpl.java:356)
>   at 
> org.apache.qpid.server.consumer.AbstractConsumerTarget.setNotifyWorkDesired(AbstractConsumerTarget.java:130)
>   at 
> org.apache.qpid.server.protocol.v0_8.ConsumerTarget_0_8.updateNotifyWorkDesired(ConsumerTarget_0_8.java:320)
>   at 
> org.apache.qpid.server.protocol.v0_8.AMQChannel.updateAllConsumerNotifyWorkDesired(AMQChannel.java:1495)
>   at 
> org.apache.qpid.server.protocol.v0_8.AMQChannel.receiveChannelFlow(AMQChannel.java:2319)
>   at 
> org.apache.qpid.server.protocol.v0_8.transport.ChannelFlowBody.process(ChannelFlowBody.java:98)
>   at 
> org.apache.qpid.server.protocol.v0_8.ServerDecoder.processMethod(ServerDecoder.java:126)
>   at 
> org.apache.qpid.server.protocol.v0_8.AMQDecoder.processFrame(AMQDecoder.java:203)
>   at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder.doProcessFrame(BrokerDecoder.java:141)
>   at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder.processFrame(BrokerDecoder.java:65)
>   at 
> org.apache.qpid.server.protocol.v0_8.AMQDecoder.processInput(AMQDecoder.java:185)
>   at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder$1.run(BrokerDecoder.java:104)
>   at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder$1.run(BrokerDecoder.java:97)
>   at java.security.AccessController.doPrivileged(Native Method)
>   at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder.processAMQPFrames(BrokerDecoder.java:96)
>   at 
> org.apache.qpid.server.protocol.v0_8.AMQDecoder.decode(AMQDecoder.java:118)
>   at 
> org.apache.qpid.server.protocol.v0_8.ServerDecoder.decodeBuffer(ServerDecoder.java:44)
>   at 
> org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8Impl$1.run(AMQPConnection_0_8Impl.java:257)
>   at 
> org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8Impl$1.run(AMQPConnection_0_8Impl.java:249)
>   at java.security.AccessController.doPrivileged(Native Method)
>   

[jira] [Comment Edited] (QPID-8238) [Broker-J] Improve performance of asynchronous publishing of transient messages into topic exchange having queues bound using non-overlapping selectors

2018-08-31 Thread Keith Wall (JIRA)


[ 
https://issues.apache.org/jira/browse/QPID-8238?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16598574#comment-16598574
 ] 

Keith Wall edited comment on QPID-8238 at 8/31/18 10:50 AM:


 

Your comments made me remember a investigation I made a few months ago.

Just out of interest, is the in your use-case selector filtering on application 
headers (those from. 
{{org.apache.qpid.framing.BasicContentHeaderProperties#_headers}}) or in terms 
of items that appear in content header properties (correlation id etc).  If the 
former, what performance do you see when testing selectors that don't hit 
application headers?

The reason I ask that is that I remember the {{BasicContentHeaderProperties}} 
is *unconditionally* decoded for all messages (this is where expiration is 
carried, so the Broker always needs this information regardless of what 
consumers are doing with selectors).   The application headers OTOH are decoded 
on demand. My memory is that the performance of AMQP 0-91 for v7.0 was similar 
to 0.32, so that makes me think that the direct -> heap is not that impactful 
in terms of performance for those test cases, so it makes me wonder why your 
test case is so different.

 

How big are the application headers?

 


was (Author: k-wall):
 

Your comments made me remember a investigation I made a few months ago.

Just out of interest, is the in your use-case selector filtering on application 
headers (those from. 
{{org.apache.qpid.framing.BasicContentHeaderProperties#_headers}}) or in terms 
of items that appear in content header properties (correlation id etc).  If the 
former, what performance do you see when testing selectors that don't hit 
application headers?

The reason I ask that is that I remember the {{BasicContentHeaderProperties}} 
is *unconditionally* decoded for all messages (this is where expiration is 
carried, so the Broker always needs this information regardless of what 
consumers are doing with selectors).   The application headers OTOH are decoded 
on demand. My memory is that the performance of AMQP 0-91 for v7.0 was similar 
to 0.32, so that makes me think that the direct -> heap is not that impactful 
in terms of performance.

 

> [Broker-J] Improve performance of asynchronous publishing of transient 
> messages into topic exchange having queues bound using non-overlapping 
> selectors 
> 
>
> Key: QPID-8238
> URL: https://issues.apache.org/jira/browse/QPID-8238
> Project: Qpid
>  Issue Type: Improvement
>  Components: Broker-J
>Affects Versions: qpid-java-broker-7.0.6
>Reporter: Alex Rudyy
>Priority: Major
> Fix For: qpid-java-broker-7.1.0
>
>
> The performance of asynchronous publishing of transient messages into topic 
> exchange which routes messages into queues bound using non-overlapping 
> selectors is 2-3 times slower than performance of 0.32 broker. The 
> performance degradation is observed with AMQP 0.9, though, I suspect that the 
> AMQP 0-10 protocol could be affected as well.
> I was running tests with 10 concurrent producers publishing messages  on 
> separate connections using the same routing key into 10 different queues 
> (subscribers queues) bound to the exchange using non-overlapping selectors.
> My testing showed that performance of 7.0 broker for this particular use case 
> was 2-3 times worse than performance of 0.32 broker.
> The following factors contributed to degradation of performance:
> • Copying data from direct memory into heap memory whilst decoding 
> message headers. Due to this factor, the decoding of message headers is 
> around twice slower. It seems it contributes around 70% to total performance 
> degradation
> • The message routing algorithm is slower due to need to support a new 
> feature to route messages into bound exchanges (in addition to queues) using 
> replacement routing key.
> • AMQ short strings caching contributes 5-10% to total performance 
> degradation. The caching was added to manage heap space more efficiently.
> The numbers provided here could be inaccurate due instrumentation overhead 
> whilst profiling the issue.
> Potentially, caching can be turned off but that will not improve performance 
> much.
> On other hand, adding of additional caching of strings to amqp-short-strings 
> would improve the performance a bit. Whilst evaluating selectors, the fields 
> used in selector expressions are represented as java strings but they get 
> converted every time into amqp-short-strings when looking up for message 
> header values. If 10 queues are bound to the exchange using the same binding 
> key, the selector expression is evaluated 10 times for the incoming message. 

[jira] [Commented] (QPID-8238) [Broker-J] Improve performance of asynchronous publishing of transient messages into topic exchange having queues bound using non-overlapping selectors

2018-08-31 Thread Keith Wall (JIRA)


[ 
https://issues.apache.org/jira/browse/QPID-8238?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16598574#comment-16598574
 ] 

Keith Wall commented on QPID-8238:
--

 

Your comments made me remember a investigation I made a few months ago.

Just out of interest, is the in your use-case selector filtering on application 
headers (those from. 
{{org.apache.qpid.framing.BasicContentHeaderProperties#_headers}}) or in terms 
of items that appear in content header properties (correlation id etc).  If the 
former, what performance do you see when testing selectors that don't hit 
application headers?

The reason I ask that is that I remember the {{BasicContentHeaderProperties}} 
is *unconditionally* decoded for all messages (this is where expiration is 
carried, so the Broker always needs this information regardless of what 
consumers are doing with selectors).   The application headers OTOH are decoded 
on demand. My memory is that the performance of AMQP 0-91 for v7.0 was similar 
to 0.32, so that makes me think that the direct -> heap is not that impactful 
in terms of performance.

 

 

 

 

 

 

 

> [Broker-J] Improve performance of asynchronous publishing of transient 
> messages into topic exchange having queues bound using non-overlapping 
> selectors 
> 
>
> Key: QPID-8238
> URL: https://issues.apache.org/jira/browse/QPID-8238
> Project: Qpid
>  Issue Type: Improvement
>  Components: Broker-J
>Affects Versions: qpid-java-broker-7.0.6
>Reporter: Alex Rudyy
>Priority: Major
> Fix For: qpid-java-broker-7.1.0
>
>
> The performance of asynchronous publishing of transient messages into topic 
> exchange which routes messages into queues bound using non-overlapping 
> selectors is 2-3 times slower than performance of 0.32 broker. The 
> performance degradation is observed with AMQP 0.9, though, I suspect that the 
> AMQP 0-10 protocol could be affected as well.
> I was running tests with 10 concurrent producers publishing messages  on 
> separate connections using the same routing key into 10 different queues 
> (subscribers queues) bound to the exchange using non-overlapping selectors.
> My testing showed that performance of 7.0 broker for this particular use case 
> was 2-3 times worse than performance of 0.32 broker.
> The following factors contributed to degradation of performance:
> • Copying data from direct memory into heap memory whilst decoding 
> message headers. Due to this factor, the decoding of message headers is 
> around twice slower. It seems it contributes around 70% to total performance 
> degradation
> • The message routing algorithm is slower due to need to support a new 
> feature to route messages into bound exchanges (in addition to queues) using 
> replacement routing key.
> • AMQ short strings caching contributes 5-10% to total performance 
> degradation. The caching was added to manage heap space more efficiently.
> The numbers provided here could be inaccurate due instrumentation overhead 
> whilst profiling the issue.
> Potentially, caching can be turned off but that will not improve performance 
> much.
> On other hand, adding of additional caching of strings to amqp-short-strings 
> would improve the performance a bit. Whilst evaluating selectors, the fields 
> used in selector expressions are represented as java strings but they get 
> converted every time into amqp-short-strings when looking up for message 
> header values. If 10 queues are bound to the exchange using the same binding 
> key, the selector expression is evaluated 10 times for the incoming message. 
> Thus, all selector field names are get converted into amqp-short-strings 10 
> times as well. It seems adding caching here can improve the performance. 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Comment Edited] (QPID-8238) [Broker-J] Improve performance of asynchronous publishing of transient messages into topic exchange having queues bound using non-overlapping selectors

2018-08-31 Thread Keith Wall (JIRA)


[ 
https://issues.apache.org/jira/browse/QPID-8238?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16598574#comment-16598574
 ] 

Keith Wall edited comment on QPID-8238 at 8/31/18 10:49 AM:


 

Your comments made me remember a investigation I made a few months ago.

Just out of interest, is the in your use-case selector filtering on application 
headers (those from. 
{{org.apache.qpid.framing.BasicContentHeaderProperties#_headers}}) or in terms 
of items that appear in content header properties (correlation id etc).  If the 
former, what performance do you see when testing selectors that don't hit 
application headers?

The reason I ask that is that I remember the {{BasicContentHeaderProperties}} 
is *unconditionally* decoded for all messages (this is where expiration is 
carried, so the Broker always needs this information regardless of what 
consumers are doing with selectors).   The application headers OTOH are decoded 
on demand. My memory is that the performance of AMQP 0-91 for v7.0 was similar 
to 0.32, so that makes me think that the direct -> heap is not that impactful 
in terms of performance.

 


was (Author: k-wall):
 

Your comments made me remember a investigation I made a few months ago.

Just out of interest, is the in your use-case selector filtering on application 
headers (those from. 
{{org.apache.qpid.framing.BasicContentHeaderProperties#_headers}}) or in terms 
of items that appear in content header properties (correlation id etc).  If the 
former, what performance do you see when testing selectors that don't hit 
application headers?

The reason I ask that is that I remember the {{BasicContentHeaderProperties}} 
is *unconditionally* decoded for all messages (this is where expiration is 
carried, so the Broker always needs this information regardless of what 
consumers are doing with selectors).   The application headers OTOH are decoded 
on demand. My memory is that the performance of AMQP 0-91 for v7.0 was similar 
to 0.32, so that makes me think that the direct -> heap is not that impactful 
in terms of performance.

 

 

 

 

 

 

 

> [Broker-J] Improve performance of asynchronous publishing of transient 
> messages into topic exchange having queues bound using non-overlapping 
> selectors 
> 
>
> Key: QPID-8238
> URL: https://issues.apache.org/jira/browse/QPID-8238
> Project: Qpid
>  Issue Type: Improvement
>  Components: Broker-J
>Affects Versions: qpid-java-broker-7.0.6
>Reporter: Alex Rudyy
>Priority: Major
> Fix For: qpid-java-broker-7.1.0
>
>
> The performance of asynchronous publishing of transient messages into topic 
> exchange which routes messages into queues bound using non-overlapping 
> selectors is 2-3 times slower than performance of 0.32 broker. The 
> performance degradation is observed with AMQP 0.9, though, I suspect that the 
> AMQP 0-10 protocol could be affected as well.
> I was running tests with 10 concurrent producers publishing messages  on 
> separate connections using the same routing key into 10 different queues 
> (subscribers queues) bound to the exchange using non-overlapping selectors.
> My testing showed that performance of 7.0 broker for this particular use case 
> was 2-3 times worse than performance of 0.32 broker.
> The following factors contributed to degradation of performance:
> • Copying data from direct memory into heap memory whilst decoding 
> message headers. Due to this factor, the decoding of message headers is 
> around twice slower. It seems it contributes around 70% to total performance 
> degradation
> • The message routing algorithm is slower due to need to support a new 
> feature to route messages into bound exchanges (in addition to queues) using 
> replacement routing key.
> • AMQ short strings caching contributes 5-10% to total performance 
> degradation. The caching was added to manage heap space more efficiently.
> The numbers provided here could be inaccurate due instrumentation overhead 
> whilst profiling the issue.
> Potentially, caching can be turned off but that will not improve performance 
> much.
> On other hand, adding of additional caching of strings to amqp-short-strings 
> would improve the performance a bit. Whilst evaluating selectors, the fields 
> used in selector expressions are represented as java strings but they get 
> converted every time into amqp-short-strings when looking up for message 
> header values. If 10 queues are bound to the exchange using the same binding 
> key, the selector expression is evaluated 10 times for the incoming message. 
> Thus, all selector field names are get converted into amqp-short-strings 10 
> times as well. It 

[jira] [Resolved] (QPID-8229) [Broker-J][6.x] Queue bindings are not removed on queue deletion when BDB/DERBY/JDBC configuration stores are used

2018-08-30 Thread Keith Wall (JIRA)


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

Keith Wall resolved QPID-8229.
--
Resolution: Fixed

> [Broker-J][6.x] Queue bindings are not removed on queue deletion when 
> BDB/DERBY/JDBC configuration stores are used
> --
>
> Key: QPID-8229
> URL: https://issues.apache.org/jira/browse/QPID-8229
> Project: Qpid
>  Issue Type: Bug
>  Components: Broker-J
>Affects Versions: qpid-java-6.1.6, qpid-java-6.1, qpid-java-6.1.2, 
> qpid-java-6.1.3, qpid-java-6.1.4, qpid-java-6.1.5
>Reporter: Alex Rudyy
>Assignee: Alex Rudyy
>Priority: Critical
> Fix For: qpid-java-6.1.7
>
>
> Queue bindings can be left behind in BDB/DERBY/JDBC configuration stores on 
> queue deletion. When virtual host with a deleted queue and orphaned binding 
> is restarted, the Virtual Host startup fails with error "422 - No parent of 
> class Queue found.". The following warning is reported into the logs:
> {noformat}
> WARN  [HttpManagement-HTTP-379] (o.a.q.s.m.p.s.r.RestServlet) - 
> IllegalArgumentException processing request 
> http://localhost:8080/api/latest/virtualhost/tmp2/tmp2 from user 
> '[/0:0:0:0:0:0:0:1:61279, admin]': No parent of class Queue found.
> {noformat}
> The work-around for the issue would a deletion of all queue bindings prior 
> queue deletion. There is no work around which would allow to delete orphaned 
> bindings and recover Virtual Host configuration apart from changing store 
> data directly which is not feasible in case of BDB.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Commented] (QPID-8229) [Broker-J][6.x] Queue bindings are not removed on queue deletion when BDB/DERBY/JDBC configuration stores are used

2018-08-30 Thread Keith Wall (JIRA)


[ 
https://issues.apache.org/jira/browse/QPID-8229?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16597162#comment-16597162
 ] 

Keith Wall commented on QPID-8229:
--

Seems okay to me.

> [Broker-J][6.x] Queue bindings are not removed on queue deletion when 
> BDB/DERBY/JDBC configuration stores are used
> --
>
> Key: QPID-8229
> URL: https://issues.apache.org/jira/browse/QPID-8229
> Project: Qpid
>  Issue Type: Bug
>  Components: Broker-J
>Affects Versions: qpid-java-6.1.6, qpid-java-6.1, qpid-java-6.1.2, 
> qpid-java-6.1.3, qpid-java-6.1.4, qpid-java-6.1.5
>Reporter: Alex Rudyy
>Assignee: Alex Rudyy
>Priority: Critical
> Fix For: qpid-java-6.1.7
>
>
> Queue bindings can be left behind in BDB/DERBY/JDBC configuration stores on 
> queue deletion. When virtual host with a deleted queue and orphaned binding 
> is restarted, the Virtual Host startup fails with error "422 - No parent of 
> class Queue found.". The following warning is reported into the logs:
> {noformat}
> WARN  [HttpManagement-HTTP-379] (o.a.q.s.m.p.s.r.RestServlet) - 
> IllegalArgumentException processing request 
> http://localhost:8080/api/latest/virtualhost/tmp2/tmp2 from user 
> '[/0:0:0:0:0:0:0:1:61279, admin]': No parent of class Queue found.
> {noformat}
> The work-around for the issue would a deletion of all queue bindings prior 
> queue deletion. There is no work around which would allow to delete orphaned 
> bindings and recover Virtual Host configuration apart from changing store 
> data directly which is not feasible in case of BDB.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Resolved] (QPID-8236) [Broker-J] Changing of group name, address or node name in BDB HA virtual host node should be disallowed

2018-08-30 Thread Keith Wall (JIRA)


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

Keith Wall resolved QPID-8236.
--
Resolution: Fixed

> [Broker-J] Changing of group name, address or node name in BDB HA virtual 
> host node should be disallowed 
> -
>
> Key: QPID-8236
> URL: https://issues.apache.org/jira/browse/QPID-8236
> Project: Qpid
>  Issue Type: Bug
>  Components: Broker-J
>Affects Versions: qpid-java-6.1.6, 0.32, qpid-java-6.0.8, 
> qpid-java-broker-7.0.6
>Reporter: Alex Rudyy
>Assignee: Alex Rudyy
>Priority: Major
> Fix For: qpid-java-6.1.7, qpid-java-broker-7.1.0, 
> qpid-java-broker-7.0.7
>
>
> The BDB HA Virtual Host Node group name, address or node name can be changed 
> using management interfaces, for example REST API. However, the change of 
> this attributes is not reflected in the underlying BDB JE infrastructure. In 
> fact, the change of group name, address or node name is unsupported by BDB 
> JE. The only way any of them can be changed is by resetting  the group 
> information using BDB JE utility {{DbResetRepGroup}} which resets the group 
> to a single node. 
> The Qpid Broker should not allow to change group name, address or node name  
> attributes in BDB HA Virtual Host node via management API.
> If group is changed, on next broker restart the impacted {{VHN}} fails to 
> start with the following error logged into broker logs:
> {noformat}
> ERROR [qtp699327636-161] (o.a.q.s.m.p.f.ExceptionHandlingFilter) - Unexpected 
> exception in servlet '/api/latest/virtualhostnode/node1':
> java.lang.RuntimeException: Unexpected exception on environment creation
> at 
> org.apache.qpid.server.store.berkeleydb.replication.ReplicatedEnvironmentFacade.createEnvironmentInSeparateThread(ReplicatedEnvironmentFacade.java:1578)
> at 
> org.apache.qpid.server.store.berkeleydb.replication.ReplicatedEnvironmentFacade.createEnvironment(ReplicatedEnvironmentFacade.java:1526)
> at 
> org.apache.qpid.server.store.berkeleydb.replication.ReplicatedEnvironmentFacade.(ReplicatedEnvironmentFacade.java:288)
> at 
> org.apache.qpid.server.store.berkeleydb.replication.ReplicatedEnvironmentFacadeFactory.createEnvironmentFacade(ReplicatedEnvironmentFacadeFactory.java:130)
> at 
> org.apache.qpid.server.store.berkeleydb.BDBConfigurationStore.init(BDBConfigurationStore.java:120)
> at 
> org.apache.qpid.server.virtualhostnode.berkeleydb.BDBHAVirtualHostNodeImpl.activate(BDBHAVirtualHostNodeImpl.java:338)
> at 
> org.apache.qpid.server.virtualhostnode.AbstractVirtualHostNode.doActivate(AbstractVirtualHostNode.java:169)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at 
> org.apache.qpid.server.model.AbstractConfiguredObject.attainState(AbstractConfiguredObject.java:1526)
> at 
> org.apache.qpid.server.model.AbstractConfiguredObject.attainState(AbstractConfiguredObject.java:1505)
> at 
> org.apache.qpid.server.model.AbstractConfiguredObject.attainStateIfOpenedOrReopenFailed(AbstractConfiguredObject.java:1489)
> at 
> org.apache.qpid.server.model.AbstractConfiguredObject.access$1700(AbstractConfiguredObject.java:97)
> at 
> org.apache.qpid.server.model.AbstractConfiguredObject$15.execute(AbstractConfiguredObject.java:1716)
> at 
> org.apache.qpid.server.model.AbstractConfiguredObject$15.execute(AbstractConfiguredObject.java:1678)
> at 
> org.apache.qpid.server.model.AbstractConfiguredObject$2.execute(AbstractConfiguredObject.java:639)
> at 
> org.apache.qpid.server.model.AbstractConfiguredObject$2.execute(AbstractConfiguredObject.java:632)
> at 
> org.apache.qpid.server.configuration.updater.TaskExecutorImpl$TaskLoggingWrapper.execute(TaskExecutorImpl.java:248)
> at 
> org.apache.qpid.server.configuration.updater.TaskExecutorImpl$CallableWrapper$1.run(TaskExecutorImpl.java:320)
> at java.security.AccessController.doPrivileged(Native Method)
> at javax.security.auth.Subject.doAs(Subject.java:360)
> at 
> org.apache.qpid.server.configuration.updater.TaskExecutorImpl$CallableWrapper.call(TaskExecutorImpl.java:313)
> at 
> com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:111)
> at 
> com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:58)
> at 
> 

[jira] [Commented] (QPID-8236) [Broker-J] Changing of group name, address or node name in BDB HA virtual host node should be disallowed

2018-08-30 Thread Keith Wall (JIRA)


[ 
https://issues.apache.org/jira/browse/QPID-8236?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16597154#comment-16597154
 ] 

Keith Wall commented on QPID-8236:
--

Change looks reasonable to me.

> [Broker-J] Changing of group name, address or node name in BDB HA virtual 
> host node should be disallowed 
> -
>
> Key: QPID-8236
> URL: https://issues.apache.org/jira/browse/QPID-8236
> Project: Qpid
>  Issue Type: Bug
>  Components: Broker-J
>Affects Versions: qpid-java-6.1.6, 0.32, qpid-java-6.0.8, 
> qpid-java-broker-7.0.6
>Reporter: Alex Rudyy
>Assignee: Alex Rudyy
>Priority: Major
> Fix For: qpid-java-6.1.7, qpid-java-broker-7.1.0, 
> qpid-java-broker-7.0.7
>
>
> The BDB HA Virtual Host Node group name, address or node name can be changed 
> using management interfaces, for example REST API. However, the change of 
> this attributes is not reflected in the underlying BDB JE infrastructure. In 
> fact, the change of group name, address or node name is unsupported by BDB 
> JE. The only way any of them can be changed is by resetting  the group 
> information using BDB JE utility {{DbResetRepGroup}} which resets the group 
> to a single node. 
> The Qpid Broker should not allow to change group name, address or node name  
> attributes in BDB HA Virtual Host node via management API.
> If group is changed, on next broker restart the impacted {{VHN}} fails to 
> start with the following error logged into broker logs:
> {noformat}
> ERROR [qtp699327636-161] (o.a.q.s.m.p.f.ExceptionHandlingFilter) - Unexpected 
> exception in servlet '/api/latest/virtualhostnode/node1':
> java.lang.RuntimeException: Unexpected exception on environment creation
> at 
> org.apache.qpid.server.store.berkeleydb.replication.ReplicatedEnvironmentFacade.createEnvironmentInSeparateThread(ReplicatedEnvironmentFacade.java:1578)
> at 
> org.apache.qpid.server.store.berkeleydb.replication.ReplicatedEnvironmentFacade.createEnvironment(ReplicatedEnvironmentFacade.java:1526)
> at 
> org.apache.qpid.server.store.berkeleydb.replication.ReplicatedEnvironmentFacade.(ReplicatedEnvironmentFacade.java:288)
> at 
> org.apache.qpid.server.store.berkeleydb.replication.ReplicatedEnvironmentFacadeFactory.createEnvironmentFacade(ReplicatedEnvironmentFacadeFactory.java:130)
> at 
> org.apache.qpid.server.store.berkeleydb.BDBConfigurationStore.init(BDBConfigurationStore.java:120)
> at 
> org.apache.qpid.server.virtualhostnode.berkeleydb.BDBHAVirtualHostNodeImpl.activate(BDBHAVirtualHostNodeImpl.java:338)
> at 
> org.apache.qpid.server.virtualhostnode.AbstractVirtualHostNode.doActivate(AbstractVirtualHostNode.java:169)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at 
> org.apache.qpid.server.model.AbstractConfiguredObject.attainState(AbstractConfiguredObject.java:1526)
> at 
> org.apache.qpid.server.model.AbstractConfiguredObject.attainState(AbstractConfiguredObject.java:1505)
> at 
> org.apache.qpid.server.model.AbstractConfiguredObject.attainStateIfOpenedOrReopenFailed(AbstractConfiguredObject.java:1489)
> at 
> org.apache.qpid.server.model.AbstractConfiguredObject.access$1700(AbstractConfiguredObject.java:97)
> at 
> org.apache.qpid.server.model.AbstractConfiguredObject$15.execute(AbstractConfiguredObject.java:1716)
> at 
> org.apache.qpid.server.model.AbstractConfiguredObject$15.execute(AbstractConfiguredObject.java:1678)
> at 
> org.apache.qpid.server.model.AbstractConfiguredObject$2.execute(AbstractConfiguredObject.java:639)
> at 
> org.apache.qpid.server.model.AbstractConfiguredObject$2.execute(AbstractConfiguredObject.java:632)
> at 
> org.apache.qpid.server.configuration.updater.TaskExecutorImpl$TaskLoggingWrapper.execute(TaskExecutorImpl.java:248)
> at 
> org.apache.qpid.server.configuration.updater.TaskExecutorImpl$CallableWrapper$1.run(TaskExecutorImpl.java:320)
> at java.security.AccessController.doPrivileged(Native Method)
> at javax.security.auth.Subject.doAs(Subject.java:360)
> at 
> org.apache.qpid.server.configuration.updater.TaskExecutorImpl$CallableWrapper.call(TaskExecutorImpl.java:313)
> at 
> com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:111)
> at 
> 

[jira] [Updated] (QPID-8231) [Broker-J] [AMQP 0-8...0-9-1] Broker crashes on delivery of messages from queue having attribute 'messageGroupKeyOverride' set to an empty string

2018-08-24 Thread Keith Wall (JIRA)


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

Keith Wall updated QPID-8231:
-
Summary: [Broker-J] [AMQP 0-8...0-9-1] Broker crashes on delivery of 
messages from queue having attribute 'messageGroupKeyOverride' set to an empty 
string  (was: [Broker-J] [AMQP 0-8...0-9-1] Broker crashes on consumption of 
messages from queue having attribute 'messageGroupKeyOverride' set to an empty 
string)

> [Broker-J] [AMQP 0-8...0-9-1] Broker crashes on delivery of messages from 
> queue having attribute 'messageGroupKeyOverride' set to an empty string
> -
>
> Key: QPID-8231
> URL: https://issues.apache.org/jira/browse/QPID-8231
> Project: Qpid
>  Issue Type: Bug
>  Components: Broker-J
>Affects Versions: qpid-java-6.1.6, 0.32, qpid-java-6.0.8, 
> qpid-java-broker-7.0.6
>Reporter: Alex Rudyy
>Priority: Major
>
> Broker crashes on consumption of messages from queue having attribute 
> 'messageGroupKeyOverride' set to an empty string. The following stack trace 
> is generated:
> {noformat}
> 
> #
> # Unhandled Exception java.lang.IllegalArgumentException: Property name must 
> not be the empty string in Thread IO-/127.0.0.1:63421
> #
> # Exiting
> #
> 
> java.lang.IllegalArgumentException: Property name must not be the empty string
>   at 
> org.apache.qpid.server.protocol.v0_8.FieldTable.checkPropertyName(FieldTable.java:787)
>   at 
> org.apache.qpid.server.protocol.v0_8.FieldTable.getProperty(FieldTable.java:98)
>   at 
> org.apache.qpid.server.protocol.v0_8.FieldTable.getObject(FieldTable.java:428)
>   at 
> org.apache.qpid.server.protocol.v0_8.FieldTable.get(FieldTable.java:1055)
>   at 
> org.apache.qpid.server.protocol.v0_8.FieldTable.get(FieldTable.java:1050)
>   at 
> org.apache.qpid.server.protocol.v0_8.MessageMetaData$MessageHeaderAdapter.getHeader(MessageMetaData.java:283)
>   at 
> org.apache.qpid.server.queue.AssignedConsumerMessageGroupManager.getGroupValue(AssignedConsumerMessageGroupManager.java:83)
>   at 
> org.apache.qpid.server.queue.AssignedConsumerMessageGroupManager.mightAssign(AssignedConsumerMessageGroupManager.java:61)
>   at 
> org.apache.qpid.server.queue.AbstractQueue.mightAssign(AbstractQueue.java:1335)
>   at 
> org.apache.qpid.server.queue.AbstractQueue.getNextAvailableEntry(AbstractQueue.java:2087)
>   at 
> org.apache.qpid.server.queue.AbstractQueue.consumerHasAvailableMessages(AbstractQueue.java:2234)
>   at 
> org.apache.qpid.server.queue.AbstractQueue.notifyConsumer(AbstractQueue.java:2268)
>   at 
> org.apache.qpid.server.queue.AbstractQueue.setNotifyWorkDesired(AbstractQueue.java:2245)
>   at 
> org.apache.qpid.server.queue.QueueConsumerImpl.setNotifyWorkDesired(QueueConsumerImpl.java:356)
>   at 
> org.apache.qpid.server.consumer.AbstractConsumerTarget.setNotifyWorkDesired(AbstractConsumerTarget.java:130)
>   at 
> org.apache.qpid.server.protocol.v0_8.ConsumerTarget_0_8.updateNotifyWorkDesired(ConsumerTarget_0_8.java:320)
>   at 
> org.apache.qpid.server.protocol.v0_8.AMQChannel.updateAllConsumerNotifyWorkDesired(AMQChannel.java:1495)
>   at 
> org.apache.qpid.server.protocol.v0_8.AMQChannel.receiveChannelFlow(AMQChannel.java:2319)
>   at 
> org.apache.qpid.server.protocol.v0_8.transport.ChannelFlowBody.process(ChannelFlowBody.java:98)
>   at 
> org.apache.qpid.server.protocol.v0_8.ServerDecoder.processMethod(ServerDecoder.java:126)
>   at 
> org.apache.qpid.server.protocol.v0_8.AMQDecoder.processFrame(AMQDecoder.java:203)
>   at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder.doProcessFrame(BrokerDecoder.java:141)
>   at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder.processFrame(BrokerDecoder.java:65)
>   at 
> org.apache.qpid.server.protocol.v0_8.AMQDecoder.processInput(AMQDecoder.java:185)
>   at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder$1.run(BrokerDecoder.java:104)
>   at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder$1.run(BrokerDecoder.java:97)
>   at java.security.AccessController.doPrivileged(Native Method)
>   at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder.processAMQPFrames(BrokerDecoder.java:96)
>   at 
> org.apache.qpid.server.protocol.v0_8.AMQDecoder.decode(AMQDecoder.java:118)
>   at 
> org.apache.qpid.server.protocol.v0_8.ServerDecoder.decodeBuffer(ServerDecoder.java:44)
>   at 
> org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8Impl$1.run(AMQPConnection_0_8Impl.java:257)
>   at 
> 

[jira] [Updated] (PROTON-1915) [Proton-J] Message codec encodes messageId values with types other than those permitted

2018-08-20 Thread Keith Wall (JIRA)


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

Keith Wall updated PROTON-1915:
---
Description: 
The message codec (message format 0) codec of Proton-J is prepared to send 
{{message-id}} (and {{correlation-id}}) values with types other than those 
permitted by sections 3.2.1.1 through 3.2.14 of the AMQP 1.0 specification.  
This means the library allows the caller to send illegally encoded AMQP 1.0 
message with an illegally encoded _properties_ section..

Here's a trace from the Proton-J example 
{{org.apache.qpid.proton.example.reactor.Send}} modified to set a message id 
{{message.setMessageId(256);}} on the transmitted message.

The {{q\x00\x00\x01\x00}} corresponds to the message id, with q (0x71) being 
the type code of the primitive type {{int}}.


{noformat}
[250421012:0] -> Open{ containerId='', hostname='localhost', 
maxFrameSize=4294967295, channelMax=65535, idleTimeOut=null, 
outgoingLocales=null, incomingLocales=null, offeredCapabilities=null, 
desiredCapabilities=null, properties=null}
[250421012:0] -> Begin{remoteChannel=null, nextOutgoingId=1, 
incomingWindow=2147483647, outgoingWindow=2147483647, handleMax=65535, 
offeredCapabilities=null, desiredCapabilities=null, properties=null}
[250421012:0] -> Attach{name='sender', handle=0, role=SENDER, 
sndSettleMode=MIXED, rcvSettleMode=FIRST, source=Source{address='mysource', 
durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, 
dynamicNodeProperties=null, distributionMode=null, filter=null, 
defaultOutcome=null, outcomes=null, capabilities=null}, 
target=Target{address='queue', durable=NONE, expiryPolicy=SESSION_END, 
timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}, 
unsettled=null, incompleteUnsettled=false, initialDeliveryCount=0, 
maxMessageSize=null, offeredCapabilities=null, desiredCapabilities=null, 
properties=null}
[250421012:0] <- Open{ containerId='14dd72ea-f2c1-44d6-bd04-8d5cb3fea97d', 
hostname='null', maxFrameSize=262144, channelMax=255, idleTimeOut=0, 
outgoingLocales=null, incomingLocales=null, 
offeredCapabilities=[ANONYMOUS-RELAY, SHARED-SUBS, 
sole-connection-for-container], desiredCapabilities=null, 
properties={product=unknown, version=7.1.0-SNAPSHOT, qpid.build=unknown, 
qpid.instance_name=Broker, qpid.virtualhost_properties_supported=true}}
[250421012:0] <- Begin{remoteChannel=0, nextOutgoingId=0, incomingWindow=8192, 
outgoingWindow=2048, handleMax=4294967295, offeredCapabilities=null, 
desiredCapabilities=null, properties=null}
[250421012:0] <- Attach{name='sender', handle=0, role=RECEIVER, 
sndSettleMode=MIXED, rcvSettleMode=FIRST, source=Source{address='mysource', 
durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, 
dynamicNodeProperties=null, distributionMode=null, filter=null, 
defaultOutcome=null, outcomes=null, capabilities=null}, 
target=Target{address='queue', durable=NONE, expiryPolicy=SESSION_END, 
timeout=0, dynamic=false, dynamicNodeProperties=null, 
capabilities=[REJECT_UNROUTABLE, DELAYED_DELIVERY]}, unsettled={}, 
incompleteUnsettled=false, initialDeliveryCount=null, 
maxMessageSize=10, offeredCapabilities=[REJECT_UNROUTABLE, 
DELAYED_DELIVERY], desiredCapabilities=null, properties={}}
[250421012:0] <- Flow{nextIncomingId=1, incomingWindow=8192, nextOutgoingId=0, 
outgoingWindow=2048, handle=0, deliveryCount=0, linkCredit=2, 
available=null, drain=false, echo=false, properties=null}
[250421012:0] -> Transfer{handle=0, deliveryId=0, deliveryTag=0, 
messageFormat=0, settled=true, more=false, rcvSettleMode=null, state=null, 
resume=false, aborted=false, batchable=false} (34) 
"\x00Ss\xd0\x00\x00\x00\x09\x00\x00\x00\x01q\x00\x00\x01\x00\x00Sw\xa1\x0cHello 
World!"
[250421012:0] -> Detach{handle=0, closed=true, error=null}
[250421012:0] -> End{error=null}
[250421012:0] -> Close{error=null}
[250421012:0] <- Detach{handle=0, closed=true, error=null}
[250421012:0] <- End{error=null}
[250421012:0] <- Close{error=null}
{noformat}


  was:
The message codec (message format 0) codec of Proton-J is prepared to send 
{{message-id}} (and {{correlation-id}}) values with types other than those 
permitted by sections 3.2.1.1 through 3.2.14 of the AMQP 1.0 specification.  
This means the library allows the caller to send illegally encoded AMQP 1.0 
annotated messages.

Here's a trace from the Proton-J example 
{{org.apache.qpid.proton.example.reactor.Send}} modified to set a message id 
{{message.setMessageId(256);}} on the transmitted message.

The {{q\x00\x00\x01\x00}} corresponds to the message id, with q (0x71) being 
the type code of the primitive type {{int}}.


{noformat}
[250421012:0] -> Open{ containerId='', hostname='localhost', 
maxFrameSize=4294967295, channelMax=65535, idleTimeOut=null, 
outgoingLocales=null, incomingLocales=null, offeredCapabilities=null, 
desiredCapabilities=null, properties=null}
[250421012:0] -> 

[jira] [Updated] (PROTON-1915) [Proton-J] Message codec encodes messageId values with types other than those permitted

2018-08-14 Thread Keith Wall (JIRA)


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

Keith Wall updated PROTON-1915:
---
Description: 
The message codec (message format 0) codec of Proton-J is prepared to send 
{{message-id}} (and {{correlation-id}}) values with types other than those 
permitted by sections 3.2.1.1 through 3.2.14 of the AMQP 1.0 specification.  
This means the library allows the caller to send illegally encoded AMQP 1.0 
annotated messages.

Here's a trace from the Proton-J example 
{{org.apache.qpid.proton.example.reactor.Send}} modified to set a message id 
{{message.setMessageId(256);}} on the transmitted message.

The {{q\x00\x00\x01\x00}} corresponds to the message id, with q (0x71) being 
the type code of the primitive type {{int}}.


{noformat}
[250421012:0] -> Open{ containerId='', hostname='localhost', 
maxFrameSize=4294967295, channelMax=65535, idleTimeOut=null, 
outgoingLocales=null, incomingLocales=null, offeredCapabilities=null, 
desiredCapabilities=null, properties=null}
[250421012:0] -> Begin{remoteChannel=null, nextOutgoingId=1, 
incomingWindow=2147483647, outgoingWindow=2147483647, handleMax=65535, 
offeredCapabilities=null, desiredCapabilities=null, properties=null}
[250421012:0] -> Attach{name='sender', handle=0, role=SENDER, 
sndSettleMode=MIXED, rcvSettleMode=FIRST, source=Source{address='mysource', 
durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, 
dynamicNodeProperties=null, distributionMode=null, filter=null, 
defaultOutcome=null, outcomes=null, capabilities=null}, 
target=Target{address='queue', durable=NONE, expiryPolicy=SESSION_END, 
timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}, 
unsettled=null, incompleteUnsettled=false, initialDeliveryCount=0, 
maxMessageSize=null, offeredCapabilities=null, desiredCapabilities=null, 
properties=null}
[250421012:0] <- Open{ containerId='14dd72ea-f2c1-44d6-bd04-8d5cb3fea97d', 
hostname='null', maxFrameSize=262144, channelMax=255, idleTimeOut=0, 
outgoingLocales=null, incomingLocales=null, 
offeredCapabilities=[ANONYMOUS-RELAY, SHARED-SUBS, 
sole-connection-for-container], desiredCapabilities=null, 
properties={product=unknown, version=7.1.0-SNAPSHOT, qpid.build=unknown, 
qpid.instance_name=Broker, qpid.virtualhost_properties_supported=true}}
[250421012:0] <- Begin{remoteChannel=0, nextOutgoingId=0, incomingWindow=8192, 
outgoingWindow=2048, handleMax=4294967295, offeredCapabilities=null, 
desiredCapabilities=null, properties=null}
[250421012:0] <- Attach{name='sender', handle=0, role=RECEIVER, 
sndSettleMode=MIXED, rcvSettleMode=FIRST, source=Source{address='mysource', 
durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, 
dynamicNodeProperties=null, distributionMode=null, filter=null, 
defaultOutcome=null, outcomes=null, capabilities=null}, 
target=Target{address='queue', durable=NONE, expiryPolicy=SESSION_END, 
timeout=0, dynamic=false, dynamicNodeProperties=null, 
capabilities=[REJECT_UNROUTABLE, DELAYED_DELIVERY]}, unsettled={}, 
incompleteUnsettled=false, initialDeliveryCount=null, 
maxMessageSize=10, offeredCapabilities=[REJECT_UNROUTABLE, 
DELAYED_DELIVERY], desiredCapabilities=null, properties={}}
[250421012:0] <- Flow{nextIncomingId=1, incomingWindow=8192, nextOutgoingId=0, 
outgoingWindow=2048, handle=0, deliveryCount=0, linkCredit=2, 
available=null, drain=false, echo=false, properties=null}
[250421012:0] -> Transfer{handle=0, deliveryId=0, deliveryTag=0, 
messageFormat=0, settled=true, more=false, rcvSettleMode=null, state=null, 
resume=false, aborted=false, batchable=false} (34) 
"\x00Ss\xd0\x00\x00\x00\x09\x00\x00\x00\x01q\x00\x00\x01\x00\x00Sw\xa1\x0cHello 
World!"
[250421012:0] -> Detach{handle=0, closed=true, error=null}
[250421012:0] -> End{error=null}
[250421012:0] -> Close{error=null}
[250421012:0] <- Detach{handle=0, closed=true, error=null}
[250421012:0] <- End{error=null}
[250421012:0] <- Close{error=null}
{noformat}


  was:
The message codec (message format 0) codec of Proton-J is prepared to send 
{{message-id}} (and {{correlation-id}}) values with types other than those 
permitted by sections 3.2.1.1 through 3.2.14 of the AMQP 1.0 specification.  
This means the library allows the caller to send illegally encoded AMQP 1.0 
annotated messages.

Here's a trace from the Proton-J example 
{{org.apache.qpid.proton.example.reactor.Send}} modified to set a message id 
{{message.setMessageId(256);}} on the transmitted message.

The {{q\x00\x00\x01\x00}} corresponds to the message id, with q (0x71) being 
the type code of the primate type {{int}}.


{noformat}
[250421012:0] -> Open{ containerId='', hostname='localhost', 
maxFrameSize=4294967295, channelMax=65535, idleTimeOut=null, 
outgoingLocales=null, incomingLocales=null, offeredCapabilities=null, 
desiredCapabilities=null, properties=null}
[250421012:0] -> Begin{remoteChannel=null, nextOutgoingId=1, 

[jira] [Updated] (PROTON-1915) [Proton-J] Message codec encodes messageId values with types other than those permitted

2018-08-14 Thread Keith Wall (JIRA)


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

Keith Wall updated PROTON-1915:
---
Description: 
The message codec (message format 0) codec of Proton-J is prepared to send 
{{message-id}} (and {{correlation-id}}) values with types other than those 
permitted by sections 3.2.1.1 through 3.2.14 of the AMQP 1.0 specification.  
This means the library allows the caller to send illegally encoded AMQP 1.0 
annotated messages.

Here's a trace from the Proton-J example 
{{org.apache.qpid.proton.example.reactor.Send}} modified to set a message id 
{{message.setMessageId(256);}} on the transmitted message.

The {{q\x00\x00\x01\x00}} corresponds to the message id, with q (0x71) being 
the type code of the primate type {{int}}.


{noformat}
[250421012:0] -> Open{ containerId='', hostname='localhost', 
maxFrameSize=4294967295, channelMax=65535, idleTimeOut=null, 
outgoingLocales=null, incomingLocales=null, offeredCapabilities=null, 
desiredCapabilities=null, properties=null}
[250421012:0] -> Begin{remoteChannel=null, nextOutgoingId=1, 
incomingWindow=2147483647, outgoingWindow=2147483647, handleMax=65535, 
offeredCapabilities=null, desiredCapabilities=null, properties=null}
[250421012:0] -> Attach{name='sender', handle=0, role=SENDER, 
sndSettleMode=MIXED, rcvSettleMode=FIRST, source=Source{address='mysource', 
durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, 
dynamicNodeProperties=null, distributionMode=null, filter=null, 
defaultOutcome=null, outcomes=null, capabilities=null}, 
target=Target{address='queue', durable=NONE, expiryPolicy=SESSION_END, 
timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}, 
unsettled=null, incompleteUnsettled=false, initialDeliveryCount=0, 
maxMessageSize=null, offeredCapabilities=null, desiredCapabilities=null, 
properties=null}
[250421012:0] <- Open{ containerId='14dd72ea-f2c1-44d6-bd04-8d5cb3fea97d', 
hostname='null', maxFrameSize=262144, channelMax=255, idleTimeOut=0, 
outgoingLocales=null, incomingLocales=null, 
offeredCapabilities=[ANONYMOUS-RELAY, SHARED-SUBS, 
sole-connection-for-container], desiredCapabilities=null, 
properties={product=unknown, version=7.1.0-SNAPSHOT, qpid.build=unknown, 
qpid.instance_name=Broker, qpid.virtualhost_properties_supported=true}}
[250421012:0] <- Begin{remoteChannel=0, nextOutgoingId=0, incomingWindow=8192, 
outgoingWindow=2048, handleMax=4294967295, offeredCapabilities=null, 
desiredCapabilities=null, properties=null}
[250421012:0] <- Attach{name='sender', handle=0, role=RECEIVER, 
sndSettleMode=MIXED, rcvSettleMode=FIRST, source=Source{address='mysource', 
durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, 
dynamicNodeProperties=null, distributionMode=null, filter=null, 
defaultOutcome=null, outcomes=null, capabilities=null}, 
target=Target{address='queue', durable=NONE, expiryPolicy=SESSION_END, 
timeout=0, dynamic=false, dynamicNodeProperties=null, 
capabilities=[REJECT_UNROUTABLE, DELAYED_DELIVERY]}, unsettled={}, 
incompleteUnsettled=false, initialDeliveryCount=null, 
maxMessageSize=10, offeredCapabilities=[REJECT_UNROUTABLE, 
DELAYED_DELIVERY], desiredCapabilities=null, properties={}}
[250421012:0] <- Flow{nextIncomingId=1, incomingWindow=8192, nextOutgoingId=0, 
outgoingWindow=2048, handle=0, deliveryCount=0, linkCredit=2, 
available=null, drain=false, echo=false, properties=null}
[250421012:0] -> Transfer{handle=0, deliveryId=0, deliveryTag=0, 
messageFormat=0, settled=true, more=false, rcvSettleMode=null, state=null, 
resume=false, aborted=false, batchable=false} (34) 
"\x00Ss\xd0\x00\x00\x00\x09\x00\x00\x00\x01q\x00\x00\x01\x00\x00Sw\xa1\x0cHello 
World!"
[250421012:0] -> Detach{handle=0, closed=true, error=null}
[250421012:0] -> End{error=null}
[250421012:0] -> Close{error=null}
[250421012:0] <- Detach{handle=0, closed=true, error=null}
[250421012:0] <- End{error=null}
[250421012:0] <- Close{error=null}
{noformat}


  was:
The message codec (message format 0) codec of Proton-J is prepared to send 
{{message-id}} (and {{correlation-id}}) values with types other than those 
permitted by sections 3.2.1.1 through 3.2.14 of the AMQP 1.0 specification.  
This means the library allows the caller to sent illegally encoded AMQP 1.0 
annotated messages.

Here's a trace from the Proton-J example 
{{org.apache.qpid.proton.example.reactor.Send}} modified to set a message id 
{{message.setMessageId(256);}} on the transmitted message.

The {{q\x00\x00\x01\x00}} corresponds to the message id, with q (0x71) being 
the type code of the primate type {{int}}.


{noformat}
[250421012:0] -> Open{ containerId='', hostname='localhost', 
maxFrameSize=4294967295, channelMax=65535, idleTimeOut=null, 
outgoingLocales=null, incomingLocales=null, offeredCapabilities=null, 
desiredCapabilities=null, properties=null}
[250421012:0] -> Begin{remoteChannel=null, nextOutgoingId=1, 

[jira] [Updated] (PROTON-1915) [Proton-J] Message codec encodes messageId values with types other than those permitted

2018-08-14 Thread Keith Wall (JIRA)


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

Keith Wall updated PROTON-1915:
---
Description: 
The message codec (message format 0) codec of Proton-J is prepared to send 
{{message-id}} (and {{correlation-id}}) values with types other than those 
permitted by sections 3.2.1.1 through 3.2.14 of the AMQP 1.0 specification.  
This means the library allows the caller to sent illegally encoded AMQP 1.0 
annotated messages.

Here's a trace from the Proton-J example 
{{org.apache.qpid.proton.example.reactor.Send}} modified to set a message id 
{{message.setMessageId(256);}} on the transmitted message.

The {{q\x00\x00\x01\x00}} corresponds to the message id, with q (0x71) being 
the type code of the primate type {{int}}.


{noformat}
[250421012:0] -> Open{ containerId='', hostname='localhost', 
maxFrameSize=4294967295, channelMax=65535, idleTimeOut=null, 
outgoingLocales=null, incomingLocales=null, offeredCapabilities=null, 
desiredCapabilities=null, properties=null}
[250421012:0] -> Begin{remoteChannel=null, nextOutgoingId=1, 
incomingWindow=2147483647, outgoingWindow=2147483647, handleMax=65535, 
offeredCapabilities=null, desiredCapabilities=null, properties=null}
[250421012:0] -> Attach{name='sender', handle=0, role=SENDER, 
sndSettleMode=MIXED, rcvSettleMode=FIRST, source=Source{address='mysource', 
durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, 
dynamicNodeProperties=null, distributionMode=null, filter=null, 
defaultOutcome=null, outcomes=null, capabilities=null}, 
target=Target{address='queue', durable=NONE, expiryPolicy=SESSION_END, 
timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}, 
unsettled=null, incompleteUnsettled=false, initialDeliveryCount=0, 
maxMessageSize=null, offeredCapabilities=null, desiredCapabilities=null, 
properties=null}
[250421012:0] <- Open{ containerId='14dd72ea-f2c1-44d6-bd04-8d5cb3fea97d', 
hostname='null', maxFrameSize=262144, channelMax=255, idleTimeOut=0, 
outgoingLocales=null, incomingLocales=null, 
offeredCapabilities=[ANONYMOUS-RELAY, SHARED-SUBS, 
sole-connection-for-container], desiredCapabilities=null, 
properties={product=unknown, version=7.1.0-SNAPSHOT, qpid.build=unknown, 
qpid.instance_name=Broker, qpid.virtualhost_properties_supported=true}}
[250421012:0] <- Begin{remoteChannel=0, nextOutgoingId=0, incomingWindow=8192, 
outgoingWindow=2048, handleMax=4294967295, offeredCapabilities=null, 
desiredCapabilities=null, properties=null}
[250421012:0] <- Attach{name='sender', handle=0, role=RECEIVER, 
sndSettleMode=MIXED, rcvSettleMode=FIRST, source=Source{address='mysource', 
durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, 
dynamicNodeProperties=null, distributionMode=null, filter=null, 
defaultOutcome=null, outcomes=null, capabilities=null}, 
target=Target{address='queue', durable=NONE, expiryPolicy=SESSION_END, 
timeout=0, dynamic=false, dynamicNodeProperties=null, 
capabilities=[REJECT_UNROUTABLE, DELAYED_DELIVERY]}, unsettled={}, 
incompleteUnsettled=false, initialDeliveryCount=null, 
maxMessageSize=10, offeredCapabilities=[REJECT_UNROUTABLE, 
DELAYED_DELIVERY], desiredCapabilities=null, properties={}}
[250421012:0] <- Flow{nextIncomingId=1, incomingWindow=8192, nextOutgoingId=0, 
outgoingWindow=2048, handle=0, deliveryCount=0, linkCredit=2, 
available=null, drain=false, echo=false, properties=null}
[250421012:0] -> Transfer{handle=0, deliveryId=0, deliveryTag=0, 
messageFormat=0, settled=true, more=false, rcvSettleMode=null, state=null, 
resume=false, aborted=false, batchable=false} (34) 
"\x00Ss\xd0\x00\x00\x00\x09\x00\x00\x00\x01q\x00\x00\x01\x00\x00Sw\xa1\x0cHello 
World!"
[250421012:0] -> Detach{handle=0, closed=true, error=null}
[250421012:0] -> End{error=null}
[250421012:0] -> Close{error=null}
[250421012:0] <- Detach{handle=0, closed=true, error=null}
[250421012:0] <- End{error=null}
[250421012:0] <- Close{error=null}
{noformat}


  was:
The message codec (message format 0) codec of Proton-J is prepared to send 
{{message-id}} (and {{correlation-id}}) values with types other than those 
permitted by sections 3.2.1.1 through 3.2.14 of the AMQP 1.0 specification.

Here's a trace from the Proton-J example 
{{org.apache.qpid.proton.example.reactor.Send}} modified to set a message id {{ 
message.setMessageId(256);}} on the transmitted message.

The {{q\x00\x00\x01\x00}} corresponds to the message id, with q (0x71) being 
the type code of the primate type {{int}}.


{noformat}
[250421012:0] -> Open{ containerId='', hostname='localhost', 
maxFrameSize=4294967295, channelMax=65535, idleTimeOut=null, 
outgoingLocales=null, incomingLocales=null, offeredCapabilities=null, 
desiredCapabilities=null, properties=null}
[250421012:0] -> Begin{remoteChannel=null, nextOutgoingId=1, 
incomingWindow=2147483647, outgoingWindow=2147483647, handleMax=65535, 
offeredCapabilities=null, 

[jira] [Commented] (PROTON-1915) [Proton-J] Message codec encodes messageId values with types other than those permitted

2018-08-14 Thread Keith Wall (JIRA)


[ 
https://issues.apache.org/jira/browse/PROTON-1915?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16579462#comment-16579462
 ] 

Keith Wall commented on PROTON-1915:


>From a brief look at Proton-C, I would say Proton-C is unaffected by this 
>issue.

> [Proton-J] Message codec encodes messageId values with types other than those 
> permitted
> ---
>
> Key: PROTON-1915
> URL: https://issues.apache.org/jira/browse/PROTON-1915
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: proton-j
>Reporter: Keith Wall
>Priority: Major
>
> The message codec (message format 0) codec of Proton-J is prepared to send 
> {{message-id}} (and {{correlation-id}}) values with types other than those 
> permitted by sections 3.2.1.1 through 3.2.14 of the AMQP 1.0 specification.
> Here's a trace from the Proton-J example 
> {{org.apache.qpid.proton.example.reactor.Send}} modified to set a message id 
> {{ message.setMessageId(256);}} on the transmitted message.
> The {{q\x00\x00\x01\x00}} corresponds to the message id, with q (0x71) being 
> the type code of the primate type {{int}}.
> {noformat}
> [250421012:0] -> Open{ containerId='', hostname='localhost', 
> maxFrameSize=4294967295, channelMax=65535, idleTimeOut=null, 
> outgoingLocales=null, incomingLocales=null, offeredCapabilities=null, 
> desiredCapabilities=null, properties=null}
> [250421012:0] -> Begin{remoteChannel=null, nextOutgoingId=1, 
> incomingWindow=2147483647, outgoingWindow=2147483647, handleMax=65535, 
> offeredCapabilities=null, desiredCapabilities=null, properties=null}
> [250421012:0] -> Attach{name='sender', handle=0, role=SENDER, 
> sndSettleMode=MIXED, rcvSettleMode=FIRST, source=Source{address='mysource', 
> durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, 
> dynamicNodeProperties=null, distributionMode=null, filter=null, 
> defaultOutcome=null, outcomes=null, capabilities=null}, 
> target=Target{address='queue', durable=NONE, expiryPolicy=SESSION_END, 
> timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}, 
> unsettled=null, incompleteUnsettled=false, initialDeliveryCount=0, 
> maxMessageSize=null, offeredCapabilities=null, desiredCapabilities=null, 
> properties=null}
> [250421012:0] <- Open{ containerId='14dd72ea-f2c1-44d6-bd04-8d5cb3fea97d', 
> hostname='null', maxFrameSize=262144, channelMax=255, idleTimeOut=0, 
> outgoingLocales=null, incomingLocales=null, 
> offeredCapabilities=[ANONYMOUS-RELAY, SHARED-SUBS, 
> sole-connection-for-container], desiredCapabilities=null, 
> properties={product=unknown, version=7.1.0-SNAPSHOT, qpid.build=unknown, 
> qpid.instance_name=Broker, qpid.virtualhost_properties_supported=true}}
> [250421012:0] <- Begin{remoteChannel=0, nextOutgoingId=0, 
> incomingWindow=8192, outgoingWindow=2048, handleMax=4294967295, 
> offeredCapabilities=null, desiredCapabilities=null, properties=null}
> [250421012:0] <- Attach{name='sender', handle=0, role=RECEIVER, 
> sndSettleMode=MIXED, rcvSettleMode=FIRST, source=Source{address='mysource', 
> durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, 
> dynamicNodeProperties=null, distributionMode=null, filter=null, 
> defaultOutcome=null, outcomes=null, capabilities=null}, 
> target=Target{address='queue', durable=NONE, expiryPolicy=SESSION_END, 
> timeout=0, dynamic=false, dynamicNodeProperties=null, 
> capabilities=[REJECT_UNROUTABLE, DELAYED_DELIVERY]}, unsettled={}, 
> incompleteUnsettled=false, initialDeliveryCount=null, 
> maxMessageSize=10, offeredCapabilities=[REJECT_UNROUTABLE, 
> DELAYED_DELIVERY], desiredCapabilities=null, properties={}}
> [250421012:0] <- Flow{nextIncomingId=1, incomingWindow=8192, 
> nextOutgoingId=0, outgoingWindow=2048, handle=0, deliveryCount=0, 
> linkCredit=2, available=null, drain=false, echo=false, properties=null}
> [250421012:0] -> Transfer{handle=0, deliveryId=0, deliveryTag=0, 
> messageFormat=0, settled=true, more=false, rcvSettleMode=null, state=null, 
> resume=false, aborted=false, batchable=false} (34) 
> "\x00Ss\xd0\x00\x00\x00\x09\x00\x00\x00\x01q\x00\x00\x01\x00\x00Sw\xa1\x0cHello
>  World!"
> [250421012:0] -> Detach{handle=0, closed=true, error=null}
> [250421012:0] -> End{error=null}
> [250421012:0] -> Close{error=null}
> [250421012:0] <- Detach{handle=0, closed=true, error=null}
> [250421012:0] <- End{error=null}
> [250421012:0] <- Close{error=null}
> {noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Updated] (PROTON-1915) [Proton-J] Message codec encodes messageId values with types other than those permitted

2018-08-14 Thread Keith Wall (JIRA)


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

Keith Wall updated PROTON-1915:
---
Summary: [Proton-J] Message codec encodes messageId values with types other 
than those permitted  (was: [Proton-J] Message codec encodes messageId values 
with types other than permitted)

> [Proton-J] Message codec encodes messageId values with types other than those 
> permitted
> ---
>
> Key: PROTON-1915
> URL: https://issues.apache.org/jira/browse/PROTON-1915
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: proton-j
>Reporter: Keith Wall
>Priority: Major
>
> The message codec (message format 0) codec of Proton-J is prepared to send 
> {{message-id}} (and {{correlation-id}} values with types other than those 
> permitted by sections 3.2.1.1 through 3.2.14 of the AMQP 1.0 specification.
> Here's a trace from the Proton-J example 
> {{org.apache.qpid.proton.example.reactor.Send}} modified to set a message id 
> {{ message.setMessageId(256);}} on the transmitted message.
> The {{q\x00\x00\x01\x00}} corresponds to the message id, with q (0x71) being 
> the type code of the primate type {{int}}.
> {noformat}
> [250421012:0] -> Open{ containerId='', hostname='localhost', 
> maxFrameSize=4294967295, channelMax=65535, idleTimeOut=null, 
> outgoingLocales=null, incomingLocales=null, offeredCapabilities=null, 
> desiredCapabilities=null, properties=null}
> [250421012:0] -> Begin{remoteChannel=null, nextOutgoingId=1, 
> incomingWindow=2147483647, outgoingWindow=2147483647, handleMax=65535, 
> offeredCapabilities=null, desiredCapabilities=null, properties=null}
> [250421012:0] -> Attach{name='sender', handle=0, role=SENDER, 
> sndSettleMode=MIXED, rcvSettleMode=FIRST, source=Source{address='mysource', 
> durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, 
> dynamicNodeProperties=null, distributionMode=null, filter=null, 
> defaultOutcome=null, outcomes=null, capabilities=null}, 
> target=Target{address='queue', durable=NONE, expiryPolicy=SESSION_END, 
> timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}, 
> unsettled=null, incompleteUnsettled=false, initialDeliveryCount=0, 
> maxMessageSize=null, offeredCapabilities=null, desiredCapabilities=null, 
> properties=null}
> [250421012:0] <- Open{ containerId='14dd72ea-f2c1-44d6-bd04-8d5cb3fea97d', 
> hostname='null', maxFrameSize=262144, channelMax=255, idleTimeOut=0, 
> outgoingLocales=null, incomingLocales=null, 
> offeredCapabilities=[ANONYMOUS-RELAY, SHARED-SUBS, 
> sole-connection-for-container], desiredCapabilities=null, 
> properties={product=unknown, version=7.1.0-SNAPSHOT, qpid.build=unknown, 
> qpid.instance_name=Broker, qpid.virtualhost_properties_supported=true}}
> [250421012:0] <- Begin{remoteChannel=0, nextOutgoingId=0, 
> incomingWindow=8192, outgoingWindow=2048, handleMax=4294967295, 
> offeredCapabilities=null, desiredCapabilities=null, properties=null}
> [250421012:0] <- Attach{name='sender', handle=0, role=RECEIVER, 
> sndSettleMode=MIXED, rcvSettleMode=FIRST, source=Source{address='mysource', 
> durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, 
> dynamicNodeProperties=null, distributionMode=null, filter=null, 
> defaultOutcome=null, outcomes=null, capabilities=null}, 
> target=Target{address='queue', durable=NONE, expiryPolicy=SESSION_END, 
> timeout=0, dynamic=false, dynamicNodeProperties=null, 
> capabilities=[REJECT_UNROUTABLE, DELAYED_DELIVERY]}, unsettled={}, 
> incompleteUnsettled=false, initialDeliveryCount=null, 
> maxMessageSize=10, offeredCapabilities=[REJECT_UNROUTABLE, 
> DELAYED_DELIVERY], desiredCapabilities=null, properties={}}
> [250421012:0] <- Flow{nextIncomingId=1, incomingWindow=8192, 
> nextOutgoingId=0, outgoingWindow=2048, handle=0, deliveryCount=0, 
> linkCredit=2, available=null, drain=false, echo=false, properties=null}
> [250421012:0] -> Transfer{handle=0, deliveryId=0, deliveryTag=0, 
> messageFormat=0, settled=true, more=false, rcvSettleMode=null, state=null, 
> resume=false, aborted=false, batchable=false} (34) 
> "\x00Ss\xd0\x00\x00\x00\x09\x00\x00\x00\x01q\x00\x00\x01\x00\x00Sw\xa1\x0cHello
>  World!"
> [250421012:0] -> Detach{handle=0, closed=true, error=null}
> [250421012:0] -> End{error=null}
> [250421012:0] -> Close{error=null}
> [250421012:0] <- Detach{handle=0, closed=true, error=null}
> [250421012:0] <- End{error=null}
> [250421012:0] <- Close{error=null}
> {noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Updated] (PROTON-1915) [Proton-J] Message codec encodes messageId values with types other than those permitted

2018-08-14 Thread Keith Wall (JIRA)


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

Keith Wall updated PROTON-1915:
---
Description: 
The message codec (message format 0) codec of Proton-J is prepared to send 
{{message-id}} (and {{correlation-id}}) values with types other than those 
permitted by sections 3.2.1.1 through 3.2.14 of the AMQP 1.0 specification.

Here's a trace from the Proton-J example 
{{org.apache.qpid.proton.example.reactor.Send}} modified to set a message id {{ 
message.setMessageId(256);}} on the transmitted message.

The {{q\x00\x00\x01\x00}} corresponds to the message id, with q (0x71) being 
the type code of the primate type {{int}}.


{noformat}
[250421012:0] -> Open{ containerId='', hostname='localhost', 
maxFrameSize=4294967295, channelMax=65535, idleTimeOut=null, 
outgoingLocales=null, incomingLocales=null, offeredCapabilities=null, 
desiredCapabilities=null, properties=null}
[250421012:0] -> Begin{remoteChannel=null, nextOutgoingId=1, 
incomingWindow=2147483647, outgoingWindow=2147483647, handleMax=65535, 
offeredCapabilities=null, desiredCapabilities=null, properties=null}
[250421012:0] -> Attach{name='sender', handle=0, role=SENDER, 
sndSettleMode=MIXED, rcvSettleMode=FIRST, source=Source{address='mysource', 
durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, 
dynamicNodeProperties=null, distributionMode=null, filter=null, 
defaultOutcome=null, outcomes=null, capabilities=null}, 
target=Target{address='queue', durable=NONE, expiryPolicy=SESSION_END, 
timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}, 
unsettled=null, incompleteUnsettled=false, initialDeliveryCount=0, 
maxMessageSize=null, offeredCapabilities=null, desiredCapabilities=null, 
properties=null}
[250421012:0] <- Open{ containerId='14dd72ea-f2c1-44d6-bd04-8d5cb3fea97d', 
hostname='null', maxFrameSize=262144, channelMax=255, idleTimeOut=0, 
outgoingLocales=null, incomingLocales=null, 
offeredCapabilities=[ANONYMOUS-RELAY, SHARED-SUBS, 
sole-connection-for-container], desiredCapabilities=null, 
properties={product=unknown, version=7.1.0-SNAPSHOT, qpid.build=unknown, 
qpid.instance_name=Broker, qpid.virtualhost_properties_supported=true}}
[250421012:0] <- Begin{remoteChannel=0, nextOutgoingId=0, incomingWindow=8192, 
outgoingWindow=2048, handleMax=4294967295, offeredCapabilities=null, 
desiredCapabilities=null, properties=null}
[250421012:0] <- Attach{name='sender', handle=0, role=RECEIVER, 
sndSettleMode=MIXED, rcvSettleMode=FIRST, source=Source{address='mysource', 
durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, 
dynamicNodeProperties=null, distributionMode=null, filter=null, 
defaultOutcome=null, outcomes=null, capabilities=null}, 
target=Target{address='queue', durable=NONE, expiryPolicy=SESSION_END, 
timeout=0, dynamic=false, dynamicNodeProperties=null, 
capabilities=[REJECT_UNROUTABLE, DELAYED_DELIVERY]}, unsettled={}, 
incompleteUnsettled=false, initialDeliveryCount=null, 
maxMessageSize=10, offeredCapabilities=[REJECT_UNROUTABLE, 
DELAYED_DELIVERY], desiredCapabilities=null, properties={}}
[250421012:0] <- Flow{nextIncomingId=1, incomingWindow=8192, nextOutgoingId=0, 
outgoingWindow=2048, handle=0, deliveryCount=0, linkCredit=2, 
available=null, drain=false, echo=false, properties=null}
[250421012:0] -> Transfer{handle=0, deliveryId=0, deliveryTag=0, 
messageFormat=0, settled=true, more=false, rcvSettleMode=null, state=null, 
resume=false, aborted=false, batchable=false} (34) 
"\x00Ss\xd0\x00\x00\x00\x09\x00\x00\x00\x01q\x00\x00\x01\x00\x00Sw\xa1\x0cHello 
World!"
[250421012:0] -> Detach{handle=0, closed=true, error=null}
[250421012:0] -> End{error=null}
[250421012:0] -> Close{error=null}
[250421012:0] <- Detach{handle=0, closed=true, error=null}
[250421012:0] <- End{error=null}
[250421012:0] <- Close{error=null}
{noformat}


  was:
The message codec (message format 0) codec of Proton-J is prepared to send 
{{message-id}} (and {{correlation-id}} values with types other than those 
permitted by sections 3.2.1.1 through 3.2.14 of the AMQP 1.0 specification.

Here's a trace from the Proton-J example 
{{org.apache.qpid.proton.example.reactor.Send}} modified to set a message id {{ 
message.setMessageId(256);}} on the transmitted message.

The {{q\x00\x00\x01\x00}} corresponds to the message id, with q (0x71) being 
the type code of the primate type {{int}}.


{noformat}
[250421012:0] -> Open{ containerId='', hostname='localhost', 
maxFrameSize=4294967295, channelMax=65535, idleTimeOut=null, 
outgoingLocales=null, incomingLocales=null, offeredCapabilities=null, 
desiredCapabilities=null, properties=null}
[250421012:0] -> Begin{remoteChannel=null, nextOutgoingId=1, 
incomingWindow=2147483647, outgoingWindow=2147483647, handleMax=65535, 
offeredCapabilities=null, desiredCapabilities=null, properties=null}
[250421012:0] -> Attach{name='sender', handle=0, role=SENDER, 

[jira] [Created] (PROTON-1915) [Proton-J] Message codec encodes messageId values with types other than permitted

2018-08-14 Thread Keith Wall (JIRA)
Keith Wall created PROTON-1915:
--

 Summary: [Proton-J] Message codec encodes messageId values with 
types other than permitted
 Key: PROTON-1915
 URL: https://issues.apache.org/jira/browse/PROTON-1915
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-j
Reporter: Keith Wall


The message codec (message format 0) codec of Proton-J is prepared to send 
{{message-id}} (and {{correlation-id}} values with types other than those 
permitted by sections 3.2.1.1 through 3.2.14 of the AMQP 1.0 specification.

Here's a trace from the Proton-J example 
{{org.apache.qpid.proton.example.reactor.Send}} modified to set a message id {{ 
message.setMessageId(256);}} on the transmitted message.

The {{q\x00\x00\x01\x00}} corresponds to the message id, with q (0x71) being 
the type code of the primate type {{int}}.


{noformat}
[250421012:0] -> Open{ containerId='', hostname='localhost', 
maxFrameSize=4294967295, channelMax=65535, idleTimeOut=null, 
outgoingLocales=null, incomingLocales=null, offeredCapabilities=null, 
desiredCapabilities=null, properties=null}
[250421012:0] -> Begin{remoteChannel=null, nextOutgoingId=1, 
incomingWindow=2147483647, outgoingWindow=2147483647, handleMax=65535, 
offeredCapabilities=null, desiredCapabilities=null, properties=null}
[250421012:0] -> Attach{name='sender', handle=0, role=SENDER, 
sndSettleMode=MIXED, rcvSettleMode=FIRST, source=Source{address='mysource', 
durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, 
dynamicNodeProperties=null, distributionMode=null, filter=null, 
defaultOutcome=null, outcomes=null, capabilities=null}, 
target=Target{address='queue', durable=NONE, expiryPolicy=SESSION_END, 
timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}, 
unsettled=null, incompleteUnsettled=false, initialDeliveryCount=0, 
maxMessageSize=null, offeredCapabilities=null, desiredCapabilities=null, 
properties=null}
[250421012:0] <- Open{ containerId='14dd72ea-f2c1-44d6-bd04-8d5cb3fea97d', 
hostname='null', maxFrameSize=262144, channelMax=255, idleTimeOut=0, 
outgoingLocales=null, incomingLocales=null, 
offeredCapabilities=[ANONYMOUS-RELAY, SHARED-SUBS, 
sole-connection-for-container], desiredCapabilities=null, 
properties={product=unknown, version=7.1.0-SNAPSHOT, qpid.build=unknown, 
qpid.instance_name=Broker, qpid.virtualhost_properties_supported=true}}
[250421012:0] <- Begin{remoteChannel=0, nextOutgoingId=0, incomingWindow=8192, 
outgoingWindow=2048, handleMax=4294967295, offeredCapabilities=null, 
desiredCapabilities=null, properties=null}
[250421012:0] <- Attach{name='sender', handle=0, role=RECEIVER, 
sndSettleMode=MIXED, rcvSettleMode=FIRST, source=Source{address='mysource', 
durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, 
dynamicNodeProperties=null, distributionMode=null, filter=null, 
defaultOutcome=null, outcomes=null, capabilities=null}, 
target=Target{address='queue', durable=NONE, expiryPolicy=SESSION_END, 
timeout=0, dynamic=false, dynamicNodeProperties=null, 
capabilities=[REJECT_UNROUTABLE, DELAYED_DELIVERY]}, unsettled={}, 
incompleteUnsettled=false, initialDeliveryCount=null, 
maxMessageSize=10, offeredCapabilities=[REJECT_UNROUTABLE, 
DELAYED_DELIVERY], desiredCapabilities=null, properties={}}
[250421012:0] <- Flow{nextIncomingId=1, incomingWindow=8192, nextOutgoingId=0, 
outgoingWindow=2048, handle=0, deliveryCount=0, linkCredit=2, 
available=null, drain=false, echo=false, properties=null}
[250421012:0] -> Transfer{handle=0, deliveryId=0, deliveryTag=0, 
messageFormat=0, settled=true, more=false, rcvSettleMode=null, state=null, 
resume=false, aborted=false, batchable=false} (34) 
"\x00Ss\xd0\x00\x00\x00\x09\x00\x00\x00\x01q\x00\x00\x01\x00\x00Sw\xa1\x0cHello 
World!"
[250421012:0] -> Detach{handle=0, closed=true, error=null}
[250421012:0] -> End{error=null}
[250421012:0] -> Close{error=null}
[250421012:0] <- Detach{handle=0, closed=true, error=null}
[250421012:0] <- End{error=null}
[250421012:0] <- Close{error=null}
{noformat}




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Commented] (QPID-8227) [Broker-J] Replace qpidbrokerversion.properties with jar metadata

2018-08-09 Thread Keith Wall (JIRA)


[ 
https://issues.apache.org/jira/browse/QPID-8227?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16574426#comment-16574426
 ] 

Keith Wall commented on QPID-8227:
--

It is used when running Broker-J from classes rather than jars, as would 
typically happen when running inside of an IDE.  My motivation was to avoid 
receiving logs (attached to defect reports etc) without identifying version 
information.

> [Broker-J] Replace qpidbrokerversion.properties with jar metadata
> -
>
> Key: QPID-8227
> URL: https://issues.apache.org/jira/browse/QPID-8227
> Project: Qpid
>  Issue Type: Improvement
>  Components: Broker-J
>Reporter: Alex Rudyy
>Assignee: Alex Rudyy
>Priority: Major
> Fix For: qpid-java-broker-7.1.0
>
>
> Historically, the released qpid broker version was stored in file 
> qpidbrokerversion.properties. jar metadata can be used to get implementation 
> version information



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Commented] (DISPATCH-1086) Dispatch Router sporadically goes into a state where TLS connections to the auth service fail

2018-08-03 Thread Keith Wall (JIRA)


[ 
https://issues.apache.org/jira/browse/DISPATCH-1086?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16568067#comment-16568067
 ] 

Keith Wall commented on DISPATCH-1086:
--

I've spent considerable time trying to reproduce this error, so far without 
success, using both 1.2.0 and the 1.1.0 derivative 
(enmasseproject/qdrouterd-base:1.1.0_proton-0.23.0-http-DISPATCH-1034-1039) 
that was in use at the time.  Unfortunately, the original test environment that 
brought out this issue (many times), is not currently available.

I've raised a PR against Proton (PROTON-1886) to make the contents of the SSL 
error queue available via the Proton transport tracer.  Hopefully this will 
shed more light.

> Dispatch Router sporadically goes into a state where TLS connections to the 
> auth service fail
> -
>
> Key: DISPATCH-1086
> URL: https://issues.apache.org/jira/browse/DISPATCH-1086
> Project: Qpid Dispatch
>  Issue Type: Bug
>Affects Versions: 1.1.0
>Reporter: Keith Wall
>Priority: Major
>
> Whilst running performance tests against Enmasse, we periodically see a 
> problem where Dispatch Router (1.1.0) goes into a state where fails to form 
> TLS connections to the authservice. When this occurs, the router needs to be 
> restarted to restore service. There does not seem to be a pattern to when the 
> issue occurs, but in all cases where it has been seen, the test case included 
> tens or hundreds of concurrently formed connections.
> The following message is written to the log:
>  
> {noformat}
> 2018-07-06 10:38:45.543519 + AUTHSERVICE (warning) Cannot initialise 
> SSL{noformat}
>  Unfortunately turning up the router logging (using the following command) 
> reveal no more useful information. This Proton improvement JIRA was raised to 
> include the diagnostics from OpenSSL.
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Comment Edited] (PROTON-1886) Expose diagnostic information from the openssl error queue when SSL_new fails.

2018-08-03 Thread Keith Wall (JIRA)


[ 
https://issues.apache.org/jira/browse/PROTON-1886?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16568060#comment-16568060
 ] 

Keith Wall edited comment on PROTON-1886 at 8/3/18 10:25 AM:
-

Currently if {{SSL_new}} fails, Proton does not record the contents of the 
thread's SSL error queue.  This PR resolves this issue by directing the 
contents of the error queue to the transport's tracer.  The lack of this 
information is hampering investigation of DISPATCH-1086.  This change is likely 
to have general utility too.

To see this is action, I made a throw-away change to helloworld to enable SSL 
and then hacked a situation where SSL_new would fail.  Running with 
PN_TRACE_DRV set then gives this detail:

{noformat}
$ ./cpp/examples/helloworld_ssl
[0x7fc1cc403a00]:SSL socket setup failure.
[0x7fc1cc403a00]:error:140BA0C3:SSL routines:SSL_new:null ssl ctx
client SSL/TLS initialization error
{noformat}


was (Author: k-wall):
Currently if {{SSL_new}} fails, Proton does not record the contents of the 
thread's SSL error queue.  This PR resolves this issue by directing the 
contents of the error queue to the transport's tracer.  The lack of this 
information is hampering investigation of DISPATCH-1086.  This change is likely 
to have general utility too.

To see this is action, I made a throw-away change to helloworld to enable SSL 
and then hacked a situation where SSL_new would fail.  Setting PN_TRACE_DRV 
then gives this detail:

{noformat}
$ ./cpp/examples/helloworld_ssl
[0x7fc1cc403a00]:SSL socket setup failure.
[0x7fc1cc403a00]:error:140BA0C3:SSL routines:SSL_new:null ssl ctx
client SSL/TLS initialization error
{noformat}

> Expose diagnostic information from the openssl error queue when SSL_new fails.
> --
>
> Key: PROTON-1886
> URL: https://issues.apache.org/jira/browse/PROTON-1886
> Project: Qpid Proton
>  Issue Type: Improvement
>  Components: proton-c
>Reporter: Keith Wall
>Priority: Major
>
> If Proton C's call to 
> [SSL_new()|https://github.com/apache/qpid-proton/blob/3cb7a5c672d9f817a498684ac7057b713eda/c/src/ssl/openssl.c#L1235]
>  fails currently proton logs only "SSL socket setup failure.". It would aid 
> diagnostics if the logged information revealed the underlying reason(s) why 
> the failure occurred from the openssl error queue/stack. This approach is 
> suggested by the openssl SSL_new documentation.
> [https://www.openssl.org/docs/man1.0.2/ssl/SSL_new.html]
> [https://www.openssl.org/docs/manmaster/man3/ERR_get_error.html]
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Commented] (PROTON-1886) Expose diagnostic information from the openssl error queue when SSL_new fails.

2018-08-03 Thread Keith Wall (JIRA)


[ 
https://issues.apache.org/jira/browse/PROTON-1886?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16568060#comment-16568060
 ] 

Keith Wall commented on PROTON-1886:


Currently if {{SSL_new}} fails, Proton does not record the contents of the 
thread's SSL error queue.  This PR resolves this issue by directing the 
contents of the error queue to the transport's tracer.  The lack of this 
information is hampering investigation of DISPATCH-1086.  This change is likely 
to have general utility too.

To see this is action, I made a throw-away change to helloworld to enable SSL 
and then hacked a situation where SSL_new would fail.  Setting PN_TRACE_DRV 
then gives this detail:

{noformat}
$ ./cpp/examples/helloworld_ssl
[0x7fc1cc403a00]:SSL socket setup failure.
[0x7fc1cc403a00]:error:140BA0C3:SSL routines:SSL_new:null ssl ctx
client SSL/TLS initialization error
{noformat}

> Expose diagnostic information from the openssl error queue when SSL_new fails.
> --
>
> Key: PROTON-1886
> URL: https://issues.apache.org/jira/browse/PROTON-1886
> Project: Qpid Proton
>  Issue Type: Improvement
>  Components: proton-c
>Reporter: Keith Wall
>Priority: Major
>
> If Proton C's call to 
> [SSL_new()|https://github.com/apache/qpid-proton/blob/3cb7a5c672d9f817a498684ac7057b713eda/c/src/ssl/openssl.c#L1235]
>  fails currently proton logs only "SSL socket setup failure.". It would aid 
> diagnostics if the logged information revealed the underlying reason(s) why 
> the failure occurred from the openssl error queue/stack. This approach is 
> suggested by the openssl SSL_new documentation.
> [https://www.openssl.org/docs/man1.0.2/ssl/SSL_new.html]
> [https://www.openssl.org/docs/manmaster/man3/ERR_get_error.html]
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Updated] (PROTON-1905) CompositeReadableBuffer.duplicate seen to throw a NPE

2018-08-02 Thread Keith Wall (JIRA)


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

Keith Wall updated PROTON-1905:
---
Description: 
Whilst verifying the RC1 candidate for the 0.27.3 RC1, the 
{{proton_tests.engine.CreditTest.testDrainOrder}} Jython test caused a NPE with 
Proton-J's application code.I realised later my shell had  the 
{{PN_TRACE_FRM=true}} environment variable set. Unsetting the variable allows 
the test to pass.  The regression was introduced at 0.27.0.

{noformat}
proton_tests.engine.CreditTest.testDrainOrder 
...[1346009488:0] -> Open{ containerId='', 
hostname='null', maxFrameSize=16384, channelMax=65535, idleTimeOut=null, 
outgoingLocales=null, incomingLocales=null, offeredCapabilities=null, 
desiredCapabilities=null, properties=null}
[1346009488:0] -> Begin{remoteChannel=null, nextOutgoingId=1, 
incomingWindow=2147483647, outgoingWindow=2147483647, handleMax=65535, 
offeredCapabilities=null, desiredCapabilities=null, properties=null}
[1346009488:0] <- Open{ containerId='', hostname='null', maxFrameSize=16384, 
channelMax=65535, idleTimeOut=null, outgoingLocales=null, incomingLocales=null, 
offeredCapabilities=null, desiredCapabilities=null, properties=null}
[1346009488:0] <- Begin{remoteChannel=0, nextOutgoingId=1, 
incomingWindow=2147483647, outgoingWindow=2147483647, handleMax=65535, 
offeredCapabilities=null, desiredCapabilities=null, properties=null}
[1346009488:0] -> Attach{name='test-link', handle=0, role=SENDER, 
sndSettleMode=MIXED, rcvSettleMode=FIRST, source=Source{address='null', 
durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, 
dynamicNodeProperties=null, distributionMode=null, filter=null, 
defaultOutcome=null, outcomes=null, capabilities=null}, 
target=Target{address='null', durable=NONE, expiryPolicy=SESSION_END, 
timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}, 
unsettled=null, incompleteUnsettled=false, initialDeliveryCount=0, 
maxMessageSize=null, offeredCapabilities=null, desiredCapabilities=null, 
properties=null}
[1346009488:0] <- Attach{name='test-link', handle=0, role=RECEIVER, 
sndSettleMode=MIXED, rcvSettleMode=FIRST, source=Source{address='null', 
durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, 
dynamicNodeProperties=null, distributionMode=null, filter=null, 
defaultOutcome=null, outcomes=null, capabilities=null}, 
target=Target{address='null', durable=NONE, expiryPolicy=SESSION_END, 
timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}, 
unsettled=null, incompleteUnsettled=false, initialDeliveryCount=null, 
maxMessageSize=null, offeredCapabilities=null, desiredCapabilities=null, 
properties=null}
[1346009488:0] <- Flow{nextIncomingId=1, incomingWindow=2147483647, 
nextOutgoingId=1, outgoingWindow=2147483647, handle=0, deliveryCount=0, 
linkCredit=10, available=null, drain=false, echo=false, properties=null}
[1346009488:0] -> Transfer{handle=0, deliveryId=0, deliveryTag=tagA, 
messageFormat=0, settled=null, more=true, rcvSettleMode=null, state=null, 
resume=false, aborted=false, batchable=false} (1) "A"
 fail
Error during test:  Traceback (most recent call last):
File 
"/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/python/proton-test",
 line 362, in run
  phase()
File 
"/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/python/proton_tests/engine.py",
 line 1556, in testDrainOrder
  self.pump()
File 
"/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/python/proton_tests/engine.py",
 line 112, in pump
  pump(t1, t2, buffer_size)
File 
"/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/python/proton_tests/common.py",
 line 113, in pump
  while (pump_uni(transport1, transport2, buffer_size) or
File 
"/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/python/proton_tests/common.py",
 line 86, in pump_uni
  p = src.pending()
File 
"/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/java/shim/binding/proton/__init__.py",
 line 2764, in pending
  p = pn_transport_pending(self._impl)
File 
"/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/java/shim/cengine.py",
 line 936, in pn_transport_pending
  return trans.impl.pending()
  NullPointerException: java.lang.NullPointerException

org.apache.qpid.proton.codec.CompositeReadableBuffer.(CompositeReadableBuffer.java:69)

org.apache.qpid.proton.codec.CompositeReadableBuffer.duplicate(CompositeReadableBuffer.java:474)

org.apache.qpid.proton.codec.CompositeReadableBuffer.duplicate(CompositeReadableBuffer.java:35)
org.apache.qpid.proton.amqp.Binary.create(Binary.java:181)

org.apache.qpid.proton.engine.impl.FrameWriter.logFrame(FrameWriter.java:200)

org.apache.qpid.proton.engine.impl.FrameWriter.writeFrame(FrameWriter.java:168)


[jira] [Updated] (PROTON-1905) CompositeReadableBuffer.duplicate seen to throw a NPE during frame logging

2018-08-02 Thread Keith Wall (JIRA)


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

Keith Wall updated PROTON-1905:
---
Summary: CompositeReadableBuffer.duplicate seen to throw a NPE during frame 
logging  (was: CompositeReadableBuffer.duplicate seen to throw a NPE)

> CompositeReadableBuffer.duplicate seen to throw a NPE during frame logging
> --
>
> Key: PROTON-1905
> URL: https://issues.apache.org/jira/browse/PROTON-1905
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: proton-j
>Affects Versions: proton-j-0.27.0, proton-j-0.28.0
>Reporter: Keith Wall
>Priority: Major
>
> Whilst verifying the RC1 candidate for the 0.27.3 RC1, the 
> {{proton_tests.engine.CreditTest.testDrainOrder}} Jython test caused a NPE 
> with Proton-J's application code.I realised later my shell had  the 
> {{PN_TRACE_FRM=true}} environment variable set. Unsetting the variable allows 
> the test to pass.  The regression was introduced at 0.27.0.
> {noformat}
> proton_tests.engine.CreditTest.testDrainOrder 
> ...[1346009488:0] -> Open{ containerId='', 
> hostname='null', maxFrameSize=16384, channelMax=65535, idleTimeOut=null, 
> outgoingLocales=null, incomingLocales=null, offeredCapabilities=null, 
> desiredCapabilities=null, properties=null}
> [1346009488:0] -> Begin{remoteChannel=null, nextOutgoingId=1, 
> incomingWindow=2147483647, outgoingWindow=2147483647, handleMax=65535, 
> offeredCapabilities=null, desiredCapabilities=null, properties=null}
> [1346009488:0] <- Open{ containerId='', hostname='null', maxFrameSize=16384, 
> channelMax=65535, idleTimeOut=null, outgoingLocales=null, 
> incomingLocales=null, offeredCapabilities=null, desiredCapabilities=null, 
> properties=null}
> [1346009488:0] <- Begin{remoteChannel=0, nextOutgoingId=1, 
> incomingWindow=2147483647, outgoingWindow=2147483647, handleMax=65535, 
> offeredCapabilities=null, desiredCapabilities=null, properties=null}
> [1346009488:0] -> Attach{name='test-link', handle=0, role=SENDER, 
> sndSettleMode=MIXED, rcvSettleMode=FIRST, source=Source{address='null', 
> durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, 
> dynamicNodeProperties=null, distributionMode=null, filter=null, 
> defaultOutcome=null, outcomes=null, capabilities=null}, 
> target=Target{address='null', durable=NONE, expiryPolicy=SESSION_END, 
> timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}, 
> unsettled=null, incompleteUnsettled=false, initialDeliveryCount=0, 
> maxMessageSize=null, offeredCapabilities=null, desiredCapabilities=null, 
> properties=null}
> [1346009488:0] <- Attach{name='test-link', handle=0, role=RECEIVER, 
> sndSettleMode=MIXED, rcvSettleMode=FIRST, source=Source{address='null', 
> durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, 
> dynamicNodeProperties=null, distributionMode=null, filter=null, 
> defaultOutcome=null, outcomes=null, capabilities=null}, 
> target=Target{address='null', durable=NONE, expiryPolicy=SESSION_END, 
> timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}, 
> unsettled=null, incompleteUnsettled=false, initialDeliveryCount=null, 
> maxMessageSize=null, offeredCapabilities=null, desiredCapabilities=null, 
> properties=null}
> [1346009488:0] <- Flow{nextIncomingId=1, incomingWindow=2147483647, 
> nextOutgoingId=1, outgoingWindow=2147483647, handle=0, deliveryCount=0, 
> linkCredit=10, available=null, drain=false, echo=false, properties=null}
> [1346009488:0] -> Transfer{handle=0, deliveryId=0, deliveryTag=tagA, 
> messageFormat=0, settled=null, more=true, rcvSettleMode=null, state=null, 
> resume=false, aborted=false, batchable=false} (1) "A"
>  fail
> Error during test:  Traceback (most recent call last):
> File 
> "/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/python/proton-test",
>  line 362, in run
>   phase()
> File 
> "/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/python/proton_tests/engine.py",
>  line 1556, in testDrainOrder
>   self.pump()
> File 
> "/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/python/proton_tests/engine.py",
>  line 112, in pump
>   pump(t1, t2, buffer_size)
> File 
> "/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/python/proton_tests/common.py",
>  line 113, in pump
>   while (pump_uni(transport1, transport2, buffer_size) or
> File 
> "/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/python/proton_tests/common.py",
>  line 86, in pump_uni
>   p = src.pending()
> File 
> "/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/java/shim/binding/proton/__init__.py",
>  line 2764, in pending
>   p = pn_transport_pending(self._impl)
> File 
> 

[jira] [Updated] (PROTON-1905) CompositeReadableBuffer.duplicate seen to throw a NPE

2018-08-02 Thread Keith Wall (JIRA)


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

Keith Wall updated PROTON-1905:
---
Affects Version/s: (was: proton-j-0.27.3)

> CompositeReadableBuffer.duplicate seen to throw a NPE
> -
>
> Key: PROTON-1905
> URL: https://issues.apache.org/jira/browse/PROTON-1905
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: proton-j
>Affects Versions: proton-j-0.27.0, proton-j-0.28.0
>Reporter: Keith Wall
>Priority: Major
>
> Whilst verifying the RC1 candidate for the 0.27.3 RC1, the 
> {{proton_tests.engine.CreditTest.testDrainOrder}} Jython test caused a NPE 
> with Proton-J's application code.I realised later my shell had  the 
> {{PN_TRACE_FRM=true}} environment variable set. Unsetting the variable allows 
> the test to pass.
> {noformat}
> proton_tests.engine.CreditTest.testDrainOrder 
> ...[1346009488:0] -> Open{ containerId='', 
> hostname='null', maxFrameSize=16384, channelMax=65535, idleTimeOut=null, 
> outgoingLocales=null, incomingLocales=null, offeredCapabilities=null, 
> desiredCapabilities=null, properties=null}
> [1346009488:0] -> Begin{remoteChannel=null, nextOutgoingId=1, 
> incomingWindow=2147483647, outgoingWindow=2147483647, handleMax=65535, 
> offeredCapabilities=null, desiredCapabilities=null, properties=null}
> [1346009488:0] <- Open{ containerId='', hostname='null', maxFrameSize=16384, 
> channelMax=65535, idleTimeOut=null, outgoingLocales=null, 
> incomingLocales=null, offeredCapabilities=null, desiredCapabilities=null, 
> properties=null}
> [1346009488:0] <- Begin{remoteChannel=0, nextOutgoingId=1, 
> incomingWindow=2147483647, outgoingWindow=2147483647, handleMax=65535, 
> offeredCapabilities=null, desiredCapabilities=null, properties=null}
> [1346009488:0] -> Attach{name='test-link', handle=0, role=SENDER, 
> sndSettleMode=MIXED, rcvSettleMode=FIRST, source=Source{address='null', 
> durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, 
> dynamicNodeProperties=null, distributionMode=null, filter=null, 
> defaultOutcome=null, outcomes=null, capabilities=null}, 
> target=Target{address='null', durable=NONE, expiryPolicy=SESSION_END, 
> timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}, 
> unsettled=null, incompleteUnsettled=false, initialDeliveryCount=0, 
> maxMessageSize=null, offeredCapabilities=null, desiredCapabilities=null, 
> properties=null}
> [1346009488:0] <- Attach{name='test-link', handle=0, role=RECEIVER, 
> sndSettleMode=MIXED, rcvSettleMode=FIRST, source=Source{address='null', 
> durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, 
> dynamicNodeProperties=null, distributionMode=null, filter=null, 
> defaultOutcome=null, outcomes=null, capabilities=null}, 
> target=Target{address='null', durable=NONE, expiryPolicy=SESSION_END, 
> timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}, 
> unsettled=null, incompleteUnsettled=false, initialDeliveryCount=null, 
> maxMessageSize=null, offeredCapabilities=null, desiredCapabilities=null, 
> properties=null}
> [1346009488:0] <- Flow{nextIncomingId=1, incomingWindow=2147483647, 
> nextOutgoingId=1, outgoingWindow=2147483647, handle=0, deliveryCount=0, 
> linkCredit=10, available=null, drain=false, echo=false, properties=null}
> [1346009488:0] -> Transfer{handle=0, deliveryId=0, deliveryTag=tagA, 
> messageFormat=0, settled=null, more=true, rcvSettleMode=null, state=null, 
> resume=false, aborted=false, batchable=false} (1) "A"
>  fail
> Error during test:  Traceback (most recent call last):
> File 
> "/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/python/proton-test",
>  line 362, in run
>   phase()
> File 
> "/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/python/proton_tests/engine.py",
>  line 1556, in testDrainOrder
>   self.pump()
> File 
> "/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/python/proton_tests/engine.py",
>  line 112, in pump
>   pump(t1, t2, buffer_size)
> File 
> "/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/python/proton_tests/common.py",
>  line 113, in pump
>   while (pump_uni(transport1, transport2, buffer_size) or
> File 
> "/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/python/proton_tests/common.py",
>  line 86, in pump_uni
>   p = src.pending()
> File 
> "/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/java/shim/binding/proton/__init__.py",
>  line 2764, in pending
>   p = pn_transport_pending(self._impl)
> File 
> "/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/java/shim/cengine.py",
>  line 936, in pn_transport_pending
>   return trans.impl.pending()
>   

[jira] [Updated] (PROTON-1905) CompositeReadableBuffer.duplicate seen to throw a NPE

2018-08-02 Thread Keith Wall (JIRA)


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

Keith Wall updated PROTON-1905:
---
Affects Version/s: proton-j-0.27.0
   proton-j-0.28.0

> CompositeReadableBuffer.duplicate seen to throw a NPE
> -
>
> Key: PROTON-1905
> URL: https://issues.apache.org/jira/browse/PROTON-1905
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: proton-j
>Affects Versions: proton-j-0.27.0, proton-j-0.28.0, proton-j-0.27.3
>Reporter: Keith Wall
>Priority: Major
>
> Whilst verifying the RC1 candidate for the 0.27.3 RC1, the 
> {{proton_tests.engine.CreditTest.testDrainOrder}} Jython test caused a NPE 
> with Proton-J's application code.I realised later my shell had  the 
> {{PN_TRACE_FRM=true}} environment variable set. Unsetting the variable allows 
> the test to pass.
> {noformat}
> proton_tests.engine.CreditTest.testDrainOrder 
> ...[1346009488:0] -> Open{ containerId='', 
> hostname='null', maxFrameSize=16384, channelMax=65535, idleTimeOut=null, 
> outgoingLocales=null, incomingLocales=null, offeredCapabilities=null, 
> desiredCapabilities=null, properties=null}
> [1346009488:0] -> Begin{remoteChannel=null, nextOutgoingId=1, 
> incomingWindow=2147483647, outgoingWindow=2147483647, handleMax=65535, 
> offeredCapabilities=null, desiredCapabilities=null, properties=null}
> [1346009488:0] <- Open{ containerId='', hostname='null', maxFrameSize=16384, 
> channelMax=65535, idleTimeOut=null, outgoingLocales=null, 
> incomingLocales=null, offeredCapabilities=null, desiredCapabilities=null, 
> properties=null}
> [1346009488:0] <- Begin{remoteChannel=0, nextOutgoingId=1, 
> incomingWindow=2147483647, outgoingWindow=2147483647, handleMax=65535, 
> offeredCapabilities=null, desiredCapabilities=null, properties=null}
> [1346009488:0] -> Attach{name='test-link', handle=0, role=SENDER, 
> sndSettleMode=MIXED, rcvSettleMode=FIRST, source=Source{address='null', 
> durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, 
> dynamicNodeProperties=null, distributionMode=null, filter=null, 
> defaultOutcome=null, outcomes=null, capabilities=null}, 
> target=Target{address='null', durable=NONE, expiryPolicy=SESSION_END, 
> timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}, 
> unsettled=null, incompleteUnsettled=false, initialDeliveryCount=0, 
> maxMessageSize=null, offeredCapabilities=null, desiredCapabilities=null, 
> properties=null}
> [1346009488:0] <- Attach{name='test-link', handle=0, role=RECEIVER, 
> sndSettleMode=MIXED, rcvSettleMode=FIRST, source=Source{address='null', 
> durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, 
> dynamicNodeProperties=null, distributionMode=null, filter=null, 
> defaultOutcome=null, outcomes=null, capabilities=null}, 
> target=Target{address='null', durable=NONE, expiryPolicy=SESSION_END, 
> timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}, 
> unsettled=null, incompleteUnsettled=false, initialDeliveryCount=null, 
> maxMessageSize=null, offeredCapabilities=null, desiredCapabilities=null, 
> properties=null}
> [1346009488:0] <- Flow{nextIncomingId=1, incomingWindow=2147483647, 
> nextOutgoingId=1, outgoingWindow=2147483647, handle=0, deliveryCount=0, 
> linkCredit=10, available=null, drain=false, echo=false, properties=null}
> [1346009488:0] -> Transfer{handle=0, deliveryId=0, deliveryTag=tagA, 
> messageFormat=0, settled=null, more=true, rcvSettleMode=null, state=null, 
> resume=false, aborted=false, batchable=false} (1) "A"
>  fail
> Error during test:  Traceback (most recent call last):
> File 
> "/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/python/proton-test",
>  line 362, in run
>   phase()
> File 
> "/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/python/proton_tests/engine.py",
>  line 1556, in testDrainOrder
>   self.pump()
> File 
> "/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/python/proton_tests/engine.py",
>  line 112, in pump
>   pump(t1, t2, buffer_size)
> File 
> "/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/python/proton_tests/common.py",
>  line 113, in pump
>   while (pump_uni(transport1, transport2, buffer_size) or
> File 
> "/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/python/proton_tests/common.py",
>  line 86, in pump_uni
>   p = src.pending()
> File 
> "/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/java/shim/binding/proton/__init__.py",
>  line 2764, in pending
>   p = pn_transport_pending(self._impl)
> File 
> "/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/java/shim/cengine.py",
>  line 936, in pn_transport_pending
>   return 

[jira] [Updated] (PROTON-1905) CompositeReadableBuffer.duplicate seen to throw a NPE

2018-08-02 Thread Keith Wall (JIRA)


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

Keith Wall updated PROTON-1905:
---
Description: 
Whilst verifying the RC1 candidate for the 0.27.3 RC1, the 
{{proton_tests.engine.CreditTest.testDrainOrder}} Jython test caused a NPE with 
Proton-J's application code.I realised later my shell had  the 
{{PN_TRACE_FRM=true}} environment variable set. Unsetting the variable allows 
the test to pass.

{noformat}
proton_tests.engine.CreditTest.testDrainOrder 
...[1346009488:0] -> Open{ containerId='', 
hostname='null', maxFrameSize=16384, channelMax=65535, idleTimeOut=null, 
outgoingLocales=null, incomingLocales=null, offeredCapabilities=null, 
desiredCapabilities=null, properties=null}
[1346009488:0] -> Begin{remoteChannel=null, nextOutgoingId=1, 
incomingWindow=2147483647, outgoingWindow=2147483647, handleMax=65535, 
offeredCapabilities=null, desiredCapabilities=null, properties=null}
[1346009488:0] <- Open{ containerId='', hostname='null', maxFrameSize=16384, 
channelMax=65535, idleTimeOut=null, outgoingLocales=null, incomingLocales=null, 
offeredCapabilities=null, desiredCapabilities=null, properties=null}
[1346009488:0] <- Begin{remoteChannel=0, nextOutgoingId=1, 
incomingWindow=2147483647, outgoingWindow=2147483647, handleMax=65535, 
offeredCapabilities=null, desiredCapabilities=null, properties=null}
[1346009488:0] -> Attach{name='test-link', handle=0, role=SENDER, 
sndSettleMode=MIXED, rcvSettleMode=FIRST, source=Source{address='null', 
durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, 
dynamicNodeProperties=null, distributionMode=null, filter=null, 
defaultOutcome=null, outcomes=null, capabilities=null}, 
target=Target{address='null', durable=NONE, expiryPolicy=SESSION_END, 
timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}, 
unsettled=null, incompleteUnsettled=false, initialDeliveryCount=0, 
maxMessageSize=null, offeredCapabilities=null, desiredCapabilities=null, 
properties=null}
[1346009488:0] <- Attach{name='test-link', handle=0, role=RECEIVER, 
sndSettleMode=MIXED, rcvSettleMode=FIRST, source=Source{address='null', 
durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, 
dynamicNodeProperties=null, distributionMode=null, filter=null, 
defaultOutcome=null, outcomes=null, capabilities=null}, 
target=Target{address='null', durable=NONE, expiryPolicy=SESSION_END, 
timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}, 
unsettled=null, incompleteUnsettled=false, initialDeliveryCount=null, 
maxMessageSize=null, offeredCapabilities=null, desiredCapabilities=null, 
properties=null}
[1346009488:0] <- Flow{nextIncomingId=1, incomingWindow=2147483647, 
nextOutgoingId=1, outgoingWindow=2147483647, handle=0, deliveryCount=0, 
linkCredit=10, available=null, drain=false, echo=false, properties=null}
[1346009488:0] -> Transfer{handle=0, deliveryId=0, deliveryTag=tagA, 
messageFormat=0, settled=null, more=true, rcvSettleMode=null, state=null, 
resume=false, aborted=false, batchable=false} (1) "A"
 fail
Error during test:  Traceback (most recent call last):
File 
"/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/python/proton-test",
 line 362, in run
  phase()
File 
"/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/python/proton_tests/engine.py",
 line 1556, in testDrainOrder
  self.pump()
File 
"/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/python/proton_tests/engine.py",
 line 112, in pump
  pump(t1, t2, buffer_size)
File 
"/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/python/proton_tests/common.py",
 line 113, in pump
  while (pump_uni(transport1, transport2, buffer_size) or
File 
"/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/python/proton_tests/common.py",
 line 86, in pump_uni
  p = src.pending()
File 
"/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/java/shim/binding/proton/__init__.py",
 line 2764, in pending
  p = pn_transport_pending(self._impl)
File 
"/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/java/shim/cengine.py",
 line 936, in pn_transport_pending
  return trans.impl.pending()
  NullPointerException: java.lang.NullPointerException

org.apache.qpid.proton.codec.CompositeReadableBuffer.(CompositeReadableBuffer.java:69)

org.apache.qpid.proton.codec.CompositeReadableBuffer.duplicate(CompositeReadableBuffer.java:474)

org.apache.qpid.proton.codec.CompositeReadableBuffer.duplicate(CompositeReadableBuffer.java:35)
org.apache.qpid.proton.amqp.Binary.create(Binary.java:181)

org.apache.qpid.proton.engine.impl.FrameWriter.logFrame(FrameWriter.java:200)

org.apache.qpid.proton.engine.impl.FrameWriter.writeFrame(FrameWriter.java:168)


[jira] [Updated] (PROTON-1905) CompositeReadableBuffer.duplicate seen to throw a NPE

2018-08-02 Thread Keith Wall (JIRA)


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

Keith Wall updated PROTON-1905:
---
Description: 
Whilst verifying the RC1 candidate for the 0.27.3 RC1, the 
{{proton_tests.engine.CreditTest.testDrainOrder}} Jython test caused a NPE with 
Proton-J's application code.I realised later my shell had  the 
{{PN_TRACE_FRM=true}} environment variable set.

{noformat}
proton_tests.engine.CreditTest.testDrainOrder 
...[1346009488:0] -> Open{ containerId='', 
hostname='null', maxFrameSize=16384, channelMax=65535, idleTimeOut=null, 
outgoingLocales=null, incomingLocales=null, offeredCapabilities=null, 
desiredCapabilities=null, properties=null}
[1346009488:0] -> Begin{remoteChannel=null, nextOutgoingId=1, 
incomingWindow=2147483647, outgoingWindow=2147483647, handleMax=65535, 
offeredCapabilities=null, desiredCapabilities=null, properties=null}
[1346009488:0] <- Open{ containerId='', hostname='null', maxFrameSize=16384, 
channelMax=65535, idleTimeOut=null, outgoingLocales=null, incomingLocales=null, 
offeredCapabilities=null, desiredCapabilities=null, properties=null}
[1346009488:0] <- Begin{remoteChannel=0, nextOutgoingId=1, 
incomingWindow=2147483647, outgoingWindow=2147483647, handleMax=65535, 
offeredCapabilities=null, desiredCapabilities=null, properties=null}
[1346009488:0] -> Attach{name='test-link', handle=0, role=SENDER, 
sndSettleMode=MIXED, rcvSettleMode=FIRST, source=Source{address='null', 
durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, 
dynamicNodeProperties=null, distributionMode=null, filter=null, 
defaultOutcome=null, outcomes=null, capabilities=null}, 
target=Target{address='null', durable=NONE, expiryPolicy=SESSION_END, 
timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}, 
unsettled=null, incompleteUnsettled=false, initialDeliveryCount=0, 
maxMessageSize=null, offeredCapabilities=null, desiredCapabilities=null, 
properties=null}
[1346009488:0] <- Attach{name='test-link', handle=0, role=RECEIVER, 
sndSettleMode=MIXED, rcvSettleMode=FIRST, source=Source{address='null', 
durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, 
dynamicNodeProperties=null, distributionMode=null, filter=null, 
defaultOutcome=null, outcomes=null, capabilities=null}, 
target=Target{address='null', durable=NONE, expiryPolicy=SESSION_END, 
timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}, 
unsettled=null, incompleteUnsettled=false, initialDeliveryCount=null, 
maxMessageSize=null, offeredCapabilities=null, desiredCapabilities=null, 
properties=null}
[1346009488:0] <- Flow{nextIncomingId=1, incomingWindow=2147483647, 
nextOutgoingId=1, outgoingWindow=2147483647, handle=0, deliveryCount=0, 
linkCredit=10, available=null, drain=false, echo=false, properties=null}
[1346009488:0] -> Transfer{handle=0, deliveryId=0, deliveryTag=tagA, 
messageFormat=0, settled=null, more=true, rcvSettleMode=null, state=null, 
resume=false, aborted=false, batchable=false} (1) "A"
 fail
Error during test:  Traceback (most recent call last):
File 
"/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/python/proton-test",
 line 362, in run
  phase()
File 
"/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/python/proton_tests/engine.py",
 line 1556, in testDrainOrder
  self.pump()
File 
"/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/python/proton_tests/engine.py",
 line 112, in pump
  pump(t1, t2, buffer_size)
File 
"/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/python/proton_tests/common.py",
 line 113, in pump
  while (pump_uni(transport1, transport2, buffer_size) or
File 
"/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/python/proton_tests/common.py",
 line 86, in pump_uni
  p = src.pending()
File 
"/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/java/shim/binding/proton/__init__.py",
 line 2764, in pending
  p = pn_transport_pending(self._impl)
File 
"/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/java/shim/cengine.py",
 line 936, in pn_transport_pending
  return trans.impl.pending()
  NullPointerException: java.lang.NullPointerException

org.apache.qpid.proton.codec.CompositeReadableBuffer.(CompositeReadableBuffer.java:69)

org.apache.qpid.proton.codec.CompositeReadableBuffer.duplicate(CompositeReadableBuffer.java:474)

org.apache.qpid.proton.codec.CompositeReadableBuffer.duplicate(CompositeReadableBuffer.java:35)
org.apache.qpid.proton.amqp.Binary.create(Binary.java:181)

org.apache.qpid.proton.engine.impl.FrameWriter.logFrame(FrameWriter.java:200)

org.apache.qpid.proton.engine.impl.FrameWriter.writeFrame(FrameWriter.java:168)

org.apache.qpid.proton.engine.impl.TransportImpl.writeFrame(TransportImpl.java:1081)


[jira] [Created] (PROTON-1905) CompositeReadableBuffer.duplicate seen to throw a NPE

2018-08-02 Thread Keith Wall (JIRA)
Keith Wall created PROTON-1905:
--

 Summary: CompositeReadableBuffer.duplicate seen to throw a NPE
 Key: PROTON-1905
 URL: https://issues.apache.org/jira/browse/PROTON-1905
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-j
Affects Versions: proton-j-0.27.3
Reporter: Keith Wall


Whilst verify the RC1 candidate for the 0.27.3 RC1, the 
{{proton_tests.engine.CreditTest.testDrainOrder}} Jython test caused a NPE with 
Proton-J's application code. 

{noformat}
proton_tests.engine.CreditTest.testDrainOrder 
...[1346009488:0] -> Open{ containerId='', 
hostname='null', maxFrameSize=16384, channelMax=65535, idleTimeOut=null, 
outgoingLocales=null, incomingLocales=null, offeredCapabilities=null, 
desiredCapabilities=null, properties=null}
[1346009488:0] -> Begin{remoteChannel=null, nextOutgoingId=1, 
incomingWindow=2147483647, outgoingWindow=2147483647, handleMax=65535, 
offeredCapabilities=null, desiredCapabilities=null, properties=null}
[1346009488:0] <- Open{ containerId='', hostname='null', maxFrameSize=16384, 
channelMax=65535, idleTimeOut=null, outgoingLocales=null, incomingLocales=null, 
offeredCapabilities=null, desiredCapabilities=null, properties=null}
[1346009488:0] <- Begin{remoteChannel=0, nextOutgoingId=1, 
incomingWindow=2147483647, outgoingWindow=2147483647, handleMax=65535, 
offeredCapabilities=null, desiredCapabilities=null, properties=null}
[1346009488:0] -> Attach{name='test-link', handle=0, role=SENDER, 
sndSettleMode=MIXED, rcvSettleMode=FIRST, source=Source{address='null', 
durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, 
dynamicNodeProperties=null, distributionMode=null, filter=null, 
defaultOutcome=null, outcomes=null, capabilities=null}, 
target=Target{address='null', durable=NONE, expiryPolicy=SESSION_END, 
timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}, 
unsettled=null, incompleteUnsettled=false, initialDeliveryCount=0, 
maxMessageSize=null, offeredCapabilities=null, desiredCapabilities=null, 
properties=null}
[1346009488:0] <- Attach{name='test-link', handle=0, role=RECEIVER, 
sndSettleMode=MIXED, rcvSettleMode=FIRST, source=Source{address='null', 
durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, 
dynamicNodeProperties=null, distributionMode=null, filter=null, 
defaultOutcome=null, outcomes=null, capabilities=null}, 
target=Target{address='null', durable=NONE, expiryPolicy=SESSION_END, 
timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}, 
unsettled=null, incompleteUnsettled=false, initialDeliveryCount=null, 
maxMessageSize=null, offeredCapabilities=null, desiredCapabilities=null, 
properties=null}
[1346009488:0] <- Flow{nextIncomingId=1, incomingWindow=2147483647, 
nextOutgoingId=1, outgoingWindow=2147483647, handle=0, deliveryCount=0, 
linkCredit=10, available=null, drain=false, echo=false, properties=null}
[1346009488:0] -> Transfer{handle=0, deliveryId=0, deliveryTag=tagA, 
messageFormat=0, settled=null, more=true, rcvSettleMode=null, state=null, 
resume=false, aborted=false, batchable=false} (1) "A"
 fail
Error during test:  Traceback (most recent call last):
File 
"/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/python/proton-test",
 line 362, in run
  phase()
File 
"/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/python/proton_tests/engine.py",
 line 1556, in testDrainOrder
  self.pump()
File 
"/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/python/proton_tests/engine.py",
 line 112, in pump
  pump(t1, t2, buffer_size)
File 
"/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/python/proton_tests/common.py",
 line 113, in pump
  while (pump_uni(transport1, transport2, buffer_size) or
File 
"/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/python/proton_tests/common.py",
 line 86, in pump_uni
  p = src.pending()
File 
"/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/java/shim/binding/proton/__init__.py",
 line 2764, in pending
  p = pn_transport_pending(self._impl)
File 
"/Users/keith/releases/0273/apache-qpid-proton-j-0.27.3-src/tests/java/shim/cengine.py",
 line 936, in pn_transport_pending
  return trans.impl.pending()
  NullPointerException: java.lang.NullPointerException

org.apache.qpid.proton.codec.CompositeReadableBuffer.(CompositeReadableBuffer.java:69)

org.apache.qpid.proton.codec.CompositeReadableBuffer.duplicate(CompositeReadableBuffer.java:474)

org.apache.qpid.proton.codec.CompositeReadableBuffer.duplicate(CompositeReadableBuffer.java:35)
org.apache.qpid.proton.amqp.Binary.create(Binary.java:181)

org.apache.qpid.proton.engine.impl.FrameWriter.logFrame(FrameWriter.java:200)

org.apache.qpid.proton.engine.impl.FrameWriter.writeFrame(FrameWriter.java:168)

[jira] [Commented] (DISPATCH-1090) Transfer/Disposition(state=release) loop forms when application disconnects abruptly from brokered queue until link credit is exhausted.

2018-07-27 Thread Keith Wall (JIRA)


[ 
https://issues.apache.org/jira/browse/DISPATCH-1090?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16559985#comment-16559985
 ] 

Keith Wall commented on DISPATCH-1090:
--

It seems that in the case where there is no other application connected to the 
same link, then the Dispatch Router should be depriving Broker of credit.I 
believe [~gemmellr] suggestion was to use drain flag in this case. 

> Transfer/Disposition(state=release) loop forms when application disconnects 
> abruptly from brokered queue until link credit is exhausted.
> 
>
> Key: DISPATCH-1090
> URL: https://issues.apache.org/jira/browse/DISPATCH-1090
> Project: Qpid Dispatch
>  Issue Type: Bug
> Environment: Version  1.3.0-SNAPSHOT
>  (30ff7ff1d54b8f280b36f76dc8c340cb4c88567b)
>Reporter: Keith Wall
>Priority: Major
> Attachments: DISPATCH-1090_dispatch_server.log
>
>
> I have configured a single Dispatch Router instance to route messages through 
> a broker queue (i.e. following section 7.2.5 of the 
> [docs|https://qpid.apache.org/releases/qpid-dispatch-1.2.0/user-guide/index.html#routing-messages-through-broker]).
> The application does the following:
> # Forms a sending links to the queue, sends a single message then disconnects.
> # Forms a receiving link to the same queue, receives the message without 
> settling then abruptly terminates the program.
> Inspecting the protocol trace, I see that after the Dispatch Router has sent 
> a {{Disposition state=modified}} for the message that was held by the 
> application when it terminated, a {{Transfer}}/{{Disposition state=release}} 
> loop forms between the Dispatch Router and Broker until the link credit is 
> exhausted.  
> Protocol trace attached to this issue demonstrates the problem.
> Dispatch Router was configured by the following commands:
> {noformat}
> qdmanage create --type org.apache.qpid.dispatch.connector host=oslo.local 
> port=5672 name=artemis-broker role=route-container
> qdmanage create --type org.apache.qpid.dispatch.router.config.autoLink 
> addr=queue direction=in connection=artemis-broker
> qdmanage create --type org.apache.qpid.dispatch.router.config.autoLink 
> addr=queue direction=out connection=artemis-broker
> qdmanage create --type=org.apache.qpid.dispatch.router.config.address 
> pattern=queue waypoint=true
> {noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Updated] (DISPATCH-1090) Transfer/Disposition(state=release) loop forms when application disconnects abruptly from brokered queue until link credit is exhausted.

2018-07-27 Thread Keith Wall (JIRA)


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

Keith Wall updated DISPATCH-1090:
-
Description: 
I have configured a single Dispatch Router instance to route messages through a 
broker queue (i.e. following section 7.2.5 of the 
[docs|https://qpid.apache.org/releases/qpid-dispatch-1.2.0/user-guide/index.html#routing-messages-through-broker]).

The application does the following:

# Forms a sending links to the queue, sends a single message then disconnects.
# Forms a receiving link to the same queue, receives the message without 
settling then abruptly terminates the program.

Inspecting the protocol trace, I see that after the Dispatch Router has sent a 
{{Disposition state=modified}} for the message that was held by the application 
when it terminated, a {{Transfer}}/{{Disposition state=release}} loop forms 
between the Dispatch Router and Broker until the link credit is exhausted.  

Protocol trace attached to this issue demonstrates the problem.

Dispatch Router was configured by the following commands:

{noformat}
qdmanage create --type org.apache.qpid.dispatch.connector host=oslo.local 
port=5672 name=artemis-broker role=route-container
qdmanage create --type org.apache.qpid.dispatch.router.config.autoLink 
addr=queue direction=in connection=artemis-broker
qdmanage create --type org.apache.qpid.dispatch.router.config.autoLink 
addr=queue direction=out connection=artemis-broker
qdmanage create --type=org.apache.qpid.dispatch.router.config.address 
pattern=queue waypoint=true
{noformat}






  was:
I have configured a single Dispatch Router instance to route messages through a 
broker queue (i.e. following section 7.2.5 of the 
[docs|https://qpid.apache.org/releases/qpid-dispatch-1.2.0/user-guide/index.html#routing-messages-through-broker]).

The application does the following:

# Forms a sending links to the queue, sends a single message then disconnects.
# Forms a receiving link to the same queue, receives the message without 
settling then abruptly terminates the program.

Inspecting the protocol trace, I see that after the Dispatch Router has sent a 
{{Disposition state=modified}} for the message that was held by the application 
when it terminated, a {{Transfer}}/{{Disposition state=release}} loop forms 
between the Dispatch Router and Broker until the link credit is exhausted.  







> Transfer/Disposition(state=release) loop forms when application disconnects 
> abruptly from brokered queue until link credit is exhausted.
> 
>
> Key: DISPATCH-1090
> URL: https://issues.apache.org/jira/browse/DISPATCH-1090
> Project: Qpid Dispatch
>  Issue Type: Bug
> Environment: Version  1.3.0-SNAPSHOT
>  (30ff7ff1d54b8f280b36f76dc8c340cb4c88567b)
>Reporter: Keith Wall
>Priority: Major
> Attachments: DISPATCH-1090_dispatch_server.log
>
>
> I have configured a single Dispatch Router instance to route messages through 
> a broker queue (i.e. following section 7.2.5 of the 
> [docs|https://qpid.apache.org/releases/qpid-dispatch-1.2.0/user-guide/index.html#routing-messages-through-broker]).
> The application does the following:
> # Forms a sending links to the queue, sends a single message then disconnects.
> # Forms a receiving link to the same queue, receives the message without 
> settling then abruptly terminates the program.
> Inspecting the protocol trace, I see that after the Dispatch Router has sent 
> a {{Disposition state=modified}} for the message that was held by the 
> application when it terminated, a {{Transfer}}/{{Disposition state=release}} 
> loop forms between the Dispatch Router and Broker until the link credit is 
> exhausted.  
> Protocol trace attached to this issue demonstrates the problem.
> Dispatch Router was configured by the following commands:
> {noformat}
> qdmanage create --type org.apache.qpid.dispatch.connector host=oslo.local 
> port=5672 name=artemis-broker role=route-container
> qdmanage create --type org.apache.qpid.dispatch.router.config.autoLink 
> addr=queue direction=in connection=artemis-broker
> qdmanage create --type org.apache.qpid.dispatch.router.config.autoLink 
> addr=queue direction=out connection=artemis-broker
> qdmanage create --type=org.apache.qpid.dispatch.router.config.address 
> pattern=queue waypoint=true
> {noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Updated] (DISPATCH-1090) Transfer/Disposition(state=release) loop forms when application disconnects abruptly from brokered queue until link credit is exhausted.

2018-07-27 Thread Keith Wall (JIRA)


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

Keith Wall updated DISPATCH-1090:
-
Environment: 
Version  1.3.0-SNAPSHOT
 (30ff7ff1d54b8f280b36f76dc8c340cb4c88567b)



> Transfer/Disposition(state=release) loop forms when application disconnects 
> abruptly from brokered queue until link credit is exhausted.
> 
>
> Key: DISPATCH-1090
> URL: https://issues.apache.org/jira/browse/DISPATCH-1090
> Project: Qpid Dispatch
>  Issue Type: Bug
> Environment: Version  1.3.0-SNAPSHOT
>  (30ff7ff1d54b8f280b36f76dc8c340cb4c88567b)
>Reporter: Keith Wall
>Priority: Major
> Attachments: DISPATCH-1090_dispatch_server.log
>
>
> I have configured a single Dispatch Router instance to route messages through 
> a broker queue (i.e. following section 7.2.5 of the 
> [docs|https://qpid.apache.org/releases/qpid-dispatch-1.2.0/user-guide/index.html#routing-messages-through-broker]).
> The application does the following:
> # Forms a sending links to the queue, sends a single message then disconnects.
> # Forms a receiving link to the same queue, receives the message without 
> settling then abruptly terminates the program.
> Inspecting the protocol trace, I see that after the Dispatch Router has sent 
> a {{Disposition state=modified}} for the message that was held by the 
> application when it terminated, a {{Transfer}}/{{Disposition state=release}} 
> loop forms between the Dispatch Router and Broker until the link credit is 
> exhausted.  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Updated] (DISPATCH-1090) Transfer/Disposition(state=release) loop forms when application disconnects abruptly from brokered queue until link credit is exhausted.

2018-07-27 Thread Keith Wall (JIRA)


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

Keith Wall updated DISPATCH-1090:
-
Description: 
I have configured a single Dispatch Router instance to route messages through a 
broker queue (i.e. following section 7.2.5 of the 
[docs|https://qpid.apache.org/releases/qpid-dispatch-1.2.0/user-guide/index.html#routing-messages-through-broker]).

The application does the following:

# Forms a sending links to the queue, sends a single message then disconnects.
# Forms a receiving link to the same queue, receives the message without 
settling then abruptly terminates the program.

Inspecting the protocol trace, I see that after the Dispatch Router has sent a 
{{Disposition state=modified}} for the message that was held by the application 
when it terminated, a {{Transfer}}/{{Disposition state=release}} loop forms 
between the Dispatch Router and Broker until the link credit is exhausted.  






  was:
I have configured a single Dispatch Router instance to route messages through a 
broker queue (i.e. following section 7.2.5 of the 
[docs|https://qpid.apache.org/releases/qpid-dispatch-1.2.0/user-guide/index.html#routing-messages-through-broker]).

The application does the following:

# Forms a sending links to the queue, sends a single message then disconnects.
# Forms a receiving link to the same queue, receives the message without 
settling then abruptly terminates the program.

Inspecting the protocol trace, I see that after the Dispatch Router has sent a 
{{Disposition state=modified}} for the message that was held by the application 
when it terminated, a {{Transfer}}/{{Disposition state=release}} loop forms 
between the Dispatch Router and Broker until the link credit is exhausted.  





The application connects sends to the queue via the router, disconnects and the 
then connects a second time


> Transfer/Disposition(state=release) loop forms when application disconnects 
> abruptly from brokered queue until link credit is exhausted.
> 
>
> Key: DISPATCH-1090
> URL: https://issues.apache.org/jira/browse/DISPATCH-1090
> Project: Qpid Dispatch
>  Issue Type: Bug
>Reporter: Keith Wall
>Priority: Major
> Attachments: DISPATCH-1090_dispatch_server.log
>
>
> I have configured a single Dispatch Router instance to route messages through 
> a broker queue (i.e. following section 7.2.5 of the 
> [docs|https://qpid.apache.org/releases/qpid-dispatch-1.2.0/user-guide/index.html#routing-messages-through-broker]).
> The application does the following:
> # Forms a sending links to the queue, sends a single message then disconnects.
> # Forms a receiving link to the same queue, receives the message without 
> settling then abruptly terminates the program.
> Inspecting the protocol trace, I see that after the Dispatch Router has sent 
> a {{Disposition state=modified}} for the message that was held by the 
> application when it terminated, a {{Transfer}}/{{Disposition state=release}} 
> loop forms between the Dispatch Router and Broker until the link credit is 
> exhausted.  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Updated] (DISPATCH-1090) Transfer/Disposition(state=release) loop forms when application disconnects abruptly from brokered queue until link credit is exhausted.

2018-07-27 Thread Keith Wall (JIRA)


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

Keith Wall updated DISPATCH-1090:
-
Attachment: DISPATCH-1090_dispatch_server.log

> Transfer/Disposition(state=release) loop forms when application disconnects 
> abruptly from brokered queue until link credit is exhausted.
> 
>
> Key: DISPATCH-1090
> URL: https://issues.apache.org/jira/browse/DISPATCH-1090
> Project: Qpid Dispatch
>  Issue Type: Bug
>Reporter: Keith Wall
>Priority: Major
> Attachments: DISPATCH-1090_dispatch_server.log
>
>
> I have configured a single Dispatch Router instance to route messages through 
> a broker queue (i.e. following section 7.2.5 of the 
> [docs|https://qpid.apache.org/releases/qpid-dispatch-1.2.0/user-guide/index.html#routing-messages-through-broker]).
> The application does the following:
> # Forms a sending links to the queue, sends a single message then disconnects.
> # Forms a receiving link to the same queue, receives the message without 
> settling then abruptly terminates the program.
> Inspecting the protocol trace, I see that after the Dispatch Router has sent 
> a {{Disposition state=modified}} for the message that was held by the 
> application when it terminated, a {{Transfer}}/{{Disposition state=release}} 
> loop forms between the Dispatch Router and Broker until the link credit is 
> exhausted.  
> The application connects sends to the queue via the router, disconnects and 
> the then connects a second time



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Created] (DISPATCH-1090) Transfer/Disposition(state=release) loop forms when application disconnects abruptly from brokered queue until link credit is exhausted.

2018-07-27 Thread Keith Wall (JIRA)
Keith Wall created DISPATCH-1090:


 Summary: Transfer/Disposition(state=release) loop forms when 
application disconnects abruptly from brokered queue until link credit is 
exhausted.
 Key: DISPATCH-1090
 URL: https://issues.apache.org/jira/browse/DISPATCH-1090
 Project: Qpid Dispatch
  Issue Type: Bug
Reporter: Keith Wall


I have configured a single Dispatch Router instance to route messages through a 
broker queue (i.e. following section 7.2.5 of the 
[docs|https://qpid.apache.org/releases/qpid-dispatch-1.2.0/user-guide/index.html#routing-messages-through-broker]).

The application does the following:

# Forms a sending links to the queue, sends a single message then disconnects.
# Forms a receiving link to the same queue, receives the message without 
settling then abruptly terminates the program.

Inspecting the protocol trace, I see that after the Dispatch Router has sent a 
{{Disposition state=modified}} for the message that was held by the application 
when it terminated, a {{Transfer}}/{{Disposition state=release}} loop forms 
between the Dispatch Router and Broker until the link credit is exhausted.  





The application connects sends to the queue via the router, disconnects and the 
then connects a second time



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Created] (DISPATCH-1086) Dispatch Router sporadically goes into a state where TLS connections to the auth service fail

2018-07-24 Thread Keith Wall (JIRA)
Keith Wall created DISPATCH-1086:


 Summary: Dispatch Router sporadically goes into a state where TLS 
connections to the auth service fail
 Key: DISPATCH-1086
 URL: https://issues.apache.org/jira/browse/DISPATCH-1086
 Project: Qpid Dispatch
  Issue Type: Bug
Affects Versions: 1.1.0
Reporter: Keith Wall


Whilst running performance tests against Enmasse, we periodically see a problem 
where Dispatch Router (1.1.0) goes into a state where fails to form TLS 
connections to the authservice. When this occurs, the router needs to be 
restarted to restore service. There does not seem to be a pattern to when the 
issue occurs, but in all cases where it has been seen, the test case included 
tens or hundreds of concurrently formed connections.

The following message is written to the log:

 
{noformat}
2018-07-06 10:38:45.543519 + AUTHSERVICE (warning) Cannot initialise 
SSL{noformat}
 Unfortunately turning up the router logging (using the following command) 
reveal no more useful information. This Proton improvement JIRA was raised to 
include the diagnostics from OpenSSL.

 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Commented] (QPID-8219) [Broker-J] Authentication results are cached in SimpleLdap Authentication provider per connection basis

2018-07-17 Thread Keith Wall (JIRA)


[ 
https://issues.apache.org/jira/browse/QPID-8219?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16546328#comment-16546328
 ] 

Keith Wall commented on QPID-8219:
--

Wouldn't this problem also affect OAuth2AuthenticationProvider which IIRC uses 
the same scheme?

> [Broker-J] Authentication results are cached in SimpleLdap Authentication 
> provider per connection basis
> ---
>
> Key: QPID-8219
> URL: https://issues.apache.org/jira/browse/QPID-8219
> Project: Qpid
>  Issue Type: Bug
>  Components: Broker-J
>Affects Versions: qpid-java-6.1.6, qpid-java-broker-7.0.3, 
> qpid-java-broker-7.0.2, qpid-java-6.1, qpid-java-6.1.1, qpid-java-6.1.2, 
> qpid-java-6.1.3, qpid-java-6.1.4, qpid-java-broker-7.0.0, qpid-java-6.1.5, 
> qpid-java-broker-7.0.1, qpid-java-broker-7.0.4, qpid-java-broker-7.0.5, 
> qpid-java-broker-7.0.6
>Reporter: Alex Rudyy
>Priority: Major
> Fix For: qpid-java-6.1.7, qpid-java-broker-7.1.0, 
> qpid-java-broker-7.0.7
>
>
> SimpleLdap authentication provider was supposed to cache authentication 
> results per remote host basis. Thus, when connections are made from the same 
> host using the same credentials, the cached authentication results should be 
> reused. The current caching approach takes into consideration an ephemeral 
> port of the connection. As result, a new connection from the same host with 
> the same credentials cannot reuse previous authentication results due to a 
> different ephemeral port.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Commented] (QPID-8212) [JMS AMQP 0-x][AMQP 0-8..0-91] Consumer close can block for 60 seconds and endup in time-out exception

2018-07-06 Thread Keith Wall (JIRA)


[ 
https://issues.apache.org/jira/browse/QPID-8212?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16534863#comment-16534863
 ] 

Keith Wall commented on QPID-8212:
--

I can't say that addition of the new method to AMQSession#isSessionClosed() 
seems like the ideal approach, but I don't see an alternative without making a 
deeper change, which would not be wanted given the stage of life of this client.

> [JMS AMQP 0-x][AMQP 0-8..0-91] Consumer close can block for 60 seconds and 
> endup in time-out exception
> --
>
> Key: QPID-8212
> URL: https://issues.apache.org/jira/browse/QPID-8212
> Project: Qpid
>  Issue Type: Bug
>  Components: JMS AMQP 0-x
>Affects Versions: qpid-java-client-0-x-6.3.1
>Reporter: Alex Rudyy
>Assignee: Alex Rudyy
>Priority: Blocker
> Fix For: qpid-java-client-0-x-6.3.2
>
>
> When method {{MessageConsumer#close()}} is invoked in one thread and method 
> {{Connection#close()}} is invoked in another thread, the incoming 
> {{BasicCancelOk}} frame can be ignored due to {{true}} being returned from 
> {{Session#isClosed()}}  because of {{Connection#_closed}} flag being set to 
> true on connection close. As result, the call to {{MessageConsumer#close()}} 
> can block for 60 seconds and end up in exception due to not being able to 
> receive {{BasicCancelOk}}. Invocation of {{Connection#close()}} also gets 
> blocked as message delivery lock being hold on consumer close.
> The defect was introduced as part of changes made against QPID-8185 in commit 
>  
> [f89f6c2f45d11fc63551d0d61c17eceedd6bd247|https://git-wip-us.apache.org/repos/asf?p=qpid-jms-amqp-0-x.git;h=f89f6c2]
> Method {{AMQProtocolSession#isClosedForInput}} checks whether session is 
> closed for input by calling {{AMQSession#isClosed()}}. The latter returns 
> true when either {{AMQSession#_closed}} or {{AMQConnection#_closed}} holds 
> {{true}}. Only {{AMQSession#_closed}} should be checked in 
> {{AMQProtocolSession#isClosedForInput}}.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Created] (PROTON-1886) Expose diagnostic information from the openssl error queue when SSL_new fails.

2018-07-06 Thread Keith Wall (JIRA)
Keith Wall created PROTON-1886:
--

 Summary: Expose diagnostic information from the openssl error 
queue when SSL_new fails.
 Key: PROTON-1886
 URL: https://issues.apache.org/jira/browse/PROTON-1886
 Project: Qpid Proton
  Issue Type: Improvement
  Components: proton-c
Reporter: Keith Wall


If Proton C's call to 
[SSL_new()|https://github.com/apache/qpid-proton/blob/3cb7a5c672d9f817a498684ac7057b713eda/c/src/ssl/openssl.c#L1235]
 fails currently proton logs only "SSL socket setup failure.". It would aid 
diagnostics if the logged information revealed the underlying reason(s) why the 
failure occurred from the openssl error queue/stack. This approach is suggested 
by the openssl SSL_new documentation.

[https://www.openssl.org/docs/man1.0.2/ssl/SSL_new.html]

[https://www.openssl.org/docs/manmaster/man3/ERR_get_error.html]

 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Updated] (QPID-8213) [Broker-J] InputStream is not closed in SSLUtil#readCertificates(URL)

2018-06-27 Thread Keith Wall (JIRA)


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

Keith Wall updated QPID-8213:
-
Priority: Minor  (was: Major)

> [Broker-J] InputStream is not closed in SSLUtil#readCertificates(URL) 
> --
>
> Key: QPID-8213
> URL: https://issues.apache.org/jira/browse/QPID-8213
> Project: Qpid
>  Issue Type: Bug
>  Components: Broker-J
>Affects Versions: qpid-java-6.1.6, qpid-java-broker-7.0.3, 
> qpid-java-broker-7.0.2, qpid-java-6.0, qpid-java-6.0.1, qpid-java-6.0.2, 
> qpid-java-6.0.3, qpid-java-6.0.4, qpid-java-6.0.5, qpid-java-6.1, 
> qpid-java-6.0.6, qpid-java-6.1.1, qpid-java-6.1.2, qpid-java-6.0.7, 
> qpid-java-6.1.3, qpid-java-6.0.8, qpid-java-6.1.4, qpid-java-broker-7.0.0, 
> qpid-java-6.1.5, qpid-java-broker-7.0.1, qpid-java-broker-7.0.4, 
> qpid-java-broker-7.0.5, qpid-java-broker-7.0.6
>Reporter: Alex Rudyy
>Assignee: Alex Rudyy
>Priority: Minor
> Fix For: qpid-java-broker-7.1.0
>
>
> A redundant InputStream is opened and not closed in 
> {{SSLUtil#readCertificates(URL)}}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Resolved] (QPID-8213) [Broker-J] InputStream is not closed in SSLUtil#readCertificates(URL)

2018-06-27 Thread Keith Wall (JIRA)


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

Keith Wall resolved QPID-8213.
--
   Resolution: Fixed
Fix Version/s: qpid-java-broker-7.1.0

> [Broker-J] InputStream is not closed in SSLUtil#readCertificates(URL) 
> --
>
> Key: QPID-8213
> URL: https://issues.apache.org/jira/browse/QPID-8213
> Project: Qpid
>  Issue Type: Bug
>  Components: Broker-J
>Affects Versions: qpid-java-6.1.6, qpid-java-broker-7.0.3, 
> qpid-java-broker-7.0.2, qpid-java-6.0, qpid-java-6.0.1, qpid-java-6.0.2, 
> qpid-java-6.0.3, qpid-java-6.0.4, qpid-java-6.0.5, qpid-java-6.1, 
> qpid-java-6.0.6, qpid-java-6.1.1, qpid-java-6.1.2, qpid-java-6.0.7, 
> qpid-java-6.1.3, qpid-java-6.0.8, qpid-java-6.1.4, qpid-java-broker-7.0.0, 
> qpid-java-6.1.5, qpid-java-broker-7.0.1, qpid-java-broker-7.0.4, 
> qpid-java-broker-7.0.5, qpid-java-broker-7.0.6
>Reporter: Alex Rudyy
>Assignee: Alex Rudyy
>Priority: Major
> Fix For: qpid-java-broker-7.1.0
>
>
> A redundant InputStream is opened and not closed in 
> {{SSLUtil#readCertificates(URL)}}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Commented] (QPID-8213) [Broker-J] InputStream is not closed in SSLUtil#readCertificates(URL)

2018-06-27 Thread Keith Wall (JIRA)


[ 
https://issues.apache.org/jira/browse/QPID-8213?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16524951#comment-16524951
 ] 

Keith Wall commented on QPID-8213:
--

Change looks good to me. I noticed qpid-jms-amqp-0-x had the same code, albeit 
unused,I removed it with a NO-JIRA commit 
([https://git-wip-us.apache.org/repos/asf?p=qpid-jms-amqp-0-x.git;h=7f67f82ec04a8a346cc64ec1cd824022c9082da0)]
 

> [Broker-J] InputStream is not closed in SSLUtil#readCertificates(URL) 
> --
>
> Key: QPID-8213
> URL: https://issues.apache.org/jira/browse/QPID-8213
> Project: Qpid
>  Issue Type: Bug
>  Components: Broker-J
>Affects Versions: qpid-java-6.1.6, qpid-java-broker-7.0.3, 
> qpid-java-broker-7.0.2, qpid-java-6.0, qpid-java-6.0.1, qpid-java-6.0.2, 
> qpid-java-6.0.3, qpid-java-6.0.4, qpid-java-6.0.5, qpid-java-6.1, 
> qpid-java-6.0.6, qpid-java-6.1.1, qpid-java-6.1.2, qpid-java-6.0.7, 
> qpid-java-6.1.3, qpid-java-6.0.8, qpid-java-6.1.4, qpid-java-broker-7.0.0, 
> qpid-java-6.1.5, qpid-java-broker-7.0.1, qpid-java-broker-7.0.4, 
> qpid-java-broker-7.0.5, qpid-java-broker-7.0.6
>Reporter: Alex Rudyy
>Assignee: Alex Rudyy
>Priority: Major
>
> A redundant InputStream is opened and not closed in 
> {{SSLUtil#readCertificates(URL)}}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Commented] (QPID-8210) [Broker-J] Consumer attach when message is being released and requeued can end-up in broker crash due to unhandled NullPointerException

2018-06-20 Thread Keith Wall (JIRA)


[ 
https://issues.apache.org/jira/browse/QPID-8210?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16517872#comment-16517872
 ] 

Keith Wall commented on QPID-8210:
--

Changes look good.

> [Broker-J]  Consumer attach when message is being released and requeued can 
> end-up in broker crash due to unhandled NullPointerException
> 
>
> Key: QPID-8210
> URL: https://issues.apache.org/jira/browse/QPID-8210
> Project: Qpid
>  Issue Type: Bug
>  Components: Broker-J
>Affects Versions: qpid-java-broker-7.0.3, qpid-java-broker-7.0.2, 
> qpid-java-broker-7.0.0, qpid-java-broker-7.0.1, qpid-java-broker-7.0.4, 
> qpid-java-broker-7.0.5
>Reporter: Alex Rudyy
>Priority: Critical
> Fix For: qpid-java-broker-7.0.6
>
>
> The consumer node is currently set after consumer is added into queue 
> consumer manager. When released message is requeued all consumers in consumer 
> manager are iterated and AbstractQueue#updateSubRequeueEntry is invoke for 
> every of them to update the released entry in consumer queue context if 
> required. The notification of consumer without a consumer node can result in 
> NullPointerException:
> {noformat}
> java.lang.NullPointerException
>     at 
> org.apache.qpid.server.queue.QueueConsumerManagerImpl.setNotified(QueueConsumerManagerImpl.java:151)
>     at 
> org.apache.qpid.server.queue.AbstractQueue.notifyConsumer(AbstractQueue.java:2268)
>     at 
> org.apache.qpid.server.queue.AbstractQueue.updateSubRequeueEntry(AbstractQueue.java:1382)
>     at 
> org.apache.qpid.server.queue.AbstractQueue.resetSubPointers(AbstractQueue.java:1413)
>     at 
> org.apache.qpid.server.queue.AbstractQueue.requeue(AbstractQueue.java:1399)
>     at 
> org.apache.qpid.server.queue.QueueEntryImpl.postRelease(QueueEntryImpl.java:446)
>     at 
> org.apache.qpid.server.queue.QueueEntryImpl.release(QueueEntryImpl.java:437)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQChannel.requeue(AMQChannel.java:896)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQChannel.close(AMQChannel.java:787)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8Impl.closeChannel(AMQPConnection_0_8Impl.java:459)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8Impl.closeChannel(AMQPConnection_0_8Impl.java:430)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQChannel.receiveChannelClose(AMQChannel.java:2167)
>     at 
> org.apache.qpid.server.protocol.v0_8.transport.ChannelCloseBody.process(ChannelCloseBody.java:140)
>     at 
> org.apache.qpid.server.protocol.v0_8.ServerDecoder.processMethod(ServerDecoder.java:132)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQDecoder.processFrame(AMQDecoder.java:203)
>     at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder.doProcessFrame(BrokerDecoder.java:141)
>     at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder.processFrame(BrokerDecoder.java:65)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQDecoder.processInput(AMQDecoder.java:185)
>     at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder$1.run(BrokerDecoder.java:104)
>     at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder$1.run(BrokerDecoder.java:97)
>     at java.security.AccessController.doPrivileged(Native Method)
>     at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder.processAMQPFrames(BrokerDecoder.java:96)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQDecoder.decode(AMQDecoder.java:118)
>     at 
> org.apache.qpid.server.protocol.v0_8.ServerDecoder.decodeBuffer(ServerDecoder.java:44)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8Impl$1.run(AMQPConnection_0_8Impl.java:257)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8Impl$1.run(AMQPConnection_0_8Impl.java:249)
>     at java.security.AccessController.doPrivileged(Native Method)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8Impl.received(AMQPConnection_0_8Impl.java:248)
>     at 
> org.apache.qpid.server.transport.MultiVersionProtocolEngine.received(MultiVersionProtocolEngine.java:135)
>     at 
> org.apache.qpid.server.transport.NonBlockingConnection.processAmqpData(NonBlockingConnection.java:610)
>     at 
> org.apache.qpid.server.transport.NonBlockingConnectionPlainDelegate.processData(NonBlockingConnectionPlainDelegate.java:58)
>     at 
> org.apache.qpid.server.transport.NonBlockingConnection.doRead(NonBlockingConnection.java:496)
>     at 
> org.apache.qpid.server.transport.NonBlockingConnection.doWork(NonBlockingConnection.java:270)
>     at 
> org.apache.qpid.server.transport.NetworkConnectionScheduler.processConnection(NetworkConnectionScheduler.java:134)
>     at 
> 

[jira] [Commented] (QPID-8210) [Broker-J] Consumer attach when message is being released and requeued can end-up in broker crash due to unhandled NullPointerException

2018-06-20 Thread Keith Wall (JIRA)


[ 
https://issues.apache.org/jira/browse/QPID-8210?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16517867#comment-16517867
 ] 

Keith Wall commented on QPID-8210:
--

In addition the following cherry picks into 7.0.x are missing from the JIRAs 
history:

 

commit c5bf4260a0da733a048b9949ca0ccaf6f9bae158
Author: Alex Rudyy 
Date: Tue Jun 19 17:38:29 2018 +0100

QPID-8210: [Broker-J] Make field QueueConsumerImpl#_queueConsumerNode volatile

(cherry picked from commit a07e8fd80ea11f0458c0fcfe4bc7a0ec31b4a7bb)

commit ca118c933e4ad74375d056f694fbbb367cfa33a6
Author: Alex Rudyy 
Date: Mon Jun 18 17:51:47 2018 +0100

QPID-8210: [Broker-J] Set queue consumer node before adding consumer into queue 
consumer manager

(cherry picked from commit 0c4e41829d3f97eaa171fd1276e85e1685021cfc)

 

 

 

> [Broker-J]  Consumer attach when message is being released and requeued can 
> end-up in broker crash due to unhandled NullPointerException
> 
>
> Key: QPID-8210
> URL: https://issues.apache.org/jira/browse/QPID-8210
> Project: Qpid
>  Issue Type: Bug
>  Components: Broker-J
>Affects Versions: qpid-java-broker-7.0.3, qpid-java-broker-7.0.2, 
> qpid-java-broker-7.0.0, qpid-java-broker-7.0.1, qpid-java-broker-7.0.4, 
> qpid-java-broker-7.0.5
>Reporter: Alex Rudyy
>Priority: Critical
> Fix For: qpid-java-broker-7.0.6
>
>
> The consumer node is currently set after consumer is added into queue 
> consumer manager. When released message is requeued all consumers in consumer 
> manager are iterated and AbstractQueue#updateSubRequeueEntry is invoke for 
> every of them to update the released entry in consumer queue context if 
> required. The notification of consumer without a consumer node can result in 
> NullPointerException:
> {noformat}
> java.lang.NullPointerException
>     at 
> org.apache.qpid.server.queue.QueueConsumerManagerImpl.setNotified(QueueConsumerManagerImpl.java:151)
>     at 
> org.apache.qpid.server.queue.AbstractQueue.notifyConsumer(AbstractQueue.java:2268)
>     at 
> org.apache.qpid.server.queue.AbstractQueue.updateSubRequeueEntry(AbstractQueue.java:1382)
>     at 
> org.apache.qpid.server.queue.AbstractQueue.resetSubPointers(AbstractQueue.java:1413)
>     at 
> org.apache.qpid.server.queue.AbstractQueue.requeue(AbstractQueue.java:1399)
>     at 
> org.apache.qpid.server.queue.QueueEntryImpl.postRelease(QueueEntryImpl.java:446)
>     at 
> org.apache.qpid.server.queue.QueueEntryImpl.release(QueueEntryImpl.java:437)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQChannel.requeue(AMQChannel.java:896)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQChannel.close(AMQChannel.java:787)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8Impl.closeChannel(AMQPConnection_0_8Impl.java:459)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8Impl.closeChannel(AMQPConnection_0_8Impl.java:430)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQChannel.receiveChannelClose(AMQChannel.java:2167)
>     at 
> org.apache.qpid.server.protocol.v0_8.transport.ChannelCloseBody.process(ChannelCloseBody.java:140)
>     at 
> org.apache.qpid.server.protocol.v0_8.ServerDecoder.processMethod(ServerDecoder.java:132)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQDecoder.processFrame(AMQDecoder.java:203)
>     at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder.doProcessFrame(BrokerDecoder.java:141)
>     at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder.processFrame(BrokerDecoder.java:65)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQDecoder.processInput(AMQDecoder.java:185)
>     at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder$1.run(BrokerDecoder.java:104)
>     at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder$1.run(BrokerDecoder.java:97)
>     at java.security.AccessController.doPrivileged(Native Method)
>     at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder.processAMQPFrames(BrokerDecoder.java:96)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQDecoder.decode(AMQDecoder.java:118)
>     at 
> org.apache.qpid.server.protocol.v0_8.ServerDecoder.decodeBuffer(ServerDecoder.java:44)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8Impl$1.run(AMQPConnection_0_8Impl.java:257)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8Impl$1.run(AMQPConnection_0_8Impl.java:249)
>     at java.security.AccessController.doPrivileged(Native Method)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8Impl.received(AMQPConnection_0_8Impl.java:248)
>     at 
> org.apache.qpid.server.transport.MultiVersionProtocolEngine.received(MultiVersionProtocolEngine.java:135)
>     at 
> 

[jira] [Resolved] (QPID-8210) [Broker-J] Consumer attach when message is being released and requeued can end-up in broker crash due to unhandled NullPointerException

2018-06-20 Thread Keith Wall (JIRA)


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

Keith Wall resolved QPID-8210.
--
Resolution: Fixed

> [Broker-J]  Consumer attach when message is being released and requeued can 
> end-up in broker crash due to unhandled NullPointerException
> 
>
> Key: QPID-8210
> URL: https://issues.apache.org/jira/browse/QPID-8210
> Project: Qpid
>  Issue Type: Bug
>  Components: Broker-J
>Affects Versions: qpid-java-broker-7.0.3, qpid-java-broker-7.0.2, 
> qpid-java-broker-7.0.0, qpid-java-broker-7.0.1, qpid-java-broker-7.0.4, 
> qpid-java-broker-7.0.5
>Reporter: Alex Rudyy
>Priority: Critical
> Fix For: qpid-java-broker-7.0.6
>
>
> The consumer node is currently set after consumer is added into queue 
> consumer manager. When released message is requeued all consumers in consumer 
> manager are iterated and AbstractQueue#updateSubRequeueEntry is invoke for 
> every of them to update the released entry in consumer queue context if 
> required. The notification of consumer without a consumer node can result in 
> NullPointerException:
> {noformat}
> java.lang.NullPointerException
>     at 
> org.apache.qpid.server.queue.QueueConsumerManagerImpl.setNotified(QueueConsumerManagerImpl.java:151)
>     at 
> org.apache.qpid.server.queue.AbstractQueue.notifyConsumer(AbstractQueue.java:2268)
>     at 
> org.apache.qpid.server.queue.AbstractQueue.updateSubRequeueEntry(AbstractQueue.java:1382)
>     at 
> org.apache.qpid.server.queue.AbstractQueue.resetSubPointers(AbstractQueue.java:1413)
>     at 
> org.apache.qpid.server.queue.AbstractQueue.requeue(AbstractQueue.java:1399)
>     at 
> org.apache.qpid.server.queue.QueueEntryImpl.postRelease(QueueEntryImpl.java:446)
>     at 
> org.apache.qpid.server.queue.QueueEntryImpl.release(QueueEntryImpl.java:437)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQChannel.requeue(AMQChannel.java:896)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQChannel.close(AMQChannel.java:787)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8Impl.closeChannel(AMQPConnection_0_8Impl.java:459)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8Impl.closeChannel(AMQPConnection_0_8Impl.java:430)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQChannel.receiveChannelClose(AMQChannel.java:2167)
>     at 
> org.apache.qpid.server.protocol.v0_8.transport.ChannelCloseBody.process(ChannelCloseBody.java:140)
>     at 
> org.apache.qpid.server.protocol.v0_8.ServerDecoder.processMethod(ServerDecoder.java:132)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQDecoder.processFrame(AMQDecoder.java:203)
>     at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder.doProcessFrame(BrokerDecoder.java:141)
>     at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder.processFrame(BrokerDecoder.java:65)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQDecoder.processInput(AMQDecoder.java:185)
>     at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder$1.run(BrokerDecoder.java:104)
>     at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder$1.run(BrokerDecoder.java:97)
>     at java.security.AccessController.doPrivileged(Native Method)
>     at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder.processAMQPFrames(BrokerDecoder.java:96)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQDecoder.decode(AMQDecoder.java:118)
>     at 
> org.apache.qpid.server.protocol.v0_8.ServerDecoder.decodeBuffer(ServerDecoder.java:44)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8Impl$1.run(AMQPConnection_0_8Impl.java:257)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8Impl$1.run(AMQPConnection_0_8Impl.java:249)
>     at java.security.AccessController.doPrivileged(Native Method)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8Impl.received(AMQPConnection_0_8Impl.java:248)
>     at 
> org.apache.qpid.server.transport.MultiVersionProtocolEngine.received(MultiVersionProtocolEngine.java:135)
>     at 
> org.apache.qpid.server.transport.NonBlockingConnection.processAmqpData(NonBlockingConnection.java:610)
>     at 
> org.apache.qpid.server.transport.NonBlockingConnectionPlainDelegate.processData(NonBlockingConnectionPlainDelegate.java:58)
>     at 
> org.apache.qpid.server.transport.NonBlockingConnection.doRead(NonBlockingConnection.java:496)
>     at 
> org.apache.qpid.server.transport.NonBlockingConnection.doWork(NonBlockingConnection.java:270)
>     at 
> org.apache.qpid.server.transport.NetworkConnectionScheduler.processConnection(NetworkConnectionScheduler.java:134)
>     at 
> 

[jira] [Updated] (QPID-8210) [Broker-J] Consumer attach when message is being released and requeued can end-up in broker crash due to unhandled NullPointerException

2018-06-20 Thread Keith Wall (JIRA)


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

Keith Wall updated QPID-8210:
-
Description: 
The consumer node is currently set after consumer is added into queue consumer 
manager. When released message is requeued all consumers in consumer manager 
are iterated and AbstractQueue#updateSubRequeueEntry is invoke for every of 
them to update the released entry in consumer queue context if required. The 
notification of consumer without a consumer node can result in 
NullPointerException:
{noformat}
java.lang.NullPointerException
    at 
org.apache.qpid.server.queue.QueueConsumerManagerImpl.setNotified(QueueConsumerManagerImpl.java:151)
    at 
org.apache.qpid.server.queue.AbstractQueue.notifyConsumer(AbstractQueue.java:2268)
    at 
org.apache.qpid.server.queue.AbstractQueue.updateSubRequeueEntry(AbstractQueue.java:1382)
    at 
org.apache.qpid.server.queue.AbstractQueue.resetSubPointers(AbstractQueue.java:1413)
    at 
org.apache.qpid.server.queue.AbstractQueue.requeue(AbstractQueue.java:1399)
    at 
org.apache.qpid.server.queue.QueueEntryImpl.postRelease(QueueEntryImpl.java:446)
    at 
org.apache.qpid.server.queue.QueueEntryImpl.release(QueueEntryImpl.java:437)
    at 
org.apache.qpid.server.protocol.v0_8.AMQChannel.requeue(AMQChannel.java:896)
    at 
org.apache.qpid.server.protocol.v0_8.AMQChannel.close(AMQChannel.java:787)
    at 
org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8Impl.closeChannel(AMQPConnection_0_8Impl.java:459)
    at 
org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8Impl.closeChannel(AMQPConnection_0_8Impl.java:430)
    at 
org.apache.qpid.server.protocol.v0_8.AMQChannel.receiveChannelClose(AMQChannel.java:2167)
    at 
org.apache.qpid.server.protocol.v0_8.transport.ChannelCloseBody.process(ChannelCloseBody.java:140)
    at 
org.apache.qpid.server.protocol.v0_8.ServerDecoder.processMethod(ServerDecoder.java:132)
    at 
org.apache.qpid.server.protocol.v0_8.AMQDecoder.processFrame(AMQDecoder.java:203)
    at 
org.apache.qpid.server.protocol.v0_8.BrokerDecoder.doProcessFrame(BrokerDecoder.java:141)
    at 
org.apache.qpid.server.protocol.v0_8.BrokerDecoder.processFrame(BrokerDecoder.java:65)
    at 
org.apache.qpid.server.protocol.v0_8.AMQDecoder.processInput(AMQDecoder.java:185)
    at 
org.apache.qpid.server.protocol.v0_8.BrokerDecoder$1.run(BrokerDecoder.java:104)
    at 
org.apache.qpid.server.protocol.v0_8.BrokerDecoder$1.run(BrokerDecoder.java:97)
    at java.security.AccessController.doPrivileged(Native Method)
    at 
org.apache.qpid.server.protocol.v0_8.BrokerDecoder.processAMQPFrames(BrokerDecoder.java:96)
    at 
org.apache.qpid.server.protocol.v0_8.AMQDecoder.decode(AMQDecoder.java:118)
    at 
org.apache.qpid.server.protocol.v0_8.ServerDecoder.decodeBuffer(ServerDecoder.java:44)
    at 
org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8Impl$1.run(AMQPConnection_0_8Impl.java:257)
    at 
org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8Impl$1.run(AMQPConnection_0_8Impl.java:249)
    at java.security.AccessController.doPrivileged(Native Method)
    at 
org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8Impl.received(AMQPConnection_0_8Impl.java:248)
    at 
org.apache.qpid.server.transport.MultiVersionProtocolEngine.received(MultiVersionProtocolEngine.java:135)
    at 
org.apache.qpid.server.transport.NonBlockingConnection.processAmqpData(NonBlockingConnection.java:610)
    at 
org.apache.qpid.server.transport.NonBlockingConnectionPlainDelegate.processData(NonBlockingConnectionPlainDelegate.java:58)
    at 
org.apache.qpid.server.transport.NonBlockingConnection.doRead(NonBlockingConnection.java:496)
    at 
org.apache.qpid.server.transport.NonBlockingConnection.doWork(NonBlockingConnection.java:270)
    at 
org.apache.qpid.server.transport.NetworkConnectionScheduler.processConnection(NetworkConnectionScheduler.java:134)
    at 
org.apache.qpid.server.transport.SelectorThread$ConnectionProcessor.processConnection(SelectorThread.java:575)
    at 
org.apache.qpid.server.transport.SelectorThread$SelectionTask.performSelect(SelectorThread.java:366)
    at 
org.apache.qpid.server.transport.SelectorThread$SelectionTask.run(SelectorThread.java:97)
    at 
org.apache.qpid.server.transport.SelectorThread.run(SelectorThread.java:533)
    at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at 
org.apache.qpid.server.bytebuffer.QpidByteBufferFactory.lambda$null$0(QpidByteBufferFactory.java:464)
    at java.lang.Thread.run(Thread.java:748)
{noformat}
The issue can happen in the following scenarios:
 * when previously acquired message is released due to 
consumer/session/connection close and another consumer is attached to the queue 
at the same time.
 * when transaction is rolled back or message is released (for example, JMS 

[jira] [Comment Edited] (QPID-8210) [Broker-J] Set queue consumer node before adding consumer into queue consumer manager

2018-06-19 Thread Keith Wall (JIRA)


[ 
https://issues.apache.org/jira/browse/QPID-8210?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16517377#comment-16517377
 ] 

Keith Wall edited comment on QPID-8210 at 6/19/18 6:00 PM:
---

Change looks reasonable to me, but I notice that 
{{org.apache.qpid.server.queue.QueueConsumerImpl#_queueConsumerNode}} is 
unsafely published.   It is written by the config thread then observed from the 
IO threads without a memory barrier.  Unfortunately, I think it needs to be 
volatile (or the code redesigned to avoid the cycle between 
{{QueueConsumerImpl}} and the node, which is more than will be desired for 
7.0.6).

 Also the last paragraphs on this Jira's description have been managed.  The 
Jira title should also be updated to reflect the problem, rather than the 
solution.


was (Author: k-wall):
Change looks reasonable to me, but I notice that 
{{org.apache.qpid.server.queue.QueueConsumerImpl#_queueConsumerNode}} is 
unsafely published.   It is written by the config thread then observed from the 
IO threads without a memory barrier.  Unfortunately, I think it needs to be 
volatile (or the code redesigned to avoid the cycle between 
{{QueueConsumerImpl}} and the node, which is more than will be desired for 
7.0.6).

 Also the last paragraphs on this Jira's description have been managed.

> [Broker-J] Set queue consumer node before adding consumer into queue consumer 
> manager
> -
>
> Key: QPID-8210
> URL: https://issues.apache.org/jira/browse/QPID-8210
> Project: Qpid
>  Issue Type: Bug
>  Components: Broker-J
>Affects Versions: qpid-java-broker-7.0.3, qpid-java-broker-7.0.2, 
> qpid-java-broker-7.0.0, qpid-java-broker-7.0.1, qpid-java-broker-7.0.4, 
> qpid-java-broker-7.0.5
>Reporter: Alex Rudyy
>Priority: Critical
> Fix For: qpid-java-broker-7.0.6
>
>
> The consumer node is currently set after consumer is added into queue 
> consumer manager. When released message is requeued all consumers in consumer 
> manager are iterated and AbstractQueue#updateSubRequeueEntry is invoke for 
> every of them to update the released entry in consumer queue context if 
> required. The notification of consumer without a consumer node can result in 
> NullPointerException:
> {noformat}
> java.lang.NullPointerException
>     at 
> org.apache.qpid.server.queue.QueueConsumerManagerImpl.setNotified(QueueConsumerManagerImpl.java:151)
>     at 
> org.apache.qpid.server.queue.AbstractQueue.notifyConsumer(AbstractQueue.java:2268)
>     at 
> org.apache.qpid.server.queue.AbstractQueue.updateSubRequeueEntry(AbstractQueue.java:1382)
>     at 
> org.apache.qpid.server.queue.AbstractQueue.resetSubPointers(AbstractQueue.java:1413)
>     at 
> org.apache.qpid.server.queue.AbstractQueue.requeue(AbstractQueue.java:1399)
>     at 
> org.apache.qpid.server.queue.QueueEntryImpl.postRelease(QueueEntryImpl.java:446)
>     at 
> org.apache.qpid.server.queue.QueueEntryImpl.release(QueueEntryImpl.java:437)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQChannel.requeue(AMQChannel.java:896)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQChannel.close(AMQChannel.java:787)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8Impl.closeChannel(AMQPConnection_0_8Impl.java:459)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8Impl.closeChannel(AMQPConnection_0_8Impl.java:430)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQChannel.receiveChannelClose(AMQChannel.java:2167)
>     at 
> org.apache.qpid.server.protocol.v0_8.transport.ChannelCloseBody.process(ChannelCloseBody.java:140)
>     at 
> org.apache.qpid.server.protocol.v0_8.ServerDecoder.processMethod(ServerDecoder.java:132)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQDecoder.processFrame(AMQDecoder.java:203)
>     at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder.doProcessFrame(BrokerDecoder.java:141)
>     at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder.processFrame(BrokerDecoder.java:65)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQDecoder.processInput(AMQDecoder.java:185)
>     at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder$1.run(BrokerDecoder.java:104)
>     at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder$1.run(BrokerDecoder.java:97)
>     at java.security.AccessController.doPrivileged(Native Method)
>     at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder.processAMQPFrames(BrokerDecoder.java:96)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQDecoder.decode(AMQDecoder.java:118)
>     at 
> org.apache.qpid.server.protocol.v0_8.ServerDecoder.decodeBuffer(ServerDecoder.java:44)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8Impl$1.run(AMQPConnection_0_8Impl.java:257)
>     at 
> 

[jira] [Comment Edited] (QPID-8210) [Broker-J] Set queue consumer node before adding consumer into queue consumer manager

2018-06-19 Thread Keith Wall (JIRA)


[ 
https://issues.apache.org/jira/browse/QPID-8210?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16517377#comment-16517377
 ] 

Keith Wall edited comment on QPID-8210 at 6/19/18 5:57 PM:
---

Change looks reasonable to me, but I notice that 
{{org.apache.qpid.server.queue.QueueConsumerImpl#_queueConsumerNode}} is 
unsafely published.   It is written by the config thread then observed from the 
IO threads without a memory barrier.  Unfortunately, I think it needs to be 
volatile (or the code redesigned to avoid the cycle between 
{{QueueConsumerImpl}} and the node, which is more than will be desired for 
7.0.6).

 Also the last paragraphs on this Jira's description have been managed.


was (Author: k-wall):
Change looks reasonable to me, but I notice that 
{{org.apache.qpid.server.queue.QueueConsumerImpl#_queueConsumerNode}} is 
unsafely published.   It is written by the config thread then observed from the 
IO threads without a memory barrier.  Unfortunately, I think it needs to be 
volatile (or the code redesigned to avoid the cycle between 
{{QueueConsumerImpl}} and the node, which is more than will be desired for 
7.0.6).

 

Also the last paragraphs on this Jira's description have been managed.

 

> [Broker-J] Set queue consumer node before adding consumer into queue consumer 
> manager
> -
>
> Key: QPID-8210
> URL: https://issues.apache.org/jira/browse/QPID-8210
> Project: Qpid
>  Issue Type: Bug
>  Components: Broker-J
>Affects Versions: qpid-java-broker-7.0.3, qpid-java-broker-7.0.2, 
> qpid-java-broker-7.0.0, qpid-java-broker-7.0.1, qpid-java-broker-7.0.4, 
> qpid-java-broker-7.0.5
>Reporter: Alex Rudyy
>Priority: Critical
> Fix For: qpid-java-broker-7.0.6
>
>
> The consumer node is currently set after consumer is added into queue 
> consumer manager. When released message is requeued all consumers in consumer 
> manager are iterated and AbstractQueue#updateSubRequeueEntry is invoke for 
> every of them to update the released entry in consumer queue context if 
> required. The notification of consumer without a consumer node can result in 
> NullPointerException:
> {noformat}
> java.lang.NullPointerException
>     at 
> org.apache.qpid.server.queue.QueueConsumerManagerImpl.setNotified(QueueConsumerManagerImpl.java:151)
>     at 
> org.apache.qpid.server.queue.AbstractQueue.notifyConsumer(AbstractQueue.java:2268)
>     at 
> org.apache.qpid.server.queue.AbstractQueue.updateSubRequeueEntry(AbstractQueue.java:1382)
>     at 
> org.apache.qpid.server.queue.AbstractQueue.resetSubPointers(AbstractQueue.java:1413)
>     at 
> org.apache.qpid.server.queue.AbstractQueue.requeue(AbstractQueue.java:1399)
>     at 
> org.apache.qpid.server.queue.QueueEntryImpl.postRelease(QueueEntryImpl.java:446)
>     at 
> org.apache.qpid.server.queue.QueueEntryImpl.release(QueueEntryImpl.java:437)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQChannel.requeue(AMQChannel.java:896)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQChannel.close(AMQChannel.java:787)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8Impl.closeChannel(AMQPConnection_0_8Impl.java:459)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8Impl.closeChannel(AMQPConnection_0_8Impl.java:430)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQChannel.receiveChannelClose(AMQChannel.java:2167)
>     at 
> org.apache.qpid.server.protocol.v0_8.transport.ChannelCloseBody.process(ChannelCloseBody.java:140)
>     at 
> org.apache.qpid.server.protocol.v0_8.ServerDecoder.processMethod(ServerDecoder.java:132)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQDecoder.processFrame(AMQDecoder.java:203)
>     at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder.doProcessFrame(BrokerDecoder.java:141)
>     at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder.processFrame(BrokerDecoder.java:65)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQDecoder.processInput(AMQDecoder.java:185)
>     at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder$1.run(BrokerDecoder.java:104)
>     at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder$1.run(BrokerDecoder.java:97)
>     at java.security.AccessController.doPrivileged(Native Method)
>     at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder.processAMQPFrames(BrokerDecoder.java:96)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQDecoder.decode(AMQDecoder.java:118)
>     at 
> org.apache.qpid.server.protocol.v0_8.ServerDecoder.decodeBuffer(ServerDecoder.java:44)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8Impl$1.run(AMQPConnection_0_8Impl.java:257)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8Impl$1.run(AMQPConnection_0_8Impl.java:249)
>     at 

[jira] [Comment Edited] (QPID-8210) [Broker-J] Set queue consumer node before adding consumer into queue consumer manager

2018-06-19 Thread Keith Wall (JIRA)


[ 
https://issues.apache.org/jira/browse/QPID-8210?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16517377#comment-16517377
 ] 

Keith Wall edited comment on QPID-8210 at 6/19/18 5:56 PM:
---

Change looks reasonable to me, but I notice that 
{{org.apache.qpid.server.queue.QueueConsumerImpl#_queueConsumerNode}} is 
unsafely published.   It is written by the config thread then observed from the 
IO threads without a memory barrier.  Unfortunately, I think it needs to be 
volatile (or the code redesigned to avoid the cycle between 
{{QueueConsumerImpl}} and the node, which is more than will be desired for 
7.0.6).

 

Also the last paragraphs on this Jira's description have been managed.

 


was (Author: k-wall):
Change looks reasonable to me, but I notice that 
{{org.apache.qpid.server.queue.QueueConsumerImpl#_queueConsumerNode}} is 
unsafely published.   It is written by the config thread then observed from the 
IO threads without a memory barrier.  Unfortunately, I think it needs to be 
volatile (or the code redesigned to avoid the cycle between 
{{QueueConsumerImpl}} and the node, which is more than will be desired for 
7.0.6).

 

> [Broker-J] Set queue consumer node before adding consumer into queue consumer 
> manager
> -
>
> Key: QPID-8210
> URL: https://issues.apache.org/jira/browse/QPID-8210
> Project: Qpid
>  Issue Type: Bug
>  Components: Broker-J
>Affects Versions: qpid-java-broker-7.0.3, qpid-java-broker-7.0.2, 
> qpid-java-broker-7.0.0, qpid-java-broker-7.0.1, qpid-java-broker-7.0.4, 
> qpid-java-broker-7.0.5
>Reporter: Alex Rudyy
>Priority: Critical
> Fix For: qpid-java-broker-7.0.6
>
>
> The consumer node is currently set after consumer is added into queue 
> consumer manager. When released message is requeued all consumers in consumer 
> manager are iterated and AbstractQueue#updateSubRequeueEntry is invoke for 
> every of them to update the released entry in consumer queue context if 
> required. The notification of consumer without a consumer node can result in 
> NullPointerException:
> {noformat}
> java.lang.NullPointerException
>     at 
> org.apache.qpid.server.queue.QueueConsumerManagerImpl.setNotified(QueueConsumerManagerImpl.java:151)
>     at 
> org.apache.qpid.server.queue.AbstractQueue.notifyConsumer(AbstractQueue.java:2268)
>     at 
> org.apache.qpid.server.queue.AbstractQueue.updateSubRequeueEntry(AbstractQueue.java:1382)
>     at 
> org.apache.qpid.server.queue.AbstractQueue.resetSubPointers(AbstractQueue.java:1413)
>     at 
> org.apache.qpid.server.queue.AbstractQueue.requeue(AbstractQueue.java:1399)
>     at 
> org.apache.qpid.server.queue.QueueEntryImpl.postRelease(QueueEntryImpl.java:446)
>     at 
> org.apache.qpid.server.queue.QueueEntryImpl.release(QueueEntryImpl.java:437)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQChannel.requeue(AMQChannel.java:896)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQChannel.close(AMQChannel.java:787)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8Impl.closeChannel(AMQPConnection_0_8Impl.java:459)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8Impl.closeChannel(AMQPConnection_0_8Impl.java:430)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQChannel.receiveChannelClose(AMQChannel.java:2167)
>     at 
> org.apache.qpid.server.protocol.v0_8.transport.ChannelCloseBody.process(ChannelCloseBody.java:140)
>     at 
> org.apache.qpid.server.protocol.v0_8.ServerDecoder.processMethod(ServerDecoder.java:132)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQDecoder.processFrame(AMQDecoder.java:203)
>     at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder.doProcessFrame(BrokerDecoder.java:141)
>     at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder.processFrame(BrokerDecoder.java:65)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQDecoder.processInput(AMQDecoder.java:185)
>     at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder$1.run(BrokerDecoder.java:104)
>     at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder$1.run(BrokerDecoder.java:97)
>     at java.security.AccessController.doPrivileged(Native Method)
>     at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder.processAMQPFrames(BrokerDecoder.java:96)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQDecoder.decode(AMQDecoder.java:118)
>     at 
> org.apache.qpid.server.protocol.v0_8.ServerDecoder.decodeBuffer(ServerDecoder.java:44)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8Impl$1.run(AMQPConnection_0_8Impl.java:257)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8Impl$1.run(AMQPConnection_0_8Impl.java:249)
>     at java.security.AccessController.doPrivileged(Native Method)
>     at 
> 

[jira] [Commented] (QPID-8210) [Broker-J] Set queue consumer node before adding consumer into queue consumer manager

2018-06-19 Thread Keith Wall (JIRA)


[ 
https://issues.apache.org/jira/browse/QPID-8210?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16517377#comment-16517377
 ] 

Keith Wall commented on QPID-8210:
--

Change looks reasonable to me, but I notice that 
{{org.apache.qpid.server.queue.QueueConsumerImpl#_queueConsumerNode}} is 
unsafely published.   It is written by the config thread then observed from the 
IO threads without a memory barrier.  Unfortunately, I think it needs to be 
volatile (or the code redesigned to avoid the cycle between 
{{QueueConsumerImpl}} and the node, which is more than will be desired for 
7.0.6).

 

> [Broker-J] Set queue consumer node before adding consumer into queue consumer 
> manager
> -
>
> Key: QPID-8210
> URL: https://issues.apache.org/jira/browse/QPID-8210
> Project: Qpid
>  Issue Type: Bug
>  Components: Broker-J
>Affects Versions: qpid-java-broker-7.0.3, qpid-java-broker-7.0.2, 
> qpid-java-broker-7.0.0, qpid-java-broker-7.0.1, qpid-java-broker-7.0.4, 
> qpid-java-broker-7.0.5
>Reporter: Alex Rudyy
>Priority: Critical
> Fix For: qpid-java-broker-7.0.6
>
>
> The consumer node is currently set after consumer is added into queue 
> consumer manager. When released message is requeued all consumers in consumer 
> manager are iterated and AbstractQueue#updateSubRequeueEntry is invoke for 
> every of them to update the released entry in consumer queue context if 
> required. The notification of consumer without a consumer node can result in 
> NullPointerException:
> {noformat}
> java.lang.NullPointerException
>     at 
> org.apache.qpid.server.queue.QueueConsumerManagerImpl.setNotified(QueueConsumerManagerImpl.java:151)
>     at 
> org.apache.qpid.server.queue.AbstractQueue.notifyConsumer(AbstractQueue.java:2268)
>     at 
> org.apache.qpid.server.queue.AbstractQueue.updateSubRequeueEntry(AbstractQueue.java:1382)
>     at 
> org.apache.qpid.server.queue.AbstractQueue.resetSubPointers(AbstractQueue.java:1413)
>     at 
> org.apache.qpid.server.queue.AbstractQueue.requeue(AbstractQueue.java:1399)
>     at 
> org.apache.qpid.server.queue.QueueEntryImpl.postRelease(QueueEntryImpl.java:446)
>     at 
> org.apache.qpid.server.queue.QueueEntryImpl.release(QueueEntryImpl.java:437)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQChannel.requeue(AMQChannel.java:896)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQChannel.close(AMQChannel.java:787)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8Impl.closeChannel(AMQPConnection_0_8Impl.java:459)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8Impl.closeChannel(AMQPConnection_0_8Impl.java:430)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQChannel.receiveChannelClose(AMQChannel.java:2167)
>     at 
> org.apache.qpid.server.protocol.v0_8.transport.ChannelCloseBody.process(ChannelCloseBody.java:140)
>     at 
> org.apache.qpid.server.protocol.v0_8.ServerDecoder.processMethod(ServerDecoder.java:132)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQDecoder.processFrame(AMQDecoder.java:203)
>     at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder.doProcessFrame(BrokerDecoder.java:141)
>     at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder.processFrame(BrokerDecoder.java:65)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQDecoder.processInput(AMQDecoder.java:185)
>     at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder$1.run(BrokerDecoder.java:104)
>     at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder$1.run(BrokerDecoder.java:97)
>     at java.security.AccessController.doPrivileged(Native Method)
>     at 
> org.apache.qpid.server.protocol.v0_8.BrokerDecoder.processAMQPFrames(BrokerDecoder.java:96)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQDecoder.decode(AMQDecoder.java:118)
>     at 
> org.apache.qpid.server.protocol.v0_8.ServerDecoder.decodeBuffer(ServerDecoder.java:44)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8Impl$1.run(AMQPConnection_0_8Impl.java:257)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8Impl$1.run(AMQPConnection_0_8Impl.java:249)
>     at java.security.AccessController.doPrivileged(Native Method)
>     at 
> org.apache.qpid.server.protocol.v0_8.AMQPConnection_0_8Impl.received(AMQPConnection_0_8Impl.java:248)
>     at 
> org.apache.qpid.server.transport.MultiVersionProtocolEngine.received(MultiVersionProtocolEngine.java:135)
>     at 
> org.apache.qpid.server.transport.NonBlockingConnection.processAmqpData(NonBlockingConnection.java:610)
>     at 
> org.apache.qpid.server.transport.NonBlockingConnectionPlainDelegate.processData(NonBlockingConnectionPlainDelegate.java:58)
>     at 
> org.apache.qpid.server.transport.NonBlockingConnection.doRead(NonBlockingConnection.java:496)
>     

[jira] [Commented] (QPID-8208) [Broker-J] Improve unexpected exception handling for LDAP connections in SimpleLDAPAuthenticationProvider

2018-06-11 Thread Keith Wall (JIRA)


[ 
https://issues.apache.org/jira/browse/QPID-8208?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16508312#comment-16508312
 ] 

Keith Wall commented on QPID-8208:
--

Alex

That looks to me to be a Java platform defect rather than a Broker-J issue. 
{{InitialDirContext}} is defined by its API as throwing a {{NamingException}} 
only.  It cannot legitimately throw a {{NullPointerException}}.

You haven't stated the version of the JVM that produced this defect,  but I 
notice looking at the sources for LdapClient 1.8.0_171, there is appears to be 
race condition in the implementation.  If an "Notice of Disconnection" 
(1.3.6.1.4.1.1466.20036) arrives from the LDAP peer this causes the 
{{com.sun.jndi.ldap.LdapClient#conn}} ref to be nulled (look at 
{{processUnsolicited()}} invokes {{forcedClosed()}} - which doesn't take the 
mutex).   If this occurs whilst a thread is executing 
{{LdapClient.authenticate}}, then the NPE will occur.

I think this defect should be closed as not a defect.







> [Broker-J] Improve unexpected exception handling for LDAP connections in 
> SimpleLDAPAuthenticationProvider
> -
>
> Key: QPID-8208
> URL: https://issues.apache.org/jira/browse/QPID-8208
> Project: Qpid
>  Issue Type: Bug
>  Components: Broker-J
>Affects Versions: qpid-java-6.1.6, qpid-java-broker-7.0.3, 
> qpid-java-broker-7.0.2, 0.32, qpid-java-6.0, qpid-java-6.0.1, 
> qpid-java-6.0.2, qpid-java-6.0.3, qpid-java-6.0.4, qpid-java-6.0.5, 
> qpid-java-6.1, qpid-java-6.0.6, qpid-java-6.1.1, qpid-java-6.1.2, 
> qpid-java-6.0.7, qpid-java-6.1.3, qpid-java-6.0.8, qpid-java-6.1.4, 
> qpid-java-broker-7.0.0, qpid-java-6.1.5, qpid-java-broker-7.0.1, 
> qpid-java-broker-7.0.4
>Reporter: Alex Rudyy
>Priority: Critical
> Fix For: qpid-java-broker-7.0.5
>
> Attachments: 0001-QPID-8208-Broker-J-Improve-exception-handling.patch
>
>
> The establishment of connection with LDAP using  default 
> {{com.sun.jndi.ldap.LdapCtxFactory}} can end-up in unexpected exception 
> thrown from {{com.sun.jndi.ldap.LdapClient}}. Thought, it looks like a defect 
> in {{LdapClient}}, the unexpected exceptions should be handled appropriately. 
> The exception should be logged and the authentication failure error should be 
> returned back to the client.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Commented] (QPID-8207) [Broker-J] Flow to disk might not be triggered in some circumstances

2018-06-11 Thread Keith Wall (JIRA)


[ 
https://issues.apache.org/jira/browse/QPID-8207?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16507795#comment-16507795
 ] 

Keith Wall commented on QPID-8207:
--

Alex, the algebraic refactoring look good to me.

> [Broker-J] Flow to disk might not be triggered in some circumstances
> 
>
> Key: QPID-8207
> URL: https://issues.apache.org/jira/browse/QPID-8207
> Project: Qpid
>  Issue Type: Task
>  Components: Broker-J
>Affects Versions: qpid-java-6.1.6, qpid-java-broker-7.0.3, 
> qpid-java-broker-7.0.2, qpid-java-6.0, qpid-java-6.0.1, qpid-java-6.0.2, 
> qpid-java-6.0.3, qpid-java-6.0.4, qpid-java-6.0.5, qpid-java-6.1, 
> qpid-java-6.0.6, qpid-java-6.1.1, qpid-java-6.1.2, qpid-java-6.0.7, 
> qpid-java-6.1.3, qpid-java-6.0.8, qpid-java-6.1.4, qpid-java-broker-7.0.0, 
> qpid-java-6.1.5, qpid-java-broker-7.0.1, qpid-java-6.1.7, qpid-java-6.0.9, 
> qpid-java-broker-7.0.4
>Reporter: Alex Rudyy
>Assignee: Alex Rudyy
>Priority: Critical
> Fix For: qpid-java-broker-7.0.5
>
> Attachments: 
> 0001-QPID-8207-Broker-J-Fix-evaluation-of-flow-to-disk-th.patch
>
>
> An evaluation of Virtual Host flow to disk threshold can overflow and yield 
> incorrect value. As result, the flow of messages to disk might not be 
> triggered and Broker can ran out of direct memory.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Commented] (QPID-8202) [Broker-J][AMQP 0-8...0-91] Large flowed to disk message can be re-loaded from store for every content chunk sent to the client

2018-06-07 Thread Keith Wall (JIRA)


[ 
https://issues.apache.org/jira/browse/QPID-8202?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16504619#comment-16504619
 ] 

Keith Wall commented on QPID-8202:
--

Changes look reasonable to me.

> [Broker-J][AMQP 0-8...0-91] Large flowed to disk message can be re-loaded 
> from store for every content chunk sent to the client
> ---
>
> Key: QPID-8202
> URL: https://issues.apache.org/jira/browse/QPID-8202
> Project: Qpid
>  Issue Type: Bug
>  Components: Broker-J
>Affects Versions: qpid-java-6.1.6, qpid-java-broker-7.0.3, 
> qpid-java-broker-7.0.2, qpid-java-6.1, qpid-java-6.1.1, qpid-java-6.1.2, 
> qpid-java-6.1.3, qpid-java-6.1.4, qpid-java-broker-7.0.0, qpid-java-6.1.5, 
> qpid-java-broker-7.0.1, qpid-java-broker-7.0.4
>Reporter: Alex Rudyy
>Assignee: Alex Rudyy
>Priority: Critical
> Fix For: qpid-java-broker-7.1.0, qpid-java-broker-7.0.5
>
>
> When large message cannot fit in one frame it is sent in multiple frames. 
> Currently, the flowed to disk message is repeatedly loaded from store and 
> evicted from memory on sending every content chunk. As result, the message 
> consumption performance is very slow. Only AMQP  protocols 0-8..0-91 are 
> affected by the issue



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Commented] (QPID-8204) [Broker-J] Add statistics to report the maximum size of incoming messages

2018-06-07 Thread Keith Wall (JIRA)


[ 
https://issues.apache.org/jira/browse/QPID-8204?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16504610#comment-16504610
 ] 

Keith Wall commented on QPID-8204:
--

Changes look reasonable to me.

> [Broker-J] Add statistics to report the maximum size of incoming messages
> -
>
> Key: QPID-8204
> URL: https://issues.apache.org/jira/browse/QPID-8204
> Project: Qpid
>  Issue Type: Improvement
>  Components: Broker-J
>Reporter: Alex Rudyy
>Assignee: Alex Rudyy
>Priority: Major
> Fix For: qpid-java-broker-7.1.0, qpid-java-broker-7.0.5
>
> Attachments: 
> 0001-QPID-8204-Broker-J-Rename-new-statistics-into-inboun.patch
>
>
> Add statistics to report the maximum size of incoming messages on Broker and 
> Virtual Hosts. Add a switch to enable/disable collection of statistics for 
> message maximum size . By default, collection of maximum size statistics 
> should be disabled



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Comment Edited] (QPID-8203) [Broker-J][AMQP 0-9] Improve maximum message size check

2018-06-07 Thread Keith Wall (JIRA)


[ 
https://issues.apache.org/jira/browse/QPID-8203?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16503972#comment-16503972
 ] 

Keith Wall edited comment on QPID-8203 at 6/7/18 7:43 AM:
--

Production code change (master.7.0.x) looked reasonable.   The new protocol 
test file didn't follow the naming conventions demanded by the configuration of 
the maven-surefire-plugin, so wasn't being run when invoked from Maven.  I 
fixed that and added a 0-10 protocol test. I noted that an equivalent AMQP 1.0 
test already existed.


was (Author: k-wall):
Production code change (master.7.0.x) looked reasonable.   The new protocol 
test file didn't follow the naming conventions demanded by the configuration of 
the maven-surefire-plugin, so wasn't being run when invoked from Maven.  I 
fixed that and added a 0-10 protocol test. I noted that a AMQP 1.0 already 
existed.

> [Broker-J][AMQP 0-9] Improve maximum message size check
> ---
>
> Key: QPID-8203
> URL: https://issues.apache.org/jira/browse/QPID-8203
> Project: Qpid
>  Issue Type: Bug
>  Components: Broker-J
>Affects Versions: qpid-java-broker-7.0.3, qpid-java-broker-7.0.2, 
> qpid-java-broker-7.0.0, qpid-java-broker-7.0.1, qpid-java-broker-7.0.4
>Reporter: Alex Rudyy
>Assignee: Alex Rudyy
>Priority: Critical
> Fix For: qpid-java-broker-7.1.0, qpid-java-broker-7.0.5
>
>
> Maximum message size check needs to be improved



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Comment Edited] (QPID-8204) [Broker-J] Add statistics to report the maximum size of incoming messages

2018-06-07 Thread Keith Wall (JIRA)


[ 
https://issues.apache.org/jira/browse/QPID-8204?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16504040#comment-16504040
 ] 

Keith Wall edited comment on QPID-8204 at 6/7/18 7:42 AM:
--

Is the {{maxMessageSizeStatisticsEnabled}} switch really justifiable?  I prefer 
to avoid a proliferation of switches because they just bewilder.  My guess 
would be the additional CAS would have no noticeable effect on performance.


was (Author: k-wall):
Is the {{maxMessageSizeStatisticsEnabled}} switch really justifiable?  I prefer 
to avoid a proliferation of switches because they just bewilder.  I guess would 
be the additional CAS would have no noticeable effect on performance.

> [Broker-J] Add statistics to report the maximum size of incoming messages
> -
>
> Key: QPID-8204
> URL: https://issues.apache.org/jira/browse/QPID-8204
> Project: Qpid
>  Issue Type: Improvement
>  Components: Broker-J
>Reporter: Alex Rudyy
>Assignee: Alex Rudyy
>Priority: Major
> Fix For: qpid-java-broker-7.1.0, qpid-java-broker-7.0.5
>
> Attachments: 
> 0001-QPID-8204-Broker-J-Rename-new-statistics-into-inboun.patch
>
>
> Add statistics to report the maximum size of incoming messages on Broker and 
> Virtual Hosts. Add a switch to enable/disable collection of statistics for 
> message maximum size . By default, collection of maximum size statistics 
> should be disabled



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Commented] (QPID-8204) [Broker-J] Add statistics to report the maximum size of incoming messages

2018-06-06 Thread Keith Wall (JIRA)


[ 
https://issues.apache.org/jira/browse/QPID-8204?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16504040#comment-16504040
 ] 

Keith Wall commented on QPID-8204:
--

Is the {{maxMessageSizeStatisticsEnabled}} switch really justifiable?  I prefer 
to avoid a proliferation of switches because they just bewilder.  I guess would 
be the additional CAS would have no noticeable effect on performance.

> [Broker-J] Add statistics to report the maximum size of incoming messages
> -
>
> Key: QPID-8204
> URL: https://issues.apache.org/jira/browse/QPID-8204
> Project: Qpid
>  Issue Type: Improvement
>  Components: Broker-J
>Reporter: Alex Rudyy
>Assignee: Alex Rudyy
>Priority: Major
> Fix For: qpid-java-broker-7.1.0, qpid-java-broker-7.0.5
>
> Attachments: 
> 0001-QPID-8204-Broker-J-Rename-new-statistics-into-inboun.patch
>
>
> Add statistics to report the maximum size of incoming messages on Broker and 
> Virtual Hosts. Add a switch to enable/disable collection of statistics for 
> message maximum size . By default, collection of maximum size statistics 
> should be disabled



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Commented] (QPID-8202) [Broker-J][AMQP 0-9] Large flowed to disk message can be re-loaded from store for every content chunk sent to the client

2018-06-06 Thread Keith Wall (JIRA)


[ 
https://issues.apache.org/jira/browse/QPID-8202?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16504028#comment-16504028
 ] 

Keith Wall commented on QPID-8202:
--

Isn't 6.1 affected by this problem too?  I haven't run the code but it looks 
like this problem has been with Broker-J since QPID-6953.

Your code change looks functionally correct to me, but the code remains less 
than obvious.

# It seems odd to give the {{MessageContentSourceBody}} all the {{content}}, 
{{offset}} and {{length}} only then to have {{#writePayload}} take a view a few 
moments later.  Passing  {{MessageContentSourceBody}} the view it needs would 
be an improvement.  Or perhaps replace {{MessageContentSourceBody}} with a 
{{ContentBody}} (and remember to call dispose)?
# The  calculation of {{capacity}} (which would be better named 
{{contentChunkSize}}) is weird and could be expressed more clearly.

 

> [Broker-J][AMQP 0-9] Large flowed to disk message can be re-loaded from store 
> for every content chunk sent to the client
> 
>
> Key: QPID-8202
> URL: https://issues.apache.org/jira/browse/QPID-8202
> Project: Qpid
>  Issue Type: Bug
>  Components: Broker-J
>Affects Versions: qpid-java-broker-7.0.3, qpid-java-broker-7.0.2, 
> qpid-java-broker-7.0.0, qpid-java-broker-7.0.1, qpid-java-broker-7.0.4
>Reporter: Alex Rudyy
>Assignee: Alex Rudyy
>Priority: Critical
> Fix For: qpid-java-broker-7.1.0, qpid-java-broker-7.0.5
>
>
> When large message cannot fit in one frame it is sent in multiple blocks. 
> Currently, the flowed to disk message is reloaded from store and evicted from 
> memory on sending every block. As result, the message consumption performance 
> is very slow. Only AMQP  protocols 0-8..0-91 are affected by the issue



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Commented] (QPID-8203) [Broker-J][AMQP 0-9] Improve maximum message size check

2018-06-06 Thread Keith Wall (JIRA)


[ 
https://issues.apache.org/jira/browse/QPID-8203?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16503972#comment-16503972
 ] 

Keith Wall commented on QPID-8203:
--

Production code change (master.7.0.x) looked reasonable.   The new protocol 
test file didn't follow the naming conventions demanded by the configuration of 
the maven-surefire-plugin, so wasn't being run when invoked from Maven.  I 
fixed that and added a 0-10 protocol test. I noted that a AMQP 1.0 already 
existed.

> [Broker-J][AMQP 0-9] Improve maximum message size check
> ---
>
> Key: QPID-8203
> URL: https://issues.apache.org/jira/browse/QPID-8203
> Project: Qpid
>  Issue Type: Bug
>  Components: Broker-J
>Affects Versions: qpid-java-broker-7.0.3, qpid-java-broker-7.0.2, 
> qpid-java-broker-7.0.0, qpid-java-broker-7.0.1, qpid-java-broker-7.0.4
>Reporter: Alex Rudyy
>Assignee: Alex Rudyy
>Priority: Critical
> Fix For: qpid-java-broker-7.1.0, qpid-java-broker-7.0.5
>
>
> Maximum message size check needs to be improved



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Resolved] (QPID-8203) [Broker-J][AMQP 0-9] Improve maximum message size check

2018-06-06 Thread Keith Wall (JIRA)


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

Keith Wall resolved QPID-8203.
--
Resolution: Fixed

> [Broker-J][AMQP 0-9] Improve maximum message size check
> ---
>
> Key: QPID-8203
> URL: https://issues.apache.org/jira/browse/QPID-8203
> Project: Qpid
>  Issue Type: Bug
>  Components: Broker-J
>Affects Versions: qpid-java-broker-7.0.3, qpid-java-broker-7.0.2, 
> qpid-java-broker-7.0.0, qpid-java-broker-7.0.1, qpid-java-broker-7.0.4
>Reporter: Alex Rudyy
>Assignee: Alex Rudyy
>Priority: Critical
> Fix For: qpid-java-broker-7.1.0, qpid-java-broker-7.0.5
>
>
> Maximum message size check needs to be improved



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Commented] (QPID-8204) [Broker-J] Add statistics to report the maximum size of incoming messages

2018-06-06 Thread Keith Wall (JIRA)


[ 
https://issues.apache.org/jira/browse/QPID-8204?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16503478#comment-16503478
 ] 

Keith Wall commented on QPID-8204:
--

I am curious to understand the use-case for these new statistics.  What problem 
is being solved?   Separately, I remember we already had an established naming 
convention for these types of values: {{HighWatermark}}

> [Broker-J] Add statistics to report the maximum size of incoming messages
> -
>
> Key: QPID-8204
> URL: https://issues.apache.org/jira/browse/QPID-8204
> Project: Qpid
>  Issue Type: Improvement
>  Components: Broker-J
>Reporter: Alex Rudyy
>Assignee: Alex Rudyy
>Priority: Major
> Fix For: qpid-java-broker-7.1.0, qpid-java-broker-7.0.5
>
>
> Add statistics to report the maximum size of incoming messages on Broker and 
> Virtual Hosts. Add a switch to enable/disable collection of statistics for 
> message maximum size . By default, collection of maximum size statistics 
> should be disabled



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Updated] (QPID-8201) [Broker-J] [AMQP1.0] Queue backing temporary subscription deleted twice during link close

2018-06-05 Thread Keith Wall (JIRA)


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

Keith Wall updated QPID-8201:
-
Description: 
Running the following code using the Qpid JMS Client (I am using master) that 
creates a temporary topic subscription and then immediately closes the 
consumer, exposes a defect in the Broker-J.   Internally Broker-J is cleaning 
up the queue backing the temporary subscription twice.  The second attempt 
fails, which causes the detach performative to carry a spurious {{error 
amqp:not-found.}}

 The Qpid JMS Client appears to ignore the error, so there may not be an impact 
to applications using this client.  I have not checked other AMQP 1.0 clients.

 
{code:java}
Context context = new InitialContext();

ConnectionFactory factory = (ConnectionFactory) 
context.lookup("myFactoryLookup");
Destination topic = (Destination) context.lookup("myTopicLookup");

Connection connection = factory.createConnection(System.getProperty("USER"), 
System.getProperty("PASSWORD"));

Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

MessageConsumer messageConsumer = session.createConsumer(topic);
messageConsumer.close();{code}
 
{noformat}
[154612396:0] -> Open{ containerId='ID:29fbab21-96a9-45a9-ba6d-05b1744b9ce3:1', 
hostname='localhost', maxFrameSize=1048576, channelMax=32767, 
idleTimeOut=3, outgoingLocales=null, incomingLocales=null, 
offeredCapabilities=null, desiredCapabilities=[sole-connection-for-container, 
DELAYED_DELIVERY, ANONYMOUS-RELAY, SHARED-SUBS], properties={product=QpidJMS, 
version=0.33.0-SNAPSHOT, platform=JVM: 1.8.0_171, 25.171-b10, Oracle 
Corporation, OS: Linux, 4.16.8-300.fc28.x86_64, amd64}}
[154612396:0] <- Open{ containerId='a73d8803-f5bd-46c8-90d3-b3ae6754e681', 
hostname='null', maxFrameSize=262144, channelMax=255, idleTimeOut=0, 
outgoingLocales=null, incomingLocales=null, 
offeredCapabilities=[ANONYMOUS-RELAY, SHARED-SUBS, 
sole-connection-for-container], desiredCapabilities=null, 
properties={product=qpid, version=7.1.0-SNAPSHOT, qpid.build=, 
qpid.instance_name=Broker, qpid.virtualhost_properties_supported=true, 
sole-connection-detection-policy=0}}
[154612396:0] -> Begin{remoteChannel=null, nextOutgoingId=1, 
incomingWindow=2047, outgoingWindow=2147483647, handleMax=65535, 
offeredCapabilities=null, desiredCapabilities=null, properties=null}
[154612396:0] <- Begin{remoteChannel=0, nextOutgoingId=0, incomingWindow=8192, 
outgoingWindow=2048, handleMax=4294967295, offeredCapabilities=null, 
desiredCapabilities=null, properties=null}
[154612396:1] -> Begin{remoteChannel=null, nextOutgoingId=1, 
incomingWindow=2047, outgoingWindow=2147483647, handleMax=65535, 
offeredCapabilities=null, desiredCapabilities=null, properties=null}
[154612396:1] <- Begin{remoteChannel=1, nextOutgoingId=0, incomingWindow=8192, 
outgoingWindow=2048, handleMax=4294967295, offeredCapabilities=null, 
desiredCapabilities=null, properties=null}
[154612396:1] -> 
Attach{name='qpid-jms:receiver:ID:1537beab-fd64-4d97-ae27-3b888ee072a6:1:1:1:foo',
 handle=0, role=RECEIVER, sndSettleMode=UNSETTLED, rcvSettleMode=FIRST, 
source=Source{address='foo', durable=NONE, expiryPolicy=LINK_DETACH, timeout=0, 
dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter=null, 
defaultOutcome=Modified{deliveryFailed=true, undeliverableHere=null, 
messageAnnotations=null}, outcomes=[amqp:accepted:list, amqp:rejected:list, 
amqp:released:list, amqp:modified:list], capabilities=[topic]}, 
target=Target{address='null', durable=NONE, expiryPolicy=SESSION_END, 
timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}, 
unsettled=null, incompleteUnsettled=false, initialDeliveryCount=null, 
maxMessageSize=null, offeredCapabilities=null, desiredCapabilities=null, 
properties=null}
[154612396:1] <- 
Attach{name='qpid-jms:receiver:ID:1537beab-fd64-4d97-ae27-3b888ee072a6:1:1:1:foo',
 handle=0, role=SENDER, sndSettleMode=UNSETTLED, rcvSettleMode=FIRST, 
source=Source{address='foo', durable=NONE, expiryPolicy=LINK_DETACH, timeout=0, 
dynamic=false, dynamicNodeProperties=null, distributionMode=copy, filter=null, 
defaultOutcome=Modified{deliveryFailed=true, undeliverableHere=null, 
messageAnnotations=null}, outcomes=[amqp:accepted:list, amqp:released:list, 
amqp:rejected:list], capabilities=[topic]}, target=Target{address='null', 
durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, 
dynamicNodeProperties=null, capabilities=null}, unsettled={}, 
incompleteUnsettled=false, initialDeliveryCount=0, maxMessageSize=null, 
offeredCapabilities=[SHARED-SUBS], desiredCapabilities=null, properties={}}
[154612396:1] -> Flow{nextIncomingId=0, incomingWindow=2047, nextOutgoingId=1, 
outgoingWindow=2147483647, handle=0, deliveryCount=0, linkCredit=1000, 
available=null, drain=false, echo=false, properties=null}
[154612396:1] -> Detach{handle=0, closed=true, error=null}
[154612396:1] <- 

[jira] [Updated] (QPID-8201) [Broker-J] [AMQP1.0] Queue backing temporary subscription deleted twice during link close

2018-06-05 Thread Keith Wall (JIRA)


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

Keith Wall updated QPID-8201:
-
Affects Version/s: qpid-java-broker-7.0.4

> [Broker-J] [AMQP1.0] Queue backing temporary subscription deleted twice 
> during link close
> -
>
> Key: QPID-8201
> URL: https://issues.apache.org/jira/browse/QPID-8201
> Project: Qpid
>  Issue Type: Bug
>  Components: Broker-J
>Affects Versions: qpid-java-broker-7.0.4
>Reporter: Keith Wall
>Priority: Major
>
> Running the following code using the Qpid JMS Client (I am using master) that 
> creates a temporary topic subscription, exposes a defect in the Broker-J.   
> Internally Broker-J is cleaning up the queue backing the temporary 
> subscription twice.  The second attempt fails, which causes the detach 
> performative to carry a spurious {{error amqp:not-found.}}
>  The Qpid JMS Client appears to ignore the error, so there may not be an 
> impact to applications using this client.  I have not checked other AMQP 1.0 
> clients.
>  
> {code:java}
> Context context = new InitialContext();
> ConnectionFactory factory = (ConnectionFactory) 
> context.lookup("myFactoryLookup");
> Destination topic = (Destination) context.lookup("myTopicLookup");
> Connection connection = factory.createConnection(System.getProperty("USER"), 
> System.getProperty("PASSWORD"));
> Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
> MessageConsumer messageConsumer = session.createConsumer(topic);
> messageConsumer.close();{code}
>  
> {noformat}
> [154612396:0] -> Open{ 
> containerId='ID:29fbab21-96a9-45a9-ba6d-05b1744b9ce3:1', 
> hostname='localhost', maxFrameSize=1048576, channelMax=32767, 
> idleTimeOut=3, outgoingLocales=null, incomingLocales=null, 
> offeredCapabilities=null, desiredCapabilities=[sole-connection-for-container, 
> DELAYED_DELIVERY, ANONYMOUS-RELAY, SHARED-SUBS], properties={product=QpidJMS, 
> version=0.33.0-SNAPSHOT, platform=JVM: 1.8.0_171, 25.171-b10, Oracle 
> Corporation, OS: Linux, 4.16.8-300.fc28.x86_64, amd64}}
> [154612396:0] <- Open{ containerId='a73d8803-f5bd-46c8-90d3-b3ae6754e681', 
> hostname='null', maxFrameSize=262144, channelMax=255, idleTimeOut=0, 
> outgoingLocales=null, incomingLocales=null, 
> offeredCapabilities=[ANONYMOUS-RELAY, SHARED-SUBS, 
> sole-connection-for-container], desiredCapabilities=null, 
> properties={product=qpid, version=7.1.0-SNAPSHOT, qpid.build=, 
> qpid.instance_name=Broker, qpid.virtualhost_properties_supported=true, 
> sole-connection-detection-policy=0}}
> [154612396:0] -> Begin{remoteChannel=null, nextOutgoingId=1, 
> incomingWindow=2047, outgoingWindow=2147483647, handleMax=65535, 
> offeredCapabilities=null, desiredCapabilities=null, properties=null}
> [154612396:0] <- Begin{remoteChannel=0, nextOutgoingId=0, 
> incomingWindow=8192, outgoingWindow=2048, handleMax=4294967295, 
> offeredCapabilities=null, desiredCapabilities=null, properties=null}
> [154612396:1] -> Begin{remoteChannel=null, nextOutgoingId=1, 
> incomingWindow=2047, outgoingWindow=2147483647, handleMax=65535, 
> offeredCapabilities=null, desiredCapabilities=null, properties=null}
> [154612396:1] <- Begin{remoteChannel=1, nextOutgoingId=0, 
> incomingWindow=8192, outgoingWindow=2048, handleMax=4294967295, 
> offeredCapabilities=null, desiredCapabilities=null, properties=null}
> [154612396:1] -> 
> Attach{name='qpid-jms:receiver:ID:1537beab-fd64-4d97-ae27-3b888ee072a6:1:1:1:foo',
>  handle=0, role=RECEIVER, sndSettleMode=UNSETTLED, rcvSettleMode=FIRST, 
> source=Source{address='foo', durable=NONE, expiryPolicy=LINK_DETACH, 
> timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, 
> filter=null, defaultOutcome=Modified{deliveryFailed=true, 
> undeliverableHere=null, messageAnnotations=null}, 
> outcomes=[amqp:accepted:list, amqp:rejected:list, amqp:released:list, 
> amqp:modified:list], capabilities=[topic]}, target=Target{address='null', 
> durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, 
> dynamicNodeProperties=null, capabilities=null}, unsettled=null, 
> incompleteUnsettled=false, initialDeliveryCount=null, maxMessageSize=null, 
> offeredCapabilities=null, desiredCapabilities=null, properties=null}
> [154612396:1] <- 
> Attach{name='qpid-jms:receiver:ID:1537beab-fd64-4d97-ae27-3b888ee072a6:1:1:1:foo',
>  handle=0, role=SENDER, sndSettleMode=UNSETTLED, rcvSettleMode=FIRST, 
> source=Source{address='foo', durable=NONE, expiryPolicy=LINK_DETACH, 
> timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=copy, 
> filter=null, defaultOutcome=Modified{deliveryFailed=true, 
> undeliverableHere=null, messageAnnotations=null}, 
> outcomes=[amqp:accepted:list, amqp:released:list, amqp:rejected:list], 
> 

[jira] [Updated] (QPID-8201) [Broker-J] Queue backing temporary subscription deleted twice during link close

2018-06-05 Thread Keith Wall (JIRA)


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

Keith Wall updated QPID-8201:
-
Description: 
Running the following code using the Qpid JMS Client (I am using master) that 
creates a temporary topic subscription, exposes a defect in the Broker-J.   
Internally Broker-J is cleaning up the queue backing the temporary subscription 
twice.  The second attempt fails, which causes the detach performative to carry 
a spurious {{error amqp:not-found.}}

 The Qpid JMS Client appears to ignore the error, so there may not be an impact 
to applications using this client.  I have not checked other AMQP 1.0 clients.

 
{code:java}
Context context = new InitialContext();

ConnectionFactory factory = (ConnectionFactory) 
context.lookup("myFactoryLookup");
Destination topic = (Destination) context.lookup("myTopicLookup");

Connection connection = factory.createConnection(System.getProperty("USER"), 
System.getProperty("PASSWORD"));

Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

MessageConsumer messageConsumer = session.createConsumer(topic);
messageConsumer.close();{code}
 
{noformat}
[154612396:0] -> Open{ containerId='ID:29fbab21-96a9-45a9-ba6d-05b1744b9ce3:1', 
hostname='localhost', maxFrameSize=1048576, channelMax=32767, 
idleTimeOut=3, outgoingLocales=null, incomingLocales=null, 
offeredCapabilities=null, desiredCapabilities=[sole-connection-for-container, 
DELAYED_DELIVERY, ANONYMOUS-RELAY, SHARED-SUBS], properties={product=QpidJMS, 
version=0.33.0-SNAPSHOT, platform=JVM: 1.8.0_171, 25.171-b10, Oracle 
Corporation, OS: Linux, 4.16.8-300.fc28.x86_64, amd64}}
[154612396:0] <- Open{ containerId='a73d8803-f5bd-46c8-90d3-b3ae6754e681', 
hostname='null', maxFrameSize=262144, channelMax=255, idleTimeOut=0, 
outgoingLocales=null, incomingLocales=null, 
offeredCapabilities=[ANONYMOUS-RELAY, SHARED-SUBS, 
sole-connection-for-container], desiredCapabilities=null, 
properties={product=qpid, version=7.1.0-SNAPSHOT, qpid.build=, 
qpid.instance_name=Broker, qpid.virtualhost_properties_supported=true, 
sole-connection-detection-policy=0}}
[154612396:0] -> Begin{remoteChannel=null, nextOutgoingId=1, 
incomingWindow=2047, outgoingWindow=2147483647, handleMax=65535, 
offeredCapabilities=null, desiredCapabilities=null, properties=null}
[154612396:0] <- Begin{remoteChannel=0, nextOutgoingId=0, incomingWindow=8192, 
outgoingWindow=2048, handleMax=4294967295, offeredCapabilities=null, 
desiredCapabilities=null, properties=null}
[154612396:1] -> Begin{remoteChannel=null, nextOutgoingId=1, 
incomingWindow=2047, outgoingWindow=2147483647, handleMax=65535, 
offeredCapabilities=null, desiredCapabilities=null, properties=null}
[154612396:1] <- Begin{remoteChannel=1, nextOutgoingId=0, incomingWindow=8192, 
outgoingWindow=2048, handleMax=4294967295, offeredCapabilities=null, 
desiredCapabilities=null, properties=null}
[154612396:1] -> 
Attach{name='qpid-jms:receiver:ID:1537beab-fd64-4d97-ae27-3b888ee072a6:1:1:1:foo',
 handle=0, role=RECEIVER, sndSettleMode=UNSETTLED, rcvSettleMode=FIRST, 
source=Source{address='foo', durable=NONE, expiryPolicy=LINK_DETACH, timeout=0, 
dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter=null, 
defaultOutcome=Modified{deliveryFailed=true, undeliverableHere=null, 
messageAnnotations=null}, outcomes=[amqp:accepted:list, amqp:rejected:list, 
amqp:released:list, amqp:modified:list], capabilities=[topic]}, 
target=Target{address='null', durable=NONE, expiryPolicy=SESSION_END, 
timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}, 
unsettled=null, incompleteUnsettled=false, initialDeliveryCount=null, 
maxMessageSize=null, offeredCapabilities=null, desiredCapabilities=null, 
properties=null}
[154612396:1] <- 
Attach{name='qpid-jms:receiver:ID:1537beab-fd64-4d97-ae27-3b888ee072a6:1:1:1:foo',
 handle=0, role=SENDER, sndSettleMode=UNSETTLED, rcvSettleMode=FIRST, 
source=Source{address='foo', durable=NONE, expiryPolicy=LINK_DETACH, timeout=0, 
dynamic=false, dynamicNodeProperties=null, distributionMode=copy, filter=null, 
defaultOutcome=Modified{deliveryFailed=true, undeliverableHere=null, 
messageAnnotations=null}, outcomes=[amqp:accepted:list, amqp:released:list, 
amqp:rejected:list], capabilities=[topic]}, target=Target{address='null', 
durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, 
dynamicNodeProperties=null, capabilities=null}, unsettled={}, 
incompleteUnsettled=false, initialDeliveryCount=0, maxMessageSize=null, 
offeredCapabilities=[SHARED-SUBS], desiredCapabilities=null, properties={}}
[154612396:1] -> Flow{nextIncomingId=0, incomingWindow=2047, nextOutgoingId=1, 
outgoingWindow=2147483647, handle=0, deliveryCount=0, linkCredit=1000, 
available=null, drain=false, echo=false, properties=null}
[154612396:1] -> Detach{handle=0, closed=true, error=null}
[154612396:1] <- Detach{handle=0, closed=true, 

[jira] [Updated] (QPID-8201) [Broker-J] [AMQP1.0] Queue backing temporary subscription deleted twice during link close

2018-06-05 Thread Keith Wall (JIRA)


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

Keith Wall updated QPID-8201:
-
Summary: [Broker-J] [AMQP1.0] Queue backing temporary subscription deleted 
twice during link close  (was: [Broker-J] Queue backing temporary subscription 
deleted twice during link close)

> [Broker-J] [AMQP1.0] Queue backing temporary subscription deleted twice 
> during link close
> -
>
> Key: QPID-8201
> URL: https://issues.apache.org/jira/browse/QPID-8201
> Project: Qpid
>  Issue Type: Bug
>  Components: Broker-J
>Reporter: Keith Wall
>Priority: Major
>
> Running the following code using the Qpid JMS Client (I am using master) that 
> creates a temporary topic subscription, exposes a defect in the Broker-J.   
> Internally Broker-J is cleaning up the queue backing the temporary 
> subscription twice.  The second attempt fails, which causes the detach 
> performative to carry a spurious {{error amqp:not-found.}}
>  The Qpid JMS Client appears to ignore the error, so there may not be an 
> impact to applications using this client.  I have not checked other AMQP 1.0 
> clients.
>  
> {code:java}
> Context context = new InitialContext();
> ConnectionFactory factory = (ConnectionFactory) 
> context.lookup("myFactoryLookup");
> Destination topic = (Destination) context.lookup("myTopicLookup");
> Connection connection = factory.createConnection(System.getProperty("USER"), 
> System.getProperty("PASSWORD"));
> Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
> MessageConsumer messageConsumer = session.createConsumer(topic);
> messageConsumer.close();{code}
>  
> {noformat}
> [154612396:0] -> Open{ 
> containerId='ID:29fbab21-96a9-45a9-ba6d-05b1744b9ce3:1', 
> hostname='localhost', maxFrameSize=1048576, channelMax=32767, 
> idleTimeOut=3, outgoingLocales=null, incomingLocales=null, 
> offeredCapabilities=null, desiredCapabilities=[sole-connection-for-container, 
> DELAYED_DELIVERY, ANONYMOUS-RELAY, SHARED-SUBS], properties={product=QpidJMS, 
> version=0.33.0-SNAPSHOT, platform=JVM: 1.8.0_171, 25.171-b10, Oracle 
> Corporation, OS: Linux, 4.16.8-300.fc28.x86_64, amd64}}
> [154612396:0] <- Open{ containerId='a73d8803-f5bd-46c8-90d3-b3ae6754e681', 
> hostname='null', maxFrameSize=262144, channelMax=255, idleTimeOut=0, 
> outgoingLocales=null, incomingLocales=null, 
> offeredCapabilities=[ANONYMOUS-RELAY, SHARED-SUBS, 
> sole-connection-for-container], desiredCapabilities=null, 
> properties={product=qpid, version=7.1.0-SNAPSHOT, qpid.build=, 
> qpid.instance_name=Broker, qpid.virtualhost_properties_supported=true, 
> sole-connection-detection-policy=0}}
> [154612396:0] -> Begin{remoteChannel=null, nextOutgoingId=1, 
> incomingWindow=2047, outgoingWindow=2147483647, handleMax=65535, 
> offeredCapabilities=null, desiredCapabilities=null, properties=null}
> [154612396:0] <- Begin{remoteChannel=0, nextOutgoingId=0, 
> incomingWindow=8192, outgoingWindow=2048, handleMax=4294967295, 
> offeredCapabilities=null, desiredCapabilities=null, properties=null}
> [154612396:1] -> Begin{remoteChannel=null, nextOutgoingId=1, 
> incomingWindow=2047, outgoingWindow=2147483647, handleMax=65535, 
> offeredCapabilities=null, desiredCapabilities=null, properties=null}
> [154612396:1] <- Begin{remoteChannel=1, nextOutgoingId=0, 
> incomingWindow=8192, outgoingWindow=2048, handleMax=4294967295, 
> offeredCapabilities=null, desiredCapabilities=null, properties=null}
> [154612396:1] -> 
> Attach{name='qpid-jms:receiver:ID:1537beab-fd64-4d97-ae27-3b888ee072a6:1:1:1:foo',
>  handle=0, role=RECEIVER, sndSettleMode=UNSETTLED, rcvSettleMode=FIRST, 
> source=Source{address='foo', durable=NONE, expiryPolicy=LINK_DETACH, 
> timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, 
> filter=null, defaultOutcome=Modified{deliveryFailed=true, 
> undeliverableHere=null, messageAnnotations=null}, 
> outcomes=[amqp:accepted:list, amqp:rejected:list, amqp:released:list, 
> amqp:modified:list], capabilities=[topic]}, target=Target{address='null', 
> durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, 
> dynamicNodeProperties=null, capabilities=null}, unsettled=null, 
> incompleteUnsettled=false, initialDeliveryCount=null, maxMessageSize=null, 
> offeredCapabilities=null, desiredCapabilities=null, properties=null}
> [154612396:1] <- 
> Attach{name='qpid-jms:receiver:ID:1537beab-fd64-4d97-ae27-3b888ee072a6:1:1:1:foo',
>  handle=0, role=SENDER, sndSettleMode=UNSETTLED, rcvSettleMode=FIRST, 
> source=Source{address='foo', durable=NONE, expiryPolicy=LINK_DETACH, 
> timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=copy, 
> filter=null, defaultOutcome=Modified{deliveryFailed=true, 
> undeliverableHere=null, 

[jira] [Created] (QPID-8201) [Broker-J] Queue backing temporary subscription deleted twice during link close

2018-06-05 Thread Keith Wall (JIRA)
Keith Wall created QPID-8201:


 Summary: [Broker-J] Queue backing temporary subscription deleted 
twice during link close
 Key: QPID-8201
 URL: https://issues.apache.org/jira/browse/QPID-8201
 Project: Qpid
  Issue Type: Bug
  Components: Broker-J
Reporter: Keith Wall


Running the following code using the Qpid JMS Client (I am using master) that 
creates a temporary topic subscription, exposes a defect in the Broker-J.   
Internally Broker-J is cleaning up the queue backing the temporary subscription 
twice.  The second attempt fails, which causes the detach performative to carry 
a spurious {{error amqp:not-found}}

 
{code:java}
Context context = new InitialContext();

ConnectionFactory factory = (ConnectionFactory) 
context.lookup("myFactoryLookup");
Destination topic = (Destination) context.lookup("myTopicLookup");

Connection connection = factory.createConnection(System.getProperty("USER"), 
System.getProperty("PASSWORD"));

Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

MessageConsumer messageConsumer = session.createConsumer(topic);
messageConsumer.close();{code}
 
{noformat}
[154612396:0] -> Open{ containerId='ID:29fbab21-96a9-45a9-ba6d-05b1744b9ce3:1', 
hostname='localhost', maxFrameSize=1048576, channelMax=32767, 
idleTimeOut=3, outgoingLocales=null, incomingLocales=null, 
offeredCapabilities=null, desiredCapabilities=[sole-connection-for-container, 
DELAYED_DELIVERY, ANONYMOUS-RELAY, SHARED-SUBS], properties={product=QpidJMS, 
version=0.33.0-SNAPSHOT, platform=JVM: 1.8.0_171, 25.171-b10, Oracle 
Corporation, OS: Linux, 4.16.8-300.fc28.x86_64, amd64}}
[154612396:0] <- Open{ containerId='a73d8803-f5bd-46c8-90d3-b3ae6754e681', 
hostname='null', maxFrameSize=262144, channelMax=255, idleTimeOut=0, 
outgoingLocales=null, incomingLocales=null, 
offeredCapabilities=[ANONYMOUS-RELAY, SHARED-SUBS, 
sole-connection-for-container], desiredCapabilities=null, 
properties={product=qpid, version=7.1.0-SNAPSHOT, qpid.build=, 
qpid.instance_name=Broker, qpid.virtualhost_properties_supported=true, 
sole-connection-detection-policy=0}}
[154612396:0] -> Begin{remoteChannel=null, nextOutgoingId=1, 
incomingWindow=2047, outgoingWindow=2147483647, handleMax=65535, 
offeredCapabilities=null, desiredCapabilities=null, properties=null}
[154612396:0] <- Begin{remoteChannel=0, nextOutgoingId=0, incomingWindow=8192, 
outgoingWindow=2048, handleMax=4294967295, offeredCapabilities=null, 
desiredCapabilities=null, properties=null}
[154612396:1] -> Begin{remoteChannel=null, nextOutgoingId=1, 
incomingWindow=2047, outgoingWindow=2147483647, handleMax=65535, 
offeredCapabilities=null, desiredCapabilities=null, properties=null}
[154612396:1] <- Begin{remoteChannel=1, nextOutgoingId=0, incomingWindow=8192, 
outgoingWindow=2048, handleMax=4294967295, offeredCapabilities=null, 
desiredCapabilities=null, properties=null}
[154612396:1] -> 
Attach{name='qpid-jms:receiver:ID:1537beab-fd64-4d97-ae27-3b888ee072a6:1:1:1:foo',
 handle=0, role=RECEIVER, sndSettleMode=UNSETTLED, rcvSettleMode=FIRST, 
source=Source{address='foo', durable=NONE, expiryPolicy=LINK_DETACH, timeout=0, 
dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter=null, 
defaultOutcome=Modified{deliveryFailed=true, undeliverableHere=null, 
messageAnnotations=null}, outcomes=[amqp:accepted:list, amqp:rejected:list, 
amqp:released:list, amqp:modified:list], capabilities=[topic]}, 
target=Target{address='null', durable=NONE, expiryPolicy=SESSION_END, 
timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}, 
unsettled=null, incompleteUnsettled=false, initialDeliveryCount=null, 
maxMessageSize=null, offeredCapabilities=null, desiredCapabilities=null, 
properties=null}
[154612396:1] <- 
Attach{name='qpid-jms:receiver:ID:1537beab-fd64-4d97-ae27-3b888ee072a6:1:1:1:foo',
 handle=0, role=SENDER, sndSettleMode=UNSETTLED, rcvSettleMode=FIRST, 
source=Source{address='foo', durable=NONE, expiryPolicy=LINK_DETACH, timeout=0, 
dynamic=false, dynamicNodeProperties=null, distributionMode=copy, filter=null, 
defaultOutcome=Modified{deliveryFailed=true, undeliverableHere=null, 
messageAnnotations=null}, outcomes=[amqp:accepted:list, amqp:released:list, 
amqp:rejected:list], capabilities=[topic]}, target=Target{address='null', 
durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, 
dynamicNodeProperties=null, capabilities=null}, unsettled={}, 
incompleteUnsettled=false, initialDeliveryCount=0, maxMessageSize=null, 
offeredCapabilities=[SHARED-SUBS], desiredCapabilities=null, properties={}}
[154612396:1] -> Flow{nextIncomingId=0, incomingWindow=2047, nextOutgoingId=1, 
outgoingWindow=2147483647, handle=0, deliveryCount=0, linkCredit=1000, 
available=null, drain=false, echo=false, properties=null}
[154612396:1] -> Detach{handle=0, closed=true, error=null}
[154612396:1] <- Detach{handle=0, 

[jira] [Created] (DISPATCH-1020) Detach expiring links with closed=true when peer connectivity lost

2018-05-30 Thread Keith Wall (JIRA)
Keith Wall created DISPATCH-1020:


 Summary: Detach expiring links with closed=true when peer 
connectivity lost
 Key: DISPATCH-1020
 URL: https://issues.apache.org/jira/browse/DISPATCH-1020
 Project: Qpid Dispatch
  Issue Type: Improvement
Reporter: Keith Wall


Currently, Dispatch responds to the loss of an underlying connection to a peer 
by detaching the links established over that connection in the following way.

{noformat}
@detach(22) [handle=0, closed=false, error=@error(29) 
[condition=:"qd:routed-link-lost", description="Connectivity to the peer 
container was lost”]]
{noformat}

As is makes no sense for link defined to expire to attached again, it would be 
an improvement to the dispatch's behaviour if those links were detached with 
{{closed=true}}.  This would aid the timely clean-up of resources elsewhere in 
the AMQP network.





--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Commented] (QPID-8139) [Broker-J] [AMQP1-0] [JMSBINDMAP] JMS selectors using JMSMessageID or JMSCorrelationID expressed using the AMQP type encoded form values fail to select target message

2018-05-27 Thread Keith Wall (JIRA)

[ 
https://issues.apache.org/jira/browse/QPID-8139?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16492167#comment-16492167
 ] 

Keith Wall commented on QPID-8139:
--

I don't think the commit at {{f1ce866}} solves the problem.   It has the 0-10 
and 0-9 AMQMessageHeader implementations returning stringified messages ids 
(i..e. MessageTransferHeader#getMessageId and getCorrelationId return Strings 
rather than Objects), which will mean an AMQP 1.0 consumer selecting an AMQP 
0-10 or 0-9 message with an messageId/correlationId predicate won't work. 
I'll put an alternative together to illustrate my idea.  I think  {{f1ce866}} 
should be reverted.

> [Broker-J] [AMQP1-0] [JMSBINDMAP]  JMS selectors using JMSMessageID or 
> JMSCorrelationID expressed using the AMQP type encoded form values fail to 
> select target message
> ---
>
> Key: QPID-8139
> URL: https://issues.apache.org/jira/browse/QPID-8139
> Project: Qpid
>  Issue Type: Bug
>  Components: Broker-J
>Affects Versions: qpid-java-broker-7.0.2, qpid-java-broker-7.0.0
>Reporter: Alex Rudyy
>Assignee: Alex Rudyy
>Priority: Major
> Fix For: qpid-java-broker-7.1.0
>
> Attachments: 
> 0001-QPID-8139-Broker-J-AMQP-1.0-Make-sure-that-selector-.patch
>
>
> When using the Qpid JMS AMQP 1.0 Client with Broker-J, if the consumer 
> specifies a JMS message selectors including a {{JMSMessageID}} or 
> {{JMSCorrelationID}} predicate, the selector can fail to find the target 
> message in some circumstances.  This occurs when the message producer is 
> configured to use one of the following {{jms.messageIDPolicy.messageIDType}} 
> modes: {{UUID}}. {{UUID_STRING}}, {{PREFIXED_UUID_STRING}}.   In the default 
> mode, {{BUILTIN}} the problem does not manifest.
> The issue is the Broker-J JMS selector implementation does not understand the 
> AMQP type encoded forms specified by 3.2.1.1 of the Advanced Message Queuing 
> Protocol (AMQP) JMS Mapping Version 1.0 [WD9].
> The problem also manifests when the Broker's message conversion feature is in 
> use.   For instance, a message produced by a AMQP 0-10 producer cannot be 
> selected by an consumer using a Qpid JMS Client 1.0 using a  {{JMSMessageID}} 
> or {{JMSCorrelationID}} predicate.  This was originally highlighted by the 
> following user list post:
> http://qpid.2158936.n2.nabble.com/JMSMessageID-differences-in-JMS-0-30-0-and-JMS-AMQP-0-x-6-3-0-clients-td7674019.html



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Updated] (QPID-8194) [Protocol Tests] [AMQP 1.0] TransferTests seen to fail on Windows

2018-05-23 Thread Keith Wall (JIRA)

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

Keith Wall updated QPID-8194:
-
Status: Reviewable  (was: In Progress)

> [Protocol Tests] [AMQP 1.0] TransferTests seen to fail on Windows
> -
>
> Key: QPID-8194
> URL: https://issues.apache.org/jira/browse/QPID-8194
> Project: Qpid
>  Issue Type: Bug
>  Components: Broker-J
>Reporter: Keith Wall
>Assignee: Keith Wall
>Priority: Major
>
> The following two TransferTests fail consistently on Windows,. 
>  *  TransferTest.receiveMixtureOfTransactionalAndNonTransactionalDeliveries
>  * TransferTest.receiveMultipleDeliveries
> In both cases, the tests fail as the latest delivery is decoded by the test 
> harness.  The tests fail in the same way on Appveyor and virtualised Windows 
> 7 Enterprise.
> This could either be a bug in the test harness or production code, or both.
> [https://ci.appveyor.com/project/ApacheSoftwareFoundation/qpid-broker-j/build/45]
>   
> {noformat}
> org.apache.qpid.server.protocol.v1_0.type.AmqpErrorException: Invalid 
> Message: Expected type "section" but found "UnsignedInteger"
> at 
> org.apache.qpid.server.protocol.v1_0.messaging.SectionDecoderImpl.parseAll(SectionDecoderImpl.java:62)
> at 
> org.apache.qpid.tests.protocol.v1_0.MessageDecoder.parse(MessageDecoder.java:86)
> at 
> org.apache.qpid.tests.protocol.v1_0.MessageDecoder.getData(MessageDecoder.java:171)
> at 
> org.apache.qpid.tests.protocol.v1_0.Interaction.decodeLatestDelivery(Interaction.java:1084)
> at 
> org.apache.qpid.tests.protocol.v1_0.messaging.TransferTest.receiveMixtureOfTransactionalAndNonTransactionalDeliveries(TransferTest.java:1072)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at 
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
> at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
> at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
> at 
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
> at 
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
> at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
> at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
> at org.apache.qpid.tests.utils.QpidTestRunner.runChild(QpidTestRunner.java:84)
> at org.apache.qpid.tests.utils.QpidTestRunner.runChild(QpidTestRunner.java:28)
> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
> at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
> at org.apache.qpid.tests.utils.QpidTestRunner.run(QpidTestRunner.java:59)
> at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
> at 
> com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
> at 
> com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
> at 
> com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
> at 
> com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70){noformat}
>  
>  
>  
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Updated] (QPID-8194) [Protocol Tests] [AMQP 1.0] TransferTests seen to fail on Windows

2018-05-23 Thread Keith Wall (JIRA)

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

Keith Wall updated QPID-8194:
-
Priority: Minor  (was: Major)

> [Protocol Tests] [AMQP 1.0] TransferTests seen to fail on Windows
> -
>
> Key: QPID-8194
> URL: https://issues.apache.org/jira/browse/QPID-8194
> Project: Qpid
>  Issue Type: Bug
>  Components: Broker-J
>Reporter: Keith Wall
>Assignee: Keith Wall
>Priority: Minor
>
> The following two TransferTests fail consistently on Windows,. 
>  *  TransferTest.receiveMixtureOfTransactionalAndNonTransactionalDeliveries
>  * TransferTest.receiveMultipleDeliveries
> In both cases, the tests fail as the latest delivery is decoded by the test 
> harness.  The tests fail in the same way on Appveyor and virtualised Windows 
> 7 Enterprise.
> This could either be a bug in the test harness or production code, or both.
> [https://ci.appveyor.com/project/ApacheSoftwareFoundation/qpid-broker-j/build/45]
>   
> {noformat}
> org.apache.qpid.server.protocol.v1_0.type.AmqpErrorException: Invalid 
> Message: Expected type "section" but found "UnsignedInteger"
> at 
> org.apache.qpid.server.protocol.v1_0.messaging.SectionDecoderImpl.parseAll(SectionDecoderImpl.java:62)
> at 
> org.apache.qpid.tests.protocol.v1_0.MessageDecoder.parse(MessageDecoder.java:86)
> at 
> org.apache.qpid.tests.protocol.v1_0.MessageDecoder.getData(MessageDecoder.java:171)
> at 
> org.apache.qpid.tests.protocol.v1_0.Interaction.decodeLatestDelivery(Interaction.java:1084)
> at 
> org.apache.qpid.tests.protocol.v1_0.messaging.TransferTest.receiveMixtureOfTransactionalAndNonTransactionalDeliveries(TransferTest.java:1072)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at 
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
> at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
> at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
> at 
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
> at 
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
> at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
> at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
> at org.apache.qpid.tests.utils.QpidTestRunner.runChild(QpidTestRunner.java:84)
> at org.apache.qpid.tests.utils.QpidTestRunner.runChild(QpidTestRunner.java:28)
> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
> at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
> at org.apache.qpid.tests.utils.QpidTestRunner.run(QpidTestRunner.java:59)
> at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
> at 
> com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
> at 
> com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
> at 
> com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
> at 
> com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70){noformat}
>  
>  
>  
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Assigned] (QPID-8194) [Protocol Tests] [AMQP 1.0] TransferTests seen to fail on Windows

2018-05-23 Thread Keith Wall (JIRA)

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

Keith Wall reassigned QPID-8194:


Assignee: Keith Wall

> [Protocol Tests] [AMQP 1.0] TransferTests seen to fail on Windows
> -
>
> Key: QPID-8194
> URL: https://issues.apache.org/jira/browse/QPID-8194
> Project: Qpid
>  Issue Type: Bug
>  Components: Broker-J
>Reporter: Keith Wall
>Assignee: Keith Wall
>Priority: Major
>
> The following two TransferTests fail consistently on Windows,. 
>  *  TransferTest.receiveMixtureOfTransactionalAndNonTransactionalDeliveries
>  * TransferTest.receiveMultipleDeliveries
> In both cases, the tests fail as the latest delivery is decoded by the test 
> harness.  The tests fail in the same way on Appveyor and virtualised Windows 
> 7 Enterprise.
> This could either be a bug in the test harness or production code, or both.
> [https://ci.appveyor.com/project/ApacheSoftwareFoundation/qpid-broker-j/build/45]
>   
> {noformat}
> org.apache.qpid.server.protocol.v1_0.type.AmqpErrorException: Invalid 
> Message: Expected type "section" but found "UnsignedInteger"
> at 
> org.apache.qpid.server.protocol.v1_0.messaging.SectionDecoderImpl.parseAll(SectionDecoderImpl.java:62)
> at 
> org.apache.qpid.tests.protocol.v1_0.MessageDecoder.parse(MessageDecoder.java:86)
> at 
> org.apache.qpid.tests.protocol.v1_0.MessageDecoder.getData(MessageDecoder.java:171)
> at 
> org.apache.qpid.tests.protocol.v1_0.Interaction.decodeLatestDelivery(Interaction.java:1084)
> at 
> org.apache.qpid.tests.protocol.v1_0.messaging.TransferTest.receiveMixtureOfTransactionalAndNonTransactionalDeliveries(TransferTest.java:1072)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at 
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
> at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
> at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
> at 
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
> at 
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
> at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
> at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
> at org.apache.qpid.tests.utils.QpidTestRunner.runChild(QpidTestRunner.java:84)
> at org.apache.qpid.tests.utils.QpidTestRunner.runChild(QpidTestRunner.java:28)
> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
> at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
> at org.apache.qpid.tests.utils.QpidTestRunner.run(QpidTestRunner.java:59)
> at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
> at 
> com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
> at 
> com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
> at 
> com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
> at 
> com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70){noformat}
>  
>  
>  
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Resolved] (QPID-8181) [Broker-J] Add statistics for a total number of connections established on AMQP port

2018-05-23 Thread Keith Wall (JIRA)

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

Keith Wall resolved QPID-8181.
--
Resolution: Fixed

> [Broker-J] Add statistics for a total number of connections established on 
> AMQP port
> 
>
> Key: QPID-8181
> URL: https://issues.apache.org/jira/browse/QPID-8181
> Project: Qpid
>  Issue Type: Improvement
>  Components: Broker-J
>Affects Versions: qpid-java-broker-7.1.0, qpid-java-broker-7.0.4
>Reporter: Alex Rudyy
>Assignee: Alex Rudyy
>Priority: Minor
> Fix For: qpid-java-broker-7.1.0, qpid-java-broker-7.0.4
>
>
> A statistics for a current number of connections is available on AMQP port. 
> Introduction of additional statistic for a total number of connections 
> established on AMQP port would allow to detect such use cases as "connection 
> per message anti-pattern" without even looking into Qpid broker logs.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Commented] (QPID-8181) [Broker-J] Add statistics for a total number of connections established on AMQP port

2018-05-23 Thread Keith Wall (JIRA)

[ 
https://issues.apache.org/jira/browse/QPID-8181?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16488068#comment-16488068
 ] 

Keith Wall commented on QPID-8181:
--

Changes look reasonable to me.

> [Broker-J] Add statistics for a total number of connections established on 
> AMQP port
> 
>
> Key: QPID-8181
> URL: https://issues.apache.org/jira/browse/QPID-8181
> Project: Qpid
>  Issue Type: Improvement
>  Components: Broker-J
>Affects Versions: qpid-java-broker-7.1.0, qpid-java-broker-7.0.4
>Reporter: Alex Rudyy
>Assignee: Alex Rudyy
>Priority: Minor
> Fix For: qpid-java-broker-7.1.0, qpid-java-broker-7.0.4
>
>
> A statistics for a current number of connections is available on AMQP port. 
> Introduction of additional statistic for a total number of connections 
> established on AMQP port would allow to detect such use cases as "connection 
> per message anti-pattern" without even looking into Qpid broker logs.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Commented] (QPID-7153) Allow expired messages to be sent to DLQ

2018-05-22 Thread Keith Wall (JIRA)

[ 
https://issues.apache.org/jira/browse/QPID-7153?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16483705#comment-16483705
 ] 

Keith Wall commented on QPID-7153:
--

One comment.  If as a user I want the expired messages that that land on the 
DLQ to live indefinitely, then I would have expected to set the the DLQ's 
{{minimumMessageTtl}} to {{Long.MAX_VALUE}}.   This doesn't work because the 
long arithmetic overflows within {{AbstactQueue#calculateExpiration}} and 
{{wouldExpire}} (which would be better named wouldExpireNow) returns the wrong 
value.   Perhaps {{calculateExpiration}} should use {{Math.addExact}} and clamp 
the value if ArithmeticException occurs. 

Separately, largely note to self, when testing this feature with the Qpid JMS 
Client, one needs to remember to turn off {{jms.localMessageExpiry}} otherwise 
the client expires the message as it is consumed from the DLQ.

> Allow expired messages to be sent to DLQ
> 
>
> Key: QPID-7153
> URL: https://issues.apache.org/jira/browse/QPID-7153
> Project: Qpid
>  Issue Type: Improvement
>  Components: Broker-J
>Reporter: Keith Wall
>Priority: Major
> Attachments: QPID-7153v2.diff
>
>
> Currently the Java Broker simply discards messages that expire (TTL). The 
> behaviour should be configurable and allow for expired messages to be 
> directed to the alternate exchange to allow for dead-lettering.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Updated] (QPID-8194) [Protocol Tests] [AMQP 1.0] TransferTests seens to fail on Windows

2018-05-17 Thread Keith Wall (JIRA)

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

Keith Wall updated QPID-8194:
-
Summary: [Protocol Tests] [AMQP 1.0] TransferTests seens to fail on Windows 
 (was: [Protocol Tests] [AMQP 1.0] TransferTests seems to fail on Windows)

> [Protocol Tests] [AMQP 1.0] TransferTests seens to fail on Windows
> --
>
> Key: QPID-8194
> URL: https://issues.apache.org/jira/browse/QPID-8194
> Project: Qpid
>  Issue Type: Bug
>  Components: Broker-J
>Reporter: Keith Wall
>Priority: Major
>
> The following two TransferTests fail consistently on Windows,. 
>  *  TransferTest.receiveMixtureOfTransactionalAndNonTransactionalDeliveries
>  * TransferTest.receiveMultipleDeliveries
> In both cases, the tests fail as the latest delivery is decoded by the test 
> harness.  The tests fail in the same way on Appveyor and virtualised Windows 
> 7 Enterprise.
> This could either be a bug in the test harness or production code, or both.
> [https://ci.appveyor.com/project/ApacheSoftwareFoundation/qpid-broker-j/build/45]
>   
> {noformat}
> org.apache.qpid.server.protocol.v1_0.type.AmqpErrorException: Invalid 
> Message: Expected type "section" but found "UnsignedInteger"
> at 
> org.apache.qpid.server.protocol.v1_0.messaging.SectionDecoderImpl.parseAll(SectionDecoderImpl.java:62)
> at 
> org.apache.qpid.tests.protocol.v1_0.MessageDecoder.parse(MessageDecoder.java:86)
> at 
> org.apache.qpid.tests.protocol.v1_0.MessageDecoder.getData(MessageDecoder.java:171)
> at 
> org.apache.qpid.tests.protocol.v1_0.Interaction.decodeLatestDelivery(Interaction.java:1084)
> at 
> org.apache.qpid.tests.protocol.v1_0.messaging.TransferTest.receiveMixtureOfTransactionalAndNonTransactionalDeliveries(TransferTest.java:1072)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at 
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
> at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
> at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
> at 
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
> at 
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
> at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
> at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
> at org.apache.qpid.tests.utils.QpidTestRunner.runChild(QpidTestRunner.java:84)
> at org.apache.qpid.tests.utils.QpidTestRunner.runChild(QpidTestRunner.java:28)
> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
> at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
> at org.apache.qpid.tests.utils.QpidTestRunner.run(QpidTestRunner.java:59)
> at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
> at 
> com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
> at 
> com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
> at 
> com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
> at 
> com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70){noformat}
>  
>  
>  
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Updated] (QPID-8194) [Protocol Tests] [AMQP 1.0] TransferTests seen to fail on Windows

2018-05-17 Thread Keith Wall (JIRA)

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

Keith Wall updated QPID-8194:
-
Summary: [Protocol Tests] [AMQP 1.0] TransferTests seen to fail on Windows  
(was: [Protocol Tests] [AMQP 1.0] TransferTests seens to fail on Windows)

> [Protocol Tests] [AMQP 1.0] TransferTests seen to fail on Windows
> -
>
> Key: QPID-8194
> URL: https://issues.apache.org/jira/browse/QPID-8194
> Project: Qpid
>  Issue Type: Bug
>  Components: Broker-J
>Reporter: Keith Wall
>Priority: Major
>
> The following two TransferTests fail consistently on Windows,. 
>  *  TransferTest.receiveMixtureOfTransactionalAndNonTransactionalDeliveries
>  * TransferTest.receiveMultipleDeliveries
> In both cases, the tests fail as the latest delivery is decoded by the test 
> harness.  The tests fail in the same way on Appveyor and virtualised Windows 
> 7 Enterprise.
> This could either be a bug in the test harness or production code, or both.
> [https://ci.appveyor.com/project/ApacheSoftwareFoundation/qpid-broker-j/build/45]
>   
> {noformat}
> org.apache.qpid.server.protocol.v1_0.type.AmqpErrorException: Invalid 
> Message: Expected type "section" but found "UnsignedInteger"
> at 
> org.apache.qpid.server.protocol.v1_0.messaging.SectionDecoderImpl.parseAll(SectionDecoderImpl.java:62)
> at 
> org.apache.qpid.tests.protocol.v1_0.MessageDecoder.parse(MessageDecoder.java:86)
> at 
> org.apache.qpid.tests.protocol.v1_0.MessageDecoder.getData(MessageDecoder.java:171)
> at 
> org.apache.qpid.tests.protocol.v1_0.Interaction.decodeLatestDelivery(Interaction.java:1084)
> at 
> org.apache.qpid.tests.protocol.v1_0.messaging.TransferTest.receiveMixtureOfTransactionalAndNonTransactionalDeliveries(TransferTest.java:1072)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at 
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
> at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
> at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
> at 
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
> at 
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
> at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
> at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
> at org.apache.qpid.tests.utils.QpidTestRunner.runChild(QpidTestRunner.java:84)
> at org.apache.qpid.tests.utils.QpidTestRunner.runChild(QpidTestRunner.java:28)
> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
> at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
> at org.apache.qpid.tests.utils.QpidTestRunner.run(QpidTestRunner.java:59)
> at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
> at 
> com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
> at 
> com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
> at 
> com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
> at 
> com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70){noformat}
>  
>  
>  
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Assigned] (QPID-8195) [Broker-J] Improve AmqpErrorException#toString

2018-05-17 Thread Keith Wall (JIRA)

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

Keith Wall reassigned QPID-8195:


Assignee: Keith Wall

> [Broker-J] Improve AmqpErrorException#toString
> --
>
> Key: QPID-8195
> URL: https://issues.apache.org/jira/browse/QPID-8195
> Project: Qpid
>  Issue Type: Improvement
>  Components: Broker-J
>Reporter: Keith Wall
>Assignee: Keith Wall
>Priority: Minor
> Fix For: qpid-java-broker-7.1.0
>
>
> The {{AmqpErrorException#toString}} does not include the details of the 
> underlying {{Error}} which impedes problem resolution.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



  1   2   3   4   5   6   7   8   9   10   >