[jira] [Commented] (PROTON-1167) Qpid-proton: SIGSEGV crash when a queue becomes full

2016-03-30 Thread Gordon Sim (JIRA)

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

Gordon Sim commented on PROTON-1167:


I wasn't able to reproduce this, either on latest svn/git for qpid/proton, or 
on qpid-cpp 0.34 against proton 0.12 (this requires a minor patch to qpid-cpp 
in order to compile it). Did you build qpid-cpp 0.34 yourself against 0.12? How 
reproducible is it for you?

> Qpid-proton: SIGSEGV crash when a queue becomes full
> 
>
> Key: PROTON-1167
> URL: https://issues.apache.org/jira/browse/PROTON-1167
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: proton-c
>Affects Versions: 0.12.0
> Environment: CentOS7 (latest)
> qpid-proton-c-0.12.0-1.el7.x86_64
>Reporter: Graham Leggett
>
> When qpid is asked to create a default queue as follows:
> {code}
> qpid-config add queue foo
> {code}
> And if an attempt is made to fill this queue to overflow with 1MB messages 
> until we run out of space, qpid crashes as follows:
> {code}
> 2016-03-29 22:18:59 [Network] debug qpid.127.0.0.1:5672-127.0.0.1:43002 
> decoded 65536 bytes from 65536
> 2016-03-29 22:18:59 [Network] debug qpid.127.0.0.1:5672-127.0.0.1:43002 
> decoded 1016 bytes from 1016
> 2016-03-29 22:18:59 [Broker] debug received delivery: 
> \xE4\x03\x00\x00\x00\x00\x00\x00
> 2016-03-29 22:18:59 [Broker] debug Message received: 1049552 bytes
> 2016-03-29 22:18:59 [System] debug Exception constructed: Maximum depth 
> exceeded on foo: current=[count: 125, size: 103905496], max=[size: 104857600] 
> (/builddir/build/BUILD/qpid-cpp-0.34/src/qpid/broker/Queue.cpp:1633)
> 2016-03-29 22:18:59 [Network] debug qpid.127.0.0.1:5672-127.0.0.1:43002 
> encoded 249 bytes from 65536
> 2016-03-29 22:18:59 [Network] debug qpid.127.0.0.1:5672-127.0.0.1:43002 
> decoded 51 bytes from 51
> 2016-03-29 22:18:59 [Broker] debug received delivery: 
> \xE4\x03\x00\x00\x00\x00\x00\x00
> 2016-03-29 22:18:59 [Broker] debug Message received: 0 bytes
> 2016-03-29 22:18:59 [Broker] debug clean(): 125 messages remain; head is now 0
> 2016-03-29 22:18:59 [Broker] debug Message 0x69b2e0 published, state is 1 
> (head is now 0)
> 2016-03-29 22:18:59 [Broker] debug Message 126 enqueued on foo
> Program received signal SIGSEGV, Segmentation fault.
> pni_process_tpwork_receiver (settle=, delivery=0x698550, 
> transport=0x7fffec01c710)
> at 
> /usr/src/debug/qpid-proton-0.12.0/proton-c/src/transport/transport.c:2147
> 2147if ((int16_t) ssn->state.local_channel >= 0 && 
> !delivery->remote.settled && delivery->state.init) {
> Missing separate debuginfos, use: debuginfo-install 
> boost-program-options-1.53.0-25.el7.x86_64 keyutils-libs-1.5.8-3.el7.x86_64 
> krb5-libs-1.13.2-10.el7.x86_64 libaio-0.3.109-13.el7.x86_64 
> libcom_err-1.42.9-7.el7.x86_64 libdb4-cxx-4.8.30-13.el7.x86_64 
> libselinux-2.2.2-6.el7.x86_64 libuuid-2.23.2-26.el7.x86_64 
> nss-softokn-freebl-3.16.2.3-13.el7_1.x86_64 pcre-8.32-15.el7.x86_64 
> xz-libs-5.1.2-12alpha.el7.x86_64 zlib-1.2.7-15.el7.x86_64
> (gdb) bt
> #0  pni_process_tpwork_receiver (settle=, 
> delivery=0x698550, transport=0x7fffec01c710)
> at 
> /usr/src/debug/qpid-proton-0.12.0/proton-c/src/transport/transport.c:2147
> #1  pni_process_tpwork (transport=transport@entry=0x7fffec01c710, 
> endpoint=)
> at 
> /usr/src/debug/qpid-proton-0.12.0/proton-c/src/transport/transport.c:2181
> #2  0x73a898c1 in pni_process_tpwork (endpoint=, 
> transport=0x7fffec01c710)
> at 
> /usr/src/debug/qpid-proton-0.12.0/proton-c/src/transport/transport.c:2164
> #3  pni_phase (phase=, transport=0x7fffec01c710)
> at 
> /usr/src/debug/qpid-proton-0.12.0/proton-c/src/transport/transport.c:2381
> #4  pni_process (transport=) at 
> /usr/src/debug/qpid-proton-0.12.0/proton-c/src/transport/transport.c:2399
> #5  pn_output_write_amqp (transport=, layer=, 
> bytes=0x7fffec00bf80 "", available=16384)
> at 
> /usr/src/debug/qpid-proton-0.12.0/proton-c/src/transport/transport.c:2550
> #6  0x73a8aacc in transport_produce 
> (transport=transport@entry=0x7fffec01c710)
> at 
> /usr/src/debug/qpid-proton-0.12.0/proton-c/src/transport/transport.c:2603
> #7  pn_transport_pending (transport=transport@entry=0x7fffec01c710)
> at 
> /usr/src/debug/qpid-proton-0.12.0/proton-c/src/transport/transport.c:2882
> #8  0x73a8acd7 in pn_transport_output (transport=0x7fffec01c710, 
> bytes=0x7fffec02f280 "", size=65536)
> at 
> /usr/src/debug/qpid-proton-0.12.0/proton-c/src/transport/transport.c:2630
> #9  0x73d046ee in qpid::broker::amqp::Connection::encode 
> (this=0x7fffec007780, buffer=0x7fffec02f280 "", size=65536)
> at /usr/src/debug/qpid-cpp-0.34/src/qpid/broker/amqp/Connection.cpp:233
> #10 0x7749b3c4 in qpid::sys::AsynchIOHandler::idle 
> (this=0x7fffec01ca30)

[jira] [Commented] (PROTON-1135) [proton-c] dont pipeline SASL and OPEN frames for ANONYMOUS logins by default

2016-03-30 Thread Gordon Sim (JIRA)

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

Gordon Sim commented on PROTON-1135:


My 2 cents: servers SHOULD handle the pipelined case (in the case of qpidd, I 
consider it a bug in the io handling rather than a concious choice, and I would 
guess the same is true of others). That said I do also think that proton is 
doing the wrong thing with sasl on the client and should wait for the server to 
offer mechanisms before choosing them. It MUST do this when a specific 
mechanism isn't chosen anyway (at least when integrated with cyrus), and even 
where it is I think it would provide clearer error information. Less of a 
concern (to me anyway) is pipelining the open before receiving a successful 
outcome.

> [proton-c] dont pipeline SASL and OPEN frames for ANONYMOUS logins by default
> -
>
> Key: PROTON-1135
> URL: https://issues.apache.org/jira/browse/PROTON-1135
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: proton-c
>Affects Versions: 0.12.0
>Reporter: Ganesh Murthy
>
> Dispatch router (which uses Proton-c) currently sends pipelined SASL and OPEN 
> frames by default when connecting out to other peers using the ANONYMOUS 
> mech, as shown in the following trace - 
> {code}
> [0x7f41f80079c0]:  -> SASL
> [0x7f41f80079c0]:0 -> @sasl-init(65) [mechanism=:ANONYMOUS, 
> initial-response=b"anonymous@localhost.localdomain"]
> [0x7f41f80079c0]:  -> AMQP
> [0x7f41f80079c0]:0 -> @open(16) [container-id="Qpid.Dispatch.Router.A", 
> max-frame-size=65536, channel-max=32767, idle-time-out=8000, 
> offered-capabilities=:"ANONYMOUS-RELAY", 
> properties={:product="qpid-dispatch-router", :version="0.6.0"}]
> [0x7f41f80079c0]:  <- SASL
> [0x7f41f80079c0]:0 <- @sasl-mechanisms(64) [sasl-server-mechanisms=:ANONYMOUS]
> [0x7f41f80079c0]:0 <- @sasl-outcome(68) [code=0]
> [0x7f41f80079c0]:  <- AMQP
> [0x7f41f80079c0]:0 <- @open(16) 
> [container-id="ce103199-af03-4d37-bb35-24ad4e55653e", channel-max=32767, 
> idle-time-out=8000, offered-capabilities=@PN_SYMBOL[:"ANONYMOUS-RELAY"], 
> properties={:product="qpid-cpp", :version="0.35", :platform="Linux", 
> :host="localhost.localdomain"}]
> {code}
> The AMQP 1.0 spec does not make it clear that this is supported (e.g. see 
> diagram below) but in any case various components have shown difficulty with 
> it (such as PROTON-1135 just raised, and QPID-6639 which has yet to be 
> included in a release but permitted the above protocol trace log).
> {code}
> TCP Client TCP Server
> =
> AMQP%d3.1.0.0 ->
>   <- AMQP%d3.1.0.0
> :
> :
> 
> :
> :
> AMQP%d0.1.0.0 ->
> (over SASL secured connection)
> <- AMQP%d0.1.0.0
> open ->
> <- open
> {code}
> Proton should by default disable sending pipelined OPEN frames for ANONYMOUS 
> logins, to aid compatibility with other components that don't expect/handle 
> such behaviour.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (PROTON-1162) connection capabilities are not sent correctly by default

2016-03-21 Thread Gordon Sim (JIRA)
Gordon Sim created PROTON-1162:
--

 Summary: connection capabilities are not sent correctly by default
 Key: PROTON-1162
 URL: https://issues.apache.org/jira/browse/PROTON-1162
 Project: Qpid Proton
  Issue Type: Bug
  Components: python-binding
Affects Versions: 0.12.0
Reporter: Gordon Sim
Priority: Minor


The offered- or desired- capabilities on a connection, they are sent out 
incorrectly unless they are explicitly added as symbol or Array containing 
symbols.
E.g. instead of

{noformat}
conn.offered_capabilities=["foo", "bar"]
{noformat}

you must use:

{noformat}
conn.offered_capabilities=Array(UNDESCRIBED, Data.SYMBOL, symbol("foo"), 
symbol("bar"))
{noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (PROTON-1120) Memory leak using proton.utils

2016-02-02 Thread Gordon Sim (JIRA)

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

Gordon Sim resolved PROTON-1120.

Resolution: Fixed

> Memory leak using proton.utils
> --
>
> Key: PROTON-1120
> URL: https://issues.apache.org/jira/browse/PROTON-1120
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: python-binding
>Affects Versions: 0.10
> Environment: python-qpid-proton-0.10-2.fc23.x86_64
> And 0.9-13
>Reporter: Jeff Ortel
>Assignee: Gordon Sim
> Fix For: 0.12.0
>
> Attachments: memory-leak.py
>
>
> I have observed a fairly substantial memory leak using the blocking classes 
> in proton.utils.  Mainly with sending messages.  
> Observations:
> {code}
> growth =  52 MB  for  10,000 messages sent
> growth = 104 MB  for  20,000 messages sent
> leak   =  52 MB  per  10,000 sends or ~5 kB / send
> {code}
> The attached reproducer, can be used to collect and display statistics.  
> There is likely a better method for measuring the memory growth  but this was 
> easy.  Perhaps there is something incorrect/missing with the way I'm using 
> proton or measuring the memory growth/leak?
> {code}
> 
> 1 messages
> 
> total kB  242088   162567552 - sending
> total kB  293980   68224   59520 - sent
> total kB  293980   68228   59524 - receiving
> total kB  294236   68340   59632 - received
> SizeGrowth   Context
> __||__
> 242088 kB   +242088 kB   sending
> 293980 kB   + 51892 kB   sent
> 293980 kB   + 0 kB   receiving
> 294236 kB   +   256 kB   received
> 
> 2 messages
> 
> total kB  294236   68348   59640 - sending
> total kB  397820  171896  163232 - sent
> total kB  397820  171900  163236 - receiving
> total kB  398020  172060  163396 - received
> SizeGrowth   Context
> __||__
> 294236 kB   +294236 kB   sending
> 397820 kB   +103584 kB   sent
> 397820 kB   + 0 kB   receiving
> 398020 kB   +   200 kB   received
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Assigned] (PROTON-1120) Memory leak using proton.utils

2016-02-01 Thread Gordon Sim (JIRA)

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

Gordon Sim reassigned PROTON-1120:
--

Assignee: Gordon Sim

> Memory leak using proton.utils
> --
>
> Key: PROTON-1120
> URL: https://issues.apache.org/jira/browse/PROTON-1120
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: python-binding
>Affects Versions: 0.10
> Environment: python-qpid-proton-0.10-2.fc23.x86_64
> And 0.9-13
>Reporter: Jeff Ortel
>Assignee: Gordon Sim
> Attachments: memory-leak.py
>
>
> I have observed a fairly substantial memory leak using the blocking classes 
> in proton.utils.  Mainly with sending messages.  
> Observations:
> {code}
> growth =  52 MB  for  10,000 messages sent
> growth = 104 MB  for  20,000 messages sent
> leak   =  52 MB  per  10,000 sends or ~5 kB / send
> {code}
> The attached reproducer, can be used to collect and display statistics.  
> There is likely a better method for measuring the memory growth  but this was 
> easy.  Perhaps there is something incorrect/missing with the way I'm using 
> proton or measuring the memory growth/leak?
> {code}
> 
> 1 messages
> 
> total kB  242088   162567552 - sending
> total kB  293980   68224   59520 - sent
> total kB  293980   68228   59524 - receiving
> total kB  294236   68340   59632 - received
> SizeGrowth   Context
> __||__
> 242088 kB   +242088 kB   sending
> 293980 kB   + 51892 kB   sent
> 293980 kB   + 0 kB   receiving
> 294236 kB   +   256 kB   received
> 
> 2 messages
> 
> total kB  294236   68348   59640 - sending
> total kB  397820  171896  163232 - sent
> total kB  397820  171900  163236 - receiving
> total kB  398020  172060  163396 - received
> SizeGrowth   Context
> __||__
> 294236 kB   +294236 kB   sending
> 397820 kB   +103584 kB   sent
> 397820 kB   + 0 kB   receiving
> 398020 kB   +   200 kB   received
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (PROTON-1120) Memory leak using proton.utils

2016-02-01 Thread Gordon Sim (JIRA)

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

Gordon Sim updated PROTON-1120:
---
Fix Version/s: 0.12.0

> Memory leak using proton.utils
> --
>
> Key: PROTON-1120
> URL: https://issues.apache.org/jira/browse/PROTON-1120
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: python-binding
>Affects Versions: 0.10
> Environment: python-qpid-proton-0.10-2.fc23.x86_64
> And 0.9-13
>Reporter: Jeff Ortel
>Assignee: Gordon Sim
> Fix For: 0.12.0
>
> Attachments: memory-leak.py
>
>
> I have observed a fairly substantial memory leak using the blocking classes 
> in proton.utils.  Mainly with sending messages.  
> Observations:
> {code}
> growth =  52 MB  for  10,000 messages sent
> growth = 104 MB  for  20,000 messages sent
> leak   =  52 MB  per  10,000 sends or ~5 kB / send
> {code}
> The attached reproducer, can be used to collect and display statistics.  
> There is likely a better method for measuring the memory growth  but this was 
> easy.  Perhaps there is something incorrect/missing with the way I'm using 
> proton or measuring the memory growth/leak?
> {code}
> 
> 1 messages
> 
> total kB  242088   162567552 - sending
> total kB  293980   68224   59520 - sent
> total kB  293980   68228   59524 - receiving
> total kB  294236   68340   59632 - received
> SizeGrowth   Context
> __||__
> 242088 kB   +242088 kB   sending
> 293980 kB   + 51892 kB   sent
> 293980 kB   + 0 kB   receiving
> 294236 kB   +   256 kB   received
> 
> 2 messages
> 
> total kB  294236   68348   59640 - sending
> total kB  397820  171896  163232 - sent
> total kB  397820  171900  163236 - receiving
> total kB  398020  172060  163396 - received
> SizeGrowth   Context
> __||__
> 294236 kB   +294236 kB   sending
> 397820 kB   +103584 kB   sent
> 397820 kB   + 0 kB   receiving
> 398020 kB   +   200 kB   received
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PROTON-1111) Fix warnings during make doc

2016-01-27 Thread Gordon Sim (JIRA)

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

Gordon Sim commented on PROTON-:


