* Re: [Bug 214873] New: man 2 fsync implies possibility to return early [not found] <bug-214873-216477@https.bugzilla.kernel.org/> @ 2021-10-30 12:05 ` Alejandro Colomar (man-pages) 2021-10-30 15:17 ` Jens Axboe [not found] ` <bug-214873-216477-ofhoomEwvw@https.bugzilla.kernel.org/> 1 sibling, 1 reply; 3+ messages in thread From: Alejandro Colomar (man-pages) @ 2021-10-30 12:05 UTC (permalink / raw) To: LKML Cc: bugzilla-daemon, Christoph Hellwig, Al Viro, David Howells, Jens Axboe [CC += LKML and a few kernel programmers] Hi, On 10/29/21 23:25, bugzilla-daemon@bugzilla.kernel.org wrote: > https://bugzilla.kernel.org/show_bug.cgi?id=214873 > > Bug ID: 214873 > Summary: man 2 fsync implies possibility to return early > Product: Documentation > Version: unspecified > Hardware: All > OS: Linux > Status: NEW > Severity: low > Priority: P1 > Component: man-pages > Assignee: documentation_man-pages@kernel-bugs.osdl.org > Reporter: sworddragon2@gmail.com > Regression: No > > The manpage for the fsync system call ( > https://man7.org/linux/man-pages/man2/fsync.2.html ) describes as flushing the > related caches to a storage device so that the information can even be > retrieved after a crash/reboot. But then it does make the statement "The call > blocks until the device reports that the transfer has completed." which causes > now some interpretation: What happens if the device reports early completion > (e.g. via a bugged firmware) of the transfer while the kernel still sees unsent > caches in its context? Does fsync() indeed return then as the last referenced > sentence implies or does it continue to send the caches the kernel sees to > guarantee data integrity as good as possible as the previous documented part > might imply? > > I noticed this discrepancy when reporting a bug against dd ( > https://debbugs.gnu.org/cgi/bugreport.cgi?bug=51345 ) that causes dd to return > early when it is used with its fsync capability while the kernel still sees > caches and consulting the fsync() manpage made it not clear if such a > theoretical possibility from the fsync() system call would be intended or not > so eventually this part could be slighty enhanced. > I don't know how fsync(2) works. Could some kernel fs programmer please check if the text matches the implementation, and if that issue reported should be reworded in the manual page? Thanks, Alex -- Alejandro Colomar Linux man-pages comaintainer; https://www.kernel.org/doc/man-pages/ http://www.alejandro-colomar.es/ ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Bug 214873] New: man 2 fsync implies possibility to return early 2021-10-30 12:05 ` [Bug 214873] New: man 2 fsync implies possibility to return early Alejandro Colomar (man-pages) @ 2021-10-30 15:17 ` Jens Axboe 0 siblings, 0 replies; 3+ messages in thread From: Jens Axboe @ 2021-10-30 15:17 UTC (permalink / raw) To: Alejandro Colomar (man-pages), LKML Cc: bugzilla-daemon, Christoph Hellwig, Al Viro, David Howells On 10/30/21 6:05 AM, Alejandro Colomar (man-pages) wrote: > [CC += LKML and a few kernel programmers] > > Hi, > > On 10/29/21 23:25, bugzilla-daemon@bugzilla.kernel.org wrote: >> https://bugzilla.kernel.org/show_bug.cgi?id=214873 >> >> Bug ID: 214873 >> Summary: man 2 fsync implies possibility to return early >> Product: Documentation >> Version: unspecified >> Hardware: All >> OS: Linux >> Status: NEW >> Severity: low >> Priority: P1 >> Component: man-pages >> Assignee: documentation_man-pages@kernel-bugs.osdl.org >> Reporter: sworddragon2@gmail.com >> Regression: No >> >> The manpage for the fsync system call ( >> https://man7.org/linux/man-pages/man2/fsync.2.html ) describes as flushing the >> related caches to a storage device so that the information can even be >> retrieved after a crash/reboot. But then it does make the statement "The call >> blocks until the device reports that the transfer has completed." which causes >> now some interpretation: What happens if the device reports early completion >> (e.g. via a bugged firmware) of the transfer while the kernel still sees unsent >> caches in its context? Does fsync() indeed return then as the last referenced >> sentence implies or does it continue to send the caches the kernel sees to >> guarantee data integrity as good as possible as the previous documented part >> might imply? >> >> I noticed this discrepancy when reporting a bug against dd ( >> https://debbugs.gnu.org/cgi/bugreport.cgi?bug=51345 ) that causes dd to return >> early when it is used with its fsync capability while the kernel still sees >> caches and consulting the fsync() manpage made it not clear if such a >> theoretical possibility from the fsync() system call would be intended or not >> so eventually this part could be slighty enhanced. >> > > I don't know how fsync(2) works. Could some kernel fs programmer please > check if the text matches the implementation, and if that issue reported > should be reworded in the manual page? I don't know what the "see caches" mean in a few spots in the above text? In simplified terms, fsync will write out dirty data and then ensure that it is stable on media. The latter is your cache flush, if the underlying device is using some sort of writeback caching. When the flush is issued, there is no more dirty kernel cached data. If the device doesn't honor a cache flush (eg "all writes previously acked are now stable"), then there's nothing the kernel can do about it. It would not even know. The only way to know is if a powercut comes in after a flush, and once power is restored, the media contains stale data. There is no issue here. If your storage device is lying to you, buy better storage devices. -- Jens Axboe ^ permalink raw reply [flat|nested] 3+ messages in thread
[parent not found: <bug-214873-216477-ofhoomEwvw@https.bugzilla.kernel.org/>]
* Re: [Bug 214873] man 2 fsync implies possibility to return early [not found] ` <bug-214873-216477-ofhoomEwvw@https.bugzilla.kernel.org/> @ 2021-11-12 20:22 ` Alejandro Colomar (man-pages) 0 siblings, 0 replies; 3+ messages in thread From: Alejandro Colomar (man-pages) @ 2021-11-12 20:22 UTC (permalink / raw) To: bugzilla-daemon, Jens Axboe Cc: Christoph Hellwig, Al Viro, David Howells, linux-kernel [Add CCs] Hi Jens, On 11/8/21 00:24, bugzilla-daemon@bugzilla.kernel.org wrote: > https://bugzilla.kernel.org/show_bug.cgi?id=214873 > > sworddragon2@gmail.com changed: > > What |Removed |Added > ---------------------------------------------------------------------------- > Status|RESOLVED |REOPENED > Resolution|INVALID |--- > > --- Comment #5 from sworddragon2@gmail.com --- > This ticket was closed pretty fast after comment #2 so I could not write > comment #4 before closing this ticket and now it seems due to it being closed > it does not receive attention anymore. Thus I'm reopening this ticket so that > comment #4 can be evaluated if this makes changes to the manpage valid. > > But if you think there is really nothing that needs to be changed feel free to > close this ticket again as I then won't bother about it here anymore. > That comment (and the previous) was directed to you, but since you're not CCd in this bugzilla issue, you didn't receive it. Could you please have a look at it. I also CCd the same other emails as in my previous email, since some of them may want to have a look at it too. Thanks, Alex -- Alejandro Colomar Linux man-pages comaintainer; http://www.kernel.org/doc/man-pages/ http://www.alejandro-colomar.es/ ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2021-11-12 20:22 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <bug-214873-216477@https.bugzilla.kernel.org/>
2021-10-30 12:05 ` [Bug 214873] New: man 2 fsync implies possibility to return early Alejandro Colomar (man-pages)
2021-10-30 15:17 ` Jens Axboe
[not found] ` <bug-214873-216477-ofhoomEwvw@https.bugzilla.kernel.org/>
2021-11-12 20:22 ` [Bug 214873] " Alejandro Colomar (man-pages)
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox
Powered by JetHome