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

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

oops I haven't seen your previous comment while adding my comment (I didn't 
refresh the page before I commented). 
Thanks [~hustlmsp] for your time and detailed analysis. Its good we have 
identified the problem. I agree the test needs to be re-written as it is not 
testing the actual case due to the offline GC. 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. What do you say about handling/adding {{NoSuchLedgerExistsException}} 
to the callback?

bq. the bad thing here is purely on the test itself, which I think the test 
wasn't written in correct way to test ledger not exists case.
How about reading entries from the ledger until 
{{NoSuchLedgerExistsException}}. May be wait few seconds to see this exception. 
Does this sound good to you?

> 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