[ https://issues.apache.org/jira/browse/HBASE-3059?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12916693#action_12916693 ]
ryan rawson commented on HBASE-3059: ------------------------------------ a few questions: - What jvm are you using? You must be using a 64 bit jvm to run hbase. 32 bit jvms dont offer atomic updates to longs, which is required for this code. - how and why does this fix the hang? The variable is volatile, so adding a synchronized block should not improve the characteristics according the the JMM. - How much does this slow down the code? Readwaiters is a fairly sensitive lock and holding it for less time would be better. > TestReadWriteConsistencyControl occasionally hangs > -------------------------------------------------- > > Key: HBASE-3059 > URL: https://issues.apache.org/jira/browse/HBASE-3059 > Project: HBase > Issue Type: Bug > Reporter: Hairong Kuang > Assignee: Hairong Kuang > Attachments: hbase_trunk_consistency.patch > > > The test hung when I ran mvn test today. The jstack shows that a Writer > thread hung at > "Thread-1" prio=10 tid=0x00002aaad81d2800 nid=0x6ce9 in Object.wait() > [0x0000000040f37000] > java.lang.Thread.State: WAITING (on object monitor) at > java.lang.Object.wait(Native Method) > at > org.apache.hadoop.hbase.regionserver.ReadWriteConsistencyControl.completeMemstoreInsert(ReadWriteConsistencyControl.java:130) > -- locked <0x00002aaac9fa0f50> (a java.lang.Object) > at > org.apache.hadoop.hbase.regionserver.TestReadWriteConsistencyControl$Writer.run(TestReadWriteConsistencyControl.java:56) > at java.lang.Thread.run(Thread.java:619) > It seems to be caused by a race condition in > ReadWriteConsistencyControl#completeMemStoreInsert. Accesses/updates of the > value of memStoreRead should be done while holding the readWaiters lock. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.