Re: [jira] [Commented] (PROTON-640) IO completion port Windows IO for Proton

2014-09-11 Thread Cliff Jansen
Hi Bozzo,

Please take a look at PROTON-668 and confirm none of the assumptions
are counter to your usage, especially whether you fit scenario 3 and
do not have problems with the proposed restriction to pn_pipe.  If
this is OK for you, I think I am close to a fix that will work for
you.

Cliff

On Wed, Sep 10, 2014 at 4:51 AM, Bozo Dragojevic bo...@digiverse.si wrote:
 Hi Cliff,

 I agree that the current extra API call is kludgy if not downright ugly.

 I noticed today you already added a new API call pn_io_selector(),
 which has separate windows and posix implementations.

 For short term 'fix', I'd propose to hide my hack inthere --
 make calling pn_io_selector() turn on the iocp on windows.

 Bozzo


 This would not impact the API and would restore the
 On 9. 09. 14 07:02, Cliff Jansen wrote:
 Ho Bozo,

 Thank you for comments and the suggested patch.  I would prefer a
 solution that did not have a special Windows-only-sometimes call
 pn_io_no_iocp().  It seems to me anyway that there is another class
 of sockets that are pulled into an IOCP context too early, so that a
 separate solution is required that should fix your problem too.
 Basically, a more lazy enlistment strategy should leave you outside
 IOCP and fix the other issue too.

 Based on your problem and how Dispatch strives for multithreaded
 performance, I think I have a better handle on what Proton should be
 providing for small to medium-large scalability.

 I am going to try to define what is a sensible intersection of Windows
 and Posix capabilities to be supported by the proton
 io/selector/selectable classes in a separate documentation JIRA and
 try to get a fix for you ASAP, probably in yet another JIRA.

 Cliff



[jira] [Resolved] (PROTON-666) TransactionalState applied to indicate the txn-id before sending has no effect on the outgoing transfer frames

2014-09-11 Thread Robbie Gemmell (JIRA)

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

Robbie Gemmell resolved PROTON-666.
---
Resolution: Fixed

 TransactionalState applied to indicate the txn-id before sending has no 
 effect on the outgoing transfer frames
 --

 Key: PROTON-666
 URL: https://issues.apache.org/jira/browse/PROTON-666
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-j
Affects Versions: 0.7
Reporter: Robbie Gemmell
Assignee: Robbie Gemmell
 Fix For: 0.8


 In order to publish messages in a transaction, it is necessary to apply state 
 to the outgoing transfer frames. Proton-J does allow applying a disposition 
 change to the delivery with the relevant TransactionalState (which contains 
 the required txn-id), however this has no impact on the transfer frames which 
 then get emitted from the transport, resulting in the message transfers being 
 considered non-transactional.
 The transport implementation should be updated to apply existing local 
 delivery state to the outgoing transfer frames.



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


[jira] [Updated] (PROTON-571) proton-c: Messenger outputs errors to stderr rather than setting messenger-error

2014-09-11 Thread Dominic Evans (JIRA)

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

Dominic Evans updated PROTON-571:
-
Attachment: (was: 03_set_pn_error_when_printing_connection_errors.patch)

 proton-c: Messenger outputs errors to stderr rather than setting 
 messenger-error
 -

 Key: PROTON-571
 URL: https://issues.apache.org/jira/browse/PROTON-571
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.7
Reporter: Dominic Evans

 For various errors, such as aborted connections, messenger simply outputs 
 them to stderr rather then setting messenger-error. This makes it harder to 
 drive from wrappering applications.



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


[jira] [Updated] (PROTON-574) proton-c: Messenger doesn't indicate when connection is aborted for a SASL negotation failure

2014-09-11 Thread Dominic Evans (JIRA)

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

Dominic Evans updated PROTON-574:
-
Attachment: (was: 08_return_sasl_auth_errors_transport.h.patch)

 proton-c: Messenger doesn't indicate when connection is aborted for a SASL 
 negotation failure
 -

 Key: PROTON-574
 URL: https://issues.apache.org/jira/browse/PROTON-574
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.7
Reporter: Dominic Evans
Assignee: Andrew Stitcher
 Attachments: 05_return_sasl_auth_errors_messenger.c.patch, 
 05_return_sasl_auth_errors_transport.c.patch, 
 05_return_sasl_auth_errors_transport.h.patch


 Currently if a Messenger's connection is aborted at the remote end, there's 
 no differentiation between the connection just being dropped and a failure to 
 negotiate SASL.



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


[jira] [Updated] (PROTON-574) proton-c: Messenger doesn't indicate when connection is aborted for a SASL negotation failure

2014-09-11 Thread Dominic Evans (JIRA)

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

Dominic Evans updated PROTON-574:
-
Attachment: (was: 08_return_sasl_auth_errors_messenger.c.patch)

 proton-c: Messenger doesn't indicate when connection is aborted for a SASL 
 negotation failure
 -

 Key: PROTON-574
 URL: https://issues.apache.org/jira/browse/PROTON-574
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.7
Reporter: Dominic Evans
Assignee: Andrew Stitcher
 Attachments: 05_return_sasl_auth_errors_messenger.c.patch, 
 05_return_sasl_auth_errors_transport.c.patch, 
 05_return_sasl_auth_errors_transport.h.patch


 Currently if a Messenger's connection is aborted at the remote end, there's 
 no differentiation between the connection just being dropped and a failure to 
 negotiate SASL.



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


[jira] [Updated] (PROTON-574) proton-c: Messenger doesn't indicate when connection is aborted for a SASL negotation failure

2014-09-11 Thread Dominic Evans (JIRA)

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

Dominic Evans updated PROTON-574:
-
Attachment: (was: 08_return_sasl_auth_errors_transport.c.patch)

 proton-c: Messenger doesn't indicate when connection is aborted for a SASL 
 negotation failure
 -

 Key: PROTON-574
 URL: https://issues.apache.org/jira/browse/PROTON-574
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.7
Reporter: Dominic Evans
Assignee: Andrew Stitcher
 Attachments: 05_return_sasl_auth_errors_messenger.c.patch, 
 05_return_sasl_auth_errors_transport.c.patch, 
 05_return_sasl_auth_errors_transport.h.patch


 Currently if a Messenger's connection is aborted at the remote end, there's 
 no differentiation between the connection just being dropped and a failure to 
 negotiate SASL.



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


[jira] [Created] (PROTON-669) proton-c: Messenger abstracts away connections, but it would be useful to fail fast for auth errors etc.

2014-09-11 Thread Dominic Evans (JIRA)
Dominic Evans created PROTON-669:


 Summary: proton-c: Messenger abstracts away connections, but it 
would be useful to fail fast for auth errors etc.
 Key: PROTON-669
 URL: https://issues.apache.org/jira/browse/PROTON-669
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.7
Reporter: Dominic Evans


