Follow-up Comment #4, bug #64442 (project findutils):
Here is a diff between a normal xargs execution and one interrupted with
SIGUSR1.
Normal execution is just running xargs and entering ^D.
--- strace-normal.txt 2023-07-19 14:31:18.639157032 +0300
+++ strace-usr1.txt 2023-07-19 14:21:40.390915386 +0300
newfstatat(0, "", {st_mode=S_IFCHR|0620, st_rdev=makedev(0x88, 0x9), ...},
AT_EMPTY_PATH) = 0
-read(0, "", 1024) = 0
+read(0, 0x565271e47710, 1024) = ? ERESTARTSYS (To be restarted if
SA_RESTART is set)
+--- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_USER, si_pid=946742, si_uid=1000}
---
+rt_sigreturn({mask=[]}) = -1 EINTR (Interrupted system call)
pipe2([3, 4], 0) = 0
fcntl(4, F_SETFD, FD_CLOEXEC) = 0
-clone(child_stack=NULL,
flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD,
child_tidptr=0x7f9e4a386a10) = 947550
+clone(child_stack=NULL,
flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD,
child_tidptr=0x7fdbe000fa10) = 946743
close(4) = 0
read(3, "", 4) = 0
close(3) = 0
---- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=947550,
si_uid=1000, si_status=0, si_utime=0, si_stime=0} ---
-getpid() = 947549
-wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 947550
+getpid() = 946735
+wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 946743
+--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=946743,
si_uid=1000, si_status=0, si_utime=0, si_stime=0} ---
lseek(0, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
close(0) = 0
+openat(AT_FDCWD, "/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 0
+newfstatat(0, "", {st_mode=S_IFREG|0644, st_size=2998, ...}, AT_EMPTY_PATH) =
0
+read(0, "# Locale name alias data base.\n#"..., 4096) = 2998
+read(0, "", 4096) = 0
+close(0) = 0
+openat(AT_FDCWD, "/usr/share/locale/en_US.UTF-8/LC_MESSAGES/findutils.mo",
O_RDONLY) = -1 ENOENT (No such file or directory)
+openat(AT_FDCWD, "/usr/share/locale/en_US.utf8/LC_MESSAGES/findutils.mo",
O_RDONLY) = -1 ENOENT (No such file or directory)
+openat(AT_FDCWD, "/usr/share/locale/en_US/LC_MESSAGES/findutils.mo",
O_RDONLY) = -1 ENOENT (No such file or directory)
+openat(AT_FDCWD, "/usr/share/locale/en.UTF-8/LC_MESSAGES/findutils.mo",
O_RDONLY) = -1 ENOENT (No such file or directory)
+openat(AT_FDCWD, "/usr/share/locale/en.utf8/LC_MESSAGES/findutils.mo",
O_RDONLY) = -1 ENOENT (No such file or directory)
+openat(AT_FDCWD, "/usr/share/locale/en/LC_MESSAGES/findutils.mo", O_RDONLY) =
-1 ENOENT (No such file or directory)
+write(2, "xargs: ", 7) = 7
+write(2, "error closing file", 18) = 18
+write(2, "\n", 1) = 1
close(1) = 0
close(2) = 0
-exit_group(0) = ?
-+++ exited with 0 +++
+exit_group(1) = ?
++++ exited with 1 +++
*I removed lines that are the same but with different adresses due to ASLR
(file #54941, file #54942)
_______________________________________________________
Additional Item Attachment:
File name: strace-normal.txt Size:5 KB
<https://file.savannah.gnu.org/file/strace-normal.txt?file_id=54941>
File name: strace-usr1.txt Size:6 KB
<https://file.savannah.gnu.org/file/strace-usr1.txt?file_id=54942>
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?64442>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/