This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author sdaoden
Recipients nadeem.vawda, neologix, pitrou, ronaldoussoren, sdaoden, vstinner
Date 2011-04-21.14:20:10
SpamBayes Score 3.7054984e-09
Marked as misclassified No
Message-id <20110421142000.GA20466@sherwood.local>
In-reply-to
Content
I'm convinced.  And i've rewritten the patch.
Now fsync(2) is always called first *regardless* of the new
optional argument.  The documentation is (a little bit) better
now.  And i've added support for NetBSD, AIX and Linux; though:

- for AIX i'm testing (O_SYNC && O_DSYNC) which is almost
  definitely the wrong test for this, but (a) i don't know when
  fsync_range() has been introduced (seems to be many years) and
  (b) i've never really worked on AIX.
  (I only have the documentation:
  http://www.filibeto.org/unix/aix/lib/rel/5.3/basetrf1.pdf.)

- i've added sync_file_range() on Linux because of
  SYNC_FILE_RANGE_WAIT_AFTER in the hope that it means something
  even though the manual page says something else - but Linux and
  documentation is something by itself.
  http://lwn.net/Articles/178199/ states

    Providing all three flags guarantees that those pages are
    actually on disk when the call returns.

- it seems OpenBSD, FreeBSD, Solaris 11 and HP/UX provide data
  reliability through fsync(2) alone, see e.g. the notes near EOF
  of the following Solaris 11 file:

    http://www.filibeto.org/sun/lib/solaris11-express-docs/2010.11/E19963_01/html/821-1464/fcntl.h-3head.html#fcntl.h-3head
Files
File name Uploaded
11877.2.diff sdaoden, 2011-04-21.14:20:10
History
Date User Action Args
2011-04-21 14:20:12sdaodensetrecipients: + sdaoden, ronaldoussoren, pitrou, vstinner, nadeem.vawda, neologix
2011-04-21 14:20:11sdaodenlinkissue11877 messages
2011-04-21 14:20:10sdaodencreate