lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <AANLkTinTBz6ne37Y=xDeXnQQM39Mk5NYHHfEkHBd-_wP@mail.gmail.com>
Date:	Mon, 25 Oct 2010 23:10:15 +0100
From:	Filipe David Manana <fdmanana@...che.org>
To:	Theodore Tso <tytso@....edu>
Cc:	linux-ext4@...r.kernel.org
Subject: Re: question about fsync

Theodore, thanks for your answer.

A similar question:

I have 2 threads. Both open the same file, but each using its own
(different) file descriptor.

If one thread writes data past the eof (appends data), will the other
one be able to read it with pread call (an offset past the eof it
found when it opened the file)?

I  would just like to know if it's something safe to do on Linux and
all Posix compliant platforms (and eventually Windows). (I tested this
with non C code and it worked)

best regards,


On Mon, Oct 25, 2010 at 1:54 PM, Theodore Tso <tytso@....edu> wrote:
>
> On Oct 25, 2010, at 7:49 AM, Filipe David Manana wrote:
>
>> - opens a file (write append mode) and writes data to it
>> - opens a 2nd file descriptor for that same file (write append mode as
>> well) and does an fsync call on this 2nd file descriptor
>> - closes the 2nd file descriptor
>> - continues writing to the 1st file descriptor
>> - etc
>>
>> Is there a risk that some of the data might not get fsynced to disk? I
>> mean, is it possible that the 2nd file descriptor doesn't have all the
>> same metadata as the first one?
>
> What do you mean by "risk?"  For most Linux file systems, including ext2, ext3, and ext4, all of the data will be sync'ed out to disk.   However, this is not guaranteed by POSIX or the Single Unix Specification.   So in theory, there might exist some POSIX/SUS compliant implementation that would not sync out the data.  I think most Unix or Linux-compatible systems are such that you could count on this, but it's not a portable thing that you can count upon.   I have no idea what the Windows POSIX layer would do in this situation, for example, or the Eunice Emulation layer for VMS.  (Back in the Perl 3 days, Larry Wall's configure script would test for Eunice, and if not found, print the message, "Congratulations.  You're not running Eunice."  :-)
>
> -- Ted
>
>



-- 
Filipe David Manana,
fdmanana@...il.com, fdmanana@...che.org

"Reasonable men adapt themselves to the world.
 Unreasonable men adapt the world to themselves.
 That's why all progress depends on unreasonable men."
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