[issue11877] Change os.fsync() to support physical backing store syncs

Charles-François Natali report at bugs.python.org
Sat Jul 23 00:26:03 CEST 2011


Charles-François Natali <neologix at free.fr> added the comment:

>   One could argue that something had happened before the fsync(2),
>   so that code which blindly did so is too dumb to do any right
>   decision anyway.  Even PEP 3151 won't help.

I don't understand. If the syscall supposed to flush the disk's buffer
cache fails - be it fcntl() or sync_file_range() - I think the error
should be propagated, not silently ignored and replaced with another
syscall which doesn't have the same semantic. That's all.

> - I favour haypos fullsync() approach, because that could probably
>   make it into it.  Yet Python doesn't offer any possibility to
>   access NetBSD DISKSYNC stuff sofar.

Are you willing to update your patch accordingly?

> - Currently the programmer must be aware of any platform specific
>   problems.  I, for example, am not aware of Windows.  How can
>   i give any guarantee to users which (will) use my S-Postman on
>   Windows?  I need to put trust in turn into the Framework i am
>   using - Python.  And that makes me feel pretty breathless.

I agree.

> - Fortunately Python is dynamic, so that one simply can replace
>   os.fsync().  Works once only though (think signal handlers :=).

Yes, but since it's a fairly reasonable and useful feature, I think it
could be merged.

>   + Aaarrg!  I'm a liar!!  I lie about - data integrity!!!

Well, actually, some hard disks lie about this too :-)

----------

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue11877>
_______________________________________


More information about the Python-bugs-list mailing list