On Fri, Jan 16, 2015 at 09:22:36AM -0500, Chet Ramey wrote: > On 1/13/15 4:29 AM, Dr. Werner Fink wrote: > > >>> Bash Version: 4.3 > >>> Patch Level: 33 > >>> Release Status: release > >>> > >>> Description: > >>> Named fifo's causing hanging bash scripts like > >>> > >>> while IFS="|" read a b c ; do > >>> [shell code] > >>> done < <(shell code) > >>> > >>> can cause random hangs of the bash. An strace shows that the > >>> bash > >>> stays in wait4() > >> > >> And when you attach to one of the hanging bash processes using gdb, what > >> does the stack traceback look like? > > > > Yes (and sorry for the wrong email address as this was done on a clean > > virtual sysstem) > > > > there are two hanging bash processes together with the find command: > > > > werner 19062 0.8 0.0 11864 2868 ttyS0 S+ 10:21 0:00 bash -x > > /tmp/brp-25-symlink > > werner 19063 0.0 0.0 11860 1920 ttyS0 S+ 10:21 0:00 bash -x > > /tmp/brp-25-symlink > > werner 19064 0.2 0.0 16684 2516 ttyS0 S+ 10:21 0:00 find . > > -type l -printf %p|%h|%l n > > > > the gdb -p 19062 and gdb -p 19063 show > > > > (gdb) bt > > #0 0x00007f530818a65c in waitpid () from /lib64/libc.so.6 > > #1 0x000000000042b233 in waitchld (block=block@entry=1, wpid=19175) at > > jobs.c:3235 > > #2 0x000000000042c6da in wait_for (pid=pid@entry=19175) at jobs.c:2496 > > What do ps and gdb tell you about pid 19175 (and the corresponding pid in > the call to waitchld in the other traceback)? Running, terminated, reaped, > other?
d136:~ # ps 10942 PID TTY STAT TIME COMMAND d136:~ # ... the process does not exists anymore. I guess that this could belong to the sed commands of the script. The other thread is showing d136: # ps 10922 PID TTY STAT TIME COMMAND 13177 pts/1 S+ 0:00 find . -type l -printf %p|%h|%l n and the backtrace shows here 0x00007fccae8d4860 in __write_nocancel () from /lib64/libc.so.6 #0 0x00007fccae8d4860 in __write_nocancel () from /lib64/libc.so.6 #1 0x00007fccae86f6b3 in _IO_new_file_write () from /lib64/libc.so.6 #2 0x00007fccae86ed73 in new_do_write () from /lib64/libc.so.6 #3 0x00007fccae8704e5 in __GI__IO_do_write () from /lib64/libc.so.6 #4 0x00007fccae86fbe1 in __GI__IO_file_xsputn () from /lib64/libc.so.6 #5 0x00007fccae8416e0 in vfprintf () from /lib64/libc.so.6 #6 0x00007fccae8eec05 in __fprintf_chk () from /lib64/libc.so.6 #7 0x00000000004106d5 in ?? () #8 0x000000000040a11b in ?? () #9 0x000000000040afa9 in ?? () #10 0x000000000040b0a6 in ?? () #11 0x0000000000409bfe in ?? () #12 0x0000000000409bfe in ?? () #13 0x0000000000404199 in ?? () #14 0x0000000000403911 in ?? () #15 0x00007fccae81cb05 in __libc_start_main () from /lib64/libc.so.6 #16 0x00000000004039dd in ?? () which IMHO could be related that output of find is not read anymore(?) > > Chet Werner -- "Having a smoking section in a restaurant is like having a peeing section in a swimming pool." -- Edward Burr
signature.asc
Description: Digital signature