[ https://issues.apache.org/jira/browse/PROTON-516?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14015507#comment-14015507 ]
Andrew Stitcher commented on PROTON-516: ---------------------------------------- It looks to me like we can just remove the code in pn_do_open() that sets the dispatcher's frame buffer size, because it is by default set to 4k when constructing the dispatcher anyway, > [proton-c] Dispatcher frame buffer set to peer's max frame size. > ---------------------------------------------------------------- > > Key: PROTON-516 > URL: https://issues.apache.org/jira/browse/PROTON-516 > Project: Qpid Proton > Issue Type: Bug > Components: proton-c > Affects Versions: 0.6 > Reporter: Ken Giusti > Assignee: Andrew Stitcher > Fix For: 0.8 > > > The size of the output frame buffer used by the Transport is set > unconditionally to the max frame size advertised by the peer: > In transport.c::int pn_do_open(pn_dispatcher_t *disp): > pn_buffer_ensure( disp->frame, disp->remote_max_frame ); > This can potentially exhaust memory on small memory systems (eg, embedded > devices). Instead, the output frame buffer should grow as needed based on > the size of the payloads generated, limited by the remote_max_frame value. > And, of course, pn_buffer_ensure + caller should handle realloc failures > instead of ignoring them. -- This message was sent by Atlassian JIRA (v6.2#6252)