Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 03 Dec 2012 18:55:53 +0100
From:      Frank Reppin <frank@undermydesk.org>
To:        long@rule.lv
Cc:        freebsd-questions@freebsd.org
Subject:   Re: bash pipe redirection gets stuck
Message-ID:  <50BCE7A9.7060107@undermydesk.org>
In-Reply-To: <23353.144.36.114.84.1354545315.squirrel@mail.rule.lv>
References:  <23353.144.36.114.84.1354545315.squirrel@mail.rule.lv>

next in thread | previous in thread | raw e-mail | index | archive | help
On 03.12.12 15:35, long@rule.lv wrote:
[...]
> I stumbled upon a problem where multiple pipe redirection occasionally get
> stuck when trying to get sha256 sum of a stream.
>
> You can try to reproduce the problem if you have /usr/ports/shells/bash
> installed (output redirection used in this command is possible only in
> bash).
> Create temporary test file with command: "dd if=/dev/urandom of=/tmp/file1
> bs=1k count=10"
> And the command I'm using is:
> /usr/local/bin/bash -c 'cat /tmp/file1 | tee >(/sbin/sha256 >
> /tmp/file1.sha256) > /tmp/file1.copy' ; echo $status
>
> Command gets stuck about once in 20 executions.
> top output when command gets stuck (irrelevant processes removed):
>    PID USERNAME    THR PRI NICE   SIZE    RES STATE   C   TIME   WCPU COMMAND
> 84073 HappyUser     1  52    0 17612K  2268K wait    0   0:00  0.00% bash
> 84154 HappyUser     1  52    0 10084K   844K fifoow  1   0:00  0.00% tee
>
> And more strangely, I can reproduce this problem on 9.0-RELEASE and
> 7.4-RELEASE-p6, but couldn't reproduce on 8.2-RELEASE-p4.
It maybe couldn't gather more randomness from /dev/random?
The random(4) manpage suggests that there's (theoretically)
indeed a chance that it blocks - see the section about
'kern.random.sys.seeded'.
So in fact - when you think the command gets stuck - it's
probably not bash related at all.

cheers,
Frank Reppin

-- 
43rd Law of Computing:
         Anything that can go wr
fortune: Segmentation violation -- Core dumped



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?50BCE7A9.7060107>