[ https://issues.apache.org/jira/browse/HDFS-1542?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12974636#action_12974636 ]
Peter Voss commented on HDFS-1542: ---------------------------------- Hi Todd, I might be the wrong person to judge, but I totally agree with you that avoiding synchronization and locking in the first place is a very good idea. Therefore it seems totally valid to make a copy of the Configuration. I don't like the "feature" that changing settings in the configuration after the FS was created is reflected in open streams. I think this adds unnecessary complexity and synchronization issues. I like your solution. > Deadlock in Configuration.writeXml when serialized form is larger than one > DFS block > ------------------------------------------------------------------------------------ > > Key: HDFS-1542 > URL: https://issues.apache.org/jira/browse/HDFS-1542 > Project: Hadoop HDFS > Issue Type: Bug > Components: hdfs client > Affects Versions: 0.22.0, 0.23.0 > Reporter: Todd Lipcon > Assignee: Todd Lipcon > Priority: Critical > Attachments: deadlock.txt, hdfs-1542.txt, Test.java > > > Configuration.writeXml holds a lock on itself and then writes the XML to an > output stream, during which DFSOutputStream will try to get a lock on > ackQueue/dataQueue. Meanwihle the DataStreamer thread will call functions > like conf.getInt() and deadlock against the other thread, since it could be > the same conf object. > This causes a deterministic deadlock whenever the serialized form is larger > than block size. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.