I think I queried whether it needed to be that way for python 3 (as opposed to 
simply 'import _compat', the answer to which was yes. However Justin's change 
is different so may well be fine (I'm not fully up to date on python 3 imports)

> Fix warnings during make doc
> 
>
> Key: PROTON-
> URL: https://issues.apache.org/jira/browse/PROTON-
> Project: Qpid Proton
>  Issue Type: Improvement
>  Components: proton-c, python-binding
>Affects Versions: 0.13.0
>Reporter: Justin Ross
>Assignee: Justin Ross
>Priority: Minor
> Fix For: 0.13.0
>
>




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PROTON-1044) Create/Delete of BlockingConnection leaks file descriptors

2016-01-19 Thread Gordon Sim (JIRA)

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

Gordon Sim commented on PROTON-1044:


Thanks for confirming Jeff!

> Create/Delete of BlockingConnection leaks file descriptors
> --
>
> Key: PROTON-1044
> URL: https://issues.apache.org/jira/browse/PROTON-1044
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: python-binding
>Affects Versions: 0.9
> Environment: Fedora 22
>Reporter: Jeff Ortel
> Attachments: jortel.py
>
>
> Each time a BlockingConnection is created, it creates a Container.  The 
> Container() opens (2) file descriptors which are never closed.  The result is 
> that (2) file descriptors are leaked for each time BlockingConnection() is 
> called even if properly closed.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Closed] (PROTON-732) assertion in transport_consume when authentication fails: Assertion `n == (-1)' failed

2016-01-07 Thread Gordon Sim (JIRA)

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

Gordon Sim closed PROTON-732.
-
Resolution: Fixed

> assertion in transport_consume when authentication fails: Assertion `n == 
> (-1)' failed
> --
>
> Key: PROTON-732
> URL: https://issues.apache.org/jira/browse/PROTON-732
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: proton-c
>Affects Versions: 0.8
>Reporter: Gordon Sim
>
> Running the messenger recv example against the java broker (both from latest 
> trunk at time of raising this issue), if the broker expects authentication 
> and you don't specify a username and password then the resulting sequence 
> causes an assertion in the proton-c library. 
> $ PN_TRACE_FRM=1 ./examples/messenger/c/recv amqp://localhost
> [0xc6eb00]:  -> SASL
> [0xc6eb00]:0 -> @sasl-init(65) [mechanism=:ANONYMOUS, initial-response=b""]
> [0xc6eb00]:  <- SASL
> [0xc6eb00]:0 <- @sasl-mechanisms(64) 
> [sasl-server-mechanisms=@PN_SYMBOL[:AMQPLAIN, :PLAIN, :"CRAM-MD5"]]
> [0xc6eb00]:0 <- @sasl-outcome(68) [code=1]
> recv: /home/gordon/projects/proton/proton-c/src/transport/transport.c:1070: 
> transport_consume: Assertion `n == (-1)' failed.
> Aborted (core dumped)
> Core was generated by `./examples/messenger/c/recv amqp://localhost'.
> Program terminated with signal 6, Aborted.
> #0  0x003d54635935 in raise () from /lib64/libc.so.6
> Missing separate debuginfos, use: debuginfo-install glibc-2.15-59.fc17.x86_64 
> keyutils-libs-1.5.5-2.fc17.x86_64 krb5-libs-1.10.2-12.fc17.x86_64 
> libcom_err-1.42.3-3.fc17.x86_64 libselinux-2.1.10-3.fc17.x86_64 
> libuuid-2.21.2-4.fc17.x86_64 openssl-1.0.0k-1.fc17.x86_64 
> zlib-1.2.5-7.fc17.x86_64
> (gdb) bt
> #0  0x003d54635935 in raise () from /lib64/libc.so.6
> #1  0x003d546370e8 in abort () from /lib64/libc.so.6
> #2  0x003d5462e6a2 in __assert_fail_base () from /lib64/libc.so.6
> #3  0x003d5462e752 in __assert_fail () from /lib64/libc.so.6
> #4  0x7f796eed5823 in transport_consume 
> (transport=transport@entry=0xc6eb00) at 
> /home/gordon/projects/proton/proton-c/src/transport/transport.c:1070
> #5  0x7f796eed6e07 in pn_transport_process 
> (transport=transport@entry=0xc6eb00, size=) at 
> /home/gordon/projects/proton/proton-c/src/transport/transport.c:2117
> #6  0x7f796eedeb88 in pni_connection_readable (sel=0xc6ea00) at 
> /home/gordon/projects/proton/proton-c/src/messenger/messenger.c:242
> #7  0x7f796eede310 in pn_messenger_process 
> (messenger=messenger@entry=0xc6a980) at 
> /home/gordon/projects/proton/proton-c/src/messenger/messenger.c:1354
> #8  0x7f796eede440 in pn_messenger_tsync (timeout=, 
> predicate=0x7f796eedab00 , messenger=0xc6a980) at 
> /home/gordon/projects/proton/proton-c/src/messenger/messenger.c:1423
> #9  pn_messenger_tsync (messenger=0xc6a980, predicate=0x7f796eedab00 
> , timeout=) at 
> /home/gordon/projects/proton/proton-c/src/messenger/messenger.c:1411
> #10 0x7f796eedeca6 in pn_messenger_recv 
> (messenger=messenger@entry=0xc6a980, n=n@entry=1024) at 
> /home/gordon/projects/proton/proton-c/src/messenger/messenger.c:2181
> #11 0x00401255 in main (argc=, argv=) 
> at /home/gordon/projects/proton/examples/messenger/c/recv.c:131
> (gdb) 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PROTON-1090) BlockingConnection client spins at 100% cpu on reconnect

2016-01-07 Thread Gordon Sim (JIRA)

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

Gordon Sim commented on PROTON-1090:


fix proposed here: https://reviews.apache.org/r/42033/

> BlockingConnection client spins at 100% cpu on reconnect
> 
>
> Key: PROTON-1090
> URL: https://issues.apache.org/jira/browse/PROTON-1090
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: proton-c, python-binding
>Affects Versions: 0.9.1, 0.12.0
>Reporter: Ken Giusti
>Priority: Blocker
> Fix For: 0.12.0
>
> Attachments: cputest.py
>
>
> Attached is a simple python client that connects to a server and waits 
> forever for a message to be received, reconnecting on connection failure.
> When the server is restarted (in my case I'm using qdrouterd), the client 
> reconnects then pins the cpu at 100%.   It appears as if the 
> BlockingConnection.wait() method in util.py is the source of the busy loop.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (PROTON-1049) Reactor needs an alternative to using the URL to pass user authentication information.

2015-12-16 Thread Gordon Sim (JIRA)

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

Gordon Sim resolved PROTON-1049.

Resolution: Fixed

> Reactor needs an alternative to using the URL to pass user authentication 
> information.
> --
>
> Key: PROTON-1049
> URL: https://issues.apache.org/jira/browse/PROTON-1049
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: python-binding
>Affects Versions: 0.11
>Reporter: Ken Giusti
>Assignee: Gordon Sim
>Priority: Blocker
> Fix For: 0.12.0
>
>
> When creating a connection using the Container class, the only way to specify 
> the username/password credentials is via the URL.  This may cause the 
> credentials to be leaked via the "ps" command if the URL is passed via a 
> command line argument.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (PROTON-1080) have container attribute on any relevant event

2015-12-16 Thread Gordon Sim (JIRA)

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

Gordon Sim resolved PROTON-1080.

Resolution: Fixed

> have container attribute on any relevant event
> --
>
> Key: PROTON-1080
> URL: https://issues.apache.org/jira/browse/PROTON-1080
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: python-binding
>Affects Versions: 0.11
>Reporter: Gordon Sim
>Assignee: Gordon Sim
> Fix For: 0.12.0
>
>
> At present event.container is an alias for event.reactor only for the 
> on_start() event (and obviously only when a Container instance is actually 
> being used). It would be nicer to make that alias available on all events.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (PROTON-1080) have container attribute on any relevant event

2015-12-15 Thread Gordon Sim (JIRA)
Gordon Sim created PROTON-1080:
--

 Summary: have container attribute on any relevant event
 Key: PROTON-1080
 URL: https://issues.apache.org/jira/browse/PROTON-1080
 Project: Qpid Proton
  Issue Type: Bug
  Components: python-binding
Affects Versions: 0.11
Reporter: Gordon Sim
Assignee: Gordon Sim
 Fix For: 0.12.0


At present event.container is an alias for event.reactor only for the 
on_start() event (and obviously only when a Container instance is actually 
being used). It would be nicer to make that alias available on all events.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Assigned] (PROTON-1049) Reactor needs an alternative to using the URL to pass user authentication information.

2015-12-15 Thread Gordon Sim (JIRA)

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

Gordon Sim reassigned PROTON-1049:
--

Assignee: Gordon Sim

> Reactor needs an alternative to using the URL to pass user authentication 
> information.
> --
>
> Key: PROTON-1049
> URL: https://issues.apache.org/jira/browse/PROTON-1049
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: python-binding
>Affects Versions: 0.11
>Reporter: Ken Giusti
>Assignee: Gordon Sim
>Priority: Blocker
> Fix For: 0.12.0
>
>
> When creating a connection using the Container class, the only way to specify 
> the username/password credentials is via the URL.  This may cause the 
> credentials to be leaked via the "ps" command if the URL is passed via a 
> command line argument.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PROTON-1071) EventInjector hangs on Windows

2015-12-08 Thread Gordon Sim (JIRA)

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

Gordon Sim commented on PROTON-1071:


In examples/python/reactor/cat.py a selectable is configured to use a normal 
file that is opened for reading. This is preceded by the comment: '# We can 
configure a selectable with any file descriptor we want.'

I don't doubt that you are correct in all your points about the windows 
implementation, but I don't agree that EventInjector violates any clearly 
defined model or that it works on posix only by fortuitous accident. It seems 
to me that the design as originally conceived did not take windows into 
account. If the implication is that the reactor - proton's event loop - can 
only be used with proton objects and operations, that to me seems like a 
serious limitation.

All that said, focusing solely on the functionality provided at present by 
EventInjector in python, what would be your suggestion for a solution that 
works on both windows and posix?. Preserving the API in python would be highly 
desirable but not mandatory. 

> EventInjector hangs on Windows
> --
>
> Key: PROTON-1071
> URL: https://issues.apache.org/jira/browse/PROTON-1071
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: proton-c, python-binding
>Affects Versions: 0.11
> Environment: Windows
>Reporter: Ken Giusti
>Assignee: Cliff Jansen
> Fix For: 0.12.0
>
>
> I added a new reactor test that exercises the python-proton ApplicationEvent 
> and EventInjector classes:
> proton_tests.reactor.ApplicationEventTest.test_application_events
> See tests/python/proton_tests/reactor.py
> This test passes on linux, but hangs when run on Windows.
> Poking around a bit, I suspect the problem may be in the Windows selector 
> code.  Description:
> The EventInjector/ApplicationEvent classes provide a way to trigger events 
> from threads external to the reactor main loop.  See 
> proton-c/bindings/python/proton/reactor.py.  A pipe is used to wake up the 
> reactor when a new event is sent to the reactor (see reactor.py in the python 
> bindings).  The EventInjector's trigger method puts the event on a queue and 
> writes to a pipe to wake up the reactor.  The on_selectable_readable callback 
> in the EventInjector is called on the reactor thread to get the event off the 
> queue and clear the pipe.
> On windows it appears as if the EventInjector selectable is made "readable" 
> even though nothing has been written to the pipe.  This causes the os.read() 
> call in the on_selectable_readable() callback to hang.
> Best I can tell the windows selector code doesn't work properly with a pipe.  
> The pn_selector_next() function is returning a read event on the pipe's read 
> descriptor even though the pipe is empty.  But I'm not familiar with the 
> window's selector implementation, so this is a best guess.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Comment Edited] (PROTON-1071) EventInjector hangs on Windows

2015-12-08 Thread Gordon Sim (JIRA)

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

Gordon Sim edited comment on PROTON-1071 at 12/8/15 10:02 AM:
--

There is no concept in Windows of a general select/poll that works on generic 
file descriptors/handles.  You have a separate synchronous wait model for each 
file type.  On top of that, you have a fancy proactor model (IO completion 
ports, IOCP) for asynchronous IO on a few file types: sockets and named pipes, 
but not console IO and anonymous pipes.  The IOCP model is the preferred 
scalable IO mechanism for one or many threads.

If using pn_selectable_set_fd(handle_xx) with IOCP, it cannot work for any 
handle_xx that is not IOCP aware.  Well not without adding an extra thread that 
synchronously checks it (something that may have to be done for console IO).

PROTON-668 was an attempt to find a useful subset of Posix and Windows 
capabilities (and other platforms, if identified) for performant IO (mostly 
looking at the dispatch router model).  Threading consequences were one 
consideration, but so was mere achievability.  The network (socket) IO plus 
pipe (interrupt mainly) IO were the prime candidates.

Hence an "fd" in pn_selectable_set_fd is actually a pn_socket_t, not an int.  
An external socket may be used in this case, but also a pn_pipe object.  In 
Posix, the pn_pipe is not an OS socket.  In Windows, it currently is but may 
become something else, perhaps even an internal construct in future.

Another difference to note, a Posix fd can move between different collections 
fds for poll/select.  A Windows handle can be registered exactly once with a 
collection.  It can never be moved to another selector.  It is associated with 
a single IOCP port until it is closed.



was (Author: cliffjansen):
There is no concept in Windows of a general select/poll that works on generic 
file descriptors/handles.  You have a separate synchronous wait model for each 
file type.  On top of that, you have a fancy proactor model (IO completion 
ports, IOCP) for asynchronous IO on a few file types: sockets and named pipes, 
but not console IO and anonymous pipes.  The IOCP model is the preferred 
scalable IO mechanism for one or many threads.

If using pn_selectable_set_fd(handle_xx) with IOCP, it cannot work for any 
handle_xx that is not IOCP aware.  Well not without adding an extra thread that 
synchronously checks it (something that may have to be done for console IO).

PROTON-688 was an attempt to find a useful subset of Posix and Windows 
capabilities (and other platforms, if identified) for performant IO (mostly 
looking at the dispatch router model).  Threading consequences were one 
consideration, but so was mere achievability.  The network (socket) IO plus 
pipe (interrupt mainly) IO were the prime candidates.

Hence an "fd" in pn_selectable_set_fd is actually a pn_socket_t, not an int.  
An external socket may be used in this case, but also a pn_pipe object.  In 
Posix, the pn_pipe is not an OS socket.  In Windows, it currently is but may 
become something else, perhaps even an internal construct in future.

Another difference to note, a Posix fd can move between different collections 
fds for poll/select.  A Windows handle can be registered exactly once with a 
collection.  It can never be moved to another selector.  It is associated with 
a single IOCP port until it is closed.


> EventInjector hangs on Windows
> --
>
> Key: PROTON-1071
> URL: https://issues.apache.org/jira/browse/PROTON-1071
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: proton-c, python-binding
>Affects Versions: 0.11
> Environment: Windows
>Reporter: Ken Giusti
>Assignee: Cliff Jansen
> Fix For: 0.12.0
>
>
> I added a new reactor test that exercises the python-proton ApplicationEvent 
> and EventInjector classes:
> proton_tests.reactor.ApplicationEventTest.test_application_events
> See tests/python/proton_tests/reactor.py
> This test passes on linux, but hangs when run on Windows.
> Poking around a bit, I suspect the problem may be in the Windows selector 
> code.  Description:
> The EventInjector/ApplicationEvent classes provide a way to trigger events 
> from threads external to the reactor main loop.  See 
> proton-c/bindings/python/proton/reactor.py.  A pipe is used to wake up the 
> reactor when a new event is sent to the reactor (see reactor.py in the python 
> bindings).  The EventInjector's trigger method puts the event on a queue and 
> writes to a pipe to wake up the reactor.  The on_selectable_readable callback 
> in the EventInjector is called on the reactor thread to get the event off the 
> queue and clear the pipe.
> On windows it appears as if the EventInjector selectable is made "readable" 

[jira] [Comment Edited] (PROTON-1071) EventInjector hangs on Windows

2015-12-08 Thread Gordon Sim (JIRA)

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

Gordon Sim edited comment on PROTON-1071 at 12/8/15 10:03 AM:
--

This JIRA cuts across a number of Proton IO and threading issues.

EventInjector as coded violates Proton's io model: the pipe needs to come from 
pn_pipe() and the reading and writing via pn_read() and pn_write(), all on the 
reactor's pn_io_t object.  It works by fortuitous accident on Posix.

Coding EventInjector to work this way for Posix is presumably simple.  For 
Windows, it further requires tackling deferred thread safety, at least for 
pipes and the associated pn_io_t->selector (but that may pull in everything).

As noted in PROTON-640, there is no thread safety in Proton io on Windows other 
than a weak guarantee that two separate threads may independently work on 
separate pn_io_t objects.

