xiang092689 opened a new issue, #3952:
URL: https://github.com/apache/bookkeeper/issues/3952
**BUG REPORT**
There are 3 bookie(e:2,w:2,a:1) in settled env.
when 1 bookie restarted, `ReadLastConfirmedOp` come out read entry error
and it will last for about 10 minutes
```
2023-05-10 09:48:02,583Z [BookKeeperClientWorker-OrderedExecutor-0-0] ERROR
org.apache.bookkeeper.client.ReadLastConfirmedOp - While readLastConfirmed
ledger: 794313 did not hear success responses from all quorums,
QuorumCoverage(e:2,w:2,a:1) = [0, -8]
```
my confusion: QuorumCoverage contains a '0' which means 1 read entry
operation is success, why it come out error in the end of ReadLastConfirmedOp?
can i just add rc '-8' in the conditions of nodesUnknown++
```
public synchronized boolean checkCovered() {
// now check if there are any write quorums, with |ackQuorum|
nodes available
for (int i = 0; i < ensembleSize; i++) {
/* Nodes which have either responded with an error other
than NoSuch{Entry,Ledger},
or have not responded at all. We cannot know if these
nodes ever accepted a entry. */
int nodesUnknown = 0;
for (int j = 0; j < writeQuorumSize; j++) {
int nodeIndex = (i + j) % ensembleSize;
if (covered[nodeIndex] != BKException.Code.OK
&& covered[nodeIndex] !=
BKException.Code.NoSuchEntryException
&& covered[nodeIndex] !=
BKException.Code.NoSuchLedgerExistsException) {
nodesUnknown++;
}
}
/* If nodesUnknown is greater than the ack quorum size, then
it is possible those two unknown nodes accepted an entry
which
we do not know about */
if (nodesUnknown >= ackQuorumSize) {
return false;
}
}
return true;
}
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]