Random truncated files on USB hard disk with timeouts; how to debug?

Arrigo Marchiori ardovm at yahoo.it
Wed Oct 19 08:03:01 UTC 2016


Hello Poul-Henning,

On Wed, Oct 19, 2016 at 07:22:18AM +0000, Poul-Henning Kamp wrote:

> --------
> In message <20161019064315.GB93031 at nuvolo>, Arrigo Marchiori writes:
> 
> >> Y-cables are a big warning sign.
> >> 
> >> You can try plugging the "power-only" plug into a high quality 1
> >> ampere USB charger, but that is no guarantee for success.
> >
> >Yes, I also thought so at first.
> >
> >But I also believe that if anything goes wrong at the hardware level,
> >I should get a big warning from the kernel, instead of a funny
> >apparently-truncated file, that returns to be readable at next
> >reboot...?
> 
> Only if the drive finds out something is wrong and tells the kernel.
> 
> If the drive has bad power supply, that may not happen.

Yes, I understand. But, forgive me for insisting: there is an
inconsistency that is _at filesystem level_ and _temporary_, and this
really puzzles me.

If there was an undetected problem when writing, I would expect
garbage to be written instead of the actual data. Or, no data at
all. But the outcome should be that such data should be
_unrecoverable_ afterwards. Instead, the file is found and probably
correct at next reboot! Last one was a Java source file; if it had
errors internally I would have expected the port not to compile.

If there was a problem when reading, should the kernel not detect an
inconsistency in the data? Like a failed checksum? Because I think it
does: read(2) returns zero bytes, not garbage.

It just happened now, that another compilation filed. I cleaned,
repeated and it worked, without need to reboot. So, the ``funny'' file
seems to be deletable.

Please correct me if I am wrong. And thank you for your replies so far!

Best regards,
-- 
rigo

http://rigo.altervista.org


More information about the freebsd-fs mailing list