PROTON-668 attempted to document the stronger but still limited thread-safety 
available in the Posix implementation of Proton io.  This is the model of 
concurrency used by Qpid Dispatch Router and perhaps the model that the Windows 
implementation should strive to.  There is an opposing point of view that 
pushing thread safety into Proton is counterproductive: applications know what 
threading/io model works best for their workload.  Hence the rising interest in 
connection_engine.

EventInjector seems like a pretty important use case for coordinating threads.  
Alternatively, a more limited (or dedicated) api extension, perhaps 
pn_reactor_inject() which does platform-specific thread-safe coordination of 
something to be collected and the pn_io_t->selector might be more clear in its 
intention (as opposed to knowing that pn_write/read/select work a certain way 
together).

The Windows io.c and related code could be made to work at the same level of 
thread safety as Posix, but with obvious locking overhead.  If the assumption 
is that an application needing high performance IO will just use the 
connection_engine and manage the IO itself, perhaps there is no need to care 
about the locking penalty.

See also PROTON-889 regarding general thread safety outages in Proton on all 
platforms for pn_io_error() and pn_io_wouldblock().



was (Author: cliffjansen):
This JIRA cuts across a number of Proton IO and threading issues.

EventInjector as coded violates Proton's io model: the pipe needs to come from 
pn_pipe() and the reading and writing via pn_read() and pn_write(), all on the 
reactor's pn_io_t object.  It works by fortuitous accident on Posix.

Coding EventInjector to work this way for Posix is presumably simple.  For 
Windows, it further requires tackling deferred thread safety, at least for 
pipes and the associated pn_io_t->selector (but that may pull in everything).

As noted in PROTON-640, there is no thread safety in Proton io on Windows other 
than a weak guarantee that two separate threads may independently work on 
separate pn_io_t objects.

PROTON-688 attempted to document the stronger but still limited thread-safety 
available in the Posix implementation of Proton io.  This is the model of 
concurrency used by Qpid Dispatch Router and perhaps the model that the Windows 
implementation should strive to.  There is an opposing point of view that 
pushing thread safety into Proton is counterproductive: applications know what 
threading/io model works best for their workload.  Hence the rising interest in 
connection_engine.

EventInjector seems like a pretty important use case for coordinating threads.  
Alternatively, a more limited (or dedicated) api extension, perhaps 
pn_reactor_inject() which does platform-specific thread-safe coordination of 
something to be collected and the pn_io_t->selector might be more clear in its 
intention (as opposed to knowing that pn_write/read/select work a certain way 
together).

The Windows io.c and related code could be made to work at the same level of 
thread safety as Posix, but with obvious locking overhead.  If the assumption 
is that an application needing high performance IO will just use the 
connection_engine and manage the IO itself, perhaps there is no need to care 
about the locking penalty.

See also PROTON-889 regarding general thread safety outages in Proton on all 
platforms for pn_io_error() and pn_io_wouldblock().


> EventInjector hangs on Windows
> --
>
> Key: PROTON-1071
> URL: https://issues.apache.org/jira/browse/PROTON-1071
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: proton-c, python-binding
>Affects Versions: 0.11
> Environment: Windows
>Reporter: Ken Giusti
>Assignee: Cliff Jansen
> Fix For: 0.12.0
>
>
> I added a new reactor test that exercises the python-proton ApplicationEvent 
> and EventInjector 

[jira] [Commented] (PROTON-1071) EventInjector hangs on Windows

2015-12-07 Thread Gordon Sim (JIRA)

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

Gordon Sim commented on PROTON-1071:


{quote}
EventInjector as coded violates Proton's io model: the pipe needs to come from 
pn_pipe() and the reading and writing via pn_read() and pn_write(), all on the 
reactor's pn_io_t object. It works by fortuitous accident on Posix.
{quote}

I'm not sure I agree. What is your justification for this? The purpose of 
pn_selectable_set_fd surely is to associate any file descriptor with the 
pn_selectable. Having to use proton io operations defeats what I understood to 
be a key purpose of the integration of selectables with the reactor, namely 
providing a way to integrate other things into protons reactor event loop.

> EventInjector hangs on Windows
> --
>
> Key: PROTON-1071
> URL: https://issues.apache.org/jira/browse/PROTON-1071
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: proton-c, python-binding
>Affects Versions: 0.11
> Environment: Windows
>Reporter: Ken Giusti
>Assignee: Cliff Jansen
> Fix For: 0.12.0
>
>
> I added a new reactor test that exercises the python-proton ApplicationEvent 
> and EventInjector classes:
> proton_tests.reactor.ApplicationEventTest.test_application_events
> See tests/python/proton_tests/reactor.py
> This test passes on linux, but hangs when run on Windows.
> Poking around a bit, I suspect the problem may be in the Windows selector 
> code.  Description:
> The EventInjector/ApplicationEvent classes provide a way to trigger events 
> from threads external to the reactor main loop.  See 
> proton-c/bindings/python/proton/reactor.py.  A pipe is used to wake up the 
> reactor when a new event is sent to the reactor (see reactor.py in the python 
> bindings).  The EventInjector's trigger method puts the event on a queue and 
> writes to a pipe to wake up the reactor.  The on_selectable_readable callback 
> in the EventInjector is called on the reactor thread to get the event off the 
> queue and clear the pipe.
> On windows it appears as if the EventInjector selectable is made "readable" 
> even though nothing has been written to the pipe.  This causes the os.read() 
> call in the on_selectable_readable() callback to hang.
> Best I can tell the windows selector code doesn't work properly with a pipe.  
> The pn_selector_next() function is returning a read event on the pipe's read 
> descriptor even though the pipe is empty.  But I'm not familiar with the 
> window's selector implementation, so this is a best guess.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PROTON-1055) Username sent twice during SASL AUTH

2015-11-20 Thread Gordon Sim (JIRA)

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

Gordon Sim commented on PROTON-1055:


This is not wrong. From https://tools.ietf.org/html/rfc4616
{quote}
   The
   client presents the authorization identity (identity to act as),
   followed by a NUL (U+) character, followed by the authentication
   identity (identity whose password will be used), followed by a NUL
   (U+) character, followed by the clear-text password.  As with
   other SASL mechanisms, the client does not provide an authorization
   identity when it wishes the server to derive an identity from the
   credentials and use that as the authorization identity.
{quote}

What is the server you are connecting to? Is it possible the error lies on that 
side? 

> Username sent twice during SASL AUTH
> 
>
> Key: PROTON-1055
> URL: https://issues.apache.org/jira/browse/PROTON-1055
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: proton-c, python-binding
>Affects Versions: 0.10
> Environment: # lsb_release -a
> No LSB modules are available.
> Distributor ID: Ubuntu
> Description:Ubuntu 14.04.3 LTS
> Release:14.04
> Codename:   trusty
> # uname -a
> Linux esb-test-mq01 3.13.0-67-generic #110-Ubuntu SMP Fri Oct 23 13:24:41 UTC 
> 2015 x86_64 x86_64 x86_64 GNU/Linux
> # python --version
> Python 2.7.6
>Reporter: Simon Lundstrom
>Priority: Blocker
>
> In versions >0.9.1.1 (We've tried 0.10 and 0.11.0) the username is sent twice 
> during SASL authentication.
> Working in 0.9.1.1:
> {code}
> # PN_TRACE_FRM=1 ./meow.py
> [0x250d3b0]:  -> SASL
> [0x250d3b0]:0 -> @sasl-init(65) [mechanism=:PLAIN, 
> initial-response=b"\x00the_username\x00the_password"]
> [0x250d3b0]:  <- SASL
> [0x250d3b0]:0 <- @sasl-mechanisms(64) 
> [sasl-server-mechanisms=@PN_SYMBOL[:PLAIN, :ANONYMOUS]]
> [0x250d3b0]:0 <- @sasl-outcome(68) [code=0]
> [0x250d3b0]:  -> AMQP
> [0x250d3b0]:0 -> @open(16) 
> [container-id="6b1fecb6-358e-48af-b461-bae3563a7c7f", hostname="esb-test"]
> [0x250d3b0]:0 -> @begin(17) [next-outgoing-id=0, incoming-window=2147483647, 
> outgoing-window=1]
> [0x250d3b0]:0 -> @attach(18) [name="sender-xxx", handle=0, role=false, 
> snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) 
> [address="TEST-queue", durable=0, timeout=0, dynamic=false], 
> target=@target(41) [address="TEST-queue", durable=0, timeout=0, 
> dynamic=false], initial-delivery-count=0]
> [0x250d3b0]:  <- AMQP
> [0x250d3b0]:0 <- @open(16) [container-id="", hostname="", 
> max-frame-size=4294967295, channel-max=32767, idle-time-out=15000, 
> offered-capabilities=@PN_SYMBOL[:"ANONYMOUS-RELAY"], 
> properties={:product="ActiveMQ", :"topic-prefix"="topic://", 
> :"queue-prefix"="queue://", :version="5.12.1", :platform="Java/1.8.0_45"}]
> [0x250d3b0]:0 <- @begin(17) [remote-channel=0, next-outgoing-id=1, 
> incoming-window=0, outgoing-window=0, handle-max=65535]
> [0x250d3b0]:0 <- @flow(19) [next-incoming-id=0, incoming-window=2147483647, 
> next-outgoing-id=1, outgoing-window=0]
> [0x250d3b0]:0 <- @attach(18) [name="sender-xxx", handle=0, role=true, 
> snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) 
> [address="TEST-queue"], target=@target(41) [address="TEST-queue"]]
> [0x250d3b0]:0 <- @flow(19) [next-incoming-id=0, incoming-window=2147483647, 
> next-outgoing-id=1, outgoing-window=0, handle=0, delivery-count=0, 
> link-credit=1000]
> [0x250d3b0]:0 -> @transfer(20) [handle=0, delivery-id=0, 
> delivery-tag=b"\x00\x00\x00\x00\x00\x00\x00\x00", message-format=0, 
> settled=true, more=false] (131) "\x00[…]"
> #
> {code}
> Not working in >0.9.1.1:
> {code}
> # PN_TRACE_FRM=1 ./meow.py
> [0x18aa060]:  -> SASL
> [0x18aa060]:  <- SASL
> [0x18aa060]:0 <- @sasl-mechanisms(64) 
> [sasl-server-mechanisms=@PN_SYMBOL[:PLAIN, :ANONYMOUS]]
> [0x18aa060]:0 -> @sasl-init(65) [mechanism=:PLAIN, 
> initial-response=b"the_username\x00the_username\x00the_password"]
> [0x18aa060]:0 <- @sasl-outcome(68) [code=1]
> [0x18aa060]:  -> EOS
> #
> {code}
> When using >0.9.1.1 and using SSL it does the same BUT then just hangs. 
> Should we open a seperate Jira for this?:
> {code}
> # PN_TRACE_FRM=1 time ./meow.py
> [0xa5d060]:  -> SASL
> [0xa5d060]:  <- SASL
> [0xa5d060]:0 <- @sasl-mechanisms(64) 
> [sasl-server-mechanisms=@PN_SYMBOL[:PLAIN, :ANONYMOUS]]
> [0xa5d060]:0 -> @sasl-init(65) [mechanism=:PLAIN, 
> initial-response=b"the_username\x00the_username\x00the_password"]
> [0xa5d060]:0 <- @sasl-outcome(68) [code=1]
> ^CTraceback (most recent call last):
>   File "./meow.py", line 12, in 
> messenger.send()
>   File "/usr/local/lib/python2.7/dist-packages/proton/__init__.py", line 568, 
> in send
> self._check(pn_messenger_send(self._mng, n))
> KeyboardInterrupt
> Command exited with non-zero status 1
> 

[jira] [Closed] (PROTON-1051) utils.ConnectionClosed.__init__() references non-existing 'url' attribute

2015-11-19 Thread Gordon Sim (JIRA)

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

Gordon Sim closed PROTON-1051.
--
Resolution: Duplicate

> utils.ConnectionClosed.__init__() references non-existing 'url' attribute
> -
>
> Key: PROTON-1051
> URL: https://issues.apache.org/jira/browse/PROTON-1051
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: python-binding
>Affects Versions: 0.9
> Environment: Observed: python-qpid-proton-0.9-2.el7.x86_64
> Looks like it also exists in: python-qpid-proton-0.9-7.el7.x86_64
>Reporter: Jeff Ortel
>
> utils.ConnectionClosed.__init__() raises exception:
> AttributeError: 'ConnectionClosed' object has no attribute 'url'



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PROTON-1044) Create/Delete of BlockingConnection leaks file descriptors

2015-11-10 Thread Gordon Sim (JIRA)

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

Gordon Sim commented on PROTON-1044:


In the attached reproducer, if you call container.stop() before trying to 
delete it, there is no leak of file descriptors. Once created the reactor must 
be stopped in order to clean everything up.

Trying out the following variation on the attached reproducer, I also see no 
growth in the number of consumed file descriptors:

{noformat}
import os
import gc
from time import sleep

from proton.utils import BlockingConnection


print os.getpid()

for i in range(1000):
print 'pass #{n}'.format(n=i)
con = None
try:
con = BlockingConnection('localhost')
except Exception as e:
print e
finally:
if con:
con.close()
del con
gc.collect()
sleep(1)
{noformat}

Note however that this is based on the latest code upstream, including the most 
recent fix to PROTON-1000 which may be relevant.

> Create/Delete of BlockingConnection leaks file descriptors
> --
>
> Key: PROTON-1044
> URL: https://issues.apache.org/jira/browse/PROTON-1044
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: python-binding
>Affects Versions: 0.9
> Environment: Fedora 22
>Reporter: Jeff Ortel
> Attachments: jortel.py
>
>
> Each time a BlockingConnection is created, it creates a Container.  The 
> Container() opens (2) file descriptors which are never closed.  The result is 
> that (2) file descriptors are leaked for each time BlockingConnection() is 
> called even if properly closed.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (PROTON-1005) Factor anonymous-relay handling out of the examples

2015-11-10 Thread Gordon Sim (JIRA)

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

Gordon Sim resolved PROTON-1005.

Resolution: Fixed

> Factor anonymous-relay handling out of the examples
> ---
>
> Key: PROTON-1005
> URL: https://issues.apache.org/jira/browse/PROTON-1005
> Project: Qpid Proton
>  Issue Type: Improvement
>  Components: python-binding
>Reporter: Justin Ross
>Assignee: Gordon Sim
>
> We'd prefer to handle it internally so the user need not confront it.
> http://qpid.apache.org/releases/qpid-proton-0.10/proton/python/examples/proton_server.py.html
> http://qpid.apache.org/releases/qpid-proton-0.10/proton/python/examples/server.py.html



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PROTON-1044) Create/Delete of BlockingConnection leaks file descriptors

2015-11-10 Thread Gordon Sim (JIRA)

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

Gordon Sim commented on PROTON-1044:


Note the above snippet doesn't leak whether or not there is anything listening 
on the specified port.

> Create/Delete of BlockingConnection leaks file descriptors
> --
>
> Key: PROTON-1044
> URL: https://issues.apache.org/jira/browse/PROTON-1044
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: python-binding
>Affects Versions: 0.9
> Environment: Fedora 22
>Reporter: Jeff Ortel
> Attachments: jortel.py
>
>
> Each time a BlockingConnection is created, it creates a Container.  The 
> Container() opens (2) file descriptors which are never closed.  The result is 
> that (2) file descriptors are leaked for each time BlockingConnection() is 
> called even if properly closed.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (PROTON-1000) Connection leak on heartbeat-timeouted connections

2015-11-10 Thread Gordon Sim (JIRA)

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

Gordon Sim resolved PROTON-1000.

   Resolution: Fixed
Fix Version/s: (was: 0.11)
   0.12.0