As previously discussed on the mailing list under [Using the messenger API to 
connect to a server without sending or 
subscribing|http://qpid.2158936.n2.nabble.com/Using-the-messenger-API-to-connect-to-a-server-without-sending-or-subscribing-td7607184.html];

Messenger doesn't provide a way of requesting a connection. Messenger has been 
designed to abstract away the notion of establishing connections from the user, 
but we would like to fail fast in those situations and return authentication 
errors (e.g.,) to the user. Rafa suggested that we could add an option to 
messenger to enable the checking of routes at startup, which is what the 
attached patch intends to do.



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


[jira] [Updated] (PROTON-548) Proton-C driver and URL Parsers don't support AF_INET6 (IPv6)

2014-09-11 Thread Dominic Evans (JIRA)

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

Dominic Evans updated PROTON-548:
-
Attachment: (was: 14_fix_ipv6_windows.patch)

 Proton-C driver and URL Parsers don't support AF_INET6 (IPv6)
 -

 Key: PROTON-548
 URL: https://issues.apache.org/jira/browse/PROTON-548
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c, proton-j
Affects Versions: 0.6
Reporter: Ted Ross
 Attachments: 08_fix_ipv6_windows.patch


 The proton-c driver hard-codes its sockets to AF_INET, rather than using the 
 address family associated with a particular address.
 On systems that enable IPv6, the address localhost cannot be used because 
 it resolves to ::1 rather than 127.0.0.1



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


[jira] [Updated] (PROTON-548) Proton-C driver and URL Parsers don't support AF_INET6 (IPv6)

2014-09-11 Thread Dominic Evans (JIRA)

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

Dominic Evans updated PROTON-548:
-
Attachment: 08_fix_ipv6_windows.patch

 Proton-C driver and URL Parsers don't support AF_INET6 (IPv6)
 -

 Key: PROTON-548
 URL: https://issues.apache.org/jira/browse/PROTON-548
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c, proton-j
Affects Versions: 0.6
Reporter: Ted Ross
 Attachments: 08_fix_ipv6_windows.patch


 The proton-c driver hard-codes its sockets to AF_INET, rather than using the 
 address family associated with a particular address.
 On systems that enable IPv6, the address localhost cannot be used because 
 it resolves to ::1 rather than 127.0.0.1



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


[jira] [Updated] (PROTON-669) proton-c: Messenger abstracts away connections, but it would be useful to fail fast for auth errors etc.

2014-09-11 Thread Dominic Evans (JIRA)

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

Dominic Evans updated PROTON-669:
-
Attachment: 07_add_messenger_route_check_on_start_transform.h.patch
07_add_messenger_route_check_on_start_transform.c.patch

 proton-c: Messenger abstracts away connections, but it would be useful to 
 fail fast for auth errors etc.
 

 Key: PROTON-669
 URL: https://issues.apache.org/jira/browse/PROTON-669
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.7
Reporter: Dominic Evans
 Attachments: 07_add_messenger_route_check_on_start.patch, 
 07_add_messenger_route_check_on_start_header.patch, 
 07_add_messenger_route_check_on_start_transform.c.patch, 
 07_add_messenger_route_check_on_start_transform.h.patch


 As previously discussed on the mailing list under [Using the messenger API 
 to connect to a server without sending or 
 subscribing|http://qpid.2158936.n2.nabble.com/Using-the-messenger-API-to-connect-to-a-server-without-sending-or-subscribing-td7607184.html];
 Messenger doesn't provide a way of requesting a connection. Messenger has 
 been designed to abstract away the notion of establishing connections from 
 the user, but we would like to fail fast in those situations and return 
 authentication errors (e.g.,) to the user. Rafa suggested that we could add 
 an option to messenger to enable the checking of routes at startup, which is 
 what the attached patch intends to do.



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


[jira] [Updated] (PROTON-578) proton-c: windows/io.c prints Unknown error for all winsock errors

2014-09-11 Thread Dominic Evans (JIRA)

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

Dominic Evans updated PROTON-578:
-
Attachment: 10_fix_winsock_error_code_printing.patch

 proton-c: windows/io.c prints Unknown error for all winsock errors
 

 Key: PROTON-578
 URL: https://issues.apache.org/jira/browse/PROTON-578
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.7
Reporter: Dominic Evans
Assignee: Cliff Jansen
 Attachments: 10_fix_winsock_error_code_printing.patch


 The code in windows/io.c is attempting to call strerror on Winsock WSA error 
 codes returned by WSAGetLastError(). However, these codes don't map to Unix 
 errno codes, so will always output an Unknown error msg.



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


[jira] [Updated] (PROTON-578) proton-c: windows/io.c prints Unknown error for all winsock errors

2014-09-11 Thread Dominic Evans (JIRA)

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

Dominic Evans updated PROTON-578:
-
Attachment: (was: 17_fix_winsock_error_code_printing.patch)

 proton-c: windows/io.c prints Unknown error for all winsock errors
 

 Key: PROTON-578
 URL: https://issues.apache.org/jira/browse/PROTON-578
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.7
Reporter: Dominic Evans
Assignee: Cliff Jansen
 Attachments: 10_fix_winsock_error_code_printing.patch


 The code in windows/io.c is attempting to call strerror on Winsock WSA error 
 codes returned by WSAGetLastError(). However, these codes don't map to Unix 
 errno codes, so will always output an Unknown error msg.



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


[jira] [Updated] (PROTON-571) proton-c: Messenger outputs errors to stderr rather than setting messenger-error

2014-09-11 Thread Dominic Evans (JIRA)

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

Dominic Evans updated PROTON-571:
-
Attachment: 02_set_pn_error_when_printing_connection_errors.patch
02_replace_perror_printing_with_error_setting_posix_driver.patch

 proton-c: Messenger outputs errors to stderr rather than setting 
 messenger-error
 -

 Key: PROTON-571
 URL: https://issues.apache.org/jira/browse/PROTON-571
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.7
Reporter: Dominic Evans
 Attachments: 
 02_replace_perror_printing_with_error_setting_posix_driver.patch, 
 02_set_pn_error_when_printing_connection_errors.patch


 For various errors, such as aborted connections, messenger simply outputs 
 them to stderr rather then setting messenger-error. This makes it harder to 
 drive from wrappering applications.



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


[jira] [Updated] (PROTON-571) proton-c: Messenger outputs errors to stderr rather than setting messenger-error

2014-09-11 Thread Dominic Evans (JIRA)

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

Dominic Evans updated PROTON-571:
-
Attachment: (was: 02_set_pn_error_when_printing_connection_errors.patch)

 proton-c: Messenger outputs errors to stderr rather than setting 
 messenger-error
 -

 Key: PROTON-571
 URL: https://issues.apache.org/jira/browse/PROTON-571
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.7
Reporter: Dominic Evans
 Attachments: 
 02_replace_perror_printing_with_error_setting_posix_driver.patch, 
 02_set_pn_error_when_printing_connection_errors.patch


 For various errors, such as aborted connections, messenger simply outputs 
 them to stderr rather then setting messenger-error. This makes it harder to 
 drive from wrappering applications.



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


[jira] [Created] (PROTON-670) proton-c: Messenger doesn't provide accessors for the links it is using

2014-09-11 Thread Dominic Evans (JIRA)
Dominic Evans created PROTON-670:


 Summary: proton-c: Messenger doesn't provide accessors for the 
links it is using
 Key: PROTON-670
 URL: https://issues.apache.org/jira/browse/PROTON-670
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.7
Reporter: Dominic Evans


Messenger doesn't provide accessors for the links it uses.

As a consuming application that is using the Messenger API, it would be helpful 
to have access to this information so that you can determine which subscription 
address a given message was received upon.



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


[jira] [Updated] (PROTON-670) proton-c: Messenger doesn't provide accessors for the links it is using

2014-09-11 Thread Dominic Evans (JIRA)

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

Dominic Evans updated PROTON-670:
-
Attachment: 12_get_link_from_tracker_messenger.h.patch
12_get_link_from_tracker_messenger.c.patch

 proton-c: Messenger doesn't provide accessors for the links it is using
 ---

 Key: PROTON-670
 URL: https://issues.apache.org/jira/browse/PROTON-670
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.7
Reporter: Dominic Evans
 Attachments: 12_get_link_from_tracker_messenger.c.patch, 
 12_get_link_from_tracker_messenger.h.patch


 Messenger doesn't provide accessors for the links it uses.
 As a consuming application that is using the Messenger API, it would be 
 helpful to have access to this information so that you can determine which 
 subscription address a given message was received upon.



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


[jira] [Commented] (PROTON-670) proton-c: Messenger doesn't provide accessors for the links it is using

2014-09-11 Thread Dominic Evans (JIRA)

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

Dominic Evans commented on PROTON-670:
--

patches attached to allow user to determine the link associated with a 
particular message by tracker entry

 proton-c: Messenger doesn't provide accessors for the links it is using
 ---

 Key: PROTON-670
 URL: https://issues.apache.org/jira/browse/PROTON-670
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.7
Reporter: Dominic Evans
 Attachments: 12_get_link_from_tracker_messenger.c.patch, 
 12_get_link_from_tracker_messenger.h.patch


 Messenger doesn't provide accessors for the links it uses.
 As a consuming application that is using the Messenger API, it would be 
 helpful to have access to this information so that you can determine which 
 subscription address a given message was received upon.



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


[jira] [Updated] (PROTON-671) proton-c: Messenger doesn't provide a way to set the link settlement modes it uses

2014-09-11 Thread Dominic Evans (JIRA)

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

Dominic Evans updated PROTON-671:
-
Attachment: (was: 
13_add_pn_messenger_set_settle_mode_functions_to_header.patch)

 proton-c: Messenger doesn't provide a way to set the link settlement modes it 
 uses 
 ---

 Key: PROTON-671
 URL: https://issues.apache.org/jira/browse/PROTON-671
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.7
Reporter: Dominic Evans
 Attachments: 13_add_pn_messenger_set_settle_mode_functions.patch


 Messenger doesn't provide a way to set link settlement modes. Messenger 
 defaults to PN_SND_SETTLED and PN_RCV_FIRST and doesn't provide a way to 
 override that behaviour.
 Patches attached to allow these to be configured.



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


[jira] [Updated] (PROTON-671) proton-c: Messenger doesn't provide a way to set the link settlement modes it uses

2014-09-11 Thread Dominic Evans (JIRA)

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

Dominic Evans updated PROTON-671:
-
Attachment: 13_add_pn_messenger_set_settle_mode_functions_to_header.patch
13_add_pn_messenger_set_settle_mode_functions.patch

 proton-c: Messenger doesn't provide a way to set the link settlement modes it 
 uses 
 ---

 Key: PROTON-671
 URL: https://issues.apache.org/jira/browse/PROTON-671
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.7
Reporter: Dominic Evans
 Attachments: 13_add_pn_messenger_set_settle_mode_functions.patch


 Messenger doesn't provide a way to set link settlement modes. Messenger 
 defaults to PN_SND_SETTLED and PN_RCV_FIRST and doesn't provide a way to 
 override that behaviour.
 Patches attached to allow these to be configured.



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


[jira] [Updated] (PROTON-671) proton-c: Messenger doesn't provide a way to set the link settlement modes it uses

2014-09-11 Thread Dominic Evans (JIRA)

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

Dominic Evans updated PROTON-671:
-
Attachment: (was: 13_add_pn_messenger_set_settle_mode_functions.patch)

 proton-c: Messenger doesn't provide a way to set the link settlement modes it 
 uses 
 ---

 Key: PROTON-671
 URL: https://issues.apache.org/jira/browse/PROTON-671
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.7
Reporter: Dominic Evans
 Attachments: 13_add_pn_messenger_set_settle_mode_functions.patch, 
 13_add_pn_messenger_set_settle_mode_functions_to_header.patch


 Messenger doesn't provide a way to set link settlement modes. Messenger 
 defaults to PN_SND_SETTLED and PN_RCV_FIRST and doesn't provide a way to 
 override that behaviour.
 Patches attached to allow these to be configured.



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


[jira] [Updated] (PROTON-671) proton-c: Messenger doesn't provide a way to set the link settlement modes it uses

2014-09-11 Thread Dominic Evans (JIRA)

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

Dominic Evans updated PROTON-671:
-
Attachment: 13_add_pn_messenger_set_settle_mode_functions_to_header.patch
13_add_pn_messenger_set_settle_mode_functions.patch

 proton-c: Messenger doesn't provide a way to set the link settlement modes it 
 uses 
 ---

 Key: PROTON-671
 URL: https://issues.apache.org/jira/browse/PROTON-671
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.7
Reporter: Dominic Evans
 Attachments: 13_add_pn_messenger_set_settle_mode_functions.patch, 
 13_add_pn_messenger_set_settle_mode_functions_to_header.patch


 Messenger doesn't provide a way to set link settlement modes. Messenger 
 defaults to PN_SND_SETTLED and PN_RCV_FIRST and doesn't provide a way to 
 override that behaviour.
 Patches attached to allow these to be configured.



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


[jira] [Created] (PROTON-672) proton-c: Messenger doesn't support setting the transport tracer

2014-09-11 Thread Dominic Evans (JIRA)
Dominic Evans created PROTON-672:


 Summary: proton-c: Messenger doesn't support setting the transport 
tracer
 Key: PROTON-672
 URL: https://issues.apache.org/jira/browse/PROTON-672
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.7
Reporter: Dominic Evans


Messenger doesn't support setting the transport tracer. Messenger ought to 
provide a way to allow the transport tracer function to be overriden so that 
tracing can be captured by the consuming application.

Patches attached to implement this.



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


[jira] [Updated] (PROTON-672) proton-c: Messenger doesn't support setting the transport tracer

2014-09-11 Thread Dominic Evans (JIRA)

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

Dominic Evans updated PROTON-672:
-
Attachment: 14_add_tracer_to_messenger.h.patch
14_add_tracer_to_messenger.c.patch

 proton-c: Messenger doesn't support setting the transport tracer
 

 Key: PROTON-672
 URL: https://issues.apache.org/jira/browse/PROTON-672
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.7
Reporter: Dominic Evans
 Attachments: 14_add_tracer_to_messenger.c.patch, 
 14_add_tracer_to_messenger.h.patch


 Messenger doesn't support setting the transport tracer. Messenger ought to 
 provide a way to allow the transport tracer function to be overriden so that 
 tracing can be captured by the consuming application.
 Patches attached to implement this.



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


[jira] [Updated] (PROTON-672) proton-c: Messenger doesn't support setting the transport tracer

2014-09-11 Thread Dominic Evans (JIRA)

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

Dominic Evans updated PROTON-672:
-
Attachment: 15_get_connection_from_transport.h.patch
15_get_connection_from_transport.c.patch

 proton-c: Messenger doesn't support setting the transport tracer
 

 Key: PROTON-672
 URL: https://issues.apache.org/jira/browse/PROTON-672
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.7
Reporter: Dominic Evans
 Attachments: 14_add_tracer_to_messenger.c.patch, 
 14_add_tracer_to_messenger.h.patch, 15_get_connection_from_transport.c.patch, 
 15_get_connection_from_transport.h.patch


 Messenger doesn't support setting the transport tracer. Messenger ought to 
 provide a way to allow the transport tracer function to be overriden so that 
 tracing can be captured by the consuming application.
 Patches attached to implement this.



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


[jira] [Updated] (PROTON-673) proton-c: Messenger doesn't provide a way to obtain the remote idle timeout

2014-09-11 Thread Dominic Evans (JIRA)

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

Dominic Evans updated PROTON-673:
-
Attachment: 19_add_get_remote_idle_timeout_to_messenger.h.patch
19_add_get_remote_idle_timeout_to_messenger.c.patch

 proton-c: Messenger doesn't provide a way to obtain the remote idle timeout
 ---

 Key: PROTON-673
 URL: https://issues.apache.org/jira/browse/PROTON-673
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.7
Reporter: Dominic Evans
 Attachments: 19_add_get_remote_idle_timeout_to_messenger.c.patch, 
 19_add_get_remote_idle_timeout_to_messenger.h.patch


 Messenger doesn't provide a way to obtain the remote idle timeout which is 
 required to ensure the client application can maintain the keep alive 
 heartbeat, i.e. by calling pn_messenger_work at a sufficiently regular rate.
 Patch attached to implement this.



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


[jira] [Created] (PROTON-673) proton-c: Messenger doesn't provide a way to obtain the remote idle timeout

2014-09-11 Thread Dominic Evans (JIRA)
Dominic Evans created PROTON-673:


 Summary: proton-c: Messenger doesn't provide a way to obtain the 
remote idle timeout
 Key: PROTON-673
 URL: https://issues.apache.org/jira/browse/PROTON-673
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.7
Reporter: Dominic Evans
 Attachments: 19_add_get_remote_idle_timeout_to_messenger.c.patch, 
19_add_get_remote_idle_timeout_to_messenger.h.patch

Messenger doesn't provide a way to obtain the remote idle timeout which is 
required to ensure the client application can maintain the keep alive 
heartbeat, i.e. by calling pn_messenger_work at a sufficiently regular rate.

Patch attached to implement this.



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


[jira] [Updated] (PROTON-571) proton-c: Messenger outputs errors to stderr rather than setting messenger-error

2014-09-11 Thread Dominic Evans (JIRA)

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

Dominic Evans updated PROTON-571:
-
Attachment: 21_improve_perror_printing_windows_io.c.patch
21_improve_perror_printing_posix_io.c.patch
21_improve_perror_printing_messenger.c.patch
21_improve_perror_printing_io.h.patch

 proton-c: Messenger outputs errors to stderr rather than setting 
 messenger-error
 -

 Key: PROTON-571
 URL: https://issues.apache.org/jira/browse/PROTON-571
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.7
Reporter: Dominic Evans
 Attachments: 
 02_replace_perror_printing_with_error_setting_posix_driver.patch, 
 02_set_pn_error_when_printing_connection_errors.patch, 
 21_improve_perror_printing_io.h.patch, 
 21_improve_perror_printing_messenger.c.patch, 
 21_improve_perror_printing_posix_io.c.patch, 
 21_improve_perror_printing_windows_io.c.patch


 For various errors, such as aborted connections, messenger simply outputs 
 them to stderr rather then setting messenger-error. This makes it harder to 
 drive from wrappering applications.



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


[jira] [Commented] (PROTON-571) proton-c: Messenger outputs errors to stderr rather than setting messenger-error

2014-09-11 Thread Dominic Evans (JIRA)

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

Dominic Evans commented on PROTON-571:
--

Additional patchset to fix Windows socket errors.

 proton-c: Messenger outputs errors to stderr rather than setting 
 messenger-error
 -

 Key: PROTON-571
 URL: https://issues.apache.org/jira/browse/PROTON-571
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.7
Reporter: Dominic Evans
 Attachments: 
 02_replace_perror_printing_with_error_setting_posix_driver.patch, 
 02_set_pn_error_when_printing_connection_errors.patch, 
 21_improve_perror_printing_io.h.patch, 
 21_improve_perror_printing_messenger.c.patch, 
 21_improve_perror_printing_posix_io.c.patch, 
 21_improve_perror_printing_windows_io.c.patch


 For various errors, such as aborted connections, messenger simply outputs 
 them to stderr rather then setting messenger-error. This makes it harder to 
 drive from wrappering applications.



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


[jira] [Created] (PROTON-674) proton-c: Messenger doesn't provide a way of setting the TTL on a subscription

2014-09-11 Thread Dominic Evans (JIRA)
Dominic Evans created PROTON-674:


 Summary: proton-c: Messenger doesn't provide a way of setting the 
TTL on a subscription
 Key: PROTON-674
 URL: https://issues.apache.org/jira/browse/PROTON-674
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.7
Reporter: Dominic Evans


Messenger doesn't provide a way of setting ttl on a subscription. We want to be 
able to specify the timeout of a given subscription link when we open it.

Patches attached to add pn_messenger_subscribe_ttl call.



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


[jira] [Updated] (PROTON-674) proton-c: Messenger doesn't provide a way of setting the TTL on a subscription

2014-09-11 Thread Dominic Evans (JIRA)

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

Dominic Evans updated PROTON-674:
-
Attachment: 22_add_messenger_subscribe_ttl_method_messenger.h.patch
22_add_messenger_subscribe_ttl_method_messenger.c.patch

 proton-c: Messenger doesn't provide a way of setting the TTL on a subscription
 --

 Key: PROTON-674
 URL: https://issues.apache.org/jira/browse/PROTON-674
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.7
Reporter: Dominic Evans
 Attachments: 22_add_messenger_subscribe_ttl_method_messenger.c.patch, 
 22_add_messenger_subscribe_ttl_method_messenger.h.patch


 Messenger doesn't provide a way of setting ttl on a subscription. We want to 
 be able to specify the timeout of a given subscription link when we open it.
 Patches attached to add pn_messenger_subscribe_ttl call.



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


[jira] [Created] (PROTON-675) proton-c: Messenger doesn't provide a way of setting the SSL peer authentication mode

2014-09-11 Thread Dominic Evans (JIRA)
Dominic Evans created PROTON-675:


 Summary: proton-c: Messenger doesn't provide a way of setting the 
SSL peer authentication mode
 Key: PROTON-675
 URL: https://issues.apache.org/jira/browse/PROTON-675
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.7
Reporter: Dominic Evans


Messenger doesn't provide a way of setting the SSL peer authentication mode 
when a trust certificate is being used (it is hardcoded to: 
PN_SSL_VERIFY_PEER_NAME).  We want the option to be able to optionally specify 
PN_SSL_VERIFY_PEER instead.

Patch attached.



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


[jira] [Updated] (PROTON-675) proton-c: Messenger doesn't provide a way of setting the SSL peer authentication mode

2014-09-11 Thread Dominic Evans (JIRA)

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

Dominic Evans updated PROTON-675:
-
Attachment: 
23_add_messenger_set_ssl_peer_authentication_mode_method_messenger.h.patch

23_add_messenger_set_ssl_peer_authentication_mode_method_messenger.c.patch

 proton-c: Messenger doesn't provide a way of setting the SSL peer 
 authentication mode
 -

 Key: PROTON-675
 URL: https://issues.apache.org/jira/browse/PROTON-675
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.7
Reporter: Dominic Evans
 Attachments: 
 23_add_messenger_set_ssl_peer_authentication_mode_method_messenger.c.patch, 
 23_add_messenger_set_ssl_peer_authentication_mode_method_messenger.h.patch


 Messenger doesn't provide a way of setting the SSL peer authentication mode 
 when a trust certificate is being used (it is hardcoded to: 
 PN_SSL_VERIFY_PEER_NAME).  We want the option to be able to optionally 
 specify PN_SSL_VERIFY_PEER instead.
 Patch attached.



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


[jira] [Created] (PROTON-676) proton-c: transport layer SSL failures not propagated back to Messenger in pni_connection_readable

2014-09-11 Thread Dominic Evans (JIRA)
Dominic Evans created PROTON-676:


 Summary: proton-c: transport layer SSL failures not propagated 
back to Messenger in pni_connection_readable
 Key: PROTON-676
 URL: https://issues.apache.org/jira/browse/PROTON-676
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.7
Reporter: Dominic Evans
 Attachments: 24_ssl_transport_failure_fix_messenger.c.patch

When an ssl failure occurs during connection at the transport layer the error 
is not propagated back to messenger (it is ignored).

Patch attached.



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


[jira] [Updated] (PROTON-660) Fix openssl.c build on windows

2014-09-11 Thread Dominic Evans (JIRA)

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

Dominic Evans updated PROTON-660:
-
Attachment: 25_openssl_fix_for_windows_platform.h.patch
25_openssl_fix_for_windows_data.h.patch
25_openssl_fix_for_windows_CMakeLists.patch

We happend to have similarly hit this issue, but fixed it in a slightly 
different way, so I'm attaching our patches for reference as well. These 
include a patch to CMakeLists.txt to allow a OPENSSL_INCLUDE_DIR param to be 
supplied at build time.

 Fix openssl.c build on windows
 --

 Key: PROTON-660
 URL: https://issues.apache.org/jira/browse/PROTON-660
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.8
 Environment: Windows 7, VS2013
Reporter: Bozo Dragojevic
 Attachments: 0001-PROTON-660-Fix-openssl.c-build-on-windows.patch, 
 25_openssl_fix_for_windows_CMakeLists.patch, 
 25_openssl_fix_for_windows_data.h.patch, 
 25_openssl_fix_for_windows_platform.h.patch


 Compiled openssl-1.0.1i from source
 Proton finds it, but openssl.c does not compile without small adjustments.



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


[jira] [Updated] (PROTON-677) proton-c: transport incorrectly detaches all links with closed=true by default

2014-09-11 Thread Dominic Evans (JIRA)

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

Dominic Evans updated PROTON-677:
-
Attachment: 26_stop_link_detach_closed_if_sub_ttl_transport.c.patch

 proton-c: transport incorrectly detaches all links with closed=true by default
 --

 Key: PROTON-677
 URL: https://issues.apache.org/jira/browse/PROTON-677
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.7
Reporter: Dominic Evans
 Attachments: 26_stop_link_detach_closed_if_sub_ttl_transport.c.patch


 qpid-proton detaches all links with closed=true by default. If a subscription 
 has a time-to-live and is not expected to be destroyed on detach then we 
 shouldn't be setting closed=true on the detach call.
 Patch attached.



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


[jira] [Created] (PROTON-678) proton-c: (Win 32-bit) pn_post_frame misinterprets variable argument data when ERROR is used

2014-09-11 Thread Dominic Evans (JIRA)
Dominic Evans created PROTON-678:


 Summary: proton-c: (Win 32-bit) pn_post_frame misinterprets 
variable argument data when ERROR is used
 Key: PROTON-678
 URL: https://issues.apache.org/jira/browse/PROTON-678
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.7
 Environment: Windows x86-32
Reporter: Dominic Evans


For Windows 32bit ERROR is not a uint64_t type, which causes pn_post_frame 
to misinterpret the passed variable argument data when ERROR is used 

patch attached.



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


[jira] [Updated] (PROTON-678) proton-c: (Win 32-bit) pn_post_frame misinterprets variable argument data when ERROR is used

2014-09-11 Thread Dominic Evans (JIRA)

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

Dominic Evans updated PROTON-678:
-
Attachment: 27_32bit_windows_fix_transport.c.patch

 proton-c: (Win 32-bit) pn_post_frame misinterprets variable argument data 
 when ERROR is used
 

 Key: PROTON-678
 URL: https://issues.apache.org/jira/browse/PROTON-678
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.7
 Environment: Windows x86-32
Reporter: Dominic Evans
 Attachments: 27_32bit_windows_fix_transport.c.patch


 For Windows 32bit ERROR is not a uint64_t type, which causes 
 pn_post_frame to misinterpret the passed variable argument data when ERROR is 
 used 
 patch attached.



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


[jira] [Updated] (PROTON-680) proton-c: Messenger doesn't provide a way of obtaining link or delivery information

2014-09-11 Thread Dominic Evans (JIRA)

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

Dominic Evans updated PROTON-680:
-
Attachment: 31_access_messenger_deliveries_messenger.h.patch
30_access_messenger_deliveries_messenger.c.patch
29_access_messenger_links_messenger.h.patch
29_access_messenger_links_messenger.c.patch

 proton-c: Messenger doesn't provide a way of obtaining link or delivery 
 information
 ---

 Key: PROTON-680
 URL: https://issues.apache.org/jira/browse/PROTON-680
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.7
Reporter: Dominic Evans
 Attachments: 29_access_messenger_links_messenger.c.patch, 
 29_access_messenger_links_messenger.h.patch, 
 30_access_messenger_deliveries_messenger.c.patch, 
 31_access_messenger_deliveries_messenger.h.patch


 This would be useful for determining why a delivery was rejected by the 
 server (for example).
 Patches attached.



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


[jira] [Updated] (PROTON-571) proton-c: Messenger outputs errors to stderr rather than setting messenger-error

2014-09-11 Thread Dominic Evans (JIRA)

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

Dominic Evans updated PROTON-571:
-
Attachment: 02_set_pn_error_when_printing_connection_errors.patch

 proton-c: Messenger outputs errors to stderr rather than setting 
 messenger-error
 -

 Key: PROTON-571
 URL: https://issues.apache.org/jira/browse/PROTON-571
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.7
Reporter: Dominic Evans
 Attachments: 
 02_replace_perror_printing_with_error_setting_posix_driver.patch, 
 02_set_pn_error_when_printing_connection_errors.patch, 
 21_improve_perror_printing_io.h.patch, 
 21_improve_perror_printing_messenger.c.patch, 
 21_improve_perror_printing_posix_io.c.patch, 
 21_improve_perror_printing_windows_io.c.patch


 For various errors, such as aborted connections, messenger simply outputs 
 them to stderr rather then setting messenger-error. This makes it harder to 
 drive from wrappering applications.



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


[jira] [Updated] (PROTON-571) proton-c: Messenger outputs errors to stderr rather than setting messenger-error

2014-09-11 Thread Dominic Evans (JIRA)

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

Dominic Evans updated PROTON-571:
-
Attachment: (was: 02_set_pn_error_when_printing_connection_errors.patch)

 proton-c: Messenger outputs errors to stderr rather than setting 
 messenger-error
 -

 Key: PROTON-571
 URL: https://issues.apache.org/jira/browse/PROTON-571
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.7
Reporter: Dominic Evans
 Attachments: 
 02_replace_perror_printing_with_error_setting_posix_driver.patch, 
 02_set_pn_error_when_printing_connection_errors.patch, 
 21_improve_perror_printing_io.h.patch, 
 21_improve_perror_printing_messenger.c.patch, 
 21_improve_perror_printing_posix_io.c.patch, 
 21_improve_perror_printing_windows_io.c.patch


 For various errors, such as aborted connections, messenger simply outputs 
 them to stderr rather then setting messenger-error. This makes it harder to 
 drive from wrappering applications.



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


[jira] [Updated] (PROTON-625) prevert looping when map-load_factor exactly equals load

2014-09-11 Thread Robbie Gemmell (JIRA)

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

Robbie Gemmell updated PROTON-625:
--
Summary: prevert looping when map-load_factor exactly equals load  (was: 
Biggest Backtrace Ever!)

 prevert looping when map-load_factor exactly equals load
 -

 Key: PROTON-625
 URL: https://issues.apache.org/jira/browse/PROTON-625
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.8
Reporter: michael goulish
 Fix For: 0.8


 I am saving all my stuff so I can repro on demand.
 It doesn't happen every time, but it's about 50%.
 --
 On one box, I have a dispatch router.
 On the other box, I have 10 clients: 5 Messenger-based receivers, and 5 
 qpid-messaging-based senders.
 Each client will handle 100 addresses, of the form mick/0 ... mick/1 ... 
  c.
 100 messages will be sent to each address.
 I start the 5 receivers first.  They start OK.  Dispatch router happy  
 stable.
 Wait a few seconds.
 I start the 5 senders, from a bash script.
 The first sender is already sending when the 2nd, 3rd, 4th start.
 After a few of them start,but before all have finished starting,  a few 
 seconds into the script, the crash occurs.  ( If they all start up 
 successfully, no crash. )
 The crash occurs in the dispatch router.
 Here is the biggest backtrace ever:
 #0  0x003cf9879ad1 in _int_malloc (av=0x7f101c20, bytes=16384) at 
 malloc.c:4383
 #1  0x003cf987a911 in __libc_malloc (bytes=16384) at malloc.c:3664
 #2  0x0039c6c1650a in pni_map_allocate () from 
 /usr/lib64/libqpid-proton.so.2
 #3  0x0039c6c16a3a in pni_map_ensure () from 
 /usr/lib64/libqpid-proton.so.2
 #4  0x0039c6c16c45 in pni_map_entry () from /usr/lib64/libqpid-proton.so.2
 #5  0x0039c6c16c64 in pni_map_entry () from /usr/lib64/libqpid-proton.so.2
 #6  0x0039c6c16c64 in pni_map_entry () from /usr/lib64/libqpid-proton.so.2
 #7  0x0039c6c16c64 in pni_map_entry () from /usr/lib64/libqpid-proton.so.2
 #8  0x0039c6c16c64 in pni_map_entry () from /usr/lib64/libqpid-proton.so.2
 #9  0x0039c6c16c64 in pni_map_entry () from /usr/lib64/libqpid-proton.so.2
 #10 0x0039c6c16c64 in pni_map_entry () from /usr/lib64/libqpid-proton.so.2
 #11 0x0039c6c16c64 in pni_map_entry () from /usr/lib64/libqpid-proton.so.2
 #12 0x0039c6c16c64 in pni_map_entry () from /usr/lib64/libqpid-proton.so.2
 #13 0x0039c6c16c64 in pni_map_entry () from /usr/lib64/libqpid-proton.so.2
 #14 0x0039c6c16c64 in pni_map_entry () from /usr/lib64/libqpid-proton.so.2
 .
 .
 .
 .
 #93549 0x0039c6c16c64 in pni_map_entry () from 
 /usr/lib64/libqpid-proton.so.2
 #93550 0x0039c6c16c64 in pni_map_entry () from 
 /usr/lib64/libqpid-proton.so.2
 #93551 0x0039c6c16c64 in pni_map_entry () from 
 /usr/lib64/libqpid-proton.so.2
 #93552 0x0039c6c16c64 in pni_map_entry () from 
 /usr/lib64/libqpid-proton.so.2
 #93553 0x0039c6c16c64 in pni_map_entry () from 
 /usr/lib64/libqpid-proton.so.2
 #93554 0x0039c6c16c64 in pni_map_entry () from 
 /usr/lib64/libqpid-proton.so.2
 #93555 0x0039c6c16c64 in pni_map_entry () from 
 /usr/lib64/libqpid-proton.so.2
 #93556 0x0039c6c16c64 in pni_map_entry () from 
 /usr/lib64/libqpid-proton.so.2
 #93557 0x0039c6c16c64 in pni_map_entry () from 
 /usr/lib64/libqpid-proton.so.2
 #93558 0x0039c6c16c64 in pni_map_entry () from 
 /usr/lib64/libqpid-proton.so.2
 #93559 0x0039c6c16dc0 in pn_map_put () from /usr/lib64/libqpid-proton.so.2
 #93560 0x0039c6c17226 in pn_hash_put () from 
 /usr/lib64/libqpid-proton.so.2
 #93561 0x0039c6c2a643 in pn_delivery_map_push () from 
 /usr/lib64/libqpid-proton.so.2
 #93562 0x0039c6c2c44b in pn_do_transfer () from 
 /usr/lib64/libqpid-proton.so.2
 #93563 0x0039c6c24385 in pn_dispatch_frame () from 
 /usr/lib64/libqpid-proton.so.2
 #93564 0x0039c6c2448f in pn_dispatcher_input () from 
 /usr/lib64/libqpid-proton.so.2
 #93565 0x0039c6c2d68b in pn_input_read_amqp () from 
 /usr/lib64/libqpid-proton.so.2
 #93566 0x0039c6c3011a in pn_io_layer_input_passthru () from 
 /usr/lib64/libqpid-proton.so.2
 #93567 0x0039c6c3011a in pn_io_layer_input_passthru () from 
 /usr/lib64/libqpid-proton.so.2
 #93568 0x0039c6c2d275 in transport_consume () from 
 /usr/lib64/libqpid-proton.so.2
 #93569 0x0039c6c304cd in pn_transport_process () from 
 /usr/lib64/libqpid-proton.so.2
 #93570 0x0039c6c3e40c in pn_connector_process () from 
 /usr/lib64/libqpid-proton.so.2
 #93571 0x7f1060c60460 in process_connector () from 
 /home/mick/dispatch/build/libqpid-dispatch.so.0
 #93572 0x7f1060c61017 in thread_run () from 
 /home/mick/dispatch/build/libqpid-dispatch.so.0
 #93573 0x003cf9c07851 in start_thread 

[jira] [Updated] (PROTON-625) prevert looping when map-load_factor exactly equals load

2014-09-11 Thread Robbie Gemmell (JIRA)

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

Robbie Gemmell updated PROTON-625:
--
Fix Version/s: 0.8

 prevert looping when map-load_factor exactly equals load
 -

 Key: PROTON-625
 URL: https://issues.apache.org/jira/browse/PROTON-625
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.8
Reporter: michael goulish
 Fix For: 0.8


 I am saving all my stuff so I can repro on demand.
 It doesn't happen every time, but it's about 50%.
 --
 On one box, I have a dispatch router.
 On the other box, I have 10 clients: 5 Messenger-based receivers, and 5 
 qpid-messaging-based senders.
 Each client will handle 100 addresses, of the form mick/0 ... mick/1 ... 
  c.
 100 messages will be sent to each address.
 I start the 5 receivers first.  They start OK.  Dispatch router happy  
 stable.
 Wait a few seconds.
 I start the 5 senders, from a bash script.
 The first sender is already sending when the 2nd, 3rd, 4th start.
 After a few of them start,but before all have finished starting,  a few 
 seconds into the script, the crash occurs.  ( If they all start up 
 successfully, no crash. )
 The crash occurs in the dispatch router.
 Here is the biggest backtrace ever:
 #0  0x003cf9879ad1 in _int_malloc (av=0x7f101c20, bytes=16384) at 
 malloc.c:4383
 #1  0x003cf987a911 in __libc_malloc (bytes=16384) at malloc.c:3664
 #2  0x0039c6c1650a in pni_map_allocate () from 
 /usr/lib64/libqpid-proton.so.2
 #3  0x0039c6c16a3a in pni_map_ensure () from 
 /usr/lib64/libqpid-proton.so.2
 #4  0x0039c6c16c45 in pni_map_entry () from /usr/lib64/libqpid-proton.so.2
 #5  0x0039c6c16c64 in pni_map_entry () from /usr/lib64/libqpid-proton.so.2
 #6  0x0039c6c16c64 in pni_map_entry () from /usr/lib64/libqpid-proton.so.2
 #7  0x0039c6c16c64 in pni_map_entry () from /usr/lib64/libqpid-proton.so.2
 #8  0x0039c6c16c64 in pni_map_entry () from /usr/lib64/libqpid-proton.so.2
 #9  0x0039c6c16c64 in pni_map_entry () from /usr/lib64/libqpid-proton.so.2
 #10 0x0039c6c16c64 in pni_map_entry () from /usr/lib64/libqpid-proton.so.2
 #11 0x0039c6c16c64 in pni_map_entry () from /usr/lib64/libqpid-proton.so.2
 #12 0x0039c6c16c64 in pni_map_entry () from /usr/lib64/libqpid-proton.so.2
 #13 0x0039c6c16c64 in pni_map_entry () from /usr/lib64/libqpid-proton.so.2
 #14 0x0039c6c16c64 in pni_map_entry () from /usr/lib64/libqpid-proton.so.2
 .
 .
 .
 .
 #93549 0x0039c6c16c64 in pni_map_entry () from 
 /usr/lib64/libqpid-proton.so.2
 #93550 0x0039c6c16c64 in pni_map_entry () from 
 /usr/lib64/libqpid-proton.so.2
 #93551 0x0039c6c16c64 in pni_map_entry () from 
 /usr/lib64/libqpid-proton.so.2
 #93552 0x0039c6c16c64 in pni_map_entry () from 
 /usr/lib64/libqpid-proton.so.2
 #93553 0x0039c6c16c64 in pni_map_entry () from 
 /usr/lib64/libqpid-proton.so.2
 #93554 0x0039c6c16c64 in pni_map_entry () from 
 /usr/lib64/libqpid-proton.so.2
 #93555 0x0039c6c16c64 in pni_map_entry () from 
 /usr/lib64/libqpid-proton.so.2
 #93556 0x0039c6c16c64 in pni_map_entry () from 
 /usr/lib64/libqpid-proton.so.2
 #93557 0x0039c6c16c64 in pni_map_entry () from 
 /usr/lib64/libqpid-proton.so.2
 #93558 0x0039c6c16c64 in pni_map_entry () from 
 /usr/lib64/libqpid-proton.so.2
 #93559 0x0039c6c16dc0 in pn_map_put () from /usr/lib64/libqpid-proton.so.2
 #93560 0x0039c6c17226 in pn_hash_put () from 
 /usr/lib64/libqpid-proton.so.2
 #93561 0x0039c6c2a643 in pn_delivery_map_push () from 
 /usr/lib64/libqpid-proton.so.2
 #93562 0x0039c6c2c44b in pn_do_transfer () from 
 /usr/lib64/libqpid-proton.so.2
 #93563 0x0039c6c24385 in pn_dispatch_frame () from 
 /usr/lib64/libqpid-proton.so.2
 #93564 0x0039c6c2448f in pn_dispatcher_input () from 
 /usr/lib64/libqpid-proton.so.2
 #93565 0x0039c6c2d68b in pn_input_read_amqp () from 
 /usr/lib64/libqpid-proton.so.2
 #93566 0x0039c6c3011a in pn_io_layer_input_passthru () from 
 /usr/lib64/libqpid-proton.so.2
 #93567 0x0039c6c3011a in pn_io_layer_input_passthru () from 
 /usr/lib64/libqpid-proton.so.2
 #93568 0x0039c6c2d275 in transport_consume () from 
 /usr/lib64/libqpid-proton.so.2
 #93569 0x0039c6c304cd in pn_transport_process () from 
 /usr/lib64/libqpid-proton.so.2
 #93570 0x0039c6c3e40c in pn_connector_process () from 
 /usr/lib64/libqpid-proton.so.2
 #93571 0x7f1060c60460 in process_connector () from 
 /home/mick/dispatch/build/libqpid-dispatch.so.0
 #93572 0x7f1060c61017 in thread_run () from 
 /home/mick/dispatch/build/libqpid-dispatch.so.0
 #93573 0x003cf9c07851 in start_thread (arg=0x7f1052bfd700) at 
 pthread_create.c:301
 #93574 0x003cf98e890d in clone () at 
 

[jira] [Updated] (PROTON-548) Proton-C driver and URL Parsers don't support AF_INET6 (IPv6)

2014-09-11 Thread Ted Ross (JIRA)

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

Ted Ross updated PROTON-548:

Assignee: Cliff Jansen

 Proton-C driver and URL Parsers don't support AF_INET6 (IPv6)
 -

 Key: PROTON-548
 URL: https://issues.apache.org/jira/browse/PROTON-548
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c, proton-j
Affects Versions: 0.6
Reporter: Ted Ross
Assignee: Cliff Jansen
 Attachments: 08_fix_ipv6_windows.patch


 The proton-c driver hard-codes its sockets to AF_INET, rather than using the 
 address family associated with a particular address.
 On systems that enable IPv6, the address localhost cannot be used because 
 it resolves to ::1 rather than 127.0.0.1



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


[jira] [Commented] (PROTON-681) proton-c: pni_map_ensure infinite loop if `load = map-load_factor`

2014-09-11 Thread Dominic Evans (JIRA)

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

Dominic Evans commented on PROTON-681:
--

[~gemmellr] yep you're correct, looks like this is a dupe. I didn't spot that 
when I searched to see if the issue was already reported. Will close this one 
off as fixed.

 proton-c: pni_map_ensure infinite loop if `load = map-load_factor`
 ---

 Key: PROTON-681
 URL: https://issues.apache.org/jira/browse/PROTON-681
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.7
Reporter: Dominic Evans
 Attachments: 33_pni_map_ensure_bug_fix_object.c.patch


 Fix to a bug in pni_map_ensure, where it does not account for the case were 
 load = map-load_factor, results in an infinite loop.
 Patch attached.



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


[jira] [Resolved] (PROTON-681) proton-c: pni_map_ensure infinite loop if `load = map-load_factor`

2014-09-11 Thread Dominic Evans (JIRA)

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

Dominic Evans resolved PROTON-681.
--
Resolution: Duplicate

Closing as dupe.

 proton-c: pni_map_ensure infinite loop if `load = map-load_factor`
 ---

 Key: PROTON-681
 URL: https://issues.apache.org/jira/browse/PROTON-681
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.7
Reporter: Dominic Evans
 Attachments: 33_pni_map_ensure_bug_fix_object.c.patch


 Fix to a bug in pni_map_ensure, where it does not account for the case were 
 load = map-load_factor, results in an infinite loop.
 Patch attached.



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


[jira] [Closed] (PROTON-611) [proton-c] transport buffer increased to peer's max frame size if initial output_size is not enough

2014-09-11 Thread Dominic Evans (JIRA)

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

Dominic Evans closed PROTON-611.


 [proton-c] transport buffer increased to peer's max frame size if initial 
 output_size is not enough
 ---

 Key: PROTON-611
 URL: https://issues.apache.org/jira/browse/PROTON-611
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.7
Reporter: Dominic Evans
Assignee: Andrew Stitcher
 Fix For: 0.8

 Attachments: 20_fix_bad_malloc_in_transport_produce.patch


 transport_produce attempts to allocate a negatively sized buffer
 As soon as remote_max_frame is set, the code in transport_produce attempts to 
 increase its buffer immediately up to that size when its initial size isn't 
 enough. This causes a huge malloc to occur if the remote max frame size is 
 large and also potentially overflows MAX_INT



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


[jira] [Closed] (PROTON-573) proton-c: Messenger appears to have hard-coded address limits of 1024

2014-09-11 Thread Dominic Evans (JIRA)

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

Dominic Evans closed PROTON-573.


 proton-c: Messenger appears to have hard-coded address limits of 1024
 -

 Key: PROTON-573
 URL: https://issues.apache.org/jira/browse/PROTON-573
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.7
Reporter: Dominic Evans
Assignee: Rafael H. Schloming
 Attachments: 06_arbitrary_length_addresses_in_store.patch, 
 07_arbitrary_length_addresses_in_messenger.patch


 The AMQP 1.0 spec permits pretty much arbitrary length link names, but 
 Messenger hard-codes some 1K limits in various places.



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


[jira] [Created] (PROTON-682) proton-c: a call to pn_messenger_stop can get into an infinite loop if the remote connection is severed

2014-09-11 Thread Dominic Evans (JIRA)
Dominic Evans created PROTON-682:


 Summary: proton-c: a call to pn_messenger_stop can get into an 
infinite loop if the remote connection is severed
 Key: PROTON-682
 URL: https://issues.apache.org/jira/browse/PROTON-682
 Project: Qpid Proton
  Issue Type: Bug
Reporter: Dominic Evans


The problem is that the transport layer is not being closed down properly if 
output is pending when the connection is severed and a messenger stop is 
requested. pn_messenger_stop needs to send out an AMQP close message any will 
only do this when there is an event to say that it can write (i.e 
pn_messenger_process gets a PN_WRITABLE event from pn_selector_next, which 
examines the pollfd and sets PN_WRITABLE event if POLLOUT is set in revents). 
Because this event is never generated it seems to loop forever.




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


Re: [jira] [Created] (PROTON-668) Document Proton-c IO restrictions for 0.8 release

2014-09-11 Thread Bozo Dragojevic
Hi Cliff,

comments inline

On 11. 09. 14 09:32, Cliff Jansen (JIRA) wrote:

 Proton is designed to provide an efficient IO layer that functions without 
 imposing a threading model on the application.  Applications may (1) roll 
 their own IO and just use the Proton engine, (2) use all Proton primitives, 
 (3) use some Proton primitives augmented by an external event loop.

 Case (1) is unrelated to this JIRA.  The others may be restated:

 Scenario 2: Proton event loop: a proton selector manages socket events for 
 all sockets placed in the selector, all associated sockets use pn_io_xxx() 
 calls.  Sockets outside the selector are unmanaged and passed through to 
 the OS socket function unchanged.

 Scenario 3: Third party event loop (no proton selector involved), all sockets 
 are treated as for unmanaged in scenario 2.

yay, looks like my use-case :)

 Scenario 4, 5...: Others to support?


 The problem:

 The Proton Posix pattern for efficient IO is:

   tell me when your (OS) buffer is ready for io transfer (in or out)

 Whereas the normal Windows pattern is somewhat reversed (IO completion ports):

   tell me when you are done transferring data (to or from) my (user space) 
 buffer

 The current Windows IOCP implementation (PROTON-640) tries to make the latter 
 look like the former with some constraints.   There should be documentation 
 specifying reasonable limits on Proton usage that may be falsely implied by 
 the API but do not translate efficiently to Windows.  Assuming that future 
 Windows implementations may adopt more aggressive performance strategies 
 (especially on the read side), I would propose something along the lines of:


   a socket may only ever be used with a single pn_io_t in its lifetime
 exception: a socket from pn_accept() is not yet associated with any 
 pn_io_t and its first use can be with any pn_io_t (or never with a pn_io_t at 
 all)

I'm not sure if it's implied, but pn_connect() and pn_listen() also need
to support 'third party event loop'.
Specifically, pn_connect() has to remain non-blocking (we get to know
about the connect error later in the external event loop)

   send/recv/close may not be intermixed with similar non-Proton OS calls 
 (otherwise: out of order or lost data)

   a socket can move once from an external loop to a proton loop, but never 
 the other way

   pn_pipe() values can only be used with pn_read and pn_write and 
 pn_selector_select, they cannot participate in an external event loop.


External event loops should have their own mechanism how to signal
non-socket events into the loop.

   Furthermore, there is no thread safety except:

 threads may do concurrent pn_io_xxx() calls as long as no two are 
 simultaneous on the same socket (where xxx is send/recv/read/write)


This will break pn_io_error() and pn_io_wouldblock() as they are defined
now.

 pn_selector_select() is thread safe against 
 pn_read/pn_write/pn_send/pn_recv, but the outcome of the select is 
 indeterminate.  pn_selector_select() must be interrupted and restarted at any 
 time when other simultaneous IO may affect the outcome.


When you say 'interrupted' is there a simpler way than a pn_write() to
writeable pn_socket_t of pn_pipe()
 that has it's readable pn_socket_t associated with a pn_selectable_t
that is added to said pn_selector_t ? ;)

