On Wed, Jul 8, 2015 at 8:29 AM, Robbie Gemmell <robbie.gemm...@gmail.com>
wrote:

> The wording of "This identifies a current maximum outgoing transfer-id
> that can be computed by subtracting one from the sum of
> outgoing-window and next-outgoing-id." when describing it, coupled
> with the requirement for the peer session to track it and decrement
> the remote-outgoing-window when receiving transfers, does suggest to
> me that things above the advertised point should not be sent (without
> first asynchronously communicating an increaseat least) since it would
> define a 'maximum' below the next-outgoing-id.
>
> On the other hand, you are right that it doesnt explicitly define when
> we need to update the peer, and there is a specific error condition
> symbol for when the peer exceeds the incoming window but there is no
> equivalent condition for doing the same with the outgoing window.
>
> I think the wording is wooly enough we could be here for a while
> figuring it out and still end up being unsure what it actually says
> though :)
>

Fair enough, and I think the conservative thing to do is certainly to
asynchronously notify your peer when the window changes, however as in my
other reply I don't see how doing that actually eliminates the possibility
of deadlock with service-bus. Asynchronously notifying your peer when you
change the window is a very different requirement than being obliged to
notify your peer that the window is nonzero in order to receive credit.


I think Gordon is meaning in regard to the fact that we send a
> transfer when our outgoing window is [initially] 0 without first
> increasing it to e.g.1, due to the use of the phrasing I mentioned
> earlier that defines a "maximum" id below our [initial] next outgoing
> id. If so, I tend to share his view on that.
>

Gotcha, I certainly agree that the robust thing to do would be to issue the
flow frame in such cases.


> Ultimately I think we just set a big window and essentially forgot it
> exists for now, we aren't using it at all within proton currently
> after all. We might as well stop calculating the remote value given we
> never actually read it.
>
> > I don't think we should do the max-frame-size thing
> > though as this encourages the notion that the incoming-window is somehow
> > dependent on the outgoing-window which as I said above is I think unsafe.
> >
> > I guess setting it to a large constant for now is fairly reasonable, but
> I
> > do think we should encourage service-bus to make its implementation more
> > robust in this regard.
> >
> > --Rafael
>
> Can I take that as a +1 on the approach I proposed changes for on
> PROTON-936 / https://github.com/apache/qpid-proton/pull/42 ?
>

Yes

--Rafael

Reply via email to