I am looking at  onClusterChanged() in
TopologyAwareEnsemblePlacementPolicy.java
and I believe we don't handle the following case.

1. Bookie Became RO. We remove this from known bookies and add it to
readOnlyBookies.
2. Same bookie went down; Now the arguments, writableBookies has no change,
and readOnlyBookies is NULL.
At this point leftBookies, joinedBookies and deadBookies all get evaluated
to NULL.
Also the following check doesn't even update readOnlyBookies

if (!readOnlyBookies.isEmpty()) {
    this.readOnlyBookies = ImmutableSet.copyOf(readOnlyBookies);
}

So we will continue to have down bookie as part of our readOnlyBookie.

Am I missing something?

-- 
Jvrao
---
First they ignore you, then they laugh at you, then they fight you, then
you win. - Mahatma Gandhi

Reply via email to