I have a feeling you don't really want/need to expose the pn_pipe(), but
add a
pn_selector_interrupt() and a mechanism of querying that for the caller
of pn_selector_select()
especially as you want to implement it completely differently on windows.

 calls on different pn_io_t objects do not interact and are thread safe.


 If it is desirable for a socket to be used in an external loop after being 
 used in a Proton loop, we would need some sort of blocking calls along the 
 lines of:

   pn_io_flush()
   pn_io_drain()

 which would be no-ops on Posix but would unwind outstanding completions on 
 Windows.



this part sounds ok, if it is needed

Thanks,
Bozzo



Re: proton javascript binding problem/question

2014-09-11 Thread Dominic Evans
fadams wrote
 What do you think of the approach that I've taken? My rationale for 
 compiling proton-c to JavaScript and using a thin (ish) binding layer 
 rather than doing a ground-up native JavaScript rewrite was primarily 
 about support. I figured that there was a lot of effort being put into 
 maintaining proton-c and that was what might be considered the 
 canonical or reference implementation, so tracking improvements would 
 end up being a pain with a separate code-base, whereas the binding to a 
 compiled library just needs to cover the public API and ultimately I 
 should pick up improvements to the core code transparently. If you 
 look at what I've done you'll hopefully see a startling similarity with 
 the SWIG bindings particularly the Python one.

