Affects Version/s: 0.8.0
Fix Version/s: 0.9.0
FileInputStream.available() returns negative values when reading a large file (> 2^31 bytes) – this is a known (unresolved) java bug:
Consequence: a large edits file is not loaded and deleted without any warnings. The system reverts back to the old fsimage.
This happens in jdk1.6 as well, i.e. the bug has not yet been fixed.
In addition, when finally I was able to load my big cron-backed-up edits file (6.5 GB) with a kludgy work-around, the blocks did not exist anymore in the data node servers, probably deleted from the previous attempts when the name node server did not know about the changed situation.
Moral till this is fixed or worked-around: don't wait too long to restart the name node server. Otherwise this is a way to lose the entire dfs.