[jira] [Updated] (PROTON-512) Possibility to set idle timeout for messenger

2014-04-25 Thread Tomas Soltys (JIRA)

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

Tomas Soltys updated PROTON-512:


Attachment: messenger.h.patch
messenger.c.patch

Propagate idle timeout settings to the messenger interface.

 Possibility to set idle timeout for messenger
 -

 Key: PROTON-512
 URL: https://issues.apache.org/jira/browse/PROTON-512
 Project: Qpid Proton
  Issue Type: Bug
  Components: proton-c
Affects Versions: 0.6
Reporter: Tomas Soltys
  Labels: features, patch
 Fix For: 0.7

 Attachments: messenger.c.patch, messenger.h.patch


 I would like to specify an idle timeout for a messenger which would be then 
 used for all created connections. I see that there is an interface for 
 pn_transport_t which is allowing it but it is not accessible from outside.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (PROTON-515) Port to OpenVMS

2014-04-25 Thread Tomas Soltys (JIRA)

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

Tomas Soltys updated PROTON-515:


Attachment: (was: platform_fmt.h.patch)

 Port to OpenVMS
 ---

 Key: PROTON-515
 URL: https://issues.apache.org/jira/browse/PROTON-515
 Project: Qpid Proton
  Issue Type: Improvement
  Components: proton-c
Affects Versions: 0.6
 Environment: OpenVMS
Reporter: Tomas Soltys
  Labels: OpenVMS, patch
 Fix For: 0.7


 There is a need for proton-c port to OpenVMS platform.
 To make proton-c functional on OpenVMS few changes in the source code are 
 required.
 Here is list of files I have identified which require some attention:
 proton-c/src/platform_fmt.h
 proton-c/src/posix/driver.c
 proton-c/src/object/object.c
 proton-c/src/codec/codec.c



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (PROTON-515) Port to OpenVMS

2014-04-25 Thread Tomas Soltys (JIRA)

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

Tomas Soltys updated PROTON-515:


Attachment: (was: object.c.patch)

 Port to OpenVMS
 ---

 Key: PROTON-515
 URL: https://issues.apache.org/jira/browse/PROTON-515
 Project: Qpid Proton
  Issue Type: Improvement
  Components: proton-c
Affects Versions: 0.6
 Environment: OpenVMS
Reporter: Tomas Soltys
  Labels: OpenVMS, patch
 Fix For: 0.7


 There is a need for proton-c port to OpenVMS platform.
 To make proton-c functional on OpenVMS few changes in the source code are 
 required.
 Here is list of files I have identified which require some attention:
 proton-c/src/platform_fmt.h
 proton-c/src/posix/driver.c
 proton-c/src/object/object.c
 proton-c/src/codec/codec.c



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (PROTON-515) Port to OpenVMS

2014-04-25 Thread Tomas Soltys (JIRA)

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

Tomas Soltys updated PROTON-515:


Attachment: (was: driver.c.patch)

 Port to OpenVMS
 ---

 Key: PROTON-515
 URL: https://issues.apache.org/jira/browse/PROTON-515
 Project: Qpid Proton
  Issue Type: Improvement
  Components: proton-c
Affects Versions: 0.6
 Environment: OpenVMS
Reporter: Tomas Soltys
  Labels: OpenVMS, patch
 Fix For: 0.7


 There is a need for proton-c port to OpenVMS platform.
 To make proton-c functional on OpenVMS few changes in the source code are 
 required.
 Here is list of files I have identified which require some attention:
 proton-c/src/platform_fmt.h
 proton-c/src/posix/driver.c
 proton-c/src/object/object.c
 proton-c/src/codec/codec.c



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (PROTON-515) Port to OpenVMS

2014-04-25 Thread Tomas Soltys (JIRA)

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

Tomas Soltys updated PROTON-515:


Attachment: (was: codec.c.patch)

 Port to OpenVMS
 ---

 Key: PROTON-515
 URL: https://issues.apache.org/jira/browse/PROTON-515
 Project: Qpid Proton
  Issue Type: Improvement
  Components: proton-c
Affects Versions: 0.6
 Environment: OpenVMS