Hi Fraser,

For the first version of our Node.js client, we ended up writing our light
C++ module to access the bits of proton-c that we needed and bridge to
Javascript. At the time I wasn't aware of your javascript branch, else we
would have looked at using that first.

However, I did recently also notice that SWIG-3.0.1 has now added a
Javascript module for generating Node.js and Javascript bindings in the same
way as is currently done for Python, Ruby etc. I wonder how that would
compare to your emscripten approach?

http://www.swig.org/Release/RELEASENOTES

Cheers,
Dom



--
View this message in context: 
http://qpid.2158936.n2.nabble.com/proton-javascript-binding-problem-question-tp7612394p7613505.html
Sent from the Apache Qpid Proton mailing list archive at Nabble.com.


Re: proton javascript binding problem/question

2014-09-11 Thread Fraser Adams

On 11/09/14 15:25, Dominic Evans wrote:

fadams wrote

What do you think of the approach that I've taken? My rationale for
compiling proton-c to JavaScript and using a thin (ish) binding layer
rather than doing a ground-up native JavaScript rewrite was primarily
about support. I figured that there was a lot of effort being put into
maintaining proton-c and that was what might be considered the
canonical or reference implementation, so tracking improvements would
end up being a pain with a separate code-base, whereas the binding to a
compiled library just needs to cover the public API and ultimately I
should pick up improvements to the core code transparently. If you
look at what I've done you'll hopefully see a startling similarity with
the SWIG bindings particularly the Python one.

