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