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