Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: How to misplace an entire pipeline



On Mon, Sep 12, 2011 at 09:03:53AM -0700, Bart Schaefer wrote:
> to verify which test is causing the segmentation fault?  I suspect it's
> the very last test with "print -lO ... | while read ..." but I'd like
> to be sure.  (OTOH it may not be possible to reproduce the fault with
> verbose output, but it's worth a try.)

Test successful.
ZTST_test: looking for new test
ZTST_test: examining line:

ZTST_test: examining line:
 print -lO $'a' $'a\0' $'a\0b' $'a\0b\0' $'a\0b\0a' $'a\0b\0b' $'a\0c' |
ZTST_getchunk: read code chunk:
 print -lO $'a' $'a\0' $'a\0b' $'a\0b\0' $'a\0b\0a' $'a\0b\0b' $'a\0c' |
 while read -r line; do
    for (( i = 1; i <= ${#line}; i++ )); do
      foo=$line[i]
      printf "%02x" $(( #foo ))
    done
    print
 done
ZTST_test: examining line:
>610063
ZTST_getredir: read redir for '>':
610063
6100620062
6100620061
61006200
610062
6100
61
ZTST_test: examining line:

Running test: sorting with embedded nulls
ZTST_test: expecting status: 0
Input: /usr/src/tmp/zsh.ztst.in.2764, output: /usr/src/tmp/zsh.ztst.out.2764, error: /usr/src/tmp/zsh.ztst.terr.2764
**************************************
0 successful test scripts, 1 failure, 0 skipped
**************************************
make[1]: *** [check] Error 1
make[1]: Leaving directory `/usr/src/RPM/BUILD/zsh-4.3.12/Test'
make: *** [check] Error 2


> I further suspect the signal is arriving during foo=$line[i] or some
> other part of the inner loop where no actual command is being run, but
> list_pipe remains true because of the outer loop.
I think there's a race condition somewhere.  I've managed to
reproduce this error on an average loaded system with decent swap
usage.  Fail chance is about 15-20%% on my system and >80% on
build server.

-- 
Regards,    --
Sir Raorn.   --- http://thousandsofhate.blogspot.com/

Attachment: signature.asc
Description: Digital signature



Messages sorted by: Reverse Date, Date, Thread, Author