> Connection leak on heartbeat-timeouted connections
> --
>
> Key: PROTON-1000
> URL: https://issues.apache.org/jira/browse/PROTON-1000
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: python-binding
>Affects Versions: 0.9
>Reporter: Pavel Moravec
>Assignee: Gordon Sim
> Fix For: 0.12.0
>
>
> Using gofer/katello-agent that uses BlockingConnection from Proton Reactor 
> with heartbeats set up, if some connection timeouts due to the heartbeats, 
> Proton does not close the TCP connection. That causes TCP connection leak, 
> despite gofer properly called BlockingConnection.close() and forgot any 
> reference to that class instance.
> Checking tcpdump, Proton simply ignores the timeouted connections - it does 
> not respond anyhow to the communication partner whatever it sends (in some 
> scenarios it sends some AMQP performative that Proton was assumed to respond, 
> in other scenario the communication peer dropped the TCP connection by 
> sending FIN+ACK packet but Proton didn't send FIN packet back - the only 
> stuff seen in tcpdump is ACKing on TCP layer made by OS, not by Proton). And 
> Proton ignores an attempt of Proton reactor to close the 
> connection/container, raising:
> Sep 21 15:02:35 my-capsule goferd: File 
> "/usr/lib64/python2.7/site-packages/proton/utils.py", line 263, in 
> on_transport_closed
> Sep 21 15:02:35 my-capsule goferd: raise ConnectionException("Connection %s 
> disconnected" % self.url);
> Sep 21 15:02:35 my-capsule goferd: ConnectionException: Connection 
> amqps://satellite.example.com:5647 disconnected
> for SSL connections, and raising:
> Sep 21 14:56:28 my-capsule goferd: File 
> "/usr/lib64/python2.7/site-packages/proton/utils.py", line 259, in 
> on_transport_tail_closed
> Sep 21 14:56:28 my-capsule goferd: self.on_transport_closed(event)
> Sep 21 14:56:28 my-capsule goferd: File 
> "/usr/lib64/python2.7/site-packages/proton/utils.py", line 263, in 
> on_transport_closed
> Sep 21 14:56:28 my-capsule goferd: raise ConnectionException("Connection %s 
> disconnected" % self.url);
> Sep 21 14:56:28 my-capsule goferd: ConnectionException: Connection 
> amqps://satellite.example.com:5647 disconnected
> (some difference between SSL and nonSSL could come from the fact that in my 
> case the server part - qdrouterd / Qpid Dispatch Router - sends FIN+ACK 
> packet for nonSSL connection, while it does not send anything for SSL 
> connection and continue for sending empty AMQP frames due to heartbeats 
> enabled forever)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (PROTON-1042) Can't distinguish between null target and null address on a target

2015-11-09 Thread Gordon Sim (JIRA)
Gordon Sim created PROTON-1042:
--

 Summary: Can't distinguish between null target and null address on 
a target
 Key: PROTON-1042
 URL: https://issues.apache.org/jira/browse/PROTON-1042
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.11
Reporter: Gordon Sim


In both cases pn_terminus_get_type() returns PN_UNSPECIFIED. Looking at the 
source for pn_do_attach() in transport.c, it appears that 'target' is used to 
hold the target address and  if that is not specified (and the target is not a 
coordinator, it is left as unspecified).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (PROTON-1042) Can't distinguish between null target and null address on a target

2015-11-09 Thread Gordon Sim (JIRA)

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

Gordon Sim resolved PROTON-1042.

   Resolution: Fixed
 Assignee: Gordon Sim
Fix Version/s: 0.12.0

> Can't distinguish between null target and null address on a target
> --
>
> Key: PROTON-1042
> URL: https://issues.apache.org/jira/browse/PROTON-1042
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: proton-c
>Affects Versions: 0.11
>Reporter: Gordon Sim
>Assignee: Gordon Sim
> Fix For: 0.12.0
>
>
> In both cases pn_terminus_get_type() returns PN_UNSPECIFIED. Looking at the 
> source for pn_do_attach() in transport.c, it appears that 'target' is used to 
> hold the target address and  if that is not specified (and the target is not 
> a coordinator, it is left as unspecified).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Assigned] (PROTON-1005) Factor anonymous-relay handling out of the examples

2015-11-06 Thread Gordon Sim (JIRA)

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

Gordon Sim reassigned PROTON-1005:
--

Assignee: Gordon Sim

> Factor anonymous-relay handling out of the examples
> ---
>
> Key: PROTON-1005
> URL: https://issues.apache.org/jira/browse/PROTON-1005
> Project: Qpid Proton
>  Issue Type: Improvement
>  Components: python-binding
>Reporter: Justin Ross
>Assignee: Gordon Sim
>
> We'd prefer to handle it internally so the user need not confront it.
> http://qpid.apache.org/releases/qpid-proton-0.10/proton/python/examples/proton_server.py.html
> http://qpid.apache.org/releases/qpid-proton-0.10/proton/python/examples/server.py.html



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (PROTON-1040) BlockingConnection fails to send heartbeats if timeout is None and no local idel time is specified

2015-11-04 Thread Gordon Sim (JIRA)
Gordon Sim created PROTON-1040:
--

 Summary: BlockingConnection fails to send heartbeats if timeout is 
None and no local idel time is specified
 Key: PROTON-1040
 URL: https://issues.apache.org/jira/browse/PROTON-1040
 Project: Qpid Proton
  Issue Type: Bug
  Components: python-binding
Affects Versions: 0.11
Reporter: Gordon Sim
Assignee: Gordon Sim
 Fix For: 0.12.0






--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (PROTON-1040) BlockingConnection fails to send heartbeats if timeout is None and no local idle time is specified

2015-11-04 Thread Gordon Sim (JIRA)

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

Gordon Sim updated PROTON-1040:
---
Priority: Minor  (was: Major)
 Summary: BlockingConnection fails to send heartbeats if timeout is None 
and no local idle time is specified  (was: BlockingConnection fails to send 
heartbeats if timeout is None and no local idel time is specified)

> BlockingConnection fails to send heartbeats if timeout is None and no local 
> idle time is specified
> --
>
> Key: PROTON-1040
> URL: https://issues.apache.org/jira/browse/PROTON-1040
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: python-binding
>Affects Versions: 0.11
>Reporter: Gordon Sim
>Assignee: Gordon Sim
>Priority: Minor
> Fix For: 0.12.0
>
>




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (PROTON-1040) BlockingConnection fails to send heartbeats if timeout is None and no local idle time is specified

2015-11-04 Thread Gordon Sim (JIRA)

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

Gordon Sim resolved PROTON-1040.

Resolution: Fixed

> BlockingConnection fails to send heartbeats if timeout is None and no local 
> idle time is specified
> --
>
> Key: PROTON-1040
> URL: https://issues.apache.org/jira/browse/PROTON-1040
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: python-binding
>Affects Versions: 0.11
>Reporter: Gordon Sim
>Assignee: Gordon Sim
>Priority: Minor
> Fix For: 0.12.0
>
>




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (PROTON-1038) message-format on received transfer is never checked (nor made available for application to check)

2015-11-04 Thread Gordon Sim (JIRA)
Gordon Sim created PROTON-1038:
--

 Summary: message-format on received transfer is never checked (nor 
made available for application to check)
 Key: PROTON-1038
 URL: https://issues.apache.org/jira/browse/PROTON-1038
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.11
Reporter: Gordon Sim
Priority: Minor






--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (PROTON-1003) ssl transport layer does not define an error handler

2015-11-03 Thread Gordon Sim (JIRA)

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

Gordon Sim resolved PROTON-1003.

Resolution: Fixed

This JIRA was raised for  the specific issue of the error handler at the ssl 
transport layer, which is now resolved. PROTON-1000 covers the general leak, 
for which there is apparently still some fix needed. Hence resolving this and 
re-opening PROTON-1000.

> ssl transport layer does not define an error handler
> 
>
> Key: PROTON-1003
> URL: https://issues.apache.org/jira/browse/PROTON-1003
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: proton-c
>Affects Versions: 0.10
>Reporter: Gordon Sim
>Assignee: Gordon Sim
> Fix For: 0.11
>
>
> When the local process times out an ssl based connection due to lack of 
> heartbeats from its peer, the underlying socket is never closed. The cause of 
> this appears to be that the ssl transport layer doesn't define an error 
> handler, which is what is used to notify it of the locally initiated timeout.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (PROTON-876) python examples installed under share are not executable

2015-10-28 Thread Gordon Sim (JIRA)

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

Gordon Sim updated PROTON-876:
--
Fix Version/s: (was: 0.11)
   0.12.0

> python examples installed under share are not executable
> 
>
> Key: PROTON-876
> URL: https://issues.apache.org/jira/browse/PROTON-876
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: python-binding
>Affects Versions: 0.9, 0.9.1
>Reporter: Gordon Sim
>Assignee: Gordon Sim
>Priority: Minor
> Fix For: 0.12.0
>
>




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (PROTON-1030) Reactor never freed if handler/global_handler set

2015-10-28 Thread Gordon Sim (JIRA)

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

Gordon Sim resolved PROTON-1030.

Resolution: Fixed

Since no one else seems to have an interest in this, I'll consider it resolved 
by my fix.

> Reactor never freed if handler/global_handler set
> -
>
> Key: PROTON-1030
> URL: https://issues.apache.org/jira/browse/PROTON-1030
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: python-binding
>Affects Versions: 0.10
>Reporter: Gordon Sim
> Fix For: 0.11
>
>
> E.g.
> {noformat}
> from proton.reactor import Reactor
> class Print(object):
> def on_unhandled(self, name, event):
> print("%s %s" % (name, event))
> while True:
> reactor = Reactor()
> reactor.handler = Print()
> reactor.start()
> reactor.stop()
> {noformat}
> Will grow in memory and eventually crash. On debugging the reactor is never 
> finalised.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (PROTON-1028) connect failue when creating BlockingConnection result in memory leak

2015-10-21 Thread Gordon Sim (JIRA)
Gordon Sim created PROTON-1028:
--

 Summary: connect failue when creating BlockingConnection result in 
memory leak
 Key: PROTON-1028
 URL: https://issues.apache.org/jira/browse/PROTON-1028
 Project: Qpid Proton
  Issue Type: Bug
  Components: python-binding
Affects Versions: 0.10
Reporter: Gordon Sim
Assignee: Gordon Sim
 Fix For: 0.11


E.g.  assuming there is nothing listening on port 12345, run the following:

{noformat}
while True:
  sleep(0.1)
  try:
conn = BlockingConnection("amqp://localhost:12345", heartbeat=2)
  except ConnectionException, e:
print e
{noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PROTON-1025) CLOSE_WAIT leak following reproducer for PROTON-1023 / PROTON-1024

2015-10-21 Thread Gordon Sim (JIRA)

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

Gordon Sim commented on PROTON-1025:


The example above 'leaks' BlockingConnection instances. I.e. if rec2 is created 
successfully, the while loop will proceed and the BlockingConnection instance 
will not have been closed when a new instance is assigned to the conn variable.

Perhaps the BlockingConnection could close itself when it becomes unreferenced, 
but at present the expectation is that it should be explicitly closed.

> CLOSE_WAIT leak following reproducer for PROTON-1023 / PROTON-1024
> --
>
> Key: PROTON-1025
> URL: https://issues.apache.org/jira/browse/PROTON-1025
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: python-binding
>Affects Versions: 0.10
>Reporter: Pavel Moravec
>Priority: Minor
>
> Following reproducer for PROTON-1023 or PROTON-1024 (attached at the botton), 
> client leaves some sockets in CLOSE_WAIT state forever.
> I tested the reproducer before & after those two fixes and it is present in 
> both. I.e. this bug is not a regression caused by PROTON-1023 or PROTON-1024.
> Reproducer:
> (assuming localhost runs qdrouterd that is restarted every 5 seconds in a 
> loop):
> {code}
> #!/usr/bin/python
> from time import sleep
> from uuid import uuid4
> from proton import ConnectionException
> from proton.utils import BlockingConnection
> import traceback
> import random
> while True:
>   sleep(random.uniform(0.3,3))
>   try:
> conn = BlockingConnection("proton+amqp://localhost:5672", 
> ssl_domain=None, heartbeat=2)
> rec = conn.create_receiver("another_address", name=str(uuid4()), 
> dynamic=False, options=None)
> print "sleeping.."
> sleep(random.uniform(0.3,3))
> rec2 = conn.create_receiver("some_address", name=str(uuid4()), 
> dynamic=False, options=None)
>   except ConnectionException:
> try:
>   if conn:
> conn.close()
> except Exception, e:
>   print e
>   print(traceback.format_exc())
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PROTON-1030) Reactor never freed if handler/global_handler set

2015-10-21 Thread Gordon Sim (JIRA)

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

Gordon Sim commented on PROTON-1030:


I've committed a fix for this in the python binding. It feels like this should 
really be handled more cleanly in the c code, but the reference counting there 
is still something of a mystery to me.

> Reactor never freed if handler/global_handler set
> -
>
> Key: PROTON-1030
> URL: https://issues.apache.org/jira/browse/PROTON-1030
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: python-binding
>Affects Versions: 0.10
>Reporter: Gordon Sim
> Fix For: 0.11
>
>
> E.g.
> {noformat}
> from proton.reactor import Reactor
> class Print(object):
> def on_unhandled(self, name, event):
> print("%s %s" % (name, event))
> while True:
> reactor = Reactor()
> reactor.handler = Print()
> reactor.start()
> reactor.stop()
> {noformat}
> Will grow in memory and eventually crash. On debugging the reactor is never 
> finalised.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (PROTON-1030) Reactor never freed if handler/global_handler set

2015-10-21 Thread Gordon Sim (JIRA)

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

Gordon Sim updated PROTON-1030:
---
Description: 
E.g.

{noformat}
from proton.reactor import Reactor

class Print(object):
def on_unhandled(self, name, event):
print("%s %s" % (name, event))


while True:
reactor = Reactor()
reactor.handler = Print()
reactor.start()
reactor.stop()
{noformat}

Will grow in memory and eventually crash. On debugging the reactor is never 
finalised.

  was:
E.g.

{noformat}
from proton.reactor import Container, Reactor

class Print(object):
def on_unhandled(self, name, event):
print("%s %s" % (name, event))


while True:
container = Reactor()
container.handler = Print()
container.start()
container.stop()
{noformat}

Will grow in memory and eventually crash. On debugging the reactor is never 
finalised.


> Reactor never freed if handler/global_handler set
> -
>
> Key: PROTON-1030
> URL: https://issues.apache.org/jira/browse/PROTON-1030
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: python-binding
>Affects Versions: 0.10
>Reporter: Gordon Sim
> Fix For: 0.11
>
>
> E.g.
> {noformat}
> from proton.reactor import Reactor
> class Print(object):
> def on_unhandled(self, name, event):
> print("%s %s" % (name, event))
> while True:
> reactor = Reactor()
> reactor.handler = Print()
> reactor.start()
> reactor.stop()
> {noformat}
> Will grow in memory and eventually crash. On debugging the reactor is never 
> finalised.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (PROTON-1028) BlockingConnection leaks due to cyclical reference

2015-10-21 Thread Gordon Sim (JIRA)

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

Gordon Sim resolved PROTON-1028.

Resolution: Fixed

> BlockingConnection leaks due to cyclical reference
> --
>
> Key: PROTON-1028
> URL: https://issues.apache.org/jira/browse/PROTON-1028
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: python-binding
>Affects Versions: 0.10
>Reporter: Gordon Sim
>Assignee: Gordon Sim
> Fix For: 0.11
>
>
> E.g.  (whether or not a server is listening):
> {noformat}
> while True:
>   sleep(0.1)
>   try:
> conn = BlockingConnection("amqp://localhost")
>   except ConnectionException, e:
> print e
> {noformat}
> This keeps increasing memory until eventually it core dumps.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (PROTON-1024) Disconnect during close not handled correctly in BlockingConnection

2015-10-20 Thread Gordon Sim (JIRA)
Gordon Sim created PROTON-1024:
--

 Summary: Disconnect during close not handled correctly in 
BlockingConnection
 Key: PROTON-1024
 URL: https://issues.apache.org/jira/browse/PROTON-1024
 Project: Qpid Proton
  Issue Type: Bug
  Components: python-binding
Affects Versions: 0.10
Reporter: Gordon Sim
Assignee: Gordon Sim
 Fix For: 0.11


If the connection is lost (or aborted) after issuing the close, but before the 
peer responds, the BlockingConnection gets stuck in an endless loop.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (PROTON-1023) Incorrect handling of failed attach for BlockingConnection

2015-10-19 Thread Gordon Sim (JIRA)
Gordon Sim created PROTON-1023:
--

 Summary: Incorrect handling of failed attach for BlockingConnection
 Key: PROTON-1023
 URL: https://issues.apache.org/jira/browse/PROTON-1023
 Project: Qpid Proton
  Issue Type: Bug
  Components: python-binding
Affects Versions: 0.10
Reporter: Gordon Sim
Assignee: Gordon Sim
 Fix For: 0.11


