]
Jean-Frederic Clere commented on MODCLUSTER-446:
------------------------------------------------
Actually 2 multicast message are sent to the nodes:
HTTP/1.0 403 Forbidden when httpd is stopping and
HTTP/1.0 410 Gone just before removing the module.
But those message aren't processed by the listeners, so the first httpd is remembered
and the new is added.
Change in AdvertiseSecurityKey on httpd side is ignored by running
workers
--------------------------------------------------------------------------
Key: MODCLUSTER-446
URL:
https://issues.jboss.org/browse/MODCLUSTER-446
Project: mod_cluster
Issue Type: Bug
Affects Versions: 1.2.10.Final, 1.3.1.Beta1
Reporter: Michal Babacek
Assignee: Jean-Frederic Clere
While strengtening the test coverage and tying some loose ends, I encountered the
following behaviour. It's always reproducible. Please, take a look at it and comment
whether you consider it being a quite evil bug, or whether I'm just being full of
ideas :-)
h3. Steps to reproduce
# Setup Apache HTTP Server *balancer* with {{AdvertiseSecurityKey karmYYY}} and start
it.
# Setup *worker 1* with {{advertise-security-key="karmXXX"}} and start it.
# Setup *worker 2* with {{advertise-security-key="karmYYY"}} and start it.
# *worker 2* talks to *balancer*, that's cool.
# *worker 1* does not talk to *balancer*, that's cool.
# Stop *balancer*. Keep both workers running.
# Setup Apache HTTP Server *balancer* with {{AdvertiseSecurityKey karmXXX}} and start
it.
# Now, I would expect that {{verifyDigest}} for *worker 2* ceases to match and that
there will be only *worker 1* registered with the *balancer*. What actually happens is
that _both_ *worker 1* and *worker 2* are registered with the *balancer* now. STATUS
messages are being sent and processed, workers are in OK state.
I took a look at the differences between master and 1.2.10 branch, especially with regard
to MODCLUSTER-338 and MODCLUSTER-337, but it bares no connection to this issue.
1.2.10.Final and 1.3.1.Beta1 exhibit the same kind of behaviour.
According to the log, the digest logic is sane, i.e. one gets:
{noformat}
[org.jboss.modcluster.advertise.impl.AdvertiseListenerImpl] (pool-1-thread-1) Advertise
message digest verification failed for server 1a3825d7-e3df-4b5d-9838-52a3756284b0
{noformat}
, but the worker keeps sending STATUS OK messages anyhow.
Would it make sense for the worker to "leave" the balancer if the digest is
suddenly not matching?