parallel version 20190922 from EPEL 8 running a Rocky Linux 8 system occasionally gets into an I/O spin loop writing 8193 bytes of "x" to a deleted TMPDIR file and then immediately truncating it, e.g.,
# cat /etc/redhat-release Rocky Linux release 8.5 (Green Obsidian) # yum list parallel Installed Packages parallel.noarch 20190922-1.el8 @epel # strace -p 836133 ... wait4(-1, 0x7ffc539e8a14, WNOHANG, NULL) = 0 write(10, "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"..., 8192) = 8192 write(10, "x", 1) = 1 ftruncate(10, 0) = 0 lseek(10, 0, SEEK_SET) = 0 lseek(10, 0, SEEK_CUR) = 0 rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 rt_sigaction(SIGCHLD, {sa_handler=0x7fe81f000dc0, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fe81ed29c20}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fe81ed29c20}, 8) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 select(0, NULL, NULL, NULL, {tv_sec=0, tv_usec=0}) = 0 (Timeout) rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 rt_sigaction(SIGCHLD, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fe81ed29c20}, {sa_handler=0x7fe81f000dc0, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fe81ed29c20}, 8) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 wait4(-1, 0x7ffc539e8a14, WNOHANG, NULL) = 0 write(10, "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"..., 8192) = 8192 write(10, "x", 1) = 1 ftruncate(10, 0) = 0 lseek(10, 0, SEEK_SET) = 0 lseek(10, 0, SEEK_CUR) = 0 rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 rt_sigaction(SIGCHLD, {sa_handler=0x7fe81f000dc0, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fe81ed29c20}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fe81ed29c20}, 8) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 select(0, NULL, NULL, NULL, {tv_sec=0, tv_usec=0}) = 0 (Timeout) rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 rt_sigaction(SIGCHLD, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fe81ed29c20}, {sa_handler=0x7fe81f000dc0, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fe81ed29c20}, 8) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 wait4(-1, 0x7ffc539e8a14, WNOHANG, NULL) = 0 write(10, "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"..., 8192) = 8192 write(10, "x", 1) = 1 ftruncate(10, 0) = 0 >From lsof fd=10 is, COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME parallel 836133 root 10u REG 0,21 0 8450409 /dev/shm/parTQp67.df (deleted) And /dev/shm is due to my setting TMPDIR=/dev/shm to reduce the I/O load on the /tmp filesystem. Any thoughts on how to avoid this seemingly useless spin loop with high CPU and I/O resource consumption? Thanks. -- Stuart Anderson s...@caltech.edu