On Thu, Oct 31, 2019 at 1:31 PM Ted Ross <tr...@redhat.com> wrote: > > > On Thu, Oct 31, 2019 at 6:57 AM Robbie Gemmell <robbie.gemm...@gmail.com> > wrote: > >> With the below, are you saying that previously the router would always >> immediately accept an unsettled message sent to a multicast address, >> and then either send it on (pre-settled) or drop it if there was >> nowhere to direct it > > > Yes. > > >> ....but in the latter case, now it would release >> it instead? > > > Yes. > > >> If so, is it possible to configure the old behaviour, for >> folks that actually wanted that? >> > > Perhaps. Does anyone want it? It _would_ prevent the looping behavior. >
Actually, I think the choice that we would consider making configurable would be: Release all multicast deliveries for which there is no consumer (the present behavior); or Withhold credit for sender links on multicast addresses for which there is no consumer. The accept-and-possibly-drop is not, in my opinion, a desirable behavior. If someone wants that behavior, they would be better off sending their deliveries pre-settled. > > >> >> Or does it still accept in that case and you just meant that the end >> receiver outcomes are now interpreted to decide the response to the >> sender? What if the different multicast points return different >> outcomes? > > > If there are different dispositions, there is a priority list that > determines which of the provided dispositions will be returned to the > sender. > > >> What if one recipient doesnt provide an outcome for ages? > > > Then that delivery will not be settled for ages. > > >> Or >> goes away without providing one? >> > > Then the outcome from that recipient will be MODIFIED at the time the > receiver detaches. > > >> >> Or maybe it was both of the above? :) >> >> In some ways either of these seem like odd changes for a minor release >> unless its possible to toggle the previous long standing behaviour, >> and not say have to switch all your senders to pre-settled to mimmick >> but still not quite match it (since at least with the unsettled case >> before, youd at least know whether a [first, if multiple hops] router >> processed the message at all). >> >> Robbie >> >> On Wed, 30 Oct 2019 at 13:54, Ken Giusti <kgiu...@redhat.com> wrote: >> > >> > On Tue, Oct 29, 2019 at 6:23 PM VERMEULEN Olivier < >> > olivier.vermeu...@murex.com> wrote: >> > >> > > Hello, >> > > >> > > Yes the waypoint address (in from broker) is using a multicast >> > > distribution. >> > > Unfortunately skipping the broker is not an option for us right now. >> > > Our whole architecture relies on the broker to guarantee that no >> messages >> > > will ever be lost... >> > > >> > >> > That won't be the case for multicast actually. Prior to release 1.9.0 >> of >> > the router multicast messages would be dropped without notification when >> > under load. >> > >> > This relates to the issue you're experiencing now I believe. In 1.9.0 >> we >> > fixed this via >> > >> > https://issues.apache.org/jira/browse/DISPATCH-1266 >> > >> > Previously multicast messages were marked a pre-settled on entry to the >> > router and an "accepted" status was returned to the sender _before_ the >> > multicast was forwarded at all. Since the message was marked >> pre-settled >> > the router mesh will be more likely to drop it should congestion occur. >> > (Note this not the case with unsettled anycast messages - the router >> will >> > send a "release" status should the message need be discarded). >> > >> > This auto-settle behavior was undesirable for a number of reasons as you >> > can imagine, so in 1.9.0 we changed the behavior of multicast >> deliveries: >> > >> > *unsettled* messages sent to multicast addresses are no longer >> pre-settled >> > by the router. The router will send back the final acknowledgement >> > (accepted, release, etc) once all *present* subscribers for the >> multicast >> > address return acknowledgements. >> > >> > The behavior of pre-settled multicast did not change. >> > >> > So you can probably restore the original behavior by reverted back to a >> > pre-1.9.0 release, however be aware that even then there's no guarantee >> the >> > message will be dropped. In fact it's _more_ likely to be dropped (and >> > signalled as accepted) in pre-1.9.0 releases. >> > >> > >> > >> > > For information we're asking for a quick workaround because we're >> facing >> > > this problem on a client production environment... >> > > >> > > Thanks, >> > > Olivier >> > > >> > > -----Original Message----- >> > > From: Ken Giusti <kgiu...@redhat.com> >> > > Sent: mardi 29 octobre 2019 18:07 >> > > To: users <users@qpid.apache.org> >> > > Subject: Re: multicast without consumers >> > > >> > > On Tue, Oct 29, 2019 at 11:54 AM jeremy <jeremyao...@gmail.com> >> wrote: >> > > >> > > > Hello Gordon, >> > > > >> > > > We debugged the dispatch router, and fell on the code which releases >> > > > undeliverable messages( >> > > > >> https://github.com/apache/qpid-dispatch/blob/1.5.0/src/router_core/tra >> > > > nsfer.c#L869 >> > > > ). >> > > > >> > > > Check the comment on line 879. It states that if the distribution is >> > > > multicast, the credit will be replenished after the release. The >> issue >> > > > that introduced this behavior is: >> > > > https://issues.apache.org/jira/browse/DISPATCH-1012 >> > > > >> > > > >> > > Is the waypoint address (in from broker) using multicast distribution? >> > > >> > > The router treats multicast addresses like topics - you can publish >> to a >> > > multicast address (topic) regardless of the presence of consumers. >> That's >> > > the reason credit is being replenished even when no consumers are >> present. >> > > >> > > That's probably what's happening here - broker sends first queued >> message >> > > to the router, which attempts to send it to the topic. Since there >> are no >> > > consumers (and the message is sent from the broker as unsettled) the >> > > router cannot deliver it so it returns the released status. The >> released >> > > status causes the broker to redeliver the message. Repeat. >> > > >> > > >> > > >> > > >> > > > In fact, we need an urgent fix/workaround for this. Perhaps there >> is a >> > > > quick workaround, awaiting the full analysis of this problem? >> > > > >> > > > >> > > As a work around can you avoid sending these multicast messages to the >> > > broker queue? In other words send them directly to the router >> instead of >> > > using a waypoint? >> > > >> > > >> > > >> > > > Thanks >> > > > >> > > > >> > > > >> > > > >> > > > ----- >> > > > Cheers, >> > > > Jeremy >> > > > -- >> > > > Sent from: >> > > > http://qpid.2158936.n2.nabble.com/Apache-Qpid-users-f2158936.html >> > > > >> > > > >> --------------------------------------------------------------------- >> > > > To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org For >> > > > additional commands, e-mail: users-h...@qpid.apache.org >> > > > >> > > > >> > > >> > > -- >> > > -K >> > > ******************************* >> > > This e-mail contains information for the intended recipient only. It >> may >> > > contain proprietary material or confidential information. If you are >> not >> > > the intended recipient you are not authorized to distribute, copy or >> use >> > > this e-mail or any attachment to it. Murex cannot guarantee that it is >> > > virus free and accepts no responsibility for any loss or damage >> arising >> > > from its use. If you have received this e-mail in error please notify >> > > immediately the sender and delete the original email received, any >> > > attachments and all copies from your system. >> > > >> > >> > >> > -- >> > -K >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org >> For additional commands, e-mail: users-h...@qpid.apache.org >> >>