Hi Fraser,

For the first version of our Node.js client, we ended up writing our light
C++ module to access the bits of proton-c that we needed and bridge to
Javascript. At the time I wasn't aware of your javascript branch, else we
would have looked at using that first.

However, I did recently also notice that SWIG-3.0.1 has now added a
Javascript module for generating Node.js and Javascript bindings in the same
way as is currently done for Python, Ruby etc. I wonder how that would
compare to your emscripten approach?

http://www.swig.org/Release/RELEASENOTES

Cheers,
Dom


Hi Dominic,
Yeah I noticed the SWIG thing too recently, though can't recall where - 
ISTR it was done as part of Google Summer of Code or something.


I can't say for sure, but my guess is that the approach is a bit 
different.


At a guess (and I've not really looked at it yet much less played) the 
SWIG bindings are about being able to integrate/bind with native C/C++ 
to JavaScript - pretty much analogous to how similar things work with 
say Python/Perl etc. I suspect that the result is that the JavaScript 
will only be functional from a node.js environment and not a browser.



With the emscripten based approach I'm essentially cross-compiling (or 
transpiling or whatever you might want to call it) to pure JavaScript, 
in practice to a subset of JavaScript called asm.js that is optimised 
for ahead of time compilation in the execution engine (recent versions 
of Firefox and I think V8 have optimisations for asm.js).


