On Tue, Apr 26, 2022 at 12:37 PM Nicholas Geovanis <nickgeova...@gmail.com>
wrote:

> On Tue, Apr 26, 2022 at 8:45 AM Vincent Lefevre <vinc...@vinc17.net>
> wrote:
>
>> On an ext4 filesystem, I got a file born 30 seconds after its
>> actual creation. Is this a bug?
>>
>
> Only experimentation can really back me up on this, but consider the
> following:
>
> Every time you use the "|" operator or the ";" separator on a command-line,
> new processes are being spawned. Which wait to be dispatched on a core.
> But you are not serializing the dispatch of those processes, and
> especially with
> 16 fast cores, you can't predict their order of execution.
>

A couple more observations:
(1) It looks like you're trying to observe behavior in the very same
filesystem in which
the running executable is loaded from and its log files are being
written-to. That's
alot of variables in motion at once.

(2) Yes, the "|" is in a sense serializing I/O in "lt|head". But the
filesystem is syncing
buffered and disk-based content separately from that.


> I know that such issues can be observed with NFS, but here this
>> is just a local ext4 filesystem.
>>
>> Here are the details.
>>
>> I started a shell script:
>>
>> cventin:~> ps -p 667828 -o lstart,cmd
>>                  STARTED CMD
>> Tue Apr 26 14:43:15 2022 /bin/sh /home/vlefevre/wd/mpfr/tests/mpfrtests.sh
>>
>> This script creates a file mpfrtests.cventin.lip.ens-lyon.fr.out
>> very early. But the first attempts to look at this file failed:
>>
>> cventin:~/software/mpfr> tail -n 30 mpfrtests.*.out; ll mpfrtests.*.out
>> zsh: no match
>> zsh: no match
>> cventin:~/software/mpfr[1]> tail -n 30 mpfrtests.*.out; ll mpfrtests.*.out
>> zsh: no match
>> zsh: no match
>> cventin:~/software/mpfr[1]> lt|head
>>  <14:43:42
>> total 7016
>> -rw-r--r--  1  188644 2022-04-26 14:43:42 config.log
>> -rw-r--r--  1    2861 2022-04-26 14:43:42 conftest.c
>> -rw-r--r--  1       0 2022-04-26 14:43:42 conftest.err
>> -rw-r--r--  1    1907 2022-04-26 14:43:42 confdefs.h
>> -rwxr-xr-x  1  632161 2022-04-26 14:43:16 configure.lineno*
>> drwxr-xr-x  2    4096 2022-04-26 14:43:11 doc/
>> drwxr-xr-x  3    4096 2022-04-26 14:43:11 tune/
>> -rwxr-xr-x  1   23568 2022-04-26 14:43:11 depcomp*
>> drwxr-xr-x  5   36864 2022-04-26 14:43:11 tests/
>> cventin:~/software/mpfr> lt|head
>> <14:43:47
>> total 6416
>> -rw-r--r--  1   19436 2022-04-26 14:43:47 config.log
>> -rw-r--r--  1     561 2022-04-26 14:43:47 conftest.c
>> -rw-r--r--  1       0 2022-04-26 14:43:47 conftest.err
>> -rw-r--r--  1    4138 2022-04-26 14:43:47 mpfrtests.cfgout
>> -rw-r--r--  1     500 2022-04-26 14:43:47 confdefs.h
>> -rwxr-xr-x  1  632161 2022-04-26 14:43:45 configure.lineno*
>> -rw-r--r--  1     878 2022-04-26 14:43:45
>> mpfrtests.cventin.lip.ens-lyon.fr.out
>> drwxr-xr-x  3    4096 2022-04-26 14:43:44 tune/
>> drwxr-xr-x  4   36864 2022-04-26 14:43:44 tests/
>>
>> According to /usr/bin/stat, the file birth is
>>
>>  Birth: 2022-04-26 14:43:45.537241731 +0200
>>
>> thus 30 seconds after the script started!
>>
>> Note that the configure.lineno file is created *after*
>> mpfrtests.cventin.lip.ens-lyon.fr.out, and one can see that
>> at 14:43:16, configure.lineno was already created.
>>
>> This is a 12-core Debian/unstable machine with
>>
>> Linux cventin 5.17.0-1-amd64 #1 SMP PREEMPT Debian 5.17.3-1 (2022-04-18)
>> x86_64 GNU/Linux
>>
>> --
>> Vincent Lefèvre <vinc...@vinc17.net> - Web: <https://www.vinc17.net/>
>> 100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
>> Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)
>>
>>

Reply via email to