Reporter: Tomas Soltys
  Labels: OpenVMS, patch
 Fix For: 0.7


 There is a need for proton-c port to OpenVMS platform.
 To make proton-c functional on OpenVMS few changes in the source code are 
 required.
 Here is list of files I have identified which require some attention:
 proton-c/src/platform_fmt.h
 proton-c/src/posix/driver.c
 proton-c/src/object/object.c
 proton-c/src/codec/codec.c



--
This message was sent by Atlassian JIRA
(v6.2#6252)


Minimizing the Proton Engine/Messenger RAM Footprint for embedded devices

2014-04-25 Thread dcjohns41
Hello Proton Experts,

I am new to this mailing list and use of the Proton system, so please do not
get offended if I say something naïve.

My team is attempting to use the Proton-C Engine/Messenger package on a
small footprint embedded device. We are attempting to send sensor
information and receive data to/from the MS Azure Service Bus
infrastructure.  We are attempting to use the QPid Proton 0.6 release.  The
system is using C code on an ARM-xxx processor.

Our configuration has very limited RAM and have been attempting to reduce
the run-time requirement to fit in 50Kb or so.  Our data needs are not very
big and normally would fit in 1024 bytes of payload.

We have trimmed the Proton input/output buffers down from 16KB to smaller
values.  Have attempted to disable logging and anything else we could to get
the footprint smaller.  At the moment we have the RAM consumption near
43Kbytes.  However, once we start attempting to make socket connections, we
see additional RAM allocations that push over the 50KB limit.

My first question is- has this been done on other systems where the RAM is
very limited?  If yes, is that example available for us to review?

Is it feasible to limit some of the functions/options in the library to at
least get basic functionality of AMQP 1.0 to Azure/Service Bus running?  Our
expectation is that we need to have at least one transmit link and one
receive link to pre-defined topics on the Service Bus side.

Ultimately we need to have AMQPS (via TLS).  But in the short term we are
just attempting to get basic communication running.

Thanks for any sage advice you may have.  It will certainly be appreciated!

Dave Johnson



--
View this message in context: 
http://qpid.2158936.n2.nabble.com/Minimizing-the-Proton-Engine-Messenger-RAM-Footprint-for-embedded-devices-tp7607409.html
Sent from the Apache Qpid Proton mailing list archive at Nabble.com.


Messenger: pn_delivery leaking pn_disposition memory?

2014-04-25 Thread Dominic Evans
In one of our automated client stress tests, we've noticed that we seem to be
leaking memory. We were previously seeing this on qpid-proton 0.6 and I've
retested on 0.7 RC3 and it is still occurring

==16195== 45,326,848 bytes in 25,294 blocks are possibly lost in loss record
1,865 of 1,867
==16195==at 0x4C274A0: malloc (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==16195==by 0x86CC7AC: pn_data (codec.c:363)
==16195==by 0x86D7372: pn_disposition_init (engine.c:1066)
==16195==by 0x86D756B: pn_delivery (engine.c:1102)
==16195==by 0x86DB93E: pn_do_transfer (transport.c:738)
==16195==by 0x86D3A21: pn_dispatch_frame (dispatcher.c:146)
==16195==by 0x86D3B28: pn_dispatcher_input (dispatcher.c:169)
==16195==by 0x86DCB4C: pn_input_read_amqp (transport.c:1117)
==16195==by 0x86DF4FD: pn_io_layer_input_passthru (transport.c:1964)
==16195==by 0x86DF4FD: pn_io_layer_input_passthru (transport.c:1964)
==16195==by 0x86DC74E: transport_consume (transport.c:1037)
==16195==by 0x86DF89B: pn_transport_process (transport.c:2052)
==16195== 
==16195== 45,326,848 bytes in 25,294 blocks are possibly lost in loss record
1,866 of 1,867
==16195==at 0x4C274A0: malloc (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==16195==by 0x86CC7AC: pn_data (codec.c:363)
==16195==by 0x86D4E58: pn_condition_init (engine.c:203)
==16195==by 0x86D738A: pn_disposition_init (engine.c:1067)
==16195==by 0x86D756B: pn_delivery (engine.c:1102)
==16195==by 0x86DB93E: pn_do_transfer (transport.c:738)
==16195==by 0x86D3A21: pn_dispatch_frame (dispatcher.c:146)
==16195==by 0x86D3B28: pn_dispatcher_input (dispatcher.c:169)
==16195==by 0x86DCB4C: pn_input_read_amqp (transport.c:1117)
==16195==by 0x86DF4FD: pn_io_layer_input_passthru (transport.c:1964)
==16195==by 0x86DF4FD: pn_io_layer_input_passthru (transport.c:1964)
==16195==by 0x86DC74E: transport_consume (transport.c:1037)
==16195== 
==16195== 45,328,640 bytes in 25,295 blocks are possibly lost in loss record
1,867 of 1,867
==16195==at 0x4C274A0: malloc (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==16195==by 0x86CC7AC: pn_data (codec.c:363)
==16195==by 0x86D7360: pn_disposition_init (engine.c:1065)
==16195==by 0x86D756B: pn_delivery (engine.c:1102)
==16195==by 0x86DB93E: pn_do_transfer (transport.c:738)
==16195==by 0x86D3A21: pn_dispatch_frame (dispatcher.c:146)
==16195==by 0x86D3B28: pn_dispatcher_input (dispatcher.c:169)
==16195==by 0x86DCB4C: pn_input_read_amqp (transport.c:1117)
==16195==by 0x86DF4FD: pn_io_layer_input_passthru (transport.c:1964)
==16195==by 0x86DF4FD: pn_io_layer_input_passthru (transport.c:1964)
==16195==by 0x86DC74E: transport_consume (transport.c:1037)
==16195==by 0x86DF89B: pn_transport_process (transport.c:2052)


Looking at the code I can see this should get freed in
pn_disposition_finalize once pn_decref(delivery) is called, but I haven't
yet had a chance to determine why this isn't occurring. Has anyone else seen
this before and is there anything obvious we could be doing wrong?




--
View this message in context: 
http://qpid.2158936.n2.nabble.com/Messenger-pn-delivery-leaking-pn-disposition-memory-tp7607416.html
Sent from the Apache Qpid Proton mailing list archive at Nabble.com.


Re: Minimizing the Proton Engine/Messenger RAM Footprint for embedded devices

2014-04-25 Thread Rafael Schloming
Hello and welcome to the list.

See inline for further comments...

On Fri, Apr 25, 2014 at 11:55 AM, dcjohns41 david.johns...@honeywell.comwrote:

 Hello Proton Experts,

 I am new to this mailing list and use of the Proton system, so please do
 not
 get offended if I say something naïve.


No worries. Please don't be shy. ;-)


 My team is attempting to use the Proton-C Engine/Messenger package on a
 small footprint embedded device. We are attempting to send sensor
 information and receive data to/from the MS Azure Service Bus
 infrastructure.  We are attempting to use the QPid Proton 0.6 release.  The
 system is using C code on an ARM-xxx processor.

 Our configuration has very limited RAM and have been attempting to reduce
 the run-time requirement to fit in 50Kb or so.  Our data needs are not
 very
 big and normally would fit in 1024 bytes of payload.

 We have trimmed the Proton input/output buffers down from 16KB to smaller
 values.  Have attempted to disable logging and anything else we could to
 get
 the footprint smaller.  At the moment we have the RAM consumption near
 43Kbytes.  However, once we start attempting to make socket connections, we
 see additional RAM allocations that push over the 50KB limit.

 My first question is- has this been done on other systems where the RAM is
 very limited?  If yes, is that example available for us to review?


I know it's been used on some embedded platforms, but I'm afraid I don't
have any details. I'm guessing either the footprint requirements were not
as small as yours or whatever tuning was required didn't make it back to
the codebase.


 Is it feasible to limit some of the functions/options in the library to at
 least get basic functionality of AMQP 1.0 to Azure/Service Bus running?
  Our
 expectation is that we need to have at least one transmit link and one
 receive link to pre-defined topics on the Service Bus side.


There's probably a bunch of different things we could try, but to be honest
we haven't really taken a serious look at memory utilization. I'd start by
instrumenting malloc/free so we can identify where the memory usage is
coming from. I'd actually like to get that kind of instrumentation into the
Proton codebase so if you are inclined to do this I'd love to see the
patch. If not I hope to get around to it soon, but its always difficult to
predict how much time I will have.



 Ultimately we need to have AMQPS (via TLS).  But in the short term we are
 just attempting to get basic communication running.


The builtin TLS support relies on openssl, so there may be limits to what
we can do in terms of memory utilization there. Of course you always have
the option of not using the builtin TLS layer and supplying your own, but
again I'd say first thing would probably be to instrument and see how close
we are to your goal.

--Rafae