Issue Type: Bug Bug
Affects Versions: 3.0.10
Assignee: Bela Ban
Created: 15/Jun/12 7:05 AM
Description:

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?

Project: JGroups
Priority: Major Major
Reporter: David Hotham
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators.
For more information on JIRA, see: http://www.atlassian.com/software/jira