[ 
https://issues.apache.org/jira/browse/BOOKKEEPER-846?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14495944#comment-14495944
 ] 

Rakesh R commented on BOOKKEEPER-846:
-------------------------------------

It took some good amount of time to dig into the code.

I could see one corner case of processing BKException by the 
{{LedgerChecker#FullLedgerCallback}}. Git reference 
[LedgerChecker#FullLedgerCallback|https://github.com/apache/bookkeeper/blob/master/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerChecker.java#L163].
 Please see the {{operationComplete}} function of this callback, here it is not 
skipping {{BKException.Code.NoSuchLedgerExistsException}}. If it falls into 
this condition, it is considering as bad fragments. Since this is not 
re-producing in my env, [~fpj] can you please add a log message and see the 
possibility of occurring this condition.

{code}
LedgerChecker.java
    private static class FullLedgerCallback implements
             //...
            if (rc != BKException.Code.OK) {
                badFragments.add(result);
            }
{code}

> 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)

Reply via email to