From owner-freebsd-questions@FreeBSD.ORG Mon Dec 3 20:43:42 2012 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 5F30CB03 for ; Mon, 3 Dec 2012 20:43:42 +0000 (UTC) (envelope-from long@rule.lv) Received: from mx1.rule.lv (ns1.rule.lv [91.142.1.7]) by mx1.freebsd.org (Postfix) with ESMTP id 0EA2B8FC12 for ; Mon, 3 Dec 2012 20:43:40 +0000 (UTC) Received: from mail.omv.lv (unknown [127.0.0.10]) by mx1.rule.lv (Postfix) with ESMTP id DF823DADC28; Mon, 3 Dec 2012 22:43:38 +0200 (EET) X-Virus-Scanned: amavisd-new at mail.omv.lv Received: from mx1.rule.lv ([127.0.0.10]) by mail.omv.lv (mail.omv.lv [127.0.0.10]) (amavisd-new, port 10024) with LMTP id 7dtkqq2Etkq0; Mon, 3 Dec 2012 22:43:38 +0200 (EET) Received: from m.rule.lv (unknown [127.0.0.10]) by mx1.rule.lv (Postfix) with ESMTP id 99A4CDADC23; Mon, 3 Dec 2012 22:43:38 +0200 (EET) Received: from 217.24.65.29 (SquirrelMail authenticated user long@rule.lv) by mail.rule.lv with HTTP; Mon, 3 Dec 2012 22:43:38 +0200 (EET) Message-ID: <62300.217.24.65.29.1354567418.squirrel@mail.rule.lv> In-Reply-To: <50BCE7A9.7060107@undermydesk.org> References: <23353.144.36.114.84.1354545315.squirrel@mail.rule.lv> <50BCE7A9.7060107@undermydesk.org> Date: Mon, 3 Dec 2012 22:43:38 +0200 (EET) Subject: Re: bash pipe redirection gets stuck From: long@rule.lv To: "Frank Reppin" User-Agent: SquirrelMail/1.4.10a MIME-Version: 1.0 Content-Type: text/plain;charset=utf-8 Content-Transfer-Encoding: 8bit X-Priority: 3 (Normal) Importance: Normal Cc: freebsd-questions@freebsd.org X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Dec 2012 20:43:42 -0000 > 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 > > Thanks for your answer, but randomly generated file is created fine (it is only for illustrative purpose). As far as I understand, thing that blocks is tee inside bash command or pipeline. Thanks and best regards, Normunds