Where the attach response and subsequent detach are separated a bit, the 
BlockingConnection attempts to wait a little for the detach to get the actual 
error condition. However the code for this uses the wrong method name, meaning 
the exception thrown would be incorrect ('AttributeError: _waitForClose not in 
_attrs', rather than a LinkDetached as expected). In addition, if the detach is 
not received a Timeout is raised rather than a LinkException with the local 
link being closed.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (PROTON-1023) Incorrect handling of failed attach for BlockingConnection

2015-10-19 Thread Gordon Sim (JIRA)

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

Gordon Sim resolved PROTON-1023.

Resolution: Fixed

> Incorrect handling of failed attach for BlockingConnection
> --
>
> Key: PROTON-1023
> URL: https://issues.apache.org/jira/browse/PROTON-1023
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: python-binding
>Affects Versions: 0.10
>Reporter: Gordon Sim
>Assignee: Gordon Sim
> Fix For: 0.11
>
>
> Where the attach response and subsequent detach are separated a bit, the 
> BlockingConnection attempts to wait a little for the detach to get the actual 
> error condition. However the code for this uses the wrong method name, 
> meaning the exception thrown would be incorrect ('AttributeError: 
> _waitForClose not in _attrs', rather than a LinkDetached as expected). In 
> addition, if the detach is not received a Timeout is raised rather than a 
> LinkException with the local link being closed.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Closed] (PROTON-924) links are not uniquely named by messenger

2015-10-02 Thread Gordon Sim (JIRA)

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

Gordon Sim closed PROTON-924.
-
Resolution: Duplicate

> links are not uniquely named by messenger
> -
>
> Key: PROTON-924
> URL: https://issues.apache.org/jira/browse/PROTON-924
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: proton-c
>Affects Versions: 0.10
>Reporter: Gordon Sim
>
> If sending messages to different nodes in the same container, messenger will 
> establish multiple links but will use the same name - sender-xxx - for each 
> of them which violates the spec section 2.6.1



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (PROTON-1008) Using a blank mech_list disables authentication

2015-10-02 Thread Gordon Sim (JIRA)

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

Gordon Sim resolved PROTON-1008.

Resolution: Fixed

> Using a blank mech_list disables authentication
> ---
>
> Key: PROTON-1008
> URL: https://issues.apache.org/jira/browse/PROTON-1008
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: python-binding
>Affects Versions: 0.11
>Reporter: Ted Ross
>Assignee: Gordon Sim
> Fix For: 0.11
>
>
> This bug was introduced in commit
> 
> https://github.com/apache/qpid-proton/commit/14956b07edc3de93f67179c753bbedcd9eba51a6
> If the client leaves allowed_mechs as None, the SASL protocol is not even 
> executed.  I claim that allowed_mechs is used to restrict the set of 
> acceptable mechanisms.  If it is None, then all available mechanisms may be 
> used.
> This bug causes a failure in the Qpid Dispatch test suite 
> (system_tests_qdstat).  The failure is when the server requires 
> authentication and will accept EXTERNAL and the client has a valid 
> client-certificate but doesn't use the sasl protocol because qdstat doesn't 
> (and can't) set the allowed_mechs.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Assigned] (PROTON-1004) Inconsistency in container.create_sender

2015-09-29 Thread Gordon Sim (JIRA)

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

Gordon Sim reassigned PROTON-1004:
--

Assignee: Gordon Sim

> Inconsistency in container.create_sender
> 
>
> Key: PROTON-1004
> URL: https://issues.apache.org/jira/browse/PROTON-1004
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: python-binding
>Affects Versions: 0.10
>Reporter: Ted Ross
>Assignee: Gordon Sim
>
> For URL = "localhost:5672/examples"
> Using the API in two different ways:
> {noformat}
> def on_start(self, event):
> event.container.create_sender(URL)
> {noformat}
> Yields an attach with the following target:
> [address="examples", durable=0, timeout=0, dynamic=false]
> But this variation yields something different:
> {noformat}
> def on_start(self, event):
> conn = event.container.connect(URL, heartbeat=8)
> event.container.create_sender(conn, URL)
> {noformat}
> yields:
> [address="localhost:5672/examples", durable=0, timeout=0, dynamic=false]
> The attach targets should be consistent across these examples.  I believe the 
> first example is the correct one.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Assigned] (PROTON-1008) Using a blank mech_list disables authentication

2015-09-29 Thread Gordon Sim (JIRA)

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

Gordon Sim reassigned PROTON-1008:
--

Assignee: Gordon Sim

> Using a blank mech_list disables authentication
> ---
>
> Key: PROTON-1008
> URL: https://issues.apache.org/jira/browse/PROTON-1008
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: python-binding
>Affects Versions: 0.11
>Reporter: Ted Ross
>Assignee: Gordon Sim
> Fix For: 0.11
>
>
> This bug was introduced in commit
> 
> https://github.com/apache/qpid-proton/commit/14956b07edc3de93f67179c753bbedcd9eba51a6
> If the client leaves allowed_mechs as None, the SASL protocol is not even 
> executed.  I claim that allowed_mechs is used to restrict the set of 
> acceptable mechanisms.  If it is None, then all available mechanisms may be 
> used.
> This bug causes a failure in the Qpid Dispatch test suite 
> (system_tests_qdstat).  The failure is when the server requires 
> authentication and will accept EXTERNAL and the client has a valid 
> client-certificate but doesn't use the sasl protocol because qdstat doesn't 
> (and can't) set the allowed_mechs.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PROTON-1004) Inconsistency in container.create_sender

2015-09-29 Thread Gordon Sim (JIRA)

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

Gordon Sim commented on PROTON-1004:


There are two quite different modes of use for the 
create_sender/create_receiver methods, as documented in pydoc. In one you give 
a connection object and the actual target/source address. In the other you give 
a url from which a connection is created and the actual target/source is 
inferred. So the behaviour is as intended. If in the first form you treated the 
target as a url to be parse, it would make it more awkward to attach to a 
target in the url syntax (e.g. with activemq, topics might be identified as 
topic://my-topic).

Whether having the two modes is worth the confusion is I think subject to 
debate. I'm also open to ways of making it nicer overall. However I don't think 
simply trying to parse the exact target when using that mode is the correct 
approach.

> Inconsistency in container.create_sender
> 
>
> Key: PROTON-1004
> URL: https://issues.apache.org/jira/browse/PROTON-1004
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: python-binding
>Affects Versions: 0.10
>Reporter: Ted Ross
>Assignee: Gordon Sim
>
> For URL = "localhost:5672/examples"
> Using the API in two different ways:
> {noformat}
> def on_start(self, event):
> event.container.create_sender(URL)
> {noformat}
> Yields an attach with the following target:
> [address="examples", durable=0, timeout=0, dynamic=false]
> But this variation yields something different:
> {noformat}
> def on_start(self, event):
> conn = event.container.connect(URL, heartbeat=8)
> event.container.create_sender(conn, URL)
> {noformat}
> yields:
> [address="localhost:5672/examples", durable=0, timeout=0, dynamic=false]
> The attach targets should be consistent across these examples.  I believe the 
> first example is the correct one.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PROTON-1008) Using a blank mech_list disables authentication

2015-09-29 Thread Gordon Sim (JIRA)

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

Gordon Sim commented on PROTON-1008:


The commit referenced above was made to revert to pre 0.10 behaviour, where a 
SASL layer was not used unless a username was specified (even if that was 
'anonymous'). All it does is avoids making a call to pn_sasl_allowed_mechs if 
no mechanisms have been specified. I believe that is actually sensible 
behaviour.

There does need to be a way to avoid using SASL, though whether it needs to be 
off unless requested as it was prior to the 0.10 release is certainly debatable.

> Using a blank mech_list disables authentication
> ---
>
> Key: PROTON-1008
> URL: https://issues.apache.org/jira/browse/PROTON-1008
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: python-binding
>Affects Versions: 0.11
>Reporter: Ted Ross
>Assignee: Gordon Sim
> Fix For: 0.11
>
>
> This bug was introduced in commit
> 
> https://github.com/apache/qpid-proton/commit/14956b07edc3de93f67179c753bbedcd9eba51a6
> If the client leaves allowed_mechs as None, the SASL protocol is not even 
> executed.  I claim that allowed_mechs is used to restrict the set of 
> acceptable mechanisms.  If it is None, then all available mechanisms may be 
> used.
> This bug causes a failure in the Qpid Dispatch test suite 
> (system_tests_qdstat).  The failure is when the server requires 
> authentication and will accept EXTERNAL and the client has a valid 
> client-certificate but doesn't use the sasl protocol because qdstat doesn't 
> (and can't) set the allowed_mechs.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (PROTON-1010) BlockingConnection leaks sockets after close() is called

2015-09-29 Thread Gordon Sim (JIRA)

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

Gordon Sim resolved PROTON-1010.

Resolution: Fixed
  Assignee: Gordon Sim

> BlockingConnection leaks sockets after close() is called
> 
>
> Key: PROTON-1010
> URL: https://issues.apache.org/jira/browse/PROTON-1010
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: proton-c
>Affects Versions: 0.10
>Reporter: Ken Giusti
>Assignee: Gordon Sim
> Fix For: 0.11
>
> Attachments: pavel.py
>
>
> Using the attached reproducer and connecting to a qpid-dispatch router, there 
> are many connections that are left half-closed indefinitely.  The reproducer 
> fails to close it's socket.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PROTON-1004) Inconsistency in container.create_sender

2015-09-29 Thread Gordon Sim (JIRA)

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

Gordon Sim commented on PROTON-1004:


Proposal:

Perhaps the behaviour can be made less confusing by adding a couple of 
explicitly named arguments to the create_sender/create_receiver calls, 
specifically: url - through which a url is passed, and connection -  through 
which a connection to use is passed.

The following would then be valid:

{noformat}
conn = event.container.connect(amqp://myhost:/xyz, heartbeat=8)
event.container.create_sender(url=amqp://myhost:/xyz, connection=conn)
{noformat}

and would establish a link to the node xyz, using the connection first 
established. The same could be done by:

{noformat}
conn = event.container.connect(amqp://myhost:/xyz, heartbeat=8)
event.container.create_sender(target=xyz, connection=conn)
{noformat}

As before you could skip the explicit connect step if desired:

{noformat}
event.container.create_sender(url=amqp://myhost:/xyz)
{noformat}

In which case a new connection would be established based on the details 
specified in the url.

This would not change any current use cases, but introducing the explicit names 
would I think make things clearer and could be emphasised in the docs. The 
first positional (un-named) arg would be treated as it is now, either as a 
connection or as a url, depending on type.

Thoughts?

> Inconsistency in container.create_sender
> 
>
> Key: PROTON-1004
> URL: https://issues.apache.org/jira/browse/PROTON-1004
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: python-binding
>Affects Versions: 0.10
>Reporter: Ted Ross
>Assignee: Gordon Sim
>
> For URL = "localhost:5672/examples"
> Using the API in two different ways:
> {noformat}
> def on_start(self, event):
> event.container.create_sender(URL)
> {noformat}
> Yields an attach with the following target:
> [address="examples", durable=0, timeout=0, dynamic=false]
> But this variation yields something different:
> {noformat}
> def on_start(self, event):
> conn = event.container.connect(URL, heartbeat=8)
> event.container.create_sender(conn, URL)
> {noformat}
> yields:
> [address="localhost:5672/examples", durable=0, timeout=0, dynamic=false]
> The attach targets should be consistent across these examples.  I believe the 
> first example is the correct one.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PROTON-1008) Using a blank mech_list disables authentication

2015-09-29 Thread Gordon Sim (JIRA)

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

Gordon Sim commented on PROTON-1008:


{quote}Is it ever sensible to not use SASL?{quote} 

The protocol is certainly designed to allow it to be optional. If you are using 
SSL then the SASL layer doesn't really add anything. However the main reason 
for the change was to get back to the behaviour pre 0.10, that I inadvertently 
broke by exposing the allowed mechanisms option.
 
{quote}As it stands, I don't know how to turn SASL on.{quote}

Agreed, and this is I think the actual issue. We need a way to easily control 
whether sasl is used or not.

{quote}There may be existing mechanisms available (EXTERNAL, GSSAPI), but I 
don't have a username to supply and I don't necessarily know which mechanisms 
to put in the allowed_mechs list.{quote}

Agreed again, and for this reason I think the allowed_mechs property is not the 
ideal way of turning sasl on. (And so I think the change mentioned in the bug 
description is actually correct).

Proposal:

What if we add a new container level option (perhaps also with per-connection 
override) for controlling whether or not sasl is to be used. We can set that to 
True by default (though that would be a slight change in behaviour from pre 
0.10, the 0.10 release actually has sasl forced on always, so this is an 
improvement.
 

> Using a blank mech_list disables authentication
> ---
>
> Key: PROTON-1008
> URL: https://issues.apache.org/jira/browse/PROTON-1008
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: python-binding
>Affects Versions: 0.11
>Reporter: Ted Ross
>Assignee: Gordon Sim
> Fix For: 0.11
>
>
> This bug was introduced in commit
> 
> https://github.com/apache/qpid-proton/commit/14956b07edc3de93f67179c753bbedcd9eba51a6
> If the client leaves allowed_mechs as None, the SASL protocol is not even 
> executed.  I claim that allowed_mechs is used to restrict the set of 
> acceptable mechanisms.  If it is None, then all available mechanisms may be 
> used.
> This bug causes a failure in the Qpid Dispatch test suite 
> (system_tests_qdstat).  The failure is when the server requires 
> authentication and will accept EXTERNAL and the client has a valid 
> client-certificate but doesn't use the sasl protocol because qdstat doesn't 
> (and can't) set the allowed_mechs.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (PROTON-1006) Sending pre-settled messages over the python blocking api waits indefinetly

2015-09-29 Thread Gordon Sim (JIRA)

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

Gordon Sim updated PROTON-1006:
---
Fix Version/s: (was: 0.10.1)
   0.11

> Sending pre-settled messages over the python blocking api waits indefinetly
> ---
>
> Key: PROTON-1006
> URL: https://issues.apache.org/jira/browse/PROTON-1006
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: python-binding
>Affects Versions: 0.10
>Reporter: Ganesh Murthy
>Assignee: Gordon Sim
> Fix For: 0.11
>
> Attachments: helloworld_blocking_presettled.py
>
>
> Sending a pre-settled message (snd_settle_mode = Link.SND_SETTLED) over a 
> blocking connection (using a blocking sender) blocks indefinetly.
> Steps to reproduce - 
> 1. Modify the helloworld_blocking.py (located in examples/python folder) to 
> add an AtMostOnce() call before creating the sender (or use the attached file 
> helloworld_blocking_presettled.py)
> 2. Start broker.py (located in examples/python folder)
> 3. Run helloworld_blocking_presettled.py
> You will see that the send is blocking indefinetly.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PROTON-1008) Using a blank mech_list disables authentication

2015-09-29 Thread Gordon Sim (JIRA)

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

Gordon Sim commented on PROTON-1008:


Proposal above available in patch form here:

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

> Using a blank mech_list disables authentication
> ---
>
> Key: PROTON-1008
> URL: https://issues.apache.org/jira/browse/PROTON-1008
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: python-binding
>Affects Versions: 0.11
>Reporter: Ted Ross
>Assignee: Gordon Sim
> Fix For: 0.11
>
>
> This bug was introduced in commit
> 
> https://github.com/apache/qpid-proton/commit/14956b07edc3de93f67179c753bbedcd9eba51a6
> If the client leaves allowed_mechs as None, the SASL protocol is not even 
> executed.  I claim that allowed_mechs is used to restrict the set of 
> acceptable mechanisms.  If it is None, then all available mechanisms may be 
> used.
> This bug causes a failure in the Qpid Dispatch test suite 
> (system_tests_qdstat).  The failure is when the server requires 
> authentication and will accept EXTERNAL and the client has a valid 
> client-certificate but doesn't use the sasl protocol because qdstat doesn't 
> (and can't) set the allowed_mechs.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Reopened] (PROTON-1000) Connection leak on heartbeat-timeouted connections

2015-09-23 Thread Gordon Sim (JIRA)

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

Gordon Sim reopened PROTON-1000:


> Connection leak on heartbeat-timeouted connections
> --
>
> Key: PROTON-1000
> URL: https://issues.apache.org/jira/browse/PROTON-1000
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: python-binding
>Affects Versions: 0.9
>Reporter: Pavel Moravec
>Assignee: Gordon Sim
> Fix For: 0.11
>
>
> Using gofer/katello-agent that uses BlockingConnection from Proton Reactor 
> with heartbeats set up, if some connection timeouts due to the heartbeats, 
> Proton does not close the TCP connection. That causes TCP connection leak, 
> despite gofer properly called BlockingConnection.close() and forgot any 
> reference to that class instance.
> Checking tcpdump, Proton simply ignores the timeouted connections - it does 
> not respond anyhow to the communication partner whatever it sends (in some 
> scenarios it sends some AMQP performative that Proton was assumed to respond, 
> in other scenario the communication peer dropped the TCP connection by 
> sending FIN+ACK packet but Proton didn't send FIN packet back - the only 
> stuff seen in tcpdump is ACKing on TCP layer made by OS, not by Proton). And 
> Proton ignores an attempt of Proton reactor to close the 
> connection/container, raising:
> Sep 21 15:02:35 my-capsule goferd: File 
> "/usr/lib64/python2.7/site-packages/proton/utils.py", line 263, in 
> on_transport_closed
> Sep 21 15:02:35 my-capsule goferd: raise ConnectionException("Connection %s 
> disconnected" % self.url);
> Sep 21 15:02:35 my-capsule goferd: ConnectionException: Connection 
> amqps://satellite.example.com:5647 disconnected
> for SSL connections, and raising:
> Sep 21 14:56:28 my-capsule goferd: File 
> "/usr/lib64/python2.7/site-packages/proton/utils.py", line 259, in 
> on_transport_tail_closed
> Sep 21 14:56:28 my-capsule goferd: self.on_transport_closed(event)
> Sep 21 14:56:28 my-capsule goferd: File 
> "/usr/lib64/python2.7/site-packages/proton/utils.py", line 263, in 
> on_transport_closed
> Sep 21 14:56:28 my-capsule goferd: raise ConnectionException("Connection %s 
> disconnected" % self.url);
> Sep 21 14:56:28 my-capsule goferd: ConnectionException: Connection 
> amqps://satellite.example.com:5647 disconnected
> (some difference between SSL and nonSSL could come from the fact that in my 
> case the server part - qdrouterd / Qpid Dispatch Router - sends FIN+ACK 
> packet for nonSSL connection, while it does not send anything for SSL 
> connection and continue for sending empty AMQP frames due to heartbeats 
> enabled forever)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (PROTON-1003) ssl transport layer does not define an error handler

2015-09-23 Thread Gordon Sim (JIRA)
Gordon Sim created PROTON-1003:
--

 Summary: ssl transport layer does not define an error handler
 Key: PROTON-1003
 URL: https://issues.apache.org/jira/browse/PROTON-1003
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.10
Reporter: Gordon Sim
Assignee: Ken Giusti


When the local process times out an ssl based connection due to lack of 
heartbeats from its peer, the underlying socket is never closed. The cause of 
this appears to be that the ssl transport layer doesn't define an error 
handler, which is what is used to notify it of the locally initiated timeout.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PROTON-1003) ssl transport layer does not define an error handler

2015-09-23 Thread Gordon Sim (JIRA)

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

Gordon Sim commented on PROTON-1003:


Suggested fix: https://reviews.apache.org/r/38688/

> ssl transport layer does not define an error handler
> 
>
> Key: PROTON-1003
> URL: https://issues.apache.org/jira/browse/PROTON-1003
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: proton-c
>Affects Versions: 0.10
>Reporter: Gordon Sim
>Assignee: Ken Giusti
>
> When the local process times out an ssl based connection due to lack of 
> heartbeats from its peer, the underlying socket is never closed. The cause of 
> this appears to be that the ssl transport layer doesn't define an error 
> handler, which is what is used to notify it of the locally initiated timeout.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (PROTON-1000) Connection leak on heartbeat-timeouted connections

2015-09-23 Thread Gordon Sim (JIRA)

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

Gordon Sim resolved PROTON-1000.

Resolution: Fixed

Though the previous fix does not fix the ssl issue, I have raised a separate 
JIRA for that as it is quite a distinct issue and more general than the 
blocking connection or even the python binding. See PROTON-1003, for which a 
patch that fixes the ssl based reproducer here has been proposed,

> Connection leak on heartbeat-timeouted connections
> --
>
> Key: PROTON-1000
> URL: https://issues.apache.org/jira/browse/PROTON-1000
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: python-binding
>Affects Versions: 0.9
>Reporter: Pavel Moravec
>Assignee: Gordon Sim
> Fix For: 0.11
>
>
> Using gofer/katello-agent that uses BlockingConnection from Proton Reactor 
> with heartbeats set up, if some connection timeouts due to the heartbeats, 
> Proton does not close the TCP connection. That causes TCP connection leak, 
> despite gofer properly called BlockingConnection.close() and forgot any 
> reference to that class instance.
> Checking tcpdump, Proton simply ignores the timeouted connections - it does 
> not respond anyhow to the communication partner whatever it sends (in some 
> scenarios it sends some AMQP performative that Proton was assumed to respond, 
> in other scenario the communication peer dropped the TCP connection by 
> sending FIN+ACK packet but Proton didn't send FIN packet back - the only 
> stuff seen in tcpdump is ACKing on TCP layer made by OS, not by Proton). And 
> Proton ignores an attempt of Proton reactor to close the 
> connection/container, raising:
> Sep 21 15:02:35 my-capsule goferd: File 
> "/usr/lib64/python2.7/site-packages/proton/utils.py", line 263, in 
> on_transport_closed
> Sep 21 15:02:35 my-capsule goferd: raise ConnectionException("Connection %s 
> disconnected" % self.url);
> Sep 21 15:02:35 my-capsule goferd: ConnectionException: Connection 
> amqps://satellite.example.com:5647 disconnected
> for SSL connections, and raising:
> Sep 21 14:56:28 my-capsule goferd: File 
> "/usr/lib64/python2.7/site-packages/proton/utils.py", line 259, in 
> on_transport_tail_closed
> Sep 21 14:56:28 my-capsule goferd: self.on_transport_closed(event)
> Sep 21 14:56:28 my-capsule goferd: File 
> "/usr/lib64/python2.7/site-packages/proton/utils.py", line 263, in 
> on_transport_closed
> Sep 21 14:56:28 my-capsule goferd: raise ConnectionException("Connection %s 
> disconnected" % self.url);
> Sep 21 14:56:28 my-capsule goferd: ConnectionException: Connection 
> amqps://satellite.example.com:5647 disconnected
> (some difference between SSL and nonSSL could come from the fact that in my 
> case the server part - qdrouterd / Qpid Dispatch Router - sends FIN+ACK 
> packet for nonSSL connection, while it does not send anything for SSL 
> connection and continue for sending empty AMQP frames due to heartbeats 
> enabled forever)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (PROTON-977) handler appears to get ignored

2015-08-06 Thread Gordon Sim (JIRA)
Gordon Sim created PROTON-977:
-

 Summary: handler appears to get ignored
 Key: PROTON-977
 URL: https://issues.apache.org/jira/browse/PROTON-977
 Project: Qpid Proton
  Issue Type: Bug
  Components: python-binding
Affects Versions: 0.10
Reporter: Gordon Sim
Assignee: Gordon Sim
 Fix For: 0.11


If a handler defines methods such that it is evaluated to false in a boolean 
context, then tests inside the Container and/or MessagingHandler whose aim is 
to test whether a handler is set, will fail even though there is a handler.

E.g. if the handler has a __len__() method that returns 0 when 
Container.create_receiver is called, the handler will not be set.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (PROTON-977) handler appears to get ignored

2015-08-06 Thread Gordon Sim (JIRA)

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

Gordon Sim resolved PROTON-977.
---
Resolution: Fixed

 handler appears to get ignored
 --

 Key: PROTON-977
 URL: https://issues.apache.org/jira/browse/PROTON-977
 Project: Qpid Proton
  Issue Type: Bug
  Components: python-binding
Affects Versions: 0.10
Reporter: Gordon Sim
Assignee: Gordon Sim
 Fix For: 0.11


 If a handler defines methods such that it is evaluated to false in a boolean 
 context, then tests inside the Container and/or MessagingHandler whose aim is 
 to test whether a handler is set, will fail even though there is a handler.
 E.g. if the handler has a __len__() method that returns 0 when 
 Container.create_receiver is called, the handler will not be set.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PROTON-950) SASL PLAIN over cleartext should be supported

2015-08-03 Thread Gordon Sim (JIRA)

[ 
https://issues.apache.org/jira/browse/PROTON-950?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14652352#comment-14652352
 ] 

Gordon Sim commented on PROTON-950:
---

I tried unsuccessfully to do this. It is awkward to get at the sasl object for 
a connection when using the reactor. In theory you can do so via the 
on_connection_bound method. However even doing so, and setting the new property 
to True, I was unable to connect using PLAIN over a non-ssl connection.

Without making any changes, the behaviour also seems to have changed very 
recently. Previously when attempting to connect where only PLAIN was offered by 
the broker, an error would at least be logged to the effect that 'no worthy 
mechs' could be selected, and both sides would end up disconnected. Now there 
is no error at all and the reactive examples just hang.

 SASL PLAIN over cleartext should be supported
 -

 Key: PROTON-950
 URL: https://issues.apache.org/jira/browse/PROTON-950
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.10
Reporter: Ted Ross
Assignee: Andrew Stitcher
Priority: Blocker
 Fix For: 0.10


 In the current 0.10 alpha, if SASL PLAIN is selected, it will only work if 
 the connection is encrypted (using SSL).  This is a surprising change of 
 behavior from earlier versions of Proton and it's arguable that a security 
 policy like that should be left to the application using the Proton library.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PROTON-950) SASL PLAIN over cleartext should be supported

2015-08-03 Thread Gordon Sim (JIRA)

[ 
https://issues.apache.org/jira/browse/PROTON-950?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14652406#comment-14652406
 ] 

Gordon Sim commented on PROTON-950:
---

What is the intended behaviour when cyrus is not available on the platform in 
question? Would PLAIN be allowed over a non-SSL connection in that case? To me 
that seems non-intuitive from the client's perspective.

 SASL PLAIN over cleartext should be supported
 -

 Key: PROTON-950
 URL: https://issues.apache.org/jira/browse/PROTON-950
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.10
Reporter: Ted Ross
Assignee: Andrew Stitcher
Priority: Blocker
 Fix For: 0.10


 In the current 0.10 alpha, if SASL PLAIN is selected, it will only work if 
 the connection is encrypted (using SSL).  This is a surprising change of 
 behavior from earlier versions of Proton and it's arguable that a security 
 policy like that should be left to the application using the Proton library.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (PROTON-972) Support the heartbeat option in BlockingConnection

2015-08-03 Thread Gordon Sim (JIRA)

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

Gordon Sim resolved PROTON-972.
---
   Resolution: Fixed
Fix Version/s: 0.11

 Support the heartbeat option in BlockingConnection
 --

 Key: PROTON-972
 URL: https://issues.apache.org/jira/browse/PROTON-972
 Project: Qpid Proton
  Issue Type: Improvement
  Components: python-binding
Affects Versions: 0.9
 Environment: All
Reporter: Jeff Ortel
Assignee: Gordon Sim
 Fix For: 0.11


 Add support for the 'heartbeat' option in BlockingConnection.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Assigned] (PROTON-972) Support the heartbeat option in BlockingConnection

2015-08-03 Thread Gordon Sim (JIRA)

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

Gordon Sim reassigned PROTON-972:
-

Assignee: Gordon Sim

 Support the heartbeat option in BlockingConnection
 --

 Key: PROTON-972
 URL: https://issues.apache.org/jira/browse/PROTON-972
 Project: Qpid Proton
  Issue Type: Improvement
  Components: python-binding
Affects Versions: 0.9
 Environment: All
Reporter: Jeff Ortel
Assignee: Gordon Sim

 Add support for the 'heartbeat' option in BlockingConnection.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PROTON-950) SASL PLAIN over cleartext should be supported

2015-08-03 Thread Gordon Sim (JIRA)

[ 
https://issues.apache.org/jira/browse/PROTON-950?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14652420#comment-14652420
 ] 

Gordon Sim commented on PROTON-950:
---

There is no special logic added for PN_TRANSPORT_ERROR events, but 
PN_TRANSPORT_CLOSED and PN_TRANSPORT_TAIL_CLOSED are handled. Previously this 
would result in the connection attempt failing and either reconnecting or 
exiting depending on settings (along with the error logged of course).

 SASL PLAIN over cleartext should be supported
 -

 Key: PROTON-950
 URL: https://issues.apache.org/jira/browse/PROTON-950
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.10
Reporter: Ted Ross
Assignee: Andrew Stitcher
Priority: Blocker
 Fix For: 0.10


 In the current 0.10 alpha, if SASL PLAIN is selected, it will only work if 
 the connection is encrypted (using SSL).  This is a surprising change of 
 behavior from earlier versions of Proton and it's arguable that a security 
 policy like that should be left to the application using the Proton library.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Comment Edited] (PROTON-950) SASL PLAIN over cleartext should be supported

2015-08-03 Thread Gordon Sim (JIRA)

[ 
https://issues.apache.org/jira/browse/PROTON-950?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14652361#comment-14652361
 ] 

Gordon Sim edited comment on PROTON-950 at 8/3/15 7:52 PM:
---

I can't seem to get the messenger examples to connect over non-ssl using PLAIN 
either... 

{noformat}
$ PN_TRACE_FRM=1 ./examples/c/messenger/send -a 
amqp://guest:guest@localhost/amq.fanout
[0x162a700]:  - SASL
[0x162a700]:  - SASL
[0x162a700]:0 - @sasl-mechanisms(64) [sasl-server-mechanisms=:PLAIN]
[0x162a700]:  - EOS
{noformat}


was (Author: gsim):
I can't seem to get the messenger examples to connect over non-ssl using PLAIN 
either... 

{noformat}
]$ PN_TRACE_FRM=1 ./examples/c/messenger/send -a 
amqp://guest:guest@localhost/amq.fanout
[0x162a700]:  - SASL
[0x162a700]:  - SASL
[0x162a700]:0 - @sasl-mechanisms(64) [sasl-server-mechanisms=:PLAIN]
[0x162a700]:  - EOS
{noformat}

 SASL PLAIN over cleartext should be supported
 -

 Key: PROTON-950
 URL: https://issues.apache.org/jira/browse/PROTON-950
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.10
Reporter: Ted Ross
Assignee: Andrew Stitcher
Priority: Blocker
 Fix For: 0.10


 In the current 0.10 alpha, if SASL PLAIN is selected, it will only work if 
 the connection is encrypted (using SSL).  This is a surprising change of 
 behavior from earlier versions of Proton and it's arguable that a security 
 policy like that should be left to the application using the Proton library.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PROTON-950) SASL PLAIN over cleartext should be supported

2015-08-03 Thread Gordon Sim (JIRA)

[ 
https://issues.apache.org/jira/browse/PROTON-950?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14652394#comment-14652394
 ] 

Gordon Sim commented on PROTON-950:
---

Run eg. simple_send against direct_recv, or even just the messenger examples 
against a broker that only supports PLAIN.

 SASL PLAIN over cleartext should be supported
 -

 Key: PROTON-950
 URL: https://issues.apache.org/jira/browse/PROTON-950
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.10
Reporter: Ted Ross
Assignee: Andrew Stitcher
Priority: Blocker
 Fix For: 0.10


 In the current 0.10 alpha, if SASL PLAIN is selected, it will only work if 
 the connection is encrypted (using SSL).  This is a surprising change of 
 behavior from earlier versions of Proton and it's arguable that a security 
 policy like that should be left to the application using the Proton library.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PROTON-950) SASL PLAIN over cleartext should be supported

2015-08-03 Thread Gordon Sim (JIRA)

[ 
https://issues.apache.org/jira/browse/PROTON-950?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14652409#comment-14652409
 ] 

Gordon Sim commented on PROTON-950:
---

No, I didn't make any changes. I had just assumed from a comment above that the 
messenger code had been changed.

 SASL PLAIN over cleartext should be supported
 -

 Key: PROTON-950
 URL: https://issues.apache.org/jira/browse/PROTON-950
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.10
Reporter: Ted Ross
Assignee: Andrew Stitcher
Priority: Blocker
 Fix For: 0.10


 In the current 0.10 alpha, if SASL PLAIN is selected, it will only work if 
 the connection is encrypted (using SSL).  This is a surprising change of 
 behavior from earlier versions of Proton and it's arguable that a security 
 policy like that should be left to the application using the Proton library.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PROTON-950) SASL PLAIN over cleartext should be supported

2015-08-03 Thread Gordon Sim (JIRA)

[ 
https://issues.apache.org/jira/browse/PROTON-950?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14652425#comment-14652425
 ] 

Gordon Sim commented on PROTON-950:
---

That means that unless cyrus is available it would no longer be possible to 
authenticate as a given user unless SSL was used (since there would be no other 
mechanisms). 

 SASL PLAIN over cleartext should be supported
 -

 Key: PROTON-950
 URL: https://issues.apache.org/jira/browse/PROTON-950
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.10
Reporter: Ted Ross
Assignee: Andrew Stitcher
Priority: Blocker
 Fix For: 0.10


 In the current 0.10 alpha, if SASL PLAIN is selected, it will only work if 
 the connection is encrypted (using SSL).  This is a surprising change of 
 behavior from earlier versions of Proton and it's arguable that a security 
 policy like that should be left to the application using the Proton library.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PROTON-950) SASL PLAIN over cleartext should be supported

2015-07-28 Thread Gordon Sim (JIRA)

[ 
https://issues.apache.org/jira/browse/PROTON-950?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14644813#comment-14644813
 ] 

Gordon Sim commented on PROTON-950:
---

This can only be a change in behaviour for applications that are using the 
messenger library, as it is the only part of the Proton-c library that has the 
PLAIN mechanism built in before 0.10. - Idon't think that is correct. The 
python 'reactive' api also supported plain previously but now only does so on 
ssl connections.

 SASL PLAIN over cleartext should be supported
 -

 Key: PROTON-950
 URL: https://issues.apache.org/jira/browse/PROTON-950
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.10
Reporter: Ted Ross
Assignee: Andrew Stitcher
Priority: Blocker
 Fix For: 0.10


 In the current 0.10 alpha, if SASL PLAIN is selected, it will only work if 
 the connection is encrypted (using SSL).  This is a surprising change of 
 behavior from earlier versions of Proton and it's arguable that a security 
 policy like that should be left to the application using the Proton library.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PROTON-950) SASL PLAIN over cleartext should be supported

