diff options
Diffstat (limited to 'doc/bugs/Direct_mode_sync_fails_to_transfer_a_10GB_file/comment_1_cb9e9dada7baf4e48725a9483b3b448a._comment')
-rw-r--r-- | doc/bugs/Direct_mode_sync_fails_to_transfer_a_10GB_file/comment_1_cb9e9dada7baf4e48725a9483b3b448a._comment | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/doc/bugs/Direct_mode_sync_fails_to_transfer_a_10GB_file/comment_1_cb9e9dada7baf4e48725a9483b3b448a._comment b/doc/bugs/Direct_mode_sync_fails_to_transfer_a_10GB_file/comment_1_cb9e9dada7baf4e48725a9483b3b448a._comment new file mode 100644 index 000000000..42acf9f64 --- /dev/null +++ b/doc/bugs/Direct_mode_sync_fails_to_transfer_a_10GB_file/comment_1_cb9e9dada7baf4e48725a9483b3b448a._comment @@ -0,0 +1,25 @@ +[[!comment format=mdwn + username="joey" + subject="""comment 1""" + date="2015-01-20T19:41:44Z" + content=""" +In my own test, I made a 10 gb file, and the key git-annex came up with had +a size of -2147483648 which is clearly screwed up.. But that's what +getFileStatus reports the size as. This was in an 32 bit XP VM. + +Hmm, unix-compat's getFileStatus calls getFileSize, which yields a +FileOffset. The maxBound of that on linux is a nice large +9223372036854775807, but on Windows, it appears to be 2147483647. + +Compare with using hFileSize, which yields an Integer. So, +getFileSize and fileSize are unsafe on Windows due to FileOffset being so +small on Windows. + +I have now corrected all places in git-annex that used the unsafe fileSize. +It will behave correctly on Windows now. + +However, if you still have the repo with the big file, it's key still has +the wrong size. To fix, you can "git annex unannex" the file, and then "git +annex add" it back, after upgrading to the current daily build, or the next +release of git-annex. +"""]] |