[jira] [Commented] (PROTON-1809) [python, ruby] Unable to receive messages when max-frame-size is set to more than 2^20
[ https://issues.apache.org/jira/browse/PROTON-1809?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16493275#comment-16493275 ] Robbie Gemmell commented on PROTON-1809: Added PROTON-1827 as a sub-task since its related test fix commit should have been directed against this issue. > [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: Minor > Fix For: proton-c-0.23.0 > > > *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 -c --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: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[jira] [Commented] (PROTON-1809) [python, ruby] Unable to receive messages when max-frame-size is set to more than 2^20
[ https://issues.apache.org/jira/browse/PROTON-1809?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16433708#comment-16433708 ] ASF subversion and git services commented on PROTON-1809: - Commit d58bd7154558a3be3a68dfee71f08c7d76bad958 in qpid-proton's branch refs/heads/master from [~gemmellr] [ https://git-wip-us.apache.org/repos/asf?p=qpid-proton.git;h=d58bd71 ] PROTON-636, PROTON-1809, PROTON-1523: update session capacity api doc to clarify its behaviour > [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: Minor > Fix For: proton-c-0.23.0 > > > *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 -c --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: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[jira] [Commented] (PROTON-1809) [python, ruby] Unable to receive messages when max-frame-size is set to more than 2^20
[ https://issues.apache.org/jira/browse/PROTON-1809?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16433013#comment-16433013 ] ASF subversion and git services commented on PROTON-1809: - Commit b359611727339326ad03a41949d6f9a803e0e58d in qpid-proton's branch refs/heads/go1 from [~gemmellr] [ https://git-wip-us.apache.org/repos/asf?p=qpid-proton.git;h=b359611 ] Revert "PROTON-1809: Unable to receive messages when max-frame-size > 2^20" This reverts commit e8de49d33b1c750327e6c9a090332953a7669a4d. > [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: Minor > Fix For: proton-c-0.23.0 > > > *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 -c --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: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[jira] [Commented] (PROTON-1809) [python, ruby] Unable to receive messages when max-frame-size is set to more than 2^20
[ https://issues.apache.org/jira/browse/PROTON-1809?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16433012#comment-16433012 ] ASF subversion and git services commented on PROTON-1809: - Commit e8de49d33b1c750327e6c9a090332953a7669a4d in qpid-proton's branch refs/heads/go1 from [~aconway] [ https://git-wip-us.apache.org/repos/asf?p=qpid-proton.git;h=e8de49d ] PROTON-1809: Unable to receive messages when max-frame-size > 2^20 The C transport code was computing the session incoming window as session_capacity/max_frame_size, resulting in an incoming window that was always 0 if the frame size was bigger than session_capacity (default 2^20) Fixes: 1. Removed the default session-capacity. Session flow control is only enabled if session-capacity and max-frame-size are *both* explicitly set. 2. If the specified session capacity is less than max-frame-size, it is automatically increased to be equal to max-frame-size to ensure at least one frame can be received. > [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: Minor > Fix For: proton-c-0.23.0 > > > *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 -c --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: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[jira] [Commented] (PROTON-1809) [python, ruby] Unable to receive messages when max-frame-size is set to more than 2^20
[ https://issues.apache.org/jira/browse/PROTON-1809?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16432893#comment-16432893 ] ASF subversion and git services commented on PROTON-1809: - Commit 0772e2ec194f737ebd18dfec22ecd445e0963e0e in qpid-proton's branch refs/heads/master from [~astitcher] [ https://git-wip-us.apache.org/repos/asf?p=qpid-proton.git;h=0772e2e ] PROTON-1809: Fix bad C as C++ code - C++11 Compiler interprets "blah"PN_ZU as a literal suffix > [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: Minor > Fix For: proton-c-0.23.0 > > > *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 -c --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: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[jira] [Commented] (PROTON-1809) [python, ruby] Unable to receive messages when max-frame-size is set to more than 2^20
[ https://issues.apache.org/jira/browse/PROTON-1809?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16432677#comment-16432677 ] ASF subversion and git services commented on PROTON-1809: - Commit e828055b2a0fade8835cd597e91d0ae3c8bb3f5a in qpid-proton's branch refs/heads/master from [~aconway] [ https://git-wip-us.apache.org/repos/asf?p=qpid-proton.git;h=e828055 ] PROTON-1809: PROTON-636: Unable to receive messages when max-frame-size > 2^20 Caused when the frame size was greater than the default session-capacity so the incoming windows is always 0. Fixes: 1. No default session-capacity. Session flow control is enabled only if both session-capacity and max-frame-size are set. Neither value is deduced automatically. 2. Transport error if both are set and session-capacity is less than max-frame-size. In this case the incoming window is always 0 so communication is impossible. 3. Update API doc for pn_session_set_capacity 4. Add tests to verify this behavior > [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: Minor > Fix For: proton-c-0.23.0 > > > *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 -c --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: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[jira] [Commented] (PROTON-1809) [python, ruby] Unable to receive messages when max-frame-size is set to more than 2^20
[ https://issues.apache.org/jira/browse/PROTON-1809?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16418787#comment-16418787 ] Robbie Gemmell commented on PROTON-1809: I have reverted the change to remove it from 0.22.0. This is very long-standing issue with relatively minor chance anyone new will hit it, it can wait for 0.23.0. I don't think the approach taken of silently adjusting and exceeding the requested session capacity is correct. In some ways it would be worse than the automagic effect that changing frame size had on the session window handling previously. Doing so would hide a fundamental issue in the usage, and result in likely undesired single-frame session window that will give poor performance in all but the simplest cases. People setting the session capacity and frame size explicitly really need to understand what that means, and that the former cant be smaller than the latter if they want to receive anything and actually govern session capacity. We can actively prevent them configuring it that way if desired, though some doc text would suffice for me. Definitely needs some tests adding. PROTON-636 needs updated as well, linked it for now. > [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: Minor > Fix For: proton-c-0.23.0 > > > *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 -c --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: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[jira] [Commented] (PROTON-1809) [python, ruby] Unable to receive messages when max-frame-size is set to more than 2^20
[ https://issues.apache.org/jira/browse/PROTON-1809?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16418771#comment-16418771 ] ASF subversion and git services commented on PROTON-1809: - Commit b359611727339326ad03a41949d6f9a803e0e58d in qpid-proton's branch refs/heads/master from [~gemmellr] [ https://git-wip-us.apache.org/repos/asf?p=qpid-proton.git;h=b359611 ] Revert "PROTON-1809: Unable to receive messages when max-frame-size > 2^20" This reverts commit e8de49d33b1c750327e6c9a090332953a7669a4d. > [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: Minor > Fix For: proton-c-0.22.0 > > > *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 -c --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: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[jira] [Commented] (PROTON-1809) [python, ruby] Unable to receive messages when max-frame-size is set to more than 2^20
[ https://issues.apache.org/jira/browse/PROTON-1809?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16418158#comment-16418158 ] ASF subversion and git services commented on PROTON-1809: - Commit e8de49d33b1c750327e6c9a090332953a7669a4d in qpid-proton's branch refs/heads/master from [~aconway] [ https://git-wip-us.apache.org/repos/asf?p=qpid-proton.git;h=e8de49d ] PROTON-1809: Unable to receive messages when max-frame-size > 2^20 The C transport code was computing the session incoming window as session_capacity/max_frame_size, resulting in an incoming window that was always 0 if the frame size was bigger than session_capacity (default 2^20) Fixes: 1. Removed the default session-capacity. Session flow control is only enabled if session-capacity and max-frame-size are *both* explicitly set. 2. If the specified session capacity is less than max-frame-size, it is automatically increased to be equal to max-frame-size to ensure at least one frame can be received. > [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: Minor > Fix For: proton-c-0.22.0 > > > *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 -c --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: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[jira] [Commented] (PROTON-1809) [python, ruby] Unable to receive messages when max-frame-size is set to more than 2^20
[ https://issues.apache.org/jira/browse/PROTON-1809?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16418152#comment-16418152 ] Alan Conway commented on PROTON-1809: - This fix makes 2 changes to resolve this problem: * there is no longer a default 1M session window. If you don't set *both* the session capacity and frame size explicitly then proton will run with no session flow control (will report max session incoming window to peer) * If you do set both frame size *and* session capacity then they will be respected, with the exception that the session capacity will be forced to be at least frame-max so you can always receive at least one frame before blocking the session window. > [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: Minor > > *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 -c --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: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[jira] [Commented] (PROTON-1809) [python, ruby] Unable to receive messages when max-frame-size is set to more than 2^20
[ https://issues.apache.org/jira/browse/PROTON-1809?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16418064#comment-16418064 ] Jiri Daněk commented on PROTON-1809: Aha, so one additional mystery is solved, then. When I was comparing PN_TRACE_FRMs from proton-cpp binding and proton-ruby (for PROTON-1789), I noticed this difference between ruby: {{stderr: "[0x229b5a0]:0 -> @begin(17) [next-outgoing-id=0, incoming-window=1, outgoing-window=2147483647]"}} cpp: {{stderr: "[0x1bca1a0]:0 -> @flow(19) [incoming-window=2147483647, next-outgoing-id=0, outgoing-window=2147483647, handle=0, delivery-count=0, link-credit=10, drain=false]"}} and I wondered what the low incoming-window signifies; should've done something about it, not just wonder a bit and then move on... > [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: Minor > > *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 -c --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: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[jira] [Commented] (PROTON-1809) [python, ruby] Unable to receive messages when max-frame-size is set to more than 2^20
[ https://issues.apache.org/jira/browse/PROTON-1809?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16418043#comment-16418043 ] Alan Conway commented on PROTON-1809: - [~gemmellr] called it: bogus calculation of session incoming-window, which was always being computed as 0 if max-frame > session-capacity. Please take a look at this proposed fix: [https://github.com/alanconway/qpid-proton/commit/118be92f] According to this comment in proton/session.h, the fixed behavior was intended but not implemented. /** * The incoming capacity of a session determines how much incoming * message data the session will buffer. Note that if this value is * less than the negotiated frame size of the transport, it will be * rounded up to one full frame. */ > [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: Minor > > *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 -c --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: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[jira] [Commented] (PROTON-1809) [python, ruby] Unable to receive messages when max-frame-size is set to more than 2^20
[ https://issues.apache.org/jira/browse/PROTON-1809?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16417147#comment-16417147 ] Robbie Gemmell commented on PROTON-1809: I was going to say that didnt surprise me, but looking at the rest of the code for recieve.c it actually did surprise me. I expected it was simply waiting for the full message to arrive before reading any of it, thus meaning it couldnt all arrive due to the now-unexpectedly-low session window being closed. However, it looks like actually it does read the partial message content as it arrives. When it does that, theres a check to see if the window is 0, which is meant to ensure the window can be recomputed and assuming enough data was read it will reopen. In proton-j this happens by marking the link as modified when the read occurs, which later causes it to send a flow, which also recomputes and includes the session window. In proton-c its not clear to me that happens. In pn_link_recv it seems to add the delivery to the transport work list (pni_add_tpwork(delivery)), so unless that has a side effect of causing a flow for the link or session, it wont actually reopen the session window. > [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: Minor > > *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 -c --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: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[jira] [Commented] (PROTON-1809) [python, ruby] Unable to receive messages when max-frame-size is set to more than 2^20
[ https://issues.apache.org/jira/browse/PROTON-1809?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16416268#comment-16416268 ] Alan Conway commented on PROTON-1809: - I can reproduce this problem in plain C by patching the receive.c example: {code:java} 1 file changed, 5 insertions(+) examples/c/receive.c | 5 + modified examples/c/receive.c @@ -92,6 +92,11 @@ static bool handle(app_data_t* app, pn_event_t* event) { } } break; + case PN_CONNECTION_BOUND: { + pn_transport_set_max_frame(pn_event_transport(event), 1048577); + break; + } + case PN_DELIVERY: { /* A message has been received */ pn_delivery_t *d = pn_event_delivery(event); {code} > [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: Minor > > *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 -c --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: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[jira] [Commented] (PROTON-1809) [python, ruby] Unable to receive messages when max-frame-size is set to more than 2^20
[ https://issues.apache.org/jira/browse/PROTON-1809?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16411335#comment-16411335 ] Jiri Daněk commented on PROTON-1809: [~rkubis] We forgot to mention the problem is not present in the cpp binding. > [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 -c --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: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[jira] [Commented] (PROTON-1809) [python, ruby] Unable to receive messages when max-frame-size is set to more than 2^20
[ https://issues.apache.org/jira/browse/PROTON-1809?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16411291#comment-16411291 ] Robbie Gemmell commented on PROTON-1809: The above being true would make this a duplicate of PROTON-636. > [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 -c --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: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[jira] [Commented] (PROTON-1809) [python, ruby] Unable to receive messages when max-frame-size is set to more than 2^20
[ 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 -c --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: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[jira] [Commented] (PROTON-1809) [python, ruby] Unable to receive messages when max-frame-size is set to more than 2^20
[ https://issues.apache.org/jira/browse/PROTON-1809?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16411242#comment-16411242 ] Jiri Daněk commented on PROTON-1809: Another strange thing is that if I set max-frame-size to {{2**20}} for a sender and send message at or over 1024 kB in size, the message does get sent all right. If I set the same max-frame-size for a receiver and attempt to receive, I am able to receive message with 1023 kB of data, but not with 1024 kB data. I would expect that setting max-frame-size to {{2*20}} limits my ability to both receive _and send_ messages of this size. What actually happens is that I seem to be able to send frames over that size. In PN_TRACE_FRM=1 log, the transfer of the sent message (and also the received one, but then proton-ruby seems to ignore it...) is done in one frame (at least that is what it looks in the log). {noformat} [ruby, cli-proton-ruby-sender, --log-msgs, dict, --count, 1, --timeout, 5, --broker, amqp://127.0.0.1:5672/JAMQMessagefffTestsp1YEGfx, --msg-content-from-file, /tmp/11359847284256583852.tmp, --msg-property, key1=value1] 10139 [0x1c09c00]: -> SASL [0x1c09c00]: <- SASL [0x1c09c00]:0 <- @sasl-mechanisms(64) [sasl-server-mechanisms=@PN_SYMBOL[:PLAIN, :ANONYMOUS]] [0x1c09c00]:0 -> @sasl-init(65) [mechanism=:ANONYMOUS, initial-response=b"anonymous@nixos"] [0x1c09c00]:0 <- @sasl-outcome(68) [code=0] [0x1c09c00]: <- AMQP [0x1c09c00]: -> AMQP [0x1c09c00]:0 -> @open(16) [container-id="ddfc4358-cbe3-4a2c-816e-d7634c749c91", max-frame-size=1048576, channel-max=32767] [0x1c09c00]:0 -> @begin(17) [next-outgoing-id=0, incoming-window=1, outgoing-window=2147483647] [0x1c09c00]:0 -> @attach(18) [name="ddfc4358-cbe3-4a2c-816e-d7634c749c91/1", handle=0, role=false, snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) [durable=0, timeout=0, dynamic=false], target=@target(41) [address="JAMQMessagefffTestsp1YEGfx", durable=0, timeout=0, dynamic=false], initial-delivery-count=0, max-message-size=0] [0x1c09c00]:0 <- @open(16) [container-id="amq", max-frame-size=4294967295, channel-max=65535, idle-time-out=3, offered-capabilities=@PN_SYMBOL[:"sole-connection-for-container", :"DELAYED_DELIVERY", :"SHARED-SUBS", :"ANONYMOUS-RELAY"], properties={:product="apache-activemq-artemis", :version="2.4.0.amq-710004-redhat-1"}] [0x1c09c00]:0 <- @begin(17) [remote-channel=0, next-outgoing-id=1, incoming-window=2147483647, outgoing-window=2147483647, handle-max=65535] [0x1c09c00]:0 <- @attach(18) [name="ddfc4358-cbe3-4a2c-816e-d7634c749c91/1", handle=0, role=true, snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) [], target=@target(41) [address="JAMQMessagefffTestsp1YEGfx"]] [0x1c09c00]:0 <- @flow(19) [next-incoming-id=0, incoming-window=2147483647, next-outgoing-id=1, outgoing-window=2147483647, handle=0, delivery-count=0, link-credit=1000] [0x1c09c00]:0 -> @transfer(20) [handle=0, delivery-id=0, delivery-tag=b"1", message-format=0] (4194346) "\x00SpE\x00SsE\x00St\xd1\x00\x00\x00\x12\x00\x00\x00\x02\xa3\x04key1\xa1\x06value1\x00Sw\xb1\x00@\x00\x00abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW"... (truncated) [0x1c09c00]:0 <- @disposition(21) [role=true, first=0, last=0, settled=true, state=@accepted(36) []] [0x1c09c00]:0 -> @detach(22) [handle=0, closed=true] [0x1c09c00]:0 -> @close(24) [] [0x1c09c00]: -> EOS [0x1c09c00]:0 <- @detach(22) [handle=0, closed=true] [0x1c09c00]:0 <- @close(24) [] [0x1c09c00]: <- EOS {'redelivered': False, 'reply_to': None, 'subject': None, 'content_type': None, 'id': None, 'group_id': None, 'user_id': None, 'correlation_id': None, 'priority': 4, 'durable': False, 'ttl': 0, 'properties': {'key1': 'value1'}, 'content': 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzAB
[jira] [Commented] (PROTON-1809) [python, ruby] Unable to receive messages when max-frame-size is set to more than 2^20
[ https://issues.apache.org/jira/browse/PROTON-1809?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16411050#comment-16411050 ] Radim Kubis commented on PROTON-1809: - Strange thing is that _open_ frame (with setting max-frame-size to 4294967295) looks the same as without setting max-frame-size. {code:java} -> @open(16) [container-id="", channel-max=32767]{code} > [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 -c --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: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org