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.
|Status||Resolved [ 5 ]||Closed [ 6 ]|
|Status||Patch Available [ 10002 ]||Resolved [ 5 ]|
|Fix Version/s||0.22.0 [ 12314241 ]|
|Resolution||Fixed [ 1 ]|
|Assignee||Todd Lipcon [ tlipcon ]|
|Affects Version/s||0.20.2 [ 12314204 ]|