The Receiver.messages channel placed an arbitrary restriction on the amount of link credit that could be issued to a Receiver. Once the Receiver has been created, it can never be issued credit that exceeds the size of the channel.
In addition, if the Receiver were to receive messages that exceeds the size of the channel, due to flow control bugs or other, the writes to the channel could block leading to hangs.
The channel has been replaced with a segmented FIFO queue. While this in theory could allow for unbounded growth, the reality is that the total size can never be greater than that of the Session's incoming window.
[ ] The purpose of this PR is explained in this or a referenced issue.
[ ] Tests are included and/or updated for code changes.
The Receiver.messages channel placed an arbitrary restriction on the amount of link credit that could be issued to a Receiver. Once the Receiver has been created, it can never be issued credit that exceeds the size of the channel. In addition, if the Receiver were to receive messages that exceeds the size of the channel, due to flow control bugs or other, the writes to the channel could block leading to hangs. The channel has been replaced with a segmented FIFO queue. While this in theory could allow for unbounded growth, the reality is that the total size can never be greater than that of the Session's incoming window.