umount and data is lost?
shimi
linux-il at shimi.net
Sat Nov 5 23:22:04 IST 2011
On Sat, Nov 5, 2011 at 11:12 PM, Diego <elcuco at kde.org> wrote:
> Hi list,
>
> I am trying to debug this problem in a system I am developing:
>
> at some point I need to write a number to a file, and then reboot via an
> external device the machine. That device will cut of the power for a
> moment,
> and the machine will power on again (this is to overcome a fault we could
> not
> overcome otherwise). Before the reboot, I "umount" the proper partition and
> then "sync".
>
> For some reason, on one machine we see that the data is not updated and the
> original data is kept in the file. I konw empirically that if I add a
> "sleep(5)" after the umount, and before the "reboot" the data is written to
> the disk.
>
> Any tips how to debug this?
> * the system is a TI 2.6.32 kernel (OMAP)
> * the data is saved using fopen()
> * disk is umounted using system("umount /data"), and then I call from C to
> sync();
> * Cannot print debug this easily since the reboot is automated at the
> start
> of the APP, and then busybox's "login" breaks my serial terminal (like this
> eats "\n", git fixes if I press enter)
> * The application is also multi-threaded to add more difficulty ...
> * FS is JFFS2
> * again the workaround is a "sleep(5)"
>
> Any ideas?
>
> man 2 sync says:
BUGS
According to the standard specification (e.g., POSIX.1-2001),
sync() schedules the writes,
but may return before the actual writing is done. However, since
version 1.3.20 Linux does
actually wait. (This still does not guarantee data integrity:
modern disks have large
caches.)
maybe that's your culprit?
-- Shimi
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.cs.huji.ac.il/pipermail/linux-il/attachments/20111105/6cafe37d/attachment.html>
More information about the Linux-il
mailing list