[jira] [Created] (DISPATCH-1120) Self tests using deprecated config attributes

2018-09-11 Thread Chuck Rolke (JIRA)
Chuck Rolke created DISPATCH-1120:
-

 Summary: Self tests using deprecated config attributes
 Key: DISPATCH-1120
 URL: https://issues.apache.org/jira/browse/DISPATCH-1120
 Project: Qpid Dispatch
  Issue Type: Bug
Affects Versions: 1.3.0
Reporter: Chuck Rolke
Assignee: Chuck Rolke


Warnings wind up in the ROUTER.out files making the search for true issues 
harder.

{{2018-09-10 17:15:41.871607 -0400 AGENT (warning) Attribute 'verifyHostName' 
of entity 'connector' has been deprecated. Use 'verifyHostname' instead}}



--
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-1119) Assert in qdr_del_link_ref in self test system_tests_multi_tenancy

2018-09-11 Thread Chuck Rolke (JIRA)
Chuck Rolke created DISPATCH-1119:
-

 Summary: Assert in qdr_del_link_ref in self test 
system_tests_multi_tenancy
 Key: DISPATCH-1119
 URL: https://issues.apache.org/jira/browse/DISPATCH-1119
 Project: Qpid Dispatch
  Issue Type: Bug
  Components: Routing Engine
Affects Versions: 1.3.0
Reporter: Chuck Rolke


