You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Nick Dimiduk (JIRA)" <ji...@apache.org> on 2013/08/23 02:31:52 UTC

[jira] [Commented] (HBASE-9315) TestLruBlockCache.testBackgroundEvictionThread fails on suse

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

Nick Dimiduk commented on HBASE-9315:
-------------------------------------

The test calculates a cache size and block size such that 9 blocks will fit in cache, and then inserts one extra block. Sometimes two single-block evictions happen instead of one single-block or double-block eviction. My best guess for the reason is the delta between minSize and acceptableSize is interacting with the few bytes of free space between the total size of all cached blocks and the cache size. There also appears to be a race between when System.out.println is called and the assert on the following line -- often "Background Evictions run: 1" is printed even when the assertion fails.
                
> TestLruBlockCache.testBackgroundEvictionThread fails on suse
> ------------------------------------------------------------
>
>                 Key: HBASE-9315
>                 URL: https://issues.apache.org/jira/browse/HBASE-9315
>             Project: HBase
>          Issue Type: Test
>    Affects Versions: 0.95.2
>            Reporter: Nick Dimiduk
>            Assignee: Nick Dimiduk
>
> One of our build machines is consistently having trouble with this test.
> {noformat}
> Error Message
> expected:<2> but was:<1>
> Stacktrace
> java.lang.AssertionError: expected:<2> but was:<1>
> 	at org.junit.Assert.fail(Assert.java:88)
> 	at org.junit.Assert.failNotEquals(Assert.java:743)
> 	at org.junit.Assert.assertEquals(Assert.java:118)
> 	at org.junit.Assert.assertEquals(Assert.java:555)
> 	at org.junit.Assert.assertEquals(Assert.java:542)
> 	at org.apache.hadoop.hbase.io.hfile.TestLruBlockCache.testBackgroundEvictionThread(TestLruBlockCache.java:85)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
> 	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
> 	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
> 	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
> 	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
> 	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
> 	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
> 	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
> 	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
> 	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
> 	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
> 	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
> 	at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
> 	at org.junit.runners.Suite.runChild(Suite.java:127)
> 	at org.junit.runners.Suite.runChild(Suite.java:26)
> 	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
> 	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
> 	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:662)
> Standard Output
> Background Evictions run: 2
> Standard Error
> 2013-08-22 11:02:58,331 INFO  [pool-1-thread-1] hbase.ResourceChecker(147): before: io.hfile.TestLruBlockCache#testBackgroundEvictionThread Thread=35, OpenFileDescriptor=277, MaxFileDescriptor=95000, SystemLoadAverage=119, ProcessCount=75, AvailableMemoryMB=8884, ConnectionCount=1
> 2013-08-22 11:02:58,338 INFO  [pool-1-thread-1] hbase.ResourceChecker(171): after: io.hfile.TestLruBlockCache#testBackgroundEvictionThread Thread=36 (was 35) - Thread LEAK? -, OpenFileDescriptor=279 (was 277) - OpenFileDescriptor LEAK? -, MaxFileDescriptor=95000 (was 95000), SystemLoadAverage=119 (was 119), ProcessCount=75 (was 75), AvailableMemoryMB=8884 (was 8884), ConnectionCount=1 (was 1)
> 2013-08-22 11:07:58,331 DEBUG [LRU Statistics #0] hfile.LruBlockCache(728): Stats: total=87.01 KB, free=10.65 KB, max=97.66 KB, blocks=8, accesses=0, hits=0, hitRatio=0, cachingAccesses=0, cachingHits=0, cachingHitsRatio=0,evictions=2, evicted=2, evictedPerRun=1.0
> 2013-08-22 11:12:58,331 DEBUG [LRU Statistics #0] hfile.LruBlockCache(728): Stats: total=87.01 KB, free=10.65 KB, max=97.66 KB, blocks=8, accesses=0, hits=0, hitRatio=0, cachingAccesses=0, cachingHits=0, cachingHitsRatio=0,evictions=2, evicted=2, evictedPerRun=1.0
> 2013-08-22 11:17:58,331 DEBUG [LRU Statistics #0] hfile.LruBlockCache(728): Stats: total=87.01 KB, free=10.65 KB, max=97.66 KB, blocks=8, accesses=0, hits=0, hitRatio=0, cachingAccesses=0, cachingHits=0, cachingHitsRatio=0,evictions=2, evicted=2, evictedPerRun=1.0
> {noformat}

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