There are relative pros and cons to each.

I think using SWIG will be closer to the approach that you've already 
taken - though it's not free and it'll need a wrapper somewhat similar 
to what I've done in order to make it friendly JavaScript. The 
advantages are
1 - it'll *probably* perform better because it's a thin wrapper to 
native code, though by how much I couldn't say yet, with the most recent 
JavaScript engines the margin likely erodes but I'd suspect it'd perform 
better whatever.
2 - you are wrapping the C library and you'll be using TCP sockets (The 
emscripten version is pure JavaScript and uses WebSockets by default, 
though on my TODO list is to look at configurably using the node net 
library to use native TCP sockets).


Conversely
The emscripten based approach is pure JavaScript so runs happily in a 
browser or node.js. It supports WebSockets and WebRTC (though I've not 
tried the latter yet) though not (currently) TCP Sockets (though I've 
written a simple WS-TCP proxy that works pretty well).



I've still got a bit of tinkering and tidying up of the emscripten based 
JavaScript binding, but I'd quite like to get it moved to proton trunk 
before too long. Once it's settled then I'll move on to my TODO list. 
FWIW I'm not averse to looking at the SWIG binding too, as I say unless 
my interpretation is wrong there are relative pros and cons to each and 
I suspect that they are complementary and not competing approaches.


