Enis Soztutar created HBASE-12055:
-------------------------------------
Summary: TestBucketWriterThread hangs flakily based on timing
Key: HBASE-12055
URL: https://issues.apache.org/jira/browse/HBASE-12055
Project: HBase
Issue Type: Test
Reporter: Enis Soztutar
Assignee: Nick Dimiduk
Fix For: 2.0.0, 0.99.1
TestBucketWriterThread sometimes hangs (esp on windows) due to timing issues
with regards to the thread start and blocking queue start.
Test output:
{code}
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running org.apache.hadoop.hbase.io.hfile.bucket.TestBucketWriterThread
2014-09-17 13:58:43,607 INFO [main] hbase.ResourceChecker(147): before:
io.hfile.bucket.TestBucketWriterThread#testNonE
rrorCase Thread=5, OpenFileDescriptor=0, MaxFileDescriptor=0,
SystemLoadAverage=0, ProcessCount=0, AvailableMemoryMB=0,
ConnectionCount=0
2014-09-17 13:58:43,625 INFO [main] util.ByteBufferArray(57): Allocating
buffers total=16 B , sizePerBuffer=32 KB, coun
t=1
2014-09-17 13:58:43,631 INFO [main] bucket.BucketCache(271): Started bucket
cache; ioengine=heap, capacity=16 B, blockS
ize=1 B, writerThreadNum=1, writerQLen=16, persistencePath=null,
bucketAllocator=bucket.0: size=1, freeCount=4, used=0,
bucket.1: size=1, freeCount=4, used=0, bucket.2: size=1, freeCount=4, used=0,
bucket.3: size=1, freeCount=4, used=0
2014-09-17 13:58:43,716 INFO [main-BucketCacheWriter-0]
bucket.BucketCache$WriterThread(727): main-BucketCacheWriter-0
exiting, cacheEnabled=true
2014-09-17 14:01:44,024 DEBUG [BucketCache Statistics #0]
bucket.BucketCache(497): BucketCache Stats: failedBlockAdditio
ns=0, total=16 B, free=16 B, usedSize=0 B, cacheSize=0 B, accesses=0, hits=0,
IOhitsPerSecond=0, IOTimePerHit=NaN, hitRa
tio=0,cachingAccesses=0, cachingHits=0, cachingHitsRatio=0,evictions=0,
evicted=0, evictedPerRun=NaN
2014-09-17 14:04:44,206 DEBUG [BucketCache Statistics #0]
bucket.BucketCache(497): BucketCache Stats: failedBlockAdditio
ns=0, total=16 B, free=16 B, usedSize=0 B, cacheSize=0 B, accesses=0, hits=0,
IOhitsPerSecond=0, IOTimePerHit=NaN, hitRa
tio=0,cachingAccesses=0, cachingHits=0, cachingHitsRatio=0,evictions=0,
evicted=0, evictedPerRun=NaN
{code}
Stack dump:
{code}
2014-09-17 14:01:51
Full thread dump Java HotSpot(TM) 64-Bit Server VM (20.6-b01 mixed mode):
"BucketCache Statistics #0" daemon prio=6 tid=0x0000000008293000 nid=0x7e8
waiting on condition [0x000000000712f000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x000000077ad10110> (a
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at
java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:196)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2025)
at java.util.concurrent.DelayQueue.take(DelayQueue.java:164)
at
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:609)
at
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:602)
at
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:662)
"Low Memory Detector" daemon prio=6 tid=0x0000000000526000 nid=0x176c runnable
[0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C2 CompilerThread1" daemon prio=10 tid=0x0000000000524800 nid=0x428 waiting on
condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C2 CompilerThread0" daemon prio=10 tid=0x0000000000513000 nid=0x5d0 waiting on
condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Attach Listener" daemon prio=10 tid=0x0000000000511000 nid=0x944 waiting on
condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Signal Dispatcher" daemon prio=10 tid=0x000000000050e000 nid=0x870 runnable
[0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Finalizer" daemon prio=8 tid=0x00000000004f5800 nid=0x460 in Object.wait()
[0x000000000602f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x000000077ad104c8> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
- locked <0x000000077ad104c8> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
"Reference Handler" daemon prio=10 tid=0x00000000004f3800 nid=0x67c in
Object.wait() [0x0000000005f2f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x000000077ad10568> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Object.java:485)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
- locked <0x000000077ad10568> (a java.lang.ref.Reference$Lock)
"main" prio=6 tid=0x000000000025d800 nid=0xb24 waiting on condition
[0x00000000025ae000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at org.apache.hadoop.hbase.util.Threads.sleep(Threads.java:143)
at
org.apache.hadoop.hbase.io.hfile.bucket.TestBucketWriterThread.setUp(TestBucketWriterThread.java:78)
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.RunBefores.evaluate(RunBefores.java:24)
at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
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.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:234)
at
org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:133)
at
org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:114)
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.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:188)
at
org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:166)
at
org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:86)
at
org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:101)
at
org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:74)
"VM Thread" prio=10 tid=0x00000000004ed000 nid=0x550 runnable
"VM Periodic Task Thread" prio=10 tid=0x000000000052d800 nid=0xafc waiting on
condition
JNI global references: 1395
{code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)