2015-07-28 Thread Gordon Sim (JIRA)

[ 
https://issues.apache.org/jira/browse/PROTON-950?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14644837#comment-14644837
 ] 

Gordon Sim commented on PROTON-950:
---

It set the chosen mechanism to be plain if a username and password were 
specified in the url (using the Sasl.plain() method).

 SASL PLAIN over cleartext should be supported
 -

 Key: PROTON-950
 URL: https://issues.apache.org/jira/browse/PROTON-950
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.10
Reporter: Ted Ross
Assignee: Andrew Stitcher
Priority: Blocker
 Fix For: 0.10


 In the current 0.10 alpha, if SASL PLAIN is selected, it will only work if 
 the connection is encrypted (using SSL).  This is a surprising change of 
 behavior from earlier versions of Proton and it's arguable that a security 
 policy like that should be left to the application using the Proton library.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (PROTON-961) messenger doesn't handle multi-frame transfers

2015-07-27 Thread Gordon Sim (JIRA)
Gordon Sim created PROTON-961:
-

 Summary: messenger doesn't handle multi-frame transfers
 Key: PROTON-961
 URL: https://issues.apache.org/jira/browse/PROTON-961
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.10, 0.11
Reporter: Gordon Sim


See QPID-6651 for a reproducer.

The pni_pump_in function in messenger,c doesn't check whether the current 
delivery is partial.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PROTON-961) messenger doesn't handle multi-frame transfers

