Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
2.0.3-alpha, 3.0.0-alpha1
-
None
-
None
-
None
Description
Credit to Harsh for tracing down most of this.
If a DFSClient does create with overwrite multiple times on the same file, we can get into bad states. The exact failure mode depends on the state of the file, but at the least one DFSOutputStream will "win" over the others, leading to data loss in the sense that data written to the other DFSOutputStreams will be lost. While this is perhaps okay because of overwrite semantics, we've also seen other cases where the DFSClient loops indefinitely on close and blocks get marked as corrupt. This is not okay.
One fix for this is adding some locking to DFSClient which prevents a user from opening multiple concurrent output streams to the same path.
Attachments
Attachments
Issue Links
- is blocked by
-
HDFS-4504 DFSOutputStream#close doesn't always release resources (such as leases)
- Patch Available