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) >> >>