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

Uma Maheswara Rao G commented on BOOKKEEPER-408:
------------------------------------------------

Can do it. That will be one good practice, to ensure no tests will block due to 
flaky behaviours in tests. I used to follow in my tests, ex: see 
zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/TestReplicationWorker.java
At the same time, we should not depend 100% depend on that, untill unless we 
don't have option for proper assertion. Otherwise we may loose the track where 
we exactly test hanged. If we have an option to track that, we can assert and 
throw out with the problem.
                
> BookieReadWriteTest will enter the endless loop and will not leave out
> ----------------------------------------------------------------------
>
>                 Key: BOOKKEEPER-408
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-408
>             Project: Bookkeeper
>          Issue Type: Bug
>          Components: bookkeeper-server
>    Affects Versions: 4.1.0
>         Environment: SUSE System
> ZooKeeper server
> three BookKeepers
>            Reporter: liuyang
>
> When I run the tests of BookKeeper, I found that the test running forever and 
> cannot be finished. The log has the exception that is 
> "junit.framework.AssertionFailedError: Return code is not OK: -6". 
> I thought this issuse might be come from the synchronization mechanism used 
> by the BookieReadWriteTest.
> for example in BookieReadWriteTest.TestReadWriteAsyncSingleClient()
> 1. when called the function lh.asyncAddEntry(entry.array(), this ,sync), the 
> call back function is addComplete(int, LedgerHandle, long, Object)
> 2. we can see that in addComplete(..) the function will be fail when rc != 
> BKException.Code.OK, and the x.counter++ will not be called never.
> 3. we assume that the function addComplete(..) is fail. so, in 
> TestReadWriteAsyncSingleClient(), the while loop enter endless loop because 
> sync.counter < numEntriesToWrite is right forever.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to