-
Bug
-
Resolution: Done
-
Major
-
3.0.10
-
None
I've just seen a group go wrong and I think that the first sign of trouble was this line of trace:
2012-06-15 08:55:54.690 [ForkJoinPool-1-worker-0] TRACE org.jgroups.protocols.SEQUENCER - [CFS-A-four]: forwarding CFS-A-four::1 to coord null
... showing a member trying to forward to a null coordinator.
This comes shortly after a new view was installed so SEQUENCER should have seen the VIEW_CHANGE. I think that the suspect code is in handleViewChange()
if(!coord_changed) { setCoord(new_coord); return; }
Surely the intention isn't to call setCoord only if the coodinator hasn't changed?
I see that setCoord will get called in due course by the flusher. But perhaps it would be safer to do something like:
if(!coord_changed) { return; } stopFlusher(); setCoord(new_coord); startFlusher(new_coord); // needs to be done in the background, to prevent blocking if down() would block
... and possibly the call to setCoord in flush() can then be removed?