[Mono-bugs] [Bug 76192][Nor] New - Can't write files past 2gb on
AMD64 (x86_64)
bugzilla-daemon at bugzilla.ximian.com
bugzilla-daemon at bugzilla.ximian.com
Thu Sep 22 17:02:13 EDT 2005
Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.
Changed by brion at pobox.com.
http://bugzilla.ximian.com/show_bug.cgi?id=76192
--- shadow/76192 2005-09-22 17:02:13.000000000 -0400
+++ shadow/76192.tmp.8672 2005-09-22 17:02:13.000000000 -0400
@@ -0,0 +1,45 @@
+Bug#: 76192
+Product: Mono: Runtime
+Version: 1.1
+OS: GNU/Linux [Other]
+OS Details: Fedora Core 3 x86_64
+Status: NEW
+Resolution:
+Severity:
+Priority: Normal
+Component: io-layer
+AssignedTo: dick at ximian.com
+ReportedBy: brion at pobox.com
+QAContact: mono-bugs at ximian.com
+TargetMilestone: ---
+URL:
+Cc:
+Summary: Can't write files past 2gb on AMD64 (x86_64)
+
+Description of Problem:
+Attempting to write to a file with FileStream.Write() fails when the file size reaches 2 gigabytes on
+an x86_64 system. An strace shows that at the failure point is an lseek() to an impossibly large
+offset, which fails and triggers an IO exception.
+
+Steps to reproduce the problem:
+1. Create new file with File.Create()
+2. Write to it with .Write() until you reach 2gb
+
+Actual Results:
+lseek(5, 2139095040, SEEK_SET) = 2139095040
+lseek(5, 0, SEEK_CUR) = 2139095040
+[snip]
+lseek(5, 18446744071564165120, SEEK_SET) = -1 EINVAL (Invalid argument)
+
+
+Expected Results:
+Should keep seeking to sane values and write successfully.
+
+
+How often does this happen?
+Every time.
+
+
+Additional Information:
+Problem appears to be sign extension in mono/io-layer/io.c's file_seek() function. Test case and
+patch will be attached.
More information about the mono-bugs
mailing list