[
https://issues.apache.org/jira/browse/PROTON-1809?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16411290#comment-16411290
]
Robbie Gemmell commented on PROTON-1809:
----------------------------------------
I expect that this is because the client is awaiting the full message before
processing it, while the full message cant actually arrive due to the session
window being full, because the receiver didn't pull the available bytes out for
the not-yet-complete message. The trace logs support that, you see the receiver
somewhat redundantly tell the peer that the window is 0 at the end.
This is probably because the proton session endpoint has an 'incoming capacity'
default of 1MB which it uses to govern the session window, which varies based
on frame size as its byte-based while the window is frame-based. This
'capacity' doesn't actually do anything unless you actually set a max frame
size (which defaults to 4GB if not set). I recently removed this default in
proton-j in PROTON-1739 because its a bit stupid how it does nothing unless you
change a completely different setting, then results in strange interactions
such as this which also affect performance in unexpected ways.
> [python, ruby] Unable to receive messages when max-frame-size is set to more
> than 2^20
> --------------------------------------------------------------------------------------
>
> Key: PROTON-1809
> URL: https://issues.apache.org/jira/browse/PROTON-1809
> Project: Qpid Proton
> Issue Type: Bug
> Components: python-binding, ruby-binding
> Affects Versions: proton-c-0.22.0
> Environment: RHEL 7 x86_64
> Reporter: Radim Kubis
> Assignee: Alan Conway
> Priority: Major
>
> *Python:*
> {code:java}
> def on_session_init(self, event):
> event.transport._set_max_frame_size(VALUE)
> {code}
> I noticed that the receiver is not able to receive messages when the value
> for max-frame-size is larger than 2^20 (1048576) bytes (remote_max_frame_size
> is 4294967295). I'm not really sure if that is expected. This may be
> reproduced when adding the code above ie.: to simple_recv.py.
> Note: This is not a good use case as setting the max-frame-size in
> on_session_init is really too late. But given that it is too late to set the
> max-frame-size, I would expect it won't have any effect on the client.
>
> *Ruby:*
> From [https://github.com/rh-messaging/cli-proton-ruby]
> [cli-proton-ruby|https://github.com/rh-messaging/cli-proton-ruby]
> {{cli-proton-ruby-receiver -b <broker> -c <msg_count> --log-msgs dict
> --conn-max-frame-size 1048577}}
> Receiver is stuck.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]