{{qdrouterd: /home/chug/git/qpid-dispatch/src/router_core/router_core.c:441: 
qdr_del_link_ref: Assertion `(*ref_list).size > 0' failed.}}
{{#0  0x7fe982b26feb in raise () from /lib64/libc.so.6}}
{{#1  0x7fe982b115c1 in abort () from /lib64/libc.so.6}}
{{#2  0x7fe982b11491 in __assert_fail_base.cold.0 () from /lib64/libc.so.6}}
{{#3  0x7fe982b1f752 in __assert_fail () from /lib64/libc.so.6}}
{{#4  0x7fe983de3559 in qdr_del_link_ref (ref_list=0x7fe96403c680, 
link=0x7fe9580c1a60, cls=1) at 
/home/chug/git/qpid-dispatch/src/router_core/router_core.c:441}}
{{#5  0x7fe983dd4b6c in qdr_link_cleanup_CT (core=0x237a6e0, 
conn=0x7fe96403c5e0, link=0x7fe9580c1a60) at 
/home/chug/git/qpid-dispatch/src/router_core/connections.c:856}}
{{#6  0x7fe983dd7b68 in qdr_link_inbound_detach_CT (core=0x237a6e0, 
action=0x237d7a0, discard=false) at 
/home/chug/git/qpid-dispatch/src/router_core/connections.c:1945}}
{{#7  0x7fe983de434d in router_core_thread (arg=0x237a6e0) at 
/home/chug/git/qpid-dispatch/src/router_core/router_core_thread.c:83}}
{{#8  0x7fe983714594 in start_thread () from /lib64/libpthread.so.0}}
{{#9  0x7fe982bea0df in clone () from /lib64/libc.so.6}}

 



--
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-1081) Messages to multicast addresses are being released when no receivers attached

2018-09-11 Thread Ganesh Murthy (JIRA)


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

Ganesh Murthy commented on DISPATCH-1081:
-

This is what the documentation must say -

 

When an unsettled message is sent to a multicast router address which has no 
receivers, the router sends back a disposition of RELEASED

When an unsettled message is sent to a multicast router address which has one 
or more receivers, the router sends back a disposition of SETTLED.

> Messages to multicast addresses are being released when no receivers attached
> -
>
> Key: DISPATCH-1081
> URL: https://issues.apache.org/jira/browse/DISPATCH-1081
> Project: Qpid Dispatch
>  Issue Type: Bug
>Affects Versions: 1.2.0
>Reporter: Alexander Rafferty
>Priority: Major
>
> When sending messages to a multicast address to which no consumers are 
> attached, the router sends back a disposition of RELEASED. The expected 
> behaviour is that all messages will be immediately settled by the ingress 
> router with a disposition of ACCEPTED as per section 2.4.1 of the Dispatch 
> router book:
> {quote}Multicast delivery is not reliable. If a producer sends an unsettled 
> delivery, the ingress router shall settle the delivery with ACCEPTED 
> disposition regardless of whether the message was delivered to any consumers.
> {quote}
> Is this a bug, or is this the expected behaviour? If this is the expected 
> behaviour, can the router be configured to always accept messages to 
> multicast addresses even where no consumers are actively listening?



--
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-1081) Messages to multicast addresses are being released when no receivers attached

2018-09-11 Thread Ganesh Murthy (JIRA)


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

Ganesh Murthy commented on DISPATCH-1081:
-

The problem is with the documentation in this case. Although multicast does not 
make any delivery guarantees, when no receivers are present for a multicasted 
address, releasing the the message actually gives the sender  more information 
than simply accepting the message. If the message is released, the sender knows 
for sure that the message did not get anywhere. I will fix the documentation

> Messages to multicast addresses are being released when no receivers attached
> -
>
> Key: DISPATCH-1081
> URL: https://issues.apache.org/jira/browse/DISPATCH-1081
> Project: Qpid Dispatch
>  Issue Type: Bug
>Affects Versions: 1.2.0
>Reporter: Alexander Rafferty
>Priority: Major
>
> When sending messages to a multicast address to which no consumers are 
> attached, the router sends back a disposition of RELEASED. The expected 
> behaviour is that all messages will be immediately settled by the ingress 
> router with a disposition of ACCEPTED as per section 2.4.1 of the Dispatch 
> router book:
> {quote}Multicast delivery is not reliable. If a producer sends an unsettled 
> delivery, the ingress router shall settle the delivery with ACCEPTED 
> disposition regardless of whether the message was delivered to any consumers.
> {quote}
> Is this a bug, or is this the expected behaviour? If this is the expected 
> behaviour, can the router be configured to always accept messages to 
> multicast addresses even where no consumers are actively listening?



--
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] (DISPATCH-1107) Need info for logs to help disambiguate router connections

2018-09-11 Thread Ganesh Murthy (JIRA)


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

Ganesh Murthy reassigned DISPATCH-1107:
---

Assignee: Chuck Rolke

> Need info for logs to help disambiguate router connections
> --
>
> Key: DISPATCH-1107
> URL: https://issues.apache.org/jira/browse/DISPATCH-1107
> Project: Qpid Dispatch
>  Issue Type: Improvement
>  Components: Router Node
>Affects Versions: 1.3.0
>Reporter: Chuck Rolke
>Assignee: Chuck Rolke
>Priority: Major
> Fix For: 1.4.0
>
>
> When connections are started by routers to other routers there is no reliable 
> way in the log files for telling the connections apart. Consider a pair of 
> routers where router A creates two connections and sends two Opens to router 
> B. A's log will show that connections [5] and [7] sent the Opens and B's log 
> will show that connections [4] and [6] received and replied to the Opens. But 
> there is no way to know if the connection pairs are '[A-5][B-4] and 
> [A-7][B-6]' or '[A-5][B-6] and [A-7][B-4]'.
> A simple solution to expose this relationship is for the routers to embed the 
> _connid_ in the Open properties. Then the connection relationships between 
> the two routers could be resolved from either router log file.



--
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] (DISPATCH-1109) use serving host and port as defaults for connect screen in console served by router

2018-09-11 Thread Ted Ross (JIRA)


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

Ted Ross resolved DISPATCH-1109.

Resolution: Fixed

> use serving host and port as defaults for connect screen in console served by 
> router
> 
>
> Key: DISPATCH-1109
> URL: https://issues.apache.org/jira/browse/DISPATCH-1109
> Project: Qpid Dispatch
>  Issue Type: Improvement
>  Components: Console
>Reporter: Gordon Sim
>Assignee: Ted Ross
>Priority: Major
> Fix For: 1.4.0
>
>
> If you have a router serving up the console, and you have authentication 
> enabled, then when you go to the url to retrieve the console it loads up the 
> connect screen (because it can't connect without username and password). 
> However the connection defaults to localhost:5673. It would be much nicer if 
> it could default to the host/port from which the console was itself loaded.



--
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-1109) use serving host and port as defaults for connect screen in console served by router

2018-09-11 Thread ASF subversion and git services (JIRA)


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

ASF subversion and git services commented on DISPATCH-1109:
---

Commit 379036ee2ef02da40b515372e791df572a490554 in qpid-dispatch's branch 
refs/heads/master from [~tr...@redhat.com]
[ https://git-wip-us.apache.org/repos/asf?p=qpid-dispatch.git;h=379036e ]

DISPATCH-1109 - Use window.location for default values in the connect form.


> use serving host and port as defaults for connect screen in console served by 
> router
> 
>
> Key: DISPATCH-1109
> URL: https://issues.apache.org/jira/browse/DISPATCH-1109
> Project: Qpid Dispatch
>  Issue Type: Improvement
>  Components: Console
>Reporter: Gordon Sim
>Assignee: Ted Ross
>Priority: Major
> Fix For: 1.4.0
>
>
> If you have a router serving up the console, and you have authentication 
> enabled, then when you go to the url to retrieve the console it loads up the 
> connect screen (because it can't connect without username and password). 
> However the connection defaults to localhost:5673. It would be much nicer if 
> it could default to the host/port from which the console was itself loaded.



--
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] (PROTON-1798) Installed example self-tests for proton

2018-09-11 Thread Alan Conway (JIRA)


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

Alan Conway resolved PROTON-1798.
-
Resolution: Fixed

> Installed example self-tests for proton
> ---
>
> Key: PROTON-1798
> URL: https://issues.apache.org/jira/browse/PROTON-1798
> Project: Qpid Proton
>  Issue Type: Test
>Affects Versions: proton-c-0.21.0
>Reporter: Alan Conway
>Assignee: Alan Conway
>Priority: Major
>  Labels: testing
> Fix For: proton-c-0.26.0
>
>
> Install test scripts so that self-tests can be run on an installed package, 
> without access to the source tree. These tests will be a separate install 
> group.
>  
> Initially the tests will consist of automatically building and running 
> installed examples, in future we can add unit tests etc. to the installed set.



--
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-1798) Installable tests for proton

2018-09-11 Thread Alan Conway (JIRA)


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

Alan Conway commented on PROTON-1798:
-

Marking resolved for c, c++ and ruby.

New issues to finish this work for Go and python:  PROTON-1931,  PROTON-1932

> Installable tests for proton
> 
>
> Key: PROTON-1798
> URL: https://issues.apache.org/jira/browse/PROTON-1798
> Project: Qpid Proton
>  Issue Type: Test
>Affects Versions: proton-c-0.21.0
>Reporter: Alan Conway
>Assignee: Alan Conway
>Priority: Major
>  Labels: testing
> Fix For: proton-c-0.26.0
>
>
> Install test scripts so that self-tests can be run on an installed package, 
> without access to the source tree. These tests will be a separate install 
> group.
>  
> Initially the tests will consist of automatically building and running 
> installed examples, in future we can add unit tests etc. to the installed set.



--
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-1798) Installed example self-tests for proton

2018-09-11 Thread Alan Conway (JIRA)


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

Alan Conway updated PROTON-1798:

Summary: Installed example self-tests for proton  (was: Installable tests 
for proton)

> Installed example self-tests for proton
> ---
>
> Key: PROTON-1798
> URL: https://issues.apache.org/jira/browse/PROTON-1798
> Project: Qpid Proton
>  Issue Type: Test
>Affects Versions: proton-c-0.21.0
>Reporter: Alan Conway
>Assignee: Alan Conway
>Priority: Major
>  Labels: testing
> Fix For: proton-c-0.26.0
>
>
> Install test scripts so that self-tests can be run on an installed package, 
> without access to the source tree. These tests will be a separate install 
> group.
>  
> Initially the tests will consist of automatically building and running 
> installed examples, in future we can add unit tests etc. to the installed set.



--
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-1927) Python _reactor.py creates duplicate link names for senders/receivers

2018-09-11 Thread Robbie Gemmell (JIRA)


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

Robbie Gemmell edited comment on PROTON-1927 at 9/11/18 4:20 PM:
-

Ok, so that avoids the issue of creating two different receivers over the wire 
with the same name, but I'd say that is still a bug. If no name was given, and 
one is being generated, I don't think it should be generating the same name and 
returning the same receiver again, but rather a completely different name and 
returning an entirely new receiver.

So to summarise, creating a sender and receiver with the same generated name is 
OK, though it would be nice to generate different ones (in qpid-jms we prefix 
the name with the use, e.g receiver, sender, coordinator). The real bug though 
is in two different calls to create a receiver (or similarly, sender?) 
generating the same name and returning the same receiver.


was (Author: gemmellr):
Ok, so that avoids the issue of creating two different receivers over the wire 
with the same name, but I'd say that is still a bug. If no name was given, and 
one is being generated, I don't think it should be generating the same name and 
returning the same reciever again, but rather a completely different name and 
returning an entirely new receiver.

> Python _reactor.py creates duplicate link names for senders/receivers
> -
>
> Key: PROTON-1927
> URL: https://issues.apache.org/jira/browse/PROTON-1927
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: python-binding
>Affects Versions: proton-c-0.24.0
>Reporter: Chuck Rolke
>Priority: Major
>
> From DISPATCH-1114
> Creating a sender and a receiver in the same container produces duplicate 
> link names. Try python/examples/helloworld.py that executes:
>     event.container.create_receiver(conn, self.address)
>     event.container.create_sender(conn, self.address)
> generates the same link name for each attach:
> (M=a1b7d *1 ?3) chug@ratchet examples> PN_TRACE_FRM=1 ./helloworld.py
> ...
> [0x55a01066d9a0]:0 -> @attach(18) 
> [name="70ceeac8-50d8-4af2-9caf-20ef8700a7d3-examples", handle=0, role=true, 
> snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) [address="examples", 
> durable=0, timeout=0, dynamic=false], target=@target(41) [durable=0, 
> timeout=0, dynamic=false], initial-delivery-count=0, max-message-size=0]
> [0x55a01066d9a0]:0 -> @attach(18) 
> [name="70ceeac8-50d8-4af2-9caf-20ef8700a7d3-examples", handle=1, role=false, 
> snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) [durable=0, 
> timeout=0, dynamic=false], target=@target(41) [address="examples", durable=0, 
> timeout=0, dynamic=false], initial-delivery-count=0, max-message-size=0]



--
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-1927) Python _reactor.py creates duplicate link names for senders/receivers

2018-09-11 Thread Robbie Gemmell (JIRA)


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

Robbie Gemmell commented on PROTON-1927:


Ok, so that avoids the issue of creating two different receivers over the wire 
with the same name, but I'd say that is still a bug. If no name was given, and 
one is being generated, I don't think it should be generating the same name and 
returning the same reciever again, but rather a completely different name and 
returning an entirely new receiver.

> Python _reactor.py creates duplicate link names for senders/receivers
> -
>
> Key: PROTON-1927
> URL: https://issues.apache.org/jira/browse/PROTON-1927
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: python-binding
>Affects Versions: proton-c-0.24.0
>Reporter: Chuck Rolke
>Priority: Major
>
> From DISPATCH-1114
> Creating a sender and a receiver in the same container produces duplicate 
> link names. Try python/examples/helloworld.py that executes:
>     event.container.create_receiver(conn, self.address)
>     event.container.create_sender(conn, self.address)
> generates the same link name for each attach:
> (M=a1b7d *1 ?3) chug@ratchet examples> PN_TRACE_FRM=1 ./helloworld.py
> ...
> [0x55a01066d9a0]:0 -> @attach(18) 
> [name="70ceeac8-50d8-4af2-9caf-20ef8700a7d3-examples", handle=0, role=true, 
> snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) [address="examples", 
> durable=0, timeout=0, dynamic=false], target=@target(41) [durable=0, 
> timeout=0, dynamic=false], initial-delivery-count=0, max-message-size=0]
> [0x55a01066d9a0]:0 -> @attach(18) 
> [name="70ceeac8-50d8-4af2-9caf-20ef8700a7d3-examples", handle=1, role=false, 
> snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) [durable=0, 
> timeout=0, dynamic=false], target=@target(41) [address="examples", durable=0, 
> timeout=0, dynamic=false], initial-delivery-count=0, max-message-size=0]



--
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-1932) [python] installable python test

2018-09-11 Thread Alan Conway (JIRA)
Alan Conway created PROTON-1932:
---

 Summary: [python] installable python test
 Key: PROTON-1932
 URL: https://issues.apache.org/jira/browse/PROTON-1932
 Project: Qpid Proton
  Issue Type: Test
  Components: python-binding
Affects Versions: proton-c-0.25.0
Reporter: Alan Conway


Update python examples for install self-testing in the same way as c, c++ and 
ruby examples were updated by PROTON-1798


 - rename test driver to "testme"
 - servers print actual listening port not command-line port (may be 0)
 - test driver start servers on port 0, pass real port to 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] [Updated] (PROTON-1931) [go] installable go test package, simplified go build & test.

2018-09-11 Thread Alan Conway (JIRA)


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

Alan Conway updated PROTON-1931:

Priority: Minor  (was: Major)

> [go] installable go test package, simplified go build & test.
> -
>
> Key: PROTON-1931
> URL: https://issues.apache.org/jira/browse/PROTON-1931
> Project: Qpid Proton
>  Issue Type: Test
>  Components: go-binding
>Affects Versions: proton-c-0.25.0
>Reporter: Alan Conway
>Assignee: Alan Conway
>Priority: Minor
>
> go testing is currently an awkward mix of Go native build tools and cmake.
>  - make go examples into a standard Go executable package.
>  - testme script will be simply `GOPATH=... go test 
> qpid.apache.org/proton_examples`
>  - make examples available via `go get` and on godoc.org
>  



--
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-1931) [go] installable go test package, simplified go build & test.

2018-09-11 Thread Alan Conway (JIRA)


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

Alan Conway updated PROTON-1931:

Component/s: go-binding

> [go] installable go test package, simplified go build & test.
> -
>
> Key: PROTON-1931
> URL: https://issues.apache.org/jira/browse/PROTON-1931
> Project: Qpid Proton
>  Issue Type: Test
>  Components: go-binding
>Affects Versions: proton-c-0.25.0
>Reporter: Alan Conway
>Assignee: Alan Conway
>Priority: Minor
>
> go testing is currently an awkward mix of Go native build tools and cmake.
>  - make go examples into a standard Go executable package.
>  - testme script will be simply `GOPATH=... go test 
> qpid.apache.org/proton_examples`
>  - make examples available via `go get` and on godoc.org
>  



--
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-1931) [go] installable go test package, simplified go build & test.

2018-09-11 Thread Alan Conway (JIRA)


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

Alan Conway updated PROTON-1931:

Affects Version/s: proton-c-0.25.0

> [go] installable go test package, simplified go build & test.
> -
>
> Key: PROTON-1931
> URL: https://issues.apache.org/jira/browse/PROTON-1931
> Project: Qpid Proton
>  Issue Type: Test
>  Components: go-binding
>Affects Versions: proton-c-0.25.0
>Reporter: Alan Conway
>Assignee: Alan Conway
>Priority: Minor
>
> go testing is currently an awkward mix of Go native build tools and cmake.
>  - make go examples into a standard Go executable package.
>  - testme script will be simply `GOPATH=... go test 
> qpid.apache.org/proton_examples`
>  - make examples available via `go get` and on godoc.org
>  



--
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-1931) [go] installable go test package, simplified go build & test.

2018-09-11 Thread Alan Conway (JIRA)
Alan Conway created PROTON-1931:
---

 Summary: [go] installable go test package, simplified go build & 
test.
 Key: PROTON-1931
 URL: https://issues.apache.org/jira/browse/PROTON-1931
 Project: Qpid Proton
  Issue Type: Test
Reporter: Alan Conway
Assignee: Alan Conway


go testing is currently an awkward mix of Go native build tools and cmake.
 - make go examples into a standard Go executable package.
 - testme script will be simply `GOPATH=... go test 
qpid.apache.org/proton_examples`
 - make examples available via `go get` and on godoc.org

 



--
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-1798) Installable tests for proton

2018-09-11 Thread ASF subversion and git services (JIRA)


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

ASF subversion and git services commented on PROTON-1798:
-

Commit 393f8a67712d126f98b3a87e83fdafab57011239 in qpid-proton's branch 
refs/heads/master from [~aconway]
[ https://git-wip-us.apache.org/repos/asf?p=qpid-proton.git;h=393f8a6 ]

PROTON-1798: [c, cpp, ruby] Installable tests for proton

Tests can be executed from install for c, cpp, ruby.
See tests/share/examples-README.md

RUNTIME_CHECK=memcheck, helgrind are supported for normal builds.
asan, tsan require a special library build so less likely to be useful for 
install tests.

TODO:
- python, go examples
- non-example tests installed under share/pronton-VERSION/tests/


> Installable tests for proton
> 
>
> Key: PROTON-1798
> URL: https://issues.apache.org/jira/browse/PROTON-1798
> Project: Qpid Proton
>  Issue Type: Test
>Affects Versions: proton-c-0.21.0
>Reporter: Alan Conway
>Assignee: Alan Conway
>Priority: Major
>  Labels: testing
> Fix For: proton-c-0.26.0
>
>
> Install test scripts so that self-tests can be run on an installed package, 
> without access to the source tree. These tests will be a separate install 
> group.
>  
> Initially the tests will consist of automatically building and running 
> installed examples, in future we can add unit tests etc. to the installed set.



--
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-1109) use serving host and port as defaults for connect screen in console served by router

2018-09-11 Thread Ted Ross (JIRA)


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

Ted Ross updated DISPATCH-1109:
---
Fix Version/s: 1.4.0

> use serving host and port as defaults for connect screen in console served by 
> router
> 
>
> Key: DISPATCH-1109
> URL: https://issues.apache.org/jira/browse/DISPATCH-1109
> Project: Qpid Dispatch
>  Issue Type: Improvement
>  Components: Console
>Reporter: Gordon Sim
>Assignee: Ted Ross
>Priority: Major
> Fix For: 1.4.0
>
>
> If you have a router serving up the console, and you have authentication 
> enabled, then when you go to the url to retrieve the console it loads up the 
> connect screen (because it can't connect without username and password). 
> However the connection defaults to localhost:5673. It would be much nicer if 
> it could default to the host/port from which the console was itself loaded.



--
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



Speakers needed for Apache DC Roadshow

2018-09-11 Thread Rich Bowen
We need your help to make the Apache Washington DC Roadshow on Dec 4th a 
success.


What do we need most? Speakers!

We're bringing a unique DC flavor to this event by mixing Open Source 
Software with talks about Apache projects as well as OSS CyberSecurity, 
OSS in Government and and OSS Career advice.


Please take a look at: http://www.apachecon.com/usroadshow18/

(Note: You are receiving this message because you are subscribed to one 
or more mailing lists at The Apache Software Foundation.)


Rich, for the ApacheCon Planners

--
rbo...@apache.org
http://apachecon.com
@ApacheCon

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



[jira] [Commented] (PROTON-1927) Python _reactor.py creates duplicate link names for senders/receivers

2018-09-11 Thread Ganesh Murthy (JIRA)


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

Ganesh Murthy commented on PROTON-1927:
---

if you called "create_receiver(conn, self.address)" twice, or 
"create_sender(conn, self.address)" twice, the *second* call will not create a 
new sender or receiver since the previous call already did.

 

For examplke

r1 = .create_receiver(conn, self.address)

r2 = .create_receiver(conn, self.address)

In the above case r1 and r2 are the same.

 

To create two distinct receivers you need to use the *name* parameter

r1 = .create_receiver(conn, self.address, name="r1")

r2 = .create_receiver(conn, self.address, name="r2")

In this case r1 and r2 are two distinct receivers and the link names are 
distinct too.

 

 

 

> Python _reactor.py creates duplicate link names for senders/receivers
> -
>
> Key: PROTON-1927
> URL: https://issues.apache.org/jira/browse/PROTON-1927
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: python-binding
>Affects Versions: proton-c-0.24.0
>Reporter: Chuck Rolke
>Priority: Major
>
> From DISPATCH-1114
> Creating a sender and a receiver in the same container produces duplicate 
> link names. Try python/examples/helloworld.py that executes:
>     event.container.create_receiver(conn, self.address)
>     event.container.create_sender(conn, self.address)
> generates the same link name for each attach:
> (M=a1b7d *1 ?3) chug@ratchet examples> PN_TRACE_FRM=1 ./helloworld.py
> ...
> [0x55a01066d9a0]:0 -> @attach(18) 
> [name="70ceeac8-50d8-4af2-9caf-20ef8700a7d3-examples", handle=0, role=true, 
> snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) [address="examples", 
> durable=0, timeout=0, dynamic=false], target=@target(41) [durable=0, 
> timeout=0, dynamic=false], initial-delivery-count=0, max-message-size=0]
> [0x55a01066d9a0]:0 -> @attach(18) 
> [name="70ceeac8-50d8-4af2-9caf-20ef8700a7d3-examples", handle=1, role=false, 
> snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) [durable=0, 
> timeout=0, dynamic=false], target=@target(41) [address="examples", durable=0, 
> timeout=0, dynamic=false], initial-delivery-count=0, max-message-size=0]



--
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-1544) go lang binding transaction support

2018-09-11 Thread Alan Conway (JIRA)


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

Alan Conway updated PROTON-1544:

Priority: Minor  (was: Major)

> go lang binding transaction support
> ---
>
> Key: PROTON-1544
> URL: https://issues.apache.org/jira/browse/PROTON-1544
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: go-binding
>Reporter: ivy
>Priority: Minor
>
> Does the go lang binding support AMQP transactions,  If it does, is there any 
> documentation on how to use it.  If not are there plans to support it?



--
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-1647) [go] support for crypto.tls connections

2018-09-11 Thread Alan Conway (JIRA)


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

Alan Conway updated PROTON-1647:

Priority: Minor  (was: Major)

> [go] support for crypto.tls connections
> ---
>
> Key: PROTON-1647
> URL: https://issues.apache.org/jira/browse/PROTON-1647
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: go-binding
>Affects Versions: proton-c-0.18.0
>Reporter: Alan Conway
>Assignee: Alan Conway
>Priority: Minor
>  Labels: tls
>
> The electron and proton Go bindings do not expose proton's built-in SSL layer 
> because Go provides it's own TLS layer in the crypto.tls package which is 
> more portable, capable and familiar to Go programmers.
> You can already use a tls.Conn with proton or electron, but there are several 
> points that should be cleaned up:
> - when a TLS connection is in use set allow-insecure-mechs in proton-C 
> automatically
> - make sure the AMQP virtual-host matches the TLS virtual-host by default
> - provide access to the net.Conn used by an electron.Connection, which in 
> turn will give access to TLS details if the user needs them
> - provide an example of using TLS (maybe with SASL PLAIN auth?)



--
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-1898) Memory leak related to sending

2018-09-11 Thread Christoph Scheiber (JIRA)


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

Christoph Scheiber edited comment on PROTON-1898 at 9/11/18 9:51 AM:
-

Meanwhile I was running the application also under linux (ubuntu 18.04), 
unfortunately with the same result. The memory leak can be seen when sending 
and when using AtLeastOnce.

Also I tried use a limited number of message instances only. Each worker (a 
single go routine) in my (daemon-like) application used only one message 
instance to send and was waiting until the message was settled by receiver. 
Then it was sending the next message. I was running 10-50 workers in parallel. 
This means there were never more than 10-50 message instances in use. However, 
this did not solve the issue. Hence, the leak must be related to delivery 
handling (or chunks on socket level?).

Could be the same as discussed in QPID-8134 ...

 


was (Author: scheiber):
I just wanted to ask for the current state... And, is there any workaround?

> Memory leak related to sending
> --
>
> Key: PROTON-1898
> URL: https://issues.apache.org/jira/browse/PROTON-1898
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: go-binding
>Affects Versions: proton-c-0.24.0
>Reporter: Christoph Scheiber
>Assignee: Alan Conway
>Priority: Major
>
> I started implementing a GO application using qpid electron. There is one 
> connection used to receive messages (at-least-once). It works nicely with low 
> memory consumption, multiple links and multiple go routines, 50 bytes 
> payload, up to 3000 msg/s
> But as soon as the application starts sending messages (to reply over the 
> same connection) memory consumption is continuously growing up to 2GB where I 
> stopped.
> Even if electron does not leave many options for wrong usage there might be 
> an issue in the application.
> So I tried the qpid electron example 
> "https://github.com/apache/qpid-proton/blob/master/go/examples/electron/send.go";,
>  the same issue.
> To reproduce it:
>  * use the sample program, I just added connection options for SASL PLAIN
>  * let it send 10 messages or more to one destination
> My setup:
>  * windows 10 pro
>  * go1.10.2 windows/amd64
>  * qpid 0.24.0-rc1
>  * go files and lib build from same git repository clone and branch
>  * visual studio 2015, release build, no errors
>  * Broker: Solace VMR 8.11.0.1029 with different durable queues as source and 
> target
> I tried also qpid proton 0.23.0 earlier, but saw the same problem.
> I tried SendAsync and SendSync, both in 10-50 go routines in 
> parallel.Finally, with SendForget my worker routines were soon blocked and 
> did not come back.
> Best regards
> Christoph
>  



--
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-09-11 Thread Alex Rudyy (JIRA)


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

Alex Rudyy edited comment on QPID-8238 at 9/11/18 9:07 AM:
---

Keith,

Thanks a lot for the review comments. 

My changes for logback filter and fanout exchange routing functionality were 
driven by jprofiler analysis indicating about performance being lost on 
unnecessary {{Map}} object creation. I committed them against this JIRA as they 
improve the performance a bit whilst routing the messages with fanout exchange 
but the performance of other exchange implementation should improve as well. 
Though, I am happy to revert the mentioned changes and commit them against 
separate JIRAs.

As for exchange changes, they not only optimize the code but make it much 
simpler. Effectively, the changed code converts the collection of 
{{TopicMatcherResult}} got based on message routing key into a map where keys 
are {{route destinations}} and values are {{routing/replacement keys}}. Before 
my change the conversions was done by using intermediate map containing the 
destination as a key and routing replacement key as a value. Than, multiple 
maps (representing each {{TopicMatcherResult}} ) were merged into a single map.
My changes eliminated the need for intermediate map creation. I also do hope 
that code is a bit simpler now. I left the old implementation untouched and 
marked is as {{Deprecated}} in order to keep public methods unchanged as the 
next version is minor release rather major one. (Though, I did not check 
whether we made other breakable changes in the code in general. Perhaps, 
keeping dead-code there is a waist). I am planning to merge committed changes 
into 7.0 and do not want break backward compatibility there.

I liked  Rob's idea of making {{FieldTable}} immutable and do on-demand 
parsing. I will try to implement the corresponding changes as part of this 
JIRA, however, making {{FieldTable}} immutable most likely will not have any 
effect on performance and performance is the main concern for me right now. I 
do not think I can port on-demand parsing changes into 7.0. Thus, I am 
currently looking into other performance optimization alternatives. I have not 
looked into on-demand parsing yet.

I played a bit with replacing of {{AMQShortStrings}} with java {{String}} in 
{{BasicContentHeaderProperties}} (I have a patch a corresponding changes). My 
performance tests did not revealed much performance improvements due to using 
java {{String}} in {{BasicContentHeaderProperties}}. However, they did improve 
the performance a bit. Potentially, making {{AMQShortStrings}} to be a wrapper 
of {{String}} and replacing usage of  {{AMQShortStrings}} with java {{String}} 
where possible could be another refactoring worth doing.

The current routing code is very well tuned. I do not see any other routing 
functionality to optimize. As a next steps I am going to add new topic 
performance tests into existing perf test suite and look into making 
{{FieldTable}} immutable and implementing on-demand parsing. 




was (Author: alex.rufous):
Keith,

Thanks a lot for the review comments. 

My changes for logback filter and fanout exchange routing functionality were 
driven by jprofiler analysis indicating about performance being lost on 
unnecessary {{Map}} object creation. I committed them against this JIRA as they 
improve the performance a bit whilst routing the messages with fanout exchange 
but the performance of other exchange implementation should improve as well. 
Though, I am happy to revert the mentioned changes and commit them against 
separate JIRAs.

As for exchange changes, they not only optimize the code but make it much 
simpler. Effectively, the changed code converts the collection of 
{{TopicMatcherResult}} got based on message routing key into a map where keys 
are {{route destinations}} and values are {{routing/replacement keys}}. Before 
my change the conversions was done by using intermediate map containing the 
destination as a key and routing replacement key as a value. Than, multiple 
maps (representing each {{TopicMatcherResult}} ) were merged into a single map.
My changes eliminated the need for intermediate map creation. I also do hope 
that code is a bit simpler now. I left the old implementation untouched and 
marked is as {{Deprecated}} in order to keep public methods unchanged as the 
next version is minor release rather major one. (Though, I did not check 
whether we made other breakable changes in the code in general. Perhaps, 
keeping dead-code there is a waist). I am planning to merge committed changes 
into 7.0 and do not want break backward compatibility there.

I liked  Rob's idea of making {{FieldTable}} immutable and do on-demand 
parsing. I will try to implement the corresponding changes as part of this 
JIRA, however, making {{FieldTable}} im

[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 Alex Rudyy (JIRA)


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

Alex Rudyy edited comment on QPID-8238 at 9/11/18 9:07 AM:
---

Keith,

Thanks a lot for the review comments. 

My changes for logback filter and fanout exchange routing functionality were 
driven by jprofiler analysis indicating about performance being lost on 
unnecessary {{Map}} object creation. I committed them against this JIRA as they 
improve the performance a bit whilst routing the messages with fanout exchange 
but the performance of other exchange implementation should improve as well. 
Though, I am happy to revert the mentioned changes and commit them against 
separate JIRAs.

As for exchange changes, they not only optimize the code but make it much 
simpler. Effectively, the changed code converts the collection of 
{{TopicMatcherResult}} got based on message routing key into a map where keys 
are {{route destinations}} and values are {{routing/replacement keys}}. Before 
my change the conversions was done by using intermediate map containing the 
destination as a key and routing replacement key as a value. Than, multiple 
maps (representing each {{TopicMatcherResult}} ) were merged into a single map.
My changes eliminated the need for intermediate map creation. I also do hope 
that code is a bit simpler now. I left the old implementation untouched and 
marked is as {{Deprecated}} in order to keep public methods unchanged as the 
next version is minor release rather major one. (Though, I did not check 
whether we made other breakable changes in the code in general. Perhaps, 
keeping dead-code there is a waist). I am planning to merge committed changes 
into 7.0 and do not want break backward compatibility there.

I liked  Rob's idea of making {{FieldTable}} immutable and do on-demand 
parsing. I will try to implement the corresponding changes as part of this 
JIRA, however, making {{FieldTable}} immutable most likely will not have any 
effect on performance and performance is the main concern for me right now. I 
do not think I can port on-demand parsing changes into 7.0. Thus, I am 
currently looking into other performance optimization alternatives. I have not 
looked into on-demand parsing yet.

I played a bit with replacing of {{AMQShortStrings}} with java {{String}} in 
{{BasicContentHeaderProperties}} (I have a patch a corresponding changes). My 
performance tests did not revealed much performance improvements due to using 
java {{String}} in {{BasicContentHeaderProperties}}. However, they did improve 
the performance a bit. Potentially, making {{AMQShortString}}s to be a wrapper 
of {{String}} and replacing usage of  {{AMQShortStrings}} with java {{String}} 
where possible could be another refactoring worth doing.

The current routing code is very well tuned. I do not see any other routing 
functionality to optimize. As a next steps I am going to add new topic 
performance tests into existing perf test suite and look into making 
{{FieldTable}} immutable and implementing on-demand parsing. 




was (Author: alex.rufous):
Keith,

Thanks a lot for the review comments. 

My changes for logback filter and fanout exchange routing functionality were 
driven by jprofiler analysis indicating about performance being lost on 
unnecessary {{Map}} object creation. I committed them against this JIRA as they 
improve the performance a bit whilst routing the messages with fanout exchange 
but the performance of other exchange implementation should improve as well. 
Though, I am happy to revert the mentioned changes and commit them against 
separate JIRAs.

As for exchange changes, they not only optimize the code but make it much 
simpler. Effectively, the changed code converts the collection of 
{{TopicMatcherResult}} got based on message routing key into a map where keys 
are {{route destinations}} and values are {{routing/replacement keys}}. Before 
my change the conversions was done by using intermediate map containing the 
destination as a key and routing replacement key as a value. Than, multiple 
maps (representing each {{TopicMatcherResult}} ) were merged into a single map.
My changes eliminated the need for intermediate map creation. I also do hope 
that code is a bit simpler now. I left the old implementation untouched and 
marked is as {{Deprecated}} in order to keep public methods unchanged as the 
next version is minor release rather major one. (Though, I did not check 
whether we made other breakable changes in the code in general. Perhaps, 
keeping dead-code there is a waist). I am planning to merge committed changes 
into 7.0 and do not want break backward compatibility there.

I liked  Rob's idea of making {{FieldTable}} immutable and do on-demand 
parsing. I will try to implement the corresponding changes as part of this 
JIRA, however, making {{FieldTable}} im

[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 Alex Rudyy (JIRA)


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

Alex Rudyy commented on QPID-8238:
--

Keith,

Thanks a lot for the review comments. 

My changes for logback filter and fanout exchange routing functionality were 
driven by jprofiler analysis indicating about performance being lost on 
unnecessary {{Map}} object creation. I committed them against this JIRA as they 
improve the performance a bit whilst routing the messages with fanout exchange 
but the performance of other exchange implementation should improve as well. 
Though, I am happy to revert the mentioned changes and commit them against 
separate JIRAs.

As for exchange changes, they not only optimize the code but make it much 
simpler. Effectively, the changed code converts the collection of 
{{TopicMatcherResult}} got based on message routing key into a map where keys 
are {{route destinations}} and values are {{routing/replacement keys}}. Before 
my change the conversions was done by using intermediate map containing the 
destination as a key and routing replacement key as a value. Than, multiple 
maps (representing each {{TopicMatcherResult}} ) were merged into a single map.
My changes eliminated the need for intermediate map creation. I also do hope 
that code is a bit simpler now. I left the old implementation untouched and 
marked is as {{Deprecated}} in order to keep public methods unchanged as the 
next version is minor release rather major one. (Though, I did not check 
whether we made other breakable changes in the code in general. Perhaps, 
keeping dead-code there is a waist). I am planning to merge committed changes 
into 7.0 and do not want break backward compatibility there.

I liked  Rob's idea of making {{FieldTable}} immutable and do on-demand 
parsing. I will try to implement the corresponding changes as part of this 
JIRA, however, making {{FieldTable}} immutable most likely will not have any 
effect on performance and performance is the main concern for me right now. I 
do not think I can port on-demand parsing changes into 7.0. Thus, I am 
currently looking into other performance optimization alternatives. I have not 
looked into on-demand parsing yet.

I played a bit with replacing of {{AMQShortString}}s with java {{String}} in 
{{BasicContentHeaderProperties}} (I have a patch a corresponding changes). My 
performance tests did not revealed much performance improvements due to using 
java {{String}} in {{BasicContentHeaderProperties}}. However, they did improve 
the performance a bit. Potentially, making {{AMQShortString}}s to be a wrapper 
of {{String}} and replacing usage of  {{AMQShortString}}s with java {{String}} 
where possible could be another refactoring worth doing.

The current routing code is very well tuned. I do not see any other routing 
functionality to optimize. As a next steps I am going to add new topic 
performance tests into existing perf test suite and look into making 
{{FieldTable}} immutable and implementing on-demand parsing. 



> [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 algor

[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 Alex Rudyy (JIRA)


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

Alex Rudyy edited comment on QPID-8238 at 9/11/18 9:06 AM:
---

Keith,

Thanks a lot for the review comments. 

My changes for logback filter and fanout exchange routing functionality were 
driven by jprofiler analysis indicating about performance being lost on 
unnecessary {{Map}} object creation. I committed them against this JIRA as they 
improve the performance a bit whilst routing the messages with fanout exchange 
but the performance of other exchange implementation should improve as well. 
Though, I am happy to revert the mentioned changes and commit them against 
separate JIRAs.

As for exchange changes, they not only optimize the code but make it much 
simpler. Effectively, the changed code converts the collection of 
{{TopicMatcherResult}} got based on message routing key into a map where keys 
are {{route destinations}} and values are {{routing/replacement keys}}. Before 
my change the conversions was done by using intermediate map containing the 
destination as a key and routing replacement key as a value. Than, multiple 
maps (representing each {{TopicMatcherResult}} ) were merged into a single map.
My changes eliminated the need for intermediate map creation. I also do hope 
that code is a bit simpler now. I left the old implementation untouched and 
marked is as {{Deprecated}} in order to keep public methods unchanged as the 
next version is minor release rather major one. (Though, I did not check 
whether we made other breakable changes in the code in general. Perhaps, 
keeping dead-code there is a waist). I am planning to merge committed changes 
into 7.0 and do not want break backward compatibility there.

I liked  Rob's idea of making {{FieldTable}} immutable and do on-demand 
parsing. I will try to implement the corresponding changes as part of this 
JIRA, however, making {{FieldTable}} immutable most likely will not have any 
effect on performance and performance is the main concern for me right now. I 
do not think I can port on-demand parsing changes into 7.0. Thus, I am 
currently looking into other performance optimization alternatives. I have not 
looked into on-demand parsing yet.

I played a bit with replacing of {{AMQShortStrings}} with java {{String}} in 
{{BasicContentHeaderProperties}} (I have a patch a corresponding changes). My 
performance tests did not revealed much performance improvements due to using 
java {{String}} in {{BasicContentHeaderProperties}}. However, they did improve 
the performance a bit. Potentially, making {{AMQShortString}}s to be a wrapper 
of {{String}} and replacing usage of  {{AMQShortString}}s with java {{String}} 
where possible could be another refactoring worth doing.

The current routing code is very well tuned. I do not see any other routing 
functionality to optimize. As a next steps I am going to add new topic 
performance tests into existing perf test suite and look into making 
{{FieldTable}} immutable and implementing on-demand parsing. 




was (Author: alex.rufous):
Keith,

Thanks a lot for the review comments. 

My changes for logback filter and fanout exchange routing functionality were 
driven by jprofiler analysis indicating about performance being lost on 
unnecessary {{Map}} object creation. I committed them against this JIRA as they 
improve the performance a bit whilst routing the messages with fanout exchange 
but the performance of other exchange implementation should improve as well. 
Though, I am happy to revert the mentioned changes and commit them against 
separate JIRAs.

As for exchange changes, they not only optimize the code but make it much 
simpler. Effectively, the changed code converts the collection of 
{{TopicMatcherResult}} got based on message routing key into a map where keys 
are {{route destinations}} and values are {{routing/replacement keys}}. Before 
my change the conversions was done by using intermediate map containing the 
destination as a key and routing replacement key as a value. Than, multiple 
maps (representing each {{TopicMatcherResult}} ) were merged into a single map.
My changes eliminated the need for intermediate map creation. I also do hope 
that code is a bit simpler now. I left the old implementation untouched and 
marked is as {{Deprecated}} in order to keep public methods unchanged as the 
next version is minor release rather major one. (Though, I did not check 
whether we made other breakable changes in the code in general. Perhaps, 
keeping dead-code there is a waist). I am planning to merge committed changes 
into 7.0 and do not want break backward compatibility there.

I liked  Rob's idea of making {{FieldTable}} immutable and do on-demand 
parsing. I will try to implement the corresponding changes as part of this 
JIRA, however, making {{FieldTable}} im

[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&focusedCommentId=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 

[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&focusedCommentId=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