2015-07-27 Thread Gordon Sim (JIRA)

[ 
https://issues.apache.org/jira/browse/PROTON-961?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14642741#comment-14642741
 ] 

Gordon Sim commented on PROTON-961:
---

The pni_pump_in function in messenger.c proceeds to process incoming deliveries 
even if they are partial. There *is* a check for pn_delivery_partial at the 
start, but I'm not quite sure what it is trying to test there.

The following change seems to fix the problem with large incoming messages and 
doesn't break any of the tests. Is it possible the original check was just 
written incorrectly?

{noformat}
--- a/proton-c/src/messenger/messenger.c
+++ b/proton-c/src/messenger/messenger.c
@@ -987,7 +987,7 @@ static void pn_condition_report(const char *pfx, 
pn_condition_t *condition)
 int pni_pump_in(pn_messenger_t *messenger, const char *address, pn_link_t 
*receiver)
 {
   pn_delivery_t *d = pn_link_current(receiver);
-  if (!pn_delivery_readable(d)  !pn_delivery_partial(d)) {
+  if (!pn_delivery_readable(d) || pn_delivery_partial(d)) {
 return 0;
   }
{noformat}

 messenger doesn't handle multi-frame transfers
 --

 Key: PROTON-961
 URL: https://issues.apache.org/jira/browse/PROTON-961
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.10, 0.11
Reporter: Gordon Sim

 See QPID-6651 for a reproducer.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (PROTON-961) messenger doesn't handle multi-frame transfers

2015-07-27 Thread Gordon Sim (JIRA)

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

Gordon Sim updated PROTON-961:
--
Description: 
See QPID-6651 for a reproducer.

The pni_pump_in function in messenger.c proceeds to process incoming deliveries 
even if they are partial.

  was:
See QPID-6651 for a reproducer.

The pni_pump_in function in messenger,c doesn't check whether the current 
delivery is partial.


 messenger doesn't handle multi-frame transfers
 --

 Key: PROTON-961
 URL: https://issues.apache.org/jira/browse/PROTON-961
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.10, 0.11
Reporter: Gordon Sim

 See QPID-6651 for a reproducer.
 The pni_pump_in function in messenger.c proceeds to process incoming 
 deliveries even if they are partial.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (PROTON-962) heartbeat/empty frame trace has spurious newline

2015-07-27 Thread Gordon Sim (JIRA)
Gordon Sim created PROTON-962:
-

 Summary: heartbeat/empty frame trace has spurious newline
 Key: PROTON-962
 URL: https://issues.apache.org/jira/browse/PROTON-962
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.11
Reporter: Gordon Sim
Assignee: Gordon Sim
Priority: Trivial
 Fix For: 0.11






--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (PROTON-876) python examples installed under share are not executable

2015-07-17 Thread Gordon Sim (JIRA)

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

Gordon Sim updated PROTON-876:
--
Fix Version/s: (was: 0.10)
   0.11

 python examples installed under share are not executable
 

 Key: PROTON-876
 URL: https://issues.apache.org/jira/browse/PROTON-876
 Project: Qpid Proton
  Issue Type: Bug
  Components: python-binding
Affects Versions: 0.9, 0.9.1
Reporter: Gordon Sim
Assignee: Gordon Sim
Priority: Minor
 Fix For: 0.11






--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Closed] (PROTON-806) closing a blocking sender hangs if connection has been lost

2015-07-17 Thread Gordon Sim (JIRA)

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

Gordon Sim closed PROTON-806.
-
Resolution: Cannot Reproduce

Closing for now; can reopen if it shows up again.

 closing a blocking sender hangs if connection has been lost
 ---

 Key: PROTON-806
 URL: https://issues.apache.org/jira/browse/PROTON-806
 Project: Qpid Proton
  Issue Type: Bug
  Components: python-binding
Affects Versions: 0.9
Reporter: Gordon Sim
Assignee: Gordon Sim
 Fix For: 0.9






--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Reopened] (PROTON-905) Long-lived connections leak sessions and links

2015-07-15 Thread Gordon Sim (JIRA)

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

Gordon Sim reopened PROTON-905:
---

The change made for this is causing crashes in tests from qpid-cpp that use 
proton. I have a further fix proposed: https://reviews.apache.org/r/36509/

 Long-lived connections leak sessions and links
 --

 Key: PROTON-905
 URL: https://issues.apache.org/jira/browse/PROTON-905
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.9.1
Reporter: Ken Giusti
Assignee: Ken Giusti
Priority: Blocker
 Fix For: 0.10

 Attachments: test-send.py


 I found this issue while debugging a crash dump of qpidd.
 Long lived connections do not free its sessions/link.
 This only applies when NOT using the event model.  The version of qpidd I 
 tested against (0.30) still uses the iterative model.  Point to consider, I 
 don't know why this is the case.
 Details:  I have a test script that opens a single connection, then 
 continually creates sessions/links over that connection, sending one message 
 before closing and freeing the sessions/links.  See attached.
 Over time the qpidd run time consumes all memory on the system and is killed 
 by OOM.  To be clear, I'm using drain to remove all sent messages - there is 
 no message build up.
 On debugging this, I'm finding thousands of session objects on the 
 connections free sessions weakref list.  Every one of those sessions has a 
 refcount of one.
 Once the connection is finalized, all session objects are freed.  But until 
 then, freed sessions continue to accumulate indefinitely.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Reopened] (PROTON-927) absolute-expiry-time and creation-time are encoded as 0 if not set

2015-07-06 Thread Gordon Sim (JIRA)

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

Gordon Sim reopened PROTON-927:
---
  Assignee: (was: Gordon Sim)

The new test was reported to have segfaulted on windows: 
https://ci.appveyor.com/project/ke4qqq/qpid-proton/build/0.10-SNAPSHOT-master.122

Reverting the change.

 absolute-expiry-time and creation-time are encoded as 0 if not set
 --

 Key: PROTON-927
 URL: https://issues.apache.org/jira/browse/PROTON-927
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.9.1
Reporter: Gordon Sim
 Fix For: 0.10


 They should instead be encoded as null (since there is no default).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (PROTON-927) absolute-expiry-time and creation-time are encoded as 0 if not set

2015-07-06 Thread Gordon Sim (JIRA)

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

Gordon Sim updated PROTON-927:
--
Fix Version/s: (was: 0.10)

 absolute-expiry-time and creation-time are encoded as 0 if not set
 --

 Key: PROTON-927
 URL: https://issues.apache.org/jira/browse/PROTON-927
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.9.1
Reporter: Gordon Sim

 They should instead be encoded as null (since there is no default).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (PROTON-927) absolute-expiry-time and creation-time are encoded as 0 if not set

2015-07-03 Thread Gordon Sim (JIRA)

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

Gordon Sim resolved PROTON-927.
---
Resolution: Fixed

 absolute-expiry-time and creation-time are encoded as 0 if not set
 --

 Key: PROTON-927
 URL: https://issues.apache.org/jira/browse/PROTON-927
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.9.1
Reporter: Gordon Sim
Assignee: Gordon Sim
 Fix For: 0.10


 They should instead be encoded as null (since there is no default).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Assigned] (PROTON-907) Qpid Proton Point to Point Hang on CentOS 6 pn_messenger_send

2015-07-02 Thread Gordon Sim (JIRA)

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

Gordon Sim reassigned PROTON-907:
-

Assignee: Gordon Sim

 Qpid Proton Point to Point Hang on CentOS 6 pn_messenger_send
 -

 Key: PROTON-907
 URL: https://issues.apache.org/jira/browse/PROTON-907
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.8, 0.9.1
 Environment: CentOS 6 (both VM and native 64-bit) and RHEL 6
Reporter: Frank Quinn
Assignee: Gordon Sim
Priority: Critical
 Attachments: PROTON-907-workaround.patch


 See thread at 
 http://qpid.2158936.n2.nabble.com/Strange-behaviour-for-pn-messenger-send-on-CentOS-6-td7625846.html.
 Key points:
 * pn_messenger_send will hang on CentOS 6 if the destination is not yet up
 * Works fine on Fedora 21 and 22 (by 'fine', i mean it will attempt to send, 
 fail and move on)
 * Can be recreated by running the send.c application when recv.c is not yet 
 running
 * Proton burns CPU as it hangs
 This effectively deadlocks our application. So far, I’ve tried compiling qpid 
 proton c myself (both 0.8 and 0.9.1), setting pn_messenger_send timeout to 1 
 (it was previously -1), turning off iptables entirely and disabling selinux 
 and rebooting but no luck. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (PROTON-907) Qpid Proton Point to Point Hang on CentOS 6 pn_messenger_send

2015-07-02 Thread Gordon Sim (JIRA)

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

Gordon Sim updated PROTON-907:
--
Fix Version/s: 0.10

 Qpid Proton Point to Point Hang on CentOS 6 pn_messenger_send
 -

 Key: PROTON-907
 URL: https://issues.apache.org/jira/browse/PROTON-907
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.8, 0.9.1
 Environment: CentOS 6 (both VM and native 64-bit) and RHEL 6
Reporter: Frank Quinn
Assignee: Gordon Sim
Priority: Critical
 Fix For: 0.10

 Attachments: PROTON-907-workaround.patch


 See thread at 
 http://qpid.2158936.n2.nabble.com/Strange-behaviour-for-pn-messenger-send-on-CentOS-6-td7625846.html.
 Key points:
 * pn_messenger_send will hang on CentOS 6 if the destination is not yet up
 * Works fine on Fedora 21 and 22 (by 'fine', i mean it will attempt to send, 
 fail and move on)
 * Can be recreated by running the send.c application when recv.c is not yet 
 running
 * Proton burns CPU as it hangs
 This effectively deadlocks our application. So far, I’ve tried compiling qpid 
 proton c myself (both 0.8 and 0.9.1), setting pn_messenger_send timeout to 1 
 (it was previously -1), turning off iptables entirely and disabling selinux 
 and rebooting but no luck. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (PROTON-907) Qpid Proton Point to Point Hang on CentOS 6 pn_messenger_send

2015-07-02 Thread Gordon Sim (JIRA)

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

Gordon Sim resolved PROTON-907.
---
Resolution: Fixed

 Qpid Proton Point to Point Hang on CentOS 6 pn_messenger_send
 -

 Key: PROTON-907
 URL: https://issues.apache.org/jira/browse/PROTON-907
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.8, 0.9.1
 Environment: CentOS 6 (both VM and native 64-bit) and RHEL 6
Reporter: Frank Quinn
Assignee: Gordon Sim
Priority: Critical
 Fix For: 0.10

 Attachments: PROTON-907-workaround.patch


 See thread at 
 http://qpid.2158936.n2.nabble.com/Strange-behaviour-for-pn-messenger-send-on-CentOS-6-td7625846.html.
 Key points:
 * pn_messenger_send will hang on CentOS 6 if the destination is not yet up
 * Works fine on Fedora 21 and 22 (by 'fine', i mean it will attempt to send, 
 fail and move on)
 * Can be recreated by running the send.c application when recv.c is not yet 
 running
 * Proton burns CPU as it hangs
 This effectively deadlocks our application. So far, I’ve tried compiling qpid 
 proton c myself (both 0.8 and 0.9.1), setting pn_messenger_send timeout to 1 
 (it was previously -1), turning off iptables entirely and disabling selinux 
 and rebooting but no luck. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PROTON-907) Qpid Proton Point to Point Hang on CentOS 6 pn_messenger_send

2015-07-01 Thread Gordon Sim (JIRA)

[ 
https://issues.apache.org/jira/browse/PROTON-907?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14610797#comment-14610797
 ] 

Gordon Sim commented on PROTON-907:
---

Perhaps a better fix posted for review: https://reviews.apache.org/r/36102/

 Qpid Proton Point to Point Hang on CentOS 6 pn_messenger_send
 -

 Key: PROTON-907
 URL: https://issues.apache.org/jira/browse/PROTON-907
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.8, 0.9.1
 Environment: CentOS 6 (both VM and native 64-bit) and RHEL 6
Reporter: Frank Quinn
Priority: Critical
 Attachments: PROTON-907-workaround.patch


 See thread at 
 http://qpid.2158936.n2.nabble.com/Strange-behaviour-for-pn-messenger-send-on-CentOS-6-td7625846.html.
 Key points:
 * pn_messenger_send will hang on CentOS 6 if the destination is not yet up
 * Works fine on Fedora 21 and 22 (by 'fine', i mean it will attempt to send, 
 fail and move on)
 * Can be recreated by running the send.c application when recv.c is not yet 
 running
 * Proton burns CPU as it hangs
 This effectively deadlocks our application. So far, I’ve tried compiling qpid 
 proton c myself (both 0.8 and 0.9.1), setting pn_messenger_send timeout to 1 
 (it was previously -1), turning off iptables entirely and disabling selinux 
 and rebooting but no luck. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (PROTON-927) absolute-expiry-time and creation-time are encoded as 0 if not set

2015-07-01 Thread Gordon Sim (JIRA)
Gordon Sim created PROTON-927:
-

 Summary: absolute-expiry-time and creation-time are encoded as 0 
if not set
 Key: PROTON-927
 URL: https://issues.apache.org/jira/browse/PROTON-927
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.9.1
Reporter: Gordon Sim
Assignee: Gordon Sim
 Fix For: 0.10


They should instead be encoded as null (since there is no default).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PROTON-927) absolute-expiry-time and creation-time are encoded as 0 if not set

2015-07-01 Thread Gordon Sim (JIRA)

[ 
https://issues.apache.org/jira/browse/PROTON-927?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14609895#comment-14609895
 ] 

Gordon Sim commented on PROTON-927:
---

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

 absolute-expiry-time and creation-time are encoded as 0 if not set
 --

 Key: PROTON-927
 URL: https://issues.apache.org/jira/browse/PROTON-927
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.9.1
Reporter: Gordon Sim
Assignee: Gordon Sim
 Fix For: 0.10


 They should instead be encoded as null (since there is no default).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (PROTON-907) Qpid Proton Point to Point Hang on CentOS 6 pn_messenger_send

2015-07-01 Thread Gordon Sim (JIRA)

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

Gordon Sim updated PROTON-907:
--
Attachment: PROTON-907-workaround.patch

The issue appears to be that on the affected platforms, when unable to connect, 
the file descriptor is not marked as writeable.

Though it hits the read error, messenger only closes the 'tail' of the 
transport as a result. The head is closed when an error is returned from send, 
but as the socket is not writeable, send is never called.

I don't know what the real fix for this is, messenger is an area of the code 
I'm even less familiar with. Fwiw the attached patch works around the issue and 
passes all the existing tests. It works by explicitly closing the head of the 
transport if there is an error on reading from the socket and the connection 
has not been closed by the peer.

 Qpid Proton Point to Point Hang on CentOS 6 pn_messenger_send
 -

 Key: PROTON-907
 URL: https://issues.apache.org/jira/browse/PROTON-907
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.8, 0.9.1
 Environment: CentOS 6 (both VM and native 64-bit) and RHEL 6
