From january.weiner at gmail.com  Wed Jul  5 13:14:53 2017
From: january.weiner at gmail.com (January W.)
Date: Wed, 5 Jul 2017 13:14:53 +0200
Subject: [Rd] [New Patch] Fix disk corruption when writing
In-Reply-To: <1093380f-a632-ce28-af21-a87e1a40a8db@gmail.com>
References: <CAPXDfF=770SgtaLoMeaF7XGUfj3wFSU6hUn6ZFrds0VnwG_+zA@mail.gmail.com>
 <ba1bb252-8524-ce6d-b0d7-0d66a09789d2@gmail.com>
 <CA+A1kV5xB3yfD2SnKenrnrfgV6wDObQW8vFMxUVQd2kxTc0BjQ@mail.gmail.com>
 <1093380f-a632-ce28-af21-a87e1a40a8db@gmail.com>
Message-ID: <CA+A1kV5ZD7ncet7Q2h3Tj8_5rLoSpcQ+PWT6HkfbPiCySC2Fag@mail.gmail.com>

OK, this does indeed seem to be the case. It is interesting that it works
on MacOS, though. I think that given that errors on flushing the cache
cannot be caught, the behavior is inadvertently unpredictable.

best,

j.



On 5 July 2017 at 13:09, Duncan Murdoch <murdoch.duncan at gmail.com> wrote:

> On 05/07/2017 5:26 AM, January W. wrote:
>
>> I tried the newest patch, but it does not seem to work for me (on
>> Linux). Despite the check in Rconn_printf, the write.csv happily writes
>> to /dev/full and does not report an error. When I added a printf("%d\n",
>> res); to the Rconn_printf() definition, I see only positive values
>> returned by the vfprintf call.
>>
>>
> That's likely because you aren't writing enough to actually trigger a
> write to disk during the write.  Writes are buffered, and the error doesn't
> happen until the buffer is written.  The regression test I put in had this
> problem; I'm working on MacOS and Windows, so I never got to actually try
> it before committing.
>
> Unfortunately, it doesn't look possible to catch the final flush of the
> buffer when the connection is closed, so small writes won't trigger any
> error.
>
> It's also possible that whatever system you're on doesn't signal an error
> when the write fails.
>
> Duncan Murdoch
>
> Cheers,
>>
>> j.
>>
>>
>> On 4 July 2017 at 21:37, Duncan Murdoch <murdoch.duncan at gmail.com
>> <mailto:murdoch.duncan at gmail.com>> wrote:
>>
>>     On 04/07/2017 11:50 AM, Jean-S?bastien Bevilacqua wrote:
>>
>>         Hello,
>>         You can find here a patch to fix disk corruption.
>>         When your disk is full, the write function exit without error
>>         but the file
>>         is truncated.
>>
>>         https://bugs.r-project.org/bugzilla/show_bug.cgi?id=17243
>>         <https://bugs.r-project.org/bugzilla/show_bug.cgi?id=17243>
>>
>>
>>     Thanks.  I didn't see that when it came through (or did and forgot).
>>     I'll probably move the error check to a lower level (in the
>>     Rconn_printf function), if tests show that works.
>>
>>     Duncan Murdoch
>>
>>
>>     ______________________________________________
>>     R-devel at r-project.org <mailto:R-devel at r-project.org> mailing list
>>     https://stat.ethz.ch/mailman/listinfo/r-devel
>>     <https://stat.ethz.ch/mailman/listinfo/r-devel>
>>
>>
>>
>>
>> --
>> -------- January Weiner --------------------------------------
>>
>
>


-- 
-------- January Weiner --------------------------------------

	[[alternative HTML version deleted]]



[Rd] [New Patch] Fix disk corruption when writing
January W.