[
https://issues.apache.org/jira/browse/BOOKKEEPER-846?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14498407#comment-14498407
]
Sijie Guo commented on BOOKKEEPER-846:
--------------------------------------
{code}
But I feel there is no harm in doing an additional checks to skip the
NoSuchLedgerExistsException in FullLedgerCallback. At least this will save some
re-replication cycles and ReplicationWorker can do some useful work if there
are other unreplicated ledgers.
{code}
I explained that too. "A fragment should be treated a bad fragment even a
ledger is deleted as the checker itself doesn't know if NoLedgerExists means
ledger is deleted or a ledger file deleted in a bookie. this bad fragment will
be addressed when re-replicating it, since the replication worker will re-open
ledger to do the re-replication, which it would find the ledger is actually
deleted."
I am feeling the test itself need to cover multiple cases. Coming out a patch
later today.
> TestLedgerChecker times out
> ---------------------------
>
> Key: BOOKKEEPER-846
> URL: https://issues.apache.org/jira/browse/BOOKKEEPER-846
> Project: Bookkeeper
> Issue Type: Test
> Reporter: Flavio Junqueira
> Assignee: Rakesh R
> Priority: Blocker
> Fix For: 4.4.0, 4.3.1
>
> Attachments: BOOKKEEPER-846-001.patch,
> org.apache.bookkeeper.client.TestLedgerChecker-output.txt
>
>
> {noformat}
> java.lang.Exception: test timed out after 3000 milliseconds
> at java.lang.Object.wait(Native Method)
> at java.lang.Object.wait(Object.java:502)
> at org.apache.bookkeeper.client.SyncCounter.block(SyncCounter.java:51)
> at
> org.apache.bookkeeper.client.LedgerHandle.addEntry(LedgerHandle.java:480)
> at
> org.apache.bookkeeper.client.LedgerHandle.addEntry(LedgerHandle.java:457)
> at
> org.apache.bookkeeper.client.TestLedgerChecker.testShouldGetTwoFrgamentsIfTwoBookiesFailedInSameEnsemble(TestLedgerChecker.java:185)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:497)
> at
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
> at
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
> at
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
> at
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
> at
> org.junit.internal.runners.statements.FailOnTimeout$1.run(FailOnTimeout.java:28)
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)