You asked me these in our IM chat; quick recap for the list...
Bela Ban wrote:
>
>
> Brian Stansberry wrote:
>> I'll have to dig through the jboss-dev list archive to find the exact
>> situation referred to in my last paragraph. It was something where
>> multicast wasn't working properly on lo on one of Adrian Brock's
>> machines, probably no multicast route or something
>
> You don't need a multicast route, as multicasts are in general not
> consulting the (unicast) routing table ! When you define a bind address,
> we use that address to send and receive multicast packets and ignore
> what's in the routing table. Only when there is no bind address, does
> (some) impls consult the routing table, but that behavior is
> implementation dependent.
>
>
>>> I can do that but the issue is that (a) this will add to the startup
>>> time,
>>
>> I wouldn't think it would add much though in the standard case where the
>> OS passes the multicast packet right back.
>
> Right. This would be the default, so we'd usually not have to wait.
>
>
>>
>> (b) if no response is received, would you want to abort channel
>>
>> No. Others might have different opinion (e.g. gray's comment on this
>> thread where he's looking for something more sophisticated) but all I
>> was looking for was a nice ERROR message in the log, so if things go
>> wrong, people can see it right at the beginning.
>
>
> OK. No worries that this message might be overlooked ? ERROR or WARN ?
>
WARN, since with your PING idea below this check can occur with every
MERGE run. With more frequent checking, chances of a spurious dropped
packet are higher, so let's make it WARN.
I'm not that concerned about being overlooked. I'm just interested in
being helpful here; people still have to make some effort. In the
troublesome cases I saw most, there are problems connecting, so we'll be
logging a WARN right in the middle of the normal connect logging, i.e.
where people will be looking.
>
>>
>> (c) what if the UDP packet is simply lost (send multiple packets ?).
>>
>> I'd say no, since in that case all we'd be doing is logging a spurious
>> ERROR message. I wouldn't think the odds of not receiving your own
>> multicast packet would be high.
>
> OK
>
>
>>
>>> If I do this, we'd have to be able to turn this off, and that would be
>>> the default.
>>>
>>
>> No problem. Probably set a timeout for how long to wait with a
>> default that disables this.
>
> OK.
>
>
> I'm thinking whether we could reuse the PING (multicast discovery)
> service for this. If we don't receive our own discovery multicast
> packet, we'd flag an error. However, PING can also be configured to
> consult a GossipRouter (unusual config though), so then we wouldn't be
> able to do this.
>
>
Using PING sounds good!
--
Brian Stansberry
Lead, AS Clustering
JBoss, a division of Red Hat
brian.stansberry@...
|