tree c8f88049cc488d18375512bcb11854e7bfdff24b
parent 14ae5c8a03a10e55f778ee542afb5ed9a632eb23
author lamber-ken <lamberken@apache.org> 1590237719 +0800
committer GitHub <noreply@github.com> 1590237719 +0200
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJeyRoXCRBK7hj4Ov3rIwAAdHIIAFEQnwC4uFspTcKo585U7ixu
 xgiu+1wkS/u2s75PwK2HVat3Lj9N+kEIb9vT1gUy0Pr3iIweU1haDqVv+XwgV6FE
 fRcV2KtTyXH1Hm0O0ymOahzjUf1nMrnjc8yMw56ePT64mfDU/Rp1+yyBUQizAqp1
 O/7FwjMBkdSGUnZD1BANdr6bfPFIc3Cq/EmpBxqUrjYFQMCZMathWozLLod+prip
 x8cWem+oSqWjb8QsC1uWU2kiniEVU2uZVPhxYblHiVNh5ci0PwedlIe4XgS+dcAe
 CPvP0AhBTRpjtv+ge5RQGoDwts1GD9jchD8o4Ep1KbcOV/6BclKnQyL9XhreUZU=
 =b1Nx
 -----END PGP SIGNATURE-----
 

[BUG] Fix flaky testLedgerOpenAfterBKCrashed

### Motivation

`BookieFailureTest#testLedgerOpenAfterBKCrashed` is a flaky test case, it cause some pr failed.

```
org.apache.bookkeeper.client.BKException$BKLedgerRecoveryException: Error while recovering ledger
  at org.apache.bookkeeper.client.SyncCallbackUtils.finish(SyncCallbackUtils.java:83)
  at org.apache.bookkeeper.client.SyncCallbackUtils$SyncOpenCallback.openComplete(SyncCallbackUtils.java:157)
  at org.apache.bookkeeper.client.LedgerOpenOp.openComplete(LedgerOpenOp.java:232)
  at org.apache.bookkeeper.client.LedgerOpenOp$1.safeOperationComplete(LedgerOpenOp.java:201)
  at org.apache.bookkeeper.client.LedgerOpenOp$1.safeOperationComplete(LedgerOpenOp.java:193)
  at org.apache.bookkeeper.util.OrderedGenericCallback.operationComplete(OrderedGenericCallback.java:62)
  at org.apache.bookkeeper.proto.BookkeeperInternalCallbacks$TimedGenericCallback.operationComplete(BookkeeperInternalCallbacks.java:189)
  at org.apache.bookkeeper.client.ReadOnlyLedgerHandle.lambda$recover$5(ReadOnlyLedgerHandle.java:295)
  at java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:760)
  at java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:736)
  at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474)
  at java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:1977)
  at org.apache.bookkeeper.client.LedgerRecoveryOp.submitCallback(LedgerRecoveryOp.java:136)
  at org.apache.bookkeeper.client.LedgerRecoveryOp.onEntryComplete(LedgerRecoveryOp.java:202)
  at org.apache.bookkeeper.client.ListenerBasedPendingReadOp.submitCallback(ListenerBasedPendingReadOp.java:67)
  at org.apache.bookkeeper.client.PendingReadOp$LedgerEntryRequest.fail(PendingReadOp.java:170)
  at org.apache.bookkeeper.client.PendingReadOp$SequenceReadRequest.sendNextRead(PendingReadOp.java:392)
  at org.apache.bookkeeper.client.PendingReadOp$SequenceReadRequest.logErrorAndReattemptRead(PendingReadOp.java:435)
  at org.apache.bookkeeper.client.PendingReadOp.readEntryComplete(PendingReadOp.java:581)
  at org.apache.bookkeeper.proto.BookieClientImpl$2.safeRun(BookieClientImpl.java:369)
  at org.apache.bookkeeper.common.util.SafeRunnable.run(SafeRunnable.java:36)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
  at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
  at java.lang.Thread.run(Thread.java:748)
```

![image](https://user-images.githubusercontent.com/20113411/82434983-3add3880-9ac6-11ea-96a3-24fbd71d16d4.png)

### Changes

Test case should cover following situation, which shutdown any one of bookies, and try to open ledger with no bookie recovery. 
```
Bookies: 4
ensSize: 3
writeQuorumSize: 2
ackQuorumSize: 2
```



Reviewers: Enrico Olivelli <eolivelli@gmail.com>

This closes #2337 from lamber-ken/bk-fix-wrong-test