As I say I suspect that the SWIG approach would need Binding code 
similar to what I've done with emscripten in order to be any fun to use 
and if a complementary SWIG based binding was contemplated I'd really 
want to be using the same patterns/API as for the emscripten based one. 
I'd hope that this wouldn't end up being a whole duplicate as that would 
be a bit tedious, so I'd expect some relatively non-trivial refactoring 
to try and have as much shared as possible (take a look at the 
binding.js, none of it's necessarily rocket science but there was a lot 
of effort in the proton.Data part to try and make things as nicely 
idiomatically JavaScript as possible).


What I discovered was that compiling the C to JavaScript using 
emscripten was easy and took me a few weekends of hacking, doing all the 
binding stuff has taken the best part of a year of spare time (OK not 
solid effort, but you get the picture)


Does that answer your question?

Are you the same Dominic Evans who's just filled up my in-box with Jira 
messages? I got home from work and opened my emails and OMG :-D


Cheers, and thanks for taking an interest in the JavaScript bindings.
Frase






[jira] [Created] (PROTON-683) Register Proton for Coverity scans

2014-09-11 Thread Justin Ross (JIRA)
Justin Ross created PROTON-683:
--

 Summary: Register Proton for Coverity scans
 Key: PROTON-683
 URL: https://issues.apache.org/jira/browse/PROTON-683
 Project: Qpid Proton
  Issue Type: Task
  Components: proton-c, proton-j
Reporter: Justin Ross


For reference, the Qpid C++ and Java projects at Coverity:

  https://scan.coverity.com/projects/6
  https://scan.coverity.com/projects/572



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