[ https://issues.apache.org/jira/browse/HADOOP-5859?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12713180#action_12713180 ]
Kan Zhang edited comment on HADOOP-5859 at 6/4/09 5:55 PM: ----------------------------------------------------------- > Unless the variable is declared as "volatile", right? I just checked, the JDK6 implementation of LinkedList didn't declare the "size" variable volatile. So Todd is right, a second thread may see a stale cached value. In any case, this is a non-issue after my refactoring. In the refactored code, all accesses to dataQueue or ackQueue are sync'ed on dataQueue lock. was (Author: kzhang): > Unless the variable is declared as "volatile", right? I just checked, the JDK6 implementation of LinkedList didn't declare the "size" variable volatile. So Todd is right, a second thread may see a stale cached value (does anyone know how long the value will be cached by a thread, I hope it's not forever :)). In any case, this is a non-issue after my refactoring. In the refactored code, all accesses to dataQueue or ackQueue are sync'ed on dataQueue lock. > FindBugs : fix "wait() or sleep() with locks held" warnings in hdfs > ------------------------------------------------------------------- > > Key: HADOOP-5859 > URL: https://issues.apache.org/jira/browse/HADOOP-5859 > Project: Hadoop Core > Issue Type: Bug > Components: dfs > Reporter: Kan Zhang > Assignee: Kan Zhang > Fix For: 0.21.0 > > Attachments: 5859-21.patch, 5859-22.patch, 5859-26.patch, > 5859-33.patch, 5859-35.patch, 5859-36.patch, 5859-38.patch, 5859-4.patch, > 5859-40.patch, 5859-41.patch, 5859-5.patch, 5859-8.patch > > > This JIRA fixes the following warnings: > SWL org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.closeInternal() calls > Thread.sleep() with a lock held > TLW wait() with two locks held in > org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.flushInternal() > TLW wait() with two locks held in > org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.flushInternal() > TLW wait() with two locks held in > org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.writeChunk(byte[], int, int, > byte[]) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.