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>