Reporter: Frank Quinn
Priority: Critical
 Attachments: PROTON-907-workaround.patch


 See thread at 
 http://qpid.2158936.n2.nabble.com/Strange-behaviour-for-pn-messenger-send-on-CentOS-6-td7625846.html.
 Key points:
 * pn_messenger_send will hang on CentOS 6 if the destination is not yet up
 * Works fine on Fedora 21 and 22 (by 'fine', i mean it will attempt to send, 
 fail and move on)
 * Can be recreated by running the send.c application when recv.c is not yet 
 running
 * Proton burns CPU as it hangs
 This effectively deadlocks our application. So far, I’ve tried compiling qpid 
 proton c myself (both 0.8 and 0.9.1), setting pn_messenger_send timeout to 1 
 (it was previously -1), turning off iptables entirely and disabling selinux 
 and rebooting but no luck. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (PROTON-924) links are not uniquely named by messenger

2015-06-29 Thread Gordon Sim (JIRA)
Gordon Sim created PROTON-924:
-

 Summary: links are not uniquely named by messenger
 Key: PROTON-924
 URL: https://issues.apache.org/jira/browse/PROTON-924
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.10
Reporter: Gordon Sim


If sending messages to different nodes in the same container, messenger will 
establish multiple links but will use the same name - sender-xxx - for each of 
them which violates the spec section 2.6.1



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (PROTON-925) proton-c seems to treat unspecified channel-max as implying 0

2015-06-29 Thread Gordon Sim (JIRA)
Gordon Sim created PROTON-925:
-

 Summary: proton-c seems to treat unspecified channel-max as 
implying 0
 Key: PROTON-925
 URL: https://issues.apache.org/jira/browse/PROTON-925
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.10
Reporter: Gordon Sim
Assignee: michael goulish
Priority: Blocker
 Fix For: 0.10


If max-channels is not specified in the open, it appears the latest proton-c 
treats that as implying the maximum is 0 though the spec states the default is 
65535.

This breaks compatibility with previous proton releases. E.g. the following is 
the interaction between a sender using the latest 0.10 and a receiver using 
proton 0.9.

{noformat}
[0x151c710]:  - AMQP
[0x151c710]:0 - @open(16) 
[container-id=65A6602D-5D24-4D39-9C6F-7403D98F5E15, hostname=localhost, 
channel-max=32767]
[0x151c710]:0 - @begin(17) [next-outgoing-id=0, incoming-window=2147483647, 
outgoing-window=1]
[0x151c710]:1 - @begin(17) [next-outgoing-id=0, incoming-window=2147483647, 
outgoing-window=1]
[0x151c710]:2 - @begin(17) [next-outgoing-id=0, incoming-window=2147483647, 
outgoing-window=1]
[0x151c710]:0 - @attach(18) [name=sender-xxx, handle=0, role=false, 
snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) [address=queue_a, 
durable=0, timeout=0, dynamic=false], target=@target(41) [address=queue_a, 
durable=0, timeout=0, dynamic=false], initial-delivery-count=0]
[0x151c710]:1 - @attach(18) [name=sender-xxx, handle=0, role=false, 
snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) [address=queue_b, 
durable=0, timeout=0, dynamic=false], target=@target(41) [address=queue_b, 
durable=0, timeout=0, dynamic=false], initial-delivery-count=0]
[0x151c710]:2 - @attach(18) [name=sender-xxx, handle=0, role=false, 
snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) [address=queue_c, 
durable=0, timeout=0, dynamic=false], target=@target(41) [address=queue_c, 
durable=0, timeout=0, dynamic=false], initial-delivery-count=0]
[0x151c710]:  - AMQP
[0x151c710]:0 - @open(16) [container-id=abab56b0-c25e-427b-9f4f-d63da48d1973]
[0x151c710]:0 - @begin(17) [remote-channel=0, next-outgoing-id=0, 
incoming-window=2147483647, outgoing-window=0]
[0x151c710]:1 - @begin(17) [remote-channel=1, next-outgoing-id=0, 
incoming-window=2147483647, outgoing-window=0]
[0x151c710]:2 - @begin(17) [remote-channel=2, next-outgoing-id=0, 
incoming-window=2147483647, outgoing-window=0]
[0x151c710]:0 - @attach(18) [name=sender-xxx, handle=0, role=true, 
snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) [address=queue_a, 
durable=0, timeout=0, dynamic=false], target=@target(41) [address=queue_a, 
durable=0, timeout=0, dynamic=false], initial-delivery-count=0]
[0x151c710]:1 - @attach(18) [name=sender-xxx, handle=0, role=true, 
snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) [address=queue_b, 
durable=0, timeout=0, dynamic=false], target=@target(41) [address=queue_b, 
durable=0, timeout=0, dynamic=false], initial-delivery-count=0]
[0x151c710]:2 - @attach(18) [name=sender-xxx, handle=0, role=true, 
snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) [address=queue_c, 
durable=0, timeout=0, dynamic=false], target=@target(41) [address=queue_c, 
durable=0, timeout=0, dynamic=false], initial-delivery-count=0]
[0x151c710]:0 - @flow(19) [next-incoming-id=0, incoming-window=2147483647, 
next-outgoing-id=0, outgoing-window=0, handle=0, delivery-count=0, 
link-credit=341, drain=false]
[0x151c710]:1 - @flow(19) [next-incoming-id=0, incoming-window=2147483647, 
next-outgoing-id=0, outgoing-window=0, handle=0, delivery-count=0, 
link-credit=341, drain=false]
[0x151c710]:2 - @flow(19) [next-incoming-id=0, incoming-window=2147483647, 
next-outgoing-id=0, outgoing-window=0, handle=0, delivery-count=0, 
link-credit=341, drain=false]
[0x151c710]:0 - @close(24) [error=@error(29) 
[condition=:amqp:connection:framing-error, description=remote channel 1 is 
above negotiated channel_max 0.]]
[0x151c710]:  - EOS
[0x151c710]:0 - @close(24) []
[0x151c710]:  - EOS
{noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (PROTON-920) frames on invalid channel crash proton

2015-06-24 Thread Gordon Sim (JIRA)
Gordon Sim created PROTON-920:
-

 Summary: frames on invalid channel crash proton
 Key: PROTON-920
 URL: https://issues.apache.org/jira/browse/PROTON-920
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.10
Reporter: Gordon Sim
Assignee: Gordon Sim
 Fix For: 0.10


The result of pni_channel_state() is not checked before it is used for many of 
the frames.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (PROTON-920) frames on invalid channel crash proton

2015-06-24 Thread Gordon Sim (JIRA)

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

Gordon Sim resolved PROTON-920.
---
Resolution: Fixed

 frames on invalid channel crash proton
 --

 Key: PROTON-920
 URL: https://issues.apache.org/jira/browse/PROTON-920
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.10
Reporter: Gordon Sim
Assignee: Gordon Sim
 Fix For: 0.10


 The result of pni_channel_state() is not checked before it is used for many 
 of the frames.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PROTON-915) Incompatible protocol header handled incorrectly

2015-06-18 Thread Gordon Sim (JIRA)

[ 
https://issues.apache.org/jira/browse/PROTON-915?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14591738#comment-14591738
 ] 

Gordon Sim commented on PROTON-915:
---

So it sends the SASl header, then no SASL frames and no plain AMQP header 
before the open (and close) frames? That would indeed be a violation of the 
spec. (However sending a SASL headers, one or more SASL frames, then an AMQP 
header and then AMQP frames would be ok in my view).

 Incompatible protocol header handled incorrectly
 

 Key: PROTON-915
 URL: https://issues.apache.org/jira/browse/PROTON-915
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.9, 0.9.1
Reporter: Gordon Sim
Assignee: Rafael H. Schloming
Priority: Blocker
 Fix For: 0.10

 Attachments: 
 0001-PROTON-915-Send-correct-AMQP-header-upon-protocol-mi.patch


 The correct response is to send back a supported header[1] before closing the 
 socket. This worked for 0.8 but is broker from 0.9 onwards, I believe by this 
 commit: 
 https://git-wip-us.apache.org/repos/asf?p=qpid-proton.git;a=commit;h=1b2be03c748ef5a57cf181f8373b9b6e8f8cfd22
 It means anything relying on proton-c for protocol header handling is not 
 compliant with the spec.
 [1]  section 2.2 of spec: If the requested protocol version is not 
 supported, the server MUST send a protocol header with a supported protocol 
 version and then close the socket. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PROTON-915) Incompatible protocol header handled incorrectly

2015-06-18 Thread Gordon Sim (JIRA)

[ 
https://issues.apache.org/jira/browse/PROTON-915?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14591514#comment-14591514
 ] 

Gordon Sim commented on PROTON-915:
---

The spec says: Any data appearing beyond the protocol header MUST match the 
version indicated by the protocol header also Note that if the server only 
supports a single protocol version, it is consistent with the above rules for 
the server to send its protocol header prior to receiving anything from the 
client and to subsequently close the socket if the client’s protocol header 
does not match the server’s.

So I would argue that the current behaviour does not violate the spec.

 Incompatible protocol header handled incorrectly
 

 Key: PROTON-915
 URL: https://issues.apache.org/jira/browse/PROTON-915
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.9, 0.9.1
Reporter: Gordon Sim
Assignee: Rafael H. Schloming
Priority: Blocker
 Fix For: 0.10

 Attachments: 
 0001-PROTON-915-Send-correct-AMQP-header-upon-protocol-mi.patch


 The correct response is to send back a supported header[1] before closing the 
 socket. This worked for 0.8 but is broker from 0.9 onwards, I believe by this 
 commit: 
 https://git-wip-us.apache.org/repos/asf?p=qpid-proton.git;a=commit;h=1b2be03c748ef5a57cf181f8373b9b6e8f8cfd22
 It means anything relying on proton-c for protocol header handling is not 
 compliant with the spec.
 [1]  section 2.2 of spec: If the requested protocol version is not 
 supported, the server MUST send a protocol header with a supported protocol 
 version and then close the socket. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PROTON-915) Incompatible protocol header handled incorrectly

2015-06-17 Thread Gordon Sim (JIRA)

[ 
https://issues.apache.org/jira/browse/PROTON-915?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14590077#comment-14590077
 ] 

Gordon Sim commented on PROTON-915:
---

E.g.  
  1.  start wireshark
  2. run ./examples/c/messenger/recv
  3. run qpid-send --address foo

Observe wireshark trace which shows qpid-cpp sending the 0-10 header and proton 
not sending one back. If use the recv example from proton 0.8 (in a slightly 
different path, ./examples/messenger/c/recv) a protocol-header *is* sent. You 
can substitute any other tcp server using proton-c for managing protocol 
version headers in step 2, e.g. dispatch router, examples/python/broker.py etc)

 Incompatible protocol header handled incorrectly
 

 Key: PROTON-915
 URL: https://issues.apache.org/jira/browse/PROTON-915
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.9, 0.9.1
Reporter: Gordon Sim
Assignee: Andrew Stitcher
Priority: Blocker
 Fix For: 0.10


 The correct response is to send back a supported header[1] before closing the 
 socket. This worked for 0.8 but is broker from 0.9 onwards, I believe by this 
 commit: 
 https://git-wip-us.apache.org/repos/asf?p=qpid-proton.git;a=commit;h=1b2be03c748ef5a57cf181f8373b9b6e8f8cfd22
 It means anything relying on proton-c for protocol header handling is not 
 compliant with the spec.
 [1]  section 2.2 of spec: If the requested protocol version is not 
 supported, the server MUST send a protocol header with a supported protocol 
 version and then close the socket. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (PROTON-915) Incompatible protocol header handled incorrectly

2015-06-17 Thread Gordon Sim (JIRA)
Gordon Sim created PROTON-915:
-

 Summary: Incompatible protocol header handled incorrectly
 Key: PROTON-915
 URL: https://issues.apache.org/jira/browse/PROTON-915
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.9.1, 0.9
Reporter: Gordon Sim
Assignee: Andrew Stitcher
Priority: Blocker
 Fix For: 0.10


The correct response is to send back a supported header[1] before closing the 
socket. This worked for 0.8 but is broker from 0.9 onwards, I believe by this 
commit: 
https://git-wip-us.apache.org/repos/asf?p=qpid-proton.git;a=commit;h=1b2be03c748ef5a57cf181f8373b9b6e8f8cfd22

It means anything relying on proton-c for protocol header handling is not 
compliant with the spec.

[1]  section 2.2 of spec: If the requested protocol version is not supported, 
the server MUST send a protocol header with a supported protocol version and 
then close the socket. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (PROTON-913) Calling allow_unsecured_client() on SSLDomain.MODE_CLIENT causes client segfault

2015-06-12 Thread Gordon Sim (JIRA)

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

Gordon Sim resolved PROTON-913.
---
   Resolution: Fixed
Fix Version/s: 0.10
 Assignee: Gordon Sim

 Calling allow_unsecured_client() on SSLDomain.MODE_CLIENT causes client 
 segfault
 

 Key: PROTON-913
 URL: https://issues.apache.org/jira/browse/PROTON-913
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c, python-binding
Affects Versions: 0.9.1
 Environment: packages:
 qpid-proton-c-0.9-3
 qpid-proton-c-devel-0.9-3
 python-qpid-proton-0.9-3 
Reporter: Petr Matousek
Assignee: Gordon Sim
Priority: Minor
 Fix For: 0.10

 Attachments: ssl_client_allow_unsecured_client.py, stacktrace.txt


 Calling allow_unsecured_client() on SSLDomain.CLIENT_MODE object causes 
 client segmentation fault. It is not intended to call this method on client 
 instance, but obviously the client segfault should not appear. 
 Please see the attached reproducer ssl_client_allow_unsecured_client.py for 
 details. Attaching also client traces.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (PROTON-913) Calling allow_unsecured_client() on SSLDomain.MODE_CLIENT causes client segfault

2015-06-12 Thread Gordon Sim (JIRA)

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

Gordon Sim updated PROTON-913:
--
Component/s: proton-c

 Calling allow_unsecured_client() on SSLDomain.MODE_CLIENT causes client 
 segfault
 

 Key: PROTON-913
 URL: https://issues.apache.org/jira/browse/PROTON-913
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c, python-binding
Affects Versions: 0.9.1
 Environment: packages:
 qpid-proton-c-0.9-3
 qpid-proton-c-devel-0.9-3
 python-qpid-proton-0.9-3 
Reporter: Petr Matousek
Assignee: Gordon Sim
Priority: Minor
 Fix For: 0.10

 Attachments: ssl_client_allow_unsecured_client.py, stacktrace.txt


 Calling allow_unsecured_client() on SSLDomain.CLIENT_MODE object causes 
 client segmentation fault. It is not intended to call this method on client 
 instance, but obviously the client segfault should not appear. 
 Please see the attached reproducer ssl_client_allow_unsecured_client.py for 
 details. Attaching also client traces.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (PROTON-906) Would be nice to make durable subscriptions simpler

2015-06-10 Thread Gordon Sim (JIRA)

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

Gordon Sim resolved PROTON-906.
---
Resolution: Fixed

 Would be nice to make durable subscriptions simpler
 ---

 Key: PROTON-906
 URL: https://issues.apache.org/jira/browse/PROTON-906
 Project: Qpid Proton
  Issue Type: Improvement
  Components: python-binding
Affects Versions: 0.9.1
Reporter: Gordon Sim
Assignee: Gordon Sim
Priority: Minor
 Fix For: 0.10


 To get behaviour similar to that of the proton based JMS client's durable 
 subscriptions, the durability and expiry-policy need to be set. Providing a 
 simple option that shields the user from the detailed spec knowledge where 
 desired would be a nice improvement.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (PROTON-903) UUID version should be in sixth octet

2015-06-09 Thread Gordon Sim (JIRA)

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

Gordon Sim resolved PROTON-903.
---
   Resolution: Fixed
Fix Version/s: 0.10

 UUID version should be in sixth octet
 -

 Key: PROTON-903
 URL: https://issues.apache.org/jira/browse/PROTON-903
 Project: Qpid Proton
  Issue Type: Improvement
Reporter: Flavio Percoco
Assignee: Gordon Sim
 Fix For: 0.10

 Attachments: 
 0001-PROTON-903-Set-UUID-s-version-in-the-sixth-octet.patch


 Python's UUID fallback implementation sets the UUID version in the seventh 
 octet instead of the sixth.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Assigned] (PROTON-903) UUID version should be in sixth octet

2015-06-08 Thread Gordon Sim (JIRA)

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

Gordon Sim reassigned PROTON-903:
-

Assignee: Gordon Sim  (was: Ken Giusti)

 UUID version should be in sixth octet
 -

 Key: PROTON-903
 URL: https://issues.apache.org/jira/browse/PROTON-903
 Project: Qpid Proton
  Issue Type: Improvement
Reporter: Flavio Percoco
Assignee: Gordon Sim
 Attachments: 
 0001-PROTON-903-Set-UUID-s-version-in-the-sixth-octet.patch


 Python's UUID fallback implementation sets the UUID version in the seventh 
 octet instead of the sixth.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


  1   2   3   >