On Mon, 04 Aug 2025 00:49:47 +0200 Antonio Diaz Diaz <anto...@gnu.org> wrote:
> Hi Sergei, > > Sergei Trofimovich wrote: > > testing ed-1.22... > > *** The script > > /home/slyfox/dev/tarballs/ed-1.22/testsuite/filter.ed exited > > abnormally *** tests failed. Please, send a bug report to > > bug-ed@gnu.org Include the (compressed) contents of > > '/home/slyfox/dev/tarballs/ed-1.22/tmp' in the report. > > I have tried to reproduce the problem for almost an hour on two > machines without success. Aha, I was afraid of it being hard to reproduce. I tried on both NixOS and Gentoo OSes. Each of the two reproduces the failure within 1-2 minutes. > Does the file 'filter.log' exist in 'ed-1.22/tmp'? What does it > contain? Yes, there is a file: $ cat tmp/filter.log 855 355 355 > > At a cursory glance the failure always happens around > > `testsuite/filter.ed` test and is possibly related to signal > > handling. Don't know more details. > > It may be a problem writing the temporary file. Without 'filter.log' > it is difficult to know. Here is slightly more directed reproducer: $ while :; do echo ==RUN==; cp testsuite/test.txt test.txt; ./ed test.txt < testsuite/filter.ed || break; done ==RUN== 855 355 355 63 0 16 0 146 146 788 ... ==RUN== 855 355 355 63 0 16 0 146 146 788 ==RUN== 855 355 355 `strace` output shows some difference. Looks like the process exit is due to `SIGPIPE`. $ while :; do echo ==RUN==; cp testsuite/test.txt test.txt; strace ./ed test.txt < testsuite/filter.ed || break; done ... ==RUN== execve("./ed", ["./ed", "test.txt"], 0x7fffae134608 /* 36 vars */) = 0 brk(NULL) = 0x55afa34bb000 mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f66437fd000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 fstat(3, {st_mode=S_IFREG|0644, st_size=53714, ...}) = 0 mmap(NULL, 53714, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f66437ef000 close(3) = 0 openat(AT_FDCWD, "/usr/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0t\2\0\0\0\0\0"..., 832) = 832 pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 784, 64) = 784 fstat(3, {st_mode=S_IFREG|0755, st_size=1978624, ...}) = 0 pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 784, 64) = 784 mmap(NULL, 2010200, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f6643604000 mmap(0x7f6643628000, 1466368, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x24000) = 0x7f6643628000 mmap(0x7f664378e000, 339968, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x18a000) = 0x7f664378e000 mmap(0x7f66437e1000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1dc000) = 0x7f66437e1000 mmap(0x7f66437e7000, 31832, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f66437e7000 close(3) = 0 mmap(NULL, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f6643601000 arch_prctl(ARCH_SET_FS, 0x7f6643601740) = 0 set_tid_address(0x7f6643601a10) = 25873 set_robust_list(0x7f6643601a20, 24) = 0 rseq(0x7f6643601680, 0x20, 0, 0x53053053) = 0 mprotect(0x7f66437e1000, 16384, PROT_READ) = 0 mprotect(0x55af7cfef000, 4096, PROT_READ) = 0 mprotect(0x7f664383c000, 8192, PROT_READ) = 0 prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0 munmap(0x7f66437ef000, 53714) = 0 getrandom("\x61\xc2\xbb\xd7\x1e\x49\xaf\x67", 8, GRND_NONBLOCK) = 8 brk(NULL) = 0x55afa34bb000 brk(0x55afa34dc000) = 0x55afa34dc000 openat(AT_FDCWD, "/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3 fstat(3, {st_mode=S_IFREG|0644, st_size=233217696, ...}) = 0 mmap(NULL, 233217696, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f6635600000 close(3) = 0 openat(AT_FDCWD, "/tmp", O_RDWR|O_EXCL|O_TMPFILE, 0600) = 3 fcntl(3, F_GETFL) = 0x418002 (flags O_RDWR|O_LARGEFILE|O_TMPFILE) openat(AT_FDCWD, "test.txt", O_RDWR) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=855, ...}) = 0 read(4, "This natural inequality of the t"..., 4096) = 855 fstat(3, {st_mode=S_IFREG|0600, st_size=0, ...}) = 0 read(4, "", 4096) = 0 close(4) = 0 fstat(1, {st_mode=S_IFCHR|0600, st_rdev=makedev(0x88, 0), ...}) = 0 write(1, "855\n", 4855 ) = 4 ioctl(0, TIOCGWINSZ, 0x7ffe4ec8e150) = -1 ENOTTY (Inappropriate ioctl for device) ioctl(0, TCGETS, 0x7ffe4ec8e0d0) = -1 ENOTTY (Inappropriate ioctl for device) rt_sigaction(SIGHUP, {sa_handler=0x55af7cfeb8b0, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f66436414b0}, NULL, 8) = 0 rt_sigaction(SIGQUIT, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f66436414b0}, NULL, 8) = 0 rt_sigaction(SIGINT, {sa_handler=0x55af7cfeb370, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f66436414b0}, NULL, 8) = 0 read(0, "H", 1) = 1 read(0, "\n", 1) = 1 read(0, "6", 1) = 1 read(0, ",", 1) = 1 read(0, "1", 1) = 1 read(0, "0", 1) = 1 read(0, "!", 1) = 1 read(0, "s", 1) = 1 read(0, "o", 1) = 1 read(0, "r", 1) = 1 read(0, "t", 1) = 1 read(0, "\n", 1) = 1 getpid() = 25873 pipe2([4, 5], O_CLOEXEC) = 0 prlimit64(0, RLIMIT_NOFILE, NULL, {rlim_cur=1024, rlim_max=512*1024}) = 0 prlimit64(0, RLIMIT_NOFILE, NULL, {rlim_cur=1024, rlim_max=512*1024}) = 0 mmap(NULL, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f66437f4000 rt_sigprocmask(SIG_BLOCK, ~[], [], 8) = 0 clone3({flags=CLONE_VM|CLONE_VFORK|CLONE_CLEAR_SIGHAND, exit_signal=SIGCHLD, stack=0x7f66437f4000, stack_size=0x9000}, 88) = 25874 munmap(0x7f66437f4000, 36864) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 close(4) = 0 fcntl(5, F_SETFD, 0) = 0 write(3, "This natural inequality of the t"..., 842) = 842 lseek(3, 0, SEEK_SET) = 0 read(3, "This natural inequality of the t"..., 4096) = 842 fstat(5, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0 write(5, "comparison of this. I see no way"..., 355) = 355 close(5) = 0 wait4(25874, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 25874 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=25874, si_uid=0, si_status=0, si_utime=0, si_stime=0} --- write(1, "355\n", 4355 ) = 4 openat(AT_FDCWD, "/tmp/ed-pyj", O_RDWR) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=355, ...}) = 0 read(4, "agrarian regulations in their ut"..., 4096) = 355 fstat(3, {st_mode=S_IFREG|0600, st_size=842, ...}) = 0 lseek(3, 0, SEEK_SET) = 0 read(3, "This natural inequality of the t"..., 4096) = 842 read(4, "", 4096) = 0 close(4) = 0 write(1, "355\n", 4355 ) = 4 unlink("/tmp/ed-pyj") = 0 read(0, "s", 1) = 1 read(0, "/", 1) = 1 read(0, "^", 1) = 1 read(0, "/", 1) = 1 read(0, "1", 1) = 1 read(0, "0", 1) = 1 read(0, " ", 1) = 1 read(0, "/", 1) = 1 read(0, "\n", 1) = 1 openat(AT_FDCWD, "/usr/lib64/gconv/gconv-modules.cache", O_RDONLY|O_CLOEXEC) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=27012, ...}) = 0 mmap(NULL, 27012, PROT_READ, MAP_SHARED, 4, 0) = 0x7f66437f6000 close(4) = 0 futex(0x7f66437e672c, FUTEX_WAKE_PRIVATE, 2147483647) = 0 write(3, "agrarian regulations in their ut"..., 350) = 350 lseek(3, 0, SEEK_SET) = 0 read(3, "This natural inequality of the t"..., 4096) = 1192 fstat(3, {st_mode=S_IFREG|0600, st_size=1192, ...}) = 0 lseek(3, 0, SEEK_SET) = 0 read(3, "This natural inequality of the t"..., 4096) = 1192 read(0, "1", 1) = 1 read(0, "!", 1) = 1 read(0, ":", 1) = 1 read(0, "\n", 1) = 1 pipe2([4, 5], O_CLOEXEC) = 0 prlimit64(0, RLIMIT_NOFILE, NULL, {rlim_cur=1024, rlim_max=512*1024}) = 0 prlimit64(0, RLIMIT_NOFILE, NULL, {rlim_cur=1024, rlim_max=512*1024}) = 0 mmap(NULL, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f66435f8000 rt_sigprocmask(SIG_BLOCK, ~[], [], 8) = 0 clone3({flags=CLONE_VM|CLONE_VFORK|CLONE_CLEAR_SIGHAND, exit_signal=SIGCHLD, stack=0x7f66435f8000, stack_size=0x9000}, 88) = 25876 munmap(0x7f66435f8000, 36864) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 close(4) = 0 fcntl(5, F_SETFD, 0) = 0 write(3, "10 of this law which pervades al"..., 74) = 74 lseek(3, 0, SEEK_SET) = 0 read(3, "This natural inequality of the t"..., 4096) = 1266 fstat(5, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0 write(5, "This natural inequality of the t"..., 63) = 63 close(5) = 0 wait4(25876, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 25876 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=25876, si_uid=0, si_status=0, si_utime=0, si_stime=0} --- write(1, "63\n", 363 ) = 3 openat(AT_FDCWD, "/tmp/ed-pyj", O_RDWR) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0 read(4, "", 4096) = 0 close(4) = 0 write(1, "0\n", 20 ) = 2 unlink("/tmp/ed-pyj") = 0 read(0, "s", 1) = 1 read(0, "/", 1) = 1 read(0, "^", 1) = 1 read(0, "/", 1) = 1 read(0, " ", 1) = 1 read(0, "1", 1) = 1 read(0, " ", 1) = 1 read(0, "/", 1) = 1 read(0, "\n", 1) = 1 fstat(3, {st_mode=S_IFREG|0600, st_size=1266, ...}) = 0 lseek(3, 0, SEEK_SET) = 0 read(3, "This natural inequality of the t"..., 4096) = 1266 read(0, "$", 1) = 1 read(0, "!", 1) = 1 read(0, ":", 1) = 1 read(0, "\n", 1) = 1 pipe2([4, 5], O_CLOEXEC) = 0 prlimit64(0, RLIMIT_NOFILE, NULL, {rlim_cur=1024, rlim_max=512*1024}) = 0 prlimit64(0, RLIMIT_NOFILE, NULL, {rlim_cur=1024, rlim_max=512*1024}) = 0 mmap(NULL, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f66435f8000 rt_sigprocmask(SIG_BLOCK, ~[], [], 8) = 0 clone3({flags=CLONE_VM|CLONE_VFORK|CLONE_CLEAR_SIGHAND, exit_signal=SIGCHLD, stack=0x7f66435f8000, stack_size=0x9000}, 88) = 25877 munmap(0x7f66435f8000, 36864) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 close(4) = 0 fcntl(5, F_SETFD, 0) = 0 write(3, " 1 production in the earth, and "..., 71) = 71 lseek(3, 0, SEEK_SET) = 0 read(3, "This natural inequality of the t"..., 4096) = 1337 fstat(5, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0 write(5, "their families.\n", 16) = 16 close(5) = 0 wait4(25877, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 25877 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=25877, si_uid=0, si_status=0, si_utime=0, si_stime=0} --- write(1, "16\n", 316 ) = 3 openat(AT_FDCWD, "/tmp/ed-pyj", O_RDWR) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0 read(4, "", 4096) = 0 close(4) = 0 write(1, "0\n", 20 ) = 2 unlink("/tmp/ed-pyj") = 0 read(0, "s", 1) = 1 read(0, "/", 1) = 1 read(0, "^", 1) = 1 read(0, "/", 1) = 1 read(0, "1", 1) = 1 read(0, "1", 1) = 1 read(0, " ", 1) = 1 read(0, "/", 1) = 1 read(0, "\n", 1) = 1 lseek(3, 1337, SEEK_SET) = 1337 fstat(3, {st_mode=S_IFREG|0600, st_size=1337, ...}) = 0 lseek(3, 0, SEEK_SET) = 0 read(3, "This natural inequality of the t"..., 4096) = 1337 read(0, "$", 1) = 1 read(0, "-", 1) = 1 read(0, "1", 1) = 1 read(0, ",", 1) = 1 read(0, "$", 1) = 1 read(0, "!", 1) = 1 read(0, "s", 1) = 1 read(0, "o", 1) = 1 read(0, "r", 1) = 1 read(0, "t", 1) = 1 read(0, "\n", 1) = 1 pipe2([4, 5], O_CLOEXEC) = 0 prlimit64(0, RLIMIT_NOFILE, NULL, {rlim_cur=1024, rlim_max=512*1024}) = 0 prlimit64(0, RLIMIT_NOFILE, NULL, {rlim_cur=1024, rlim_max=512*1024}) = 0 mmap(NULL, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f66435f8000 rt_sigprocmask(SIG_BLOCK, ~[], [], 8) = 0 clone3({flags=CLONE_VM|CLONE_VFORK|CLONE_CLEAR_SIGHAND, exit_signal=SIGCHLD, stack=0x7f66435f8000, stack_size=0x9000}, 88) = 25878 munmap(0x7f66435f8000, 36864) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 close(4) = 0 fcntl(5, F_SETFD, 0) = 0 write(3, "11 no anxiety about providing th"..., 73) = 73 lseek(3, 0, SEEK_SET) = 0 read(3, "This natural inequality of the t"..., 4096) = 1410 fstat(5, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0 lseek(3, 1410, SEEK_SET) = 1410 write(5, "which should live in ease, happi"..., 146) = 146 close(5) = 0 wait4(25878, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 25878 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=25878, si_uid=0, si_status=0, si_utime=0, si_stime=0} --- write(1, "146\n", 4146 ) = 4 openat(AT_FDCWD, "/tmp/ed-pyj", O_RDWR) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=146, ...}) = 0 read(4, "11 no anxiety about providing th"..., 4096) = 146 fstat(3, {st_mode=S_IFREG|0600, st_size=1410, ...}) = 0 lseek(3, 0, SEEK_SET) = 0 read(3, "This natural inequality of the t"..., 4096) = 1410 read(4, "", 4096) = 0 close(4) = 0 write(1, "146\n", 4146 ) = 4 unlink("/tmp/ed-pyj") = 0 read(0, "s", 1) = 1 read(0, "/", 1) = 1 read(0, "^", 1) = 1 read(0, "/", 1) = 1 read(0, "1", 1) = 1 read(0, "1", 1) = 1 read(0, " ", 1) = 1 read(0, "/", 1) = 1 read(0, "\n", 1) = 1 write(3, "11 no anxiety about providing th"..., 144) = 144 lseek(3, 0, SEEK_SET) = 0 read(3, "This natural inequality of the t"..., 4096) = 1554 fstat(3, {st_mode=S_IFREG|0600, st_size=1554, ...}) = 0 lseek(3, 0, SEEK_SET) = 0 read(3, "This natural inequality of the t"..., 4096) = 1554 read(0, "w", 1) = 1 read(0, "q", 1) = 1 read(0, " ", 1) = 1 read(0, "o", 1) = 1 read(0, "u", 1) = 1 read(0, "t", 1) = 1 read(0, ".", 1) = 1 read(0, "o", 1) = 1 read(0, "\n", 1) = 1 openat(AT_FDCWD, "out.o", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 4 write(3, "11 which should live in ease, ha"..., 74) = 74 lseek(3, 0, SEEK_SET) = 0 read(3, "This natural inequality of the t"..., 4096) = 1628 fstat(4, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0 lseek(3, 1628, SEEK_SET) = 1628 lseek(3, 1628, SEEK_SET) = 1628 lseek(3, 1628, SEEK_SET) = 1628 lseek(3, 1628, SEEK_SET) = 1628 lseek(3, 1628, SEEK_SET) = 1628 write(4, " 1 production in the earth, and "..., 788) = 788 close(4) = 0 write(1, "788\n", 4788 ) = 4 exit_group(0) = ? +++ exited with 0 +++ ==RUN== execve("./ed", ["./ed", "test.txt"], 0x7fffd2105148 /* 36 vars */) = 0 brk(NULL) = 0x5630aa680000 mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fe19d1f3000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 fstat(3, {st_mode=S_IFREG|0644, st_size=53714, ...}) = 0 mmap(NULL, 53714, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fe19d1e5000 close(3) = 0 openat(AT_FDCWD, "/usr/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0t\2\0\0\0\0\0"..., 832) = 832 pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 784, 64) = 784 fstat(3, {st_mode=S_IFREG|0755, st_size=1978624, ...}) = 0 pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 784, 64) = 784 mmap(NULL, 2010200, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fe19cffa000 mmap(0x7fe19d01e000, 1466368, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x24000) = 0x7fe19d01e000 mmap(0x7fe19d184000, 339968, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x18a000) = 0x7fe19d184000 mmap(0x7fe19d1d7000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1dc000) = 0x7fe19d1d7000 mmap(0x7fe19d1dd000, 31832, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fe19d1dd000 close(3) = 0 mmap(NULL, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fe19cff7000 arch_prctl(ARCH_SET_FS, 0x7fe19cff7740) = 0 set_tid_address(0x7fe19cff7a10) = 25883 set_robust_list(0x7fe19cff7a20, 24) = 0 rseq(0x7fe19cff7680, 0x20, 0, 0x53053053) = 0 mprotect(0x7fe19d1d7000, 16384, PROT_READ) = 0 mprotect(0x563094901000, 4096, PROT_READ) = 0 mprotect(0x7fe19d232000, 8192, PROT_READ) = 0 prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0 munmap(0x7fe19d1e5000, 53714) = 0 getrandom("\x5a\xfa\x4e\x03\x47\x38\xbc\x87", 8, GRND_NONBLOCK) = 8 brk(NULL) = 0x5630aa680000 brk(0x5630aa6a1000) = 0x5630aa6a1000 openat(AT_FDCWD, "/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3 fstat(3, {st_mode=S_IFREG|0644, st_size=233217696, ...}) = 0 mmap(NULL, 233217696, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fe18f000000 close(3) = 0 openat(AT_FDCWD, "/tmp", O_RDWR|O_EXCL|O_TMPFILE, 0600) = 3 fcntl(3, F_GETFL) = 0x418002 (flags O_RDWR|O_LARGEFILE|O_TMPFILE) openat(AT_FDCWD, "test.txt", O_RDWR) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=855, ...}) = 0 read(4, "This natural inequality of the t"..., 4096) = 855 fstat(3, {st_mode=S_IFREG|0600, st_size=0, ...}) = 0 read(4, "", 4096) = 0 close(4) = 0 fstat(1, {st_mode=S_IFCHR|0600, st_rdev=makedev(0x88, 0), ...}) = 0 write(1, "855\n", 4855 ) = 4 ioctl(0, TIOCGWINSZ, 0x7ffe02ed7af0) = -1 ENOTTY (Inappropriate ioctl for device) ioctl(0, TCGETS, 0x7ffe02ed7a70) = -1 ENOTTY (Inappropriate ioctl for device) rt_sigaction(SIGHUP, {sa_handler=0x5630948fd8b0, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fe19d0374b0}, NULL, 8) = 0 rt_sigaction(SIGQUIT, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fe19d0374b0}, NULL, 8) = 0 rt_sigaction(SIGINT, {sa_handler=0x5630948fd370, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fe19d0374b0}, NULL, 8) = 0 read(0, "H", 1) = 1 read(0, "\n", 1) = 1 read(0, "6", 1) = 1 read(0, ",", 1) = 1 read(0, "1", 1) = 1 read(0, "0", 1) = 1 read(0, "!", 1) = 1 read(0, "s", 1) = 1 read(0, "o", 1) = 1 read(0, "r", 1) = 1 read(0, "t", 1) = 1 read(0, "\n", 1) = 1 getpid() = 25883 pipe2([4, 5], O_CLOEXEC) = 0 prlimit64(0, RLIMIT_NOFILE, NULL, {rlim_cur=1024, rlim_max=512*1024}) = 0 prlimit64(0, RLIMIT_NOFILE, NULL, {rlim_cur=1024, rlim_max=512*1024}) = 0 mmap(NULL, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7fe19d1ea000 rt_sigprocmask(SIG_BLOCK, ~[], [], 8) = 0 clone3({flags=CLONE_VM|CLONE_VFORK|CLONE_CLEAR_SIGHAND, exit_signal=SIGCHLD, stack=0x7fe19d1ea000, stack_size=0x9000}, 88) = 25884 munmap(0x7fe19d1ea000, 36864) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 close(4) = 0 fcntl(5, F_SETFD, 0) = 0 write(3, "This natural inequality of the t"..., 842) = 842 lseek(3, 0, SEEK_SET) = 0 read(3, "This natural inequality of the t"..., 4096) = 842 fstat(5, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0 write(5, "comparison of this. I see no way"..., 355) = 355 close(5) = 0 wait4(25884, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 25884 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=25884, si_uid=0, si_status=0, si_utime=0, si_stime=0} --- write(1, "355\n", 4355 ) = 4 openat(AT_FDCWD, "/tmp/ed-zyj", O_RDWR) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=355, ...}) = 0 read(4, "agrarian regulations in their ut"..., 4096) = 355 fstat(3, {st_mode=S_IFREG|0600, st_size=842, ...}) = 0 lseek(3, 0, SEEK_SET) = 0 read(3, "This natural inequality of the t"..., 4096) = 842 read(4, "", 4096) = 0 close(4) = 0 write(1, "355\n", 4355 ) = 4 unlink("/tmp/ed-zyj") = 0 read(0, "s", 1) = 1 read(0, "/", 1) = 1 read(0, "^", 1) = 1 read(0, "/", 1) = 1 read(0, "1", 1) = 1 read(0, "0", 1) = 1 read(0, " ", 1) = 1 read(0, "/", 1) = 1 read(0, "\n", 1) = 1 openat(AT_FDCWD, "/usr/lib64/gconv/gconv-modules.cache", O_RDONLY|O_CLOEXEC) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=27012, ...}) = 0 mmap(NULL, 27012, PROT_READ, MAP_SHARED, 4, 0) = 0x7fe19d1ec000 close(4) = 0 futex(0x7fe19d1dc72c, FUTEX_WAKE_PRIVATE, 2147483647) = 0 write(3, "agrarian regulations in their ut"..., 350) = 350 lseek(3, 0, SEEK_SET) = 0 read(3, "This natural inequality of the t"..., 4096) = 1192 fstat(3, {st_mode=S_IFREG|0600, st_size=1192, ...}) = 0 lseek(3, 0, SEEK_SET) = 0 read(3, "This natural inequality of the t"..., 4096) = 1192 read(0, "1", 1) = 1 read(0, "!", 1) = 1 read(0, ":", 1) = 1 read(0, "\n", 1) = 1 pipe2([4, 5], O_CLOEXEC) = 0 prlimit64(0, RLIMIT_NOFILE, NULL, {rlim_cur=1024, rlim_max=512*1024}) = 0 prlimit64(0, RLIMIT_NOFILE, NULL, {rlim_cur=1024, rlim_max=512*1024}) = 0 mmap(NULL, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7fe19cfee000 rt_sigprocmask(SIG_BLOCK, ~[], [], 8) = 0 clone3({flags=CLONE_VM|CLONE_VFORK|CLONE_CLEAR_SIGHAND, exit_signal=SIGCHLD, stack=0x7fe19cfee000, stack_size=0x9000}, 88) = 25886 munmap(0x7fe19cfee000, 36864) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 close(4) = 0 fcntl(5, F_SETFD, 0) = 0 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=25886, si_uid=0, si_status=0, si_utime=0, si_stime=0} --- write(3, "10 of this law which pervades al"..., 74) = 74 lseek(3, 0, SEEK_SET) = 0 read(3, "This natural inequality of the t"..., 4096) = 1266 fstat(5, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0 write(5, "This natural inequality of the t"..., 63) = -1 EPIPE (Broken pipe) --- SIGPIPE {si_signo=SIGPIPE, si_code=SI_USER, si_pid=25883, si_uid=0} --- +++ killed by SIGPIPE +++ -- Sergei