http://bugzilla.novell.com/show_bug.cgi?id=575813

http://bugzilla.novell.com/show_bug.cgi?id=575813#c0


           Summary: FileStream doesn't handle errors on Close (disk full,
                    generic error, etc.)
    Classification: Mono
           Product: Mono: Class Libraries
           Version: 2.4.x
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: Critical
          Priority: P5 - None
         Component: CORLIB
        AssignedTo: [email protected]
        ReportedBy: [email protected]
         QAContact: [email protected]
          Found By: ---
           Blocker: ---


User-Agent:       Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/532.5
(KHTML, like Gecko) Chrome/4.0.249.43 Safari/532.5

When writing to a FileStream or using File.WriteAll* methods, or otherwise
writing data to a file, if a error condition occurs at the point close(2)
system call it is silently ignored.  The trailing data in the file is lost.

The error can happen on conditions like "disk is full", exceeding user's quota,
etc.


Reproducible: Always

Steps to Reproduce:
One way to expose this (on Linux):

$ dd if=/dev/zero of=vdisk bs=1024 count=1000
$ mkfs.vfat ./vdisk
$ mkdir mnt
$ sudo -s

# mount -o loop,defaults ./vdisk ./mnt
# csharp

csharp> var bytes = new byte[1024*1024];
csharp> bytes.Length;
1048576
csharp> System.IO.File.WriteAllBytes("test", bytes);
^D

# ls -l
total 980
-rwxr-xr-x 1 root root 1003520 2010-02-01 16:30 test

So not all the data is written to disk and no error message is given.  I'd
expect some diagnostics from Mono (in form of exception) in this case.

The root cause for this seems to be that close(2) return value is ignored in
void file_close() in mono/io-layer/io.c.

The problem must also happen with SVN trunk, as this function is unchanged from
2.4.

-- 
Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
_______________________________________________
mono-bugs maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-bugs

Reply via email to