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]

Reply via email to