From owner-freebsd-bugs@freebsd.org Sat May 14 22:01:52 2016 Return-Path: Delivered-To: freebsd-bugs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A635DB3B550 for ; Sat, 14 May 2016 22:01:52 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 77B0D1E12 for ; Sat, 14 May 2016 22:01:52 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id u4EM1q1E027445 for ; Sat, 14 May 2016 22:01:52 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-bugs@FreeBSD.org Subject: [Bug 209509] EAGAIN on shell pipes / O_NONBLOCK error in kernel ? Date: Sat, 14 May 2016 22:01:52 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: 11.0-CURRENT X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Only Me X-Bugzilla-Who: phk@FreeBSD.org X-Bugzilla-Status: New X-Bugzilla-Resolution: X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: freebsd-bugs@FreeBSD.org X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version rep_platform op_sys bug_status bug_severity priority component assigned_to reporter Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 May 2016 22:01:52 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D209509 Bug ID: 209509 Summary: EAGAIN on shell pipes / O_NONBLOCK error in kernel ? Product: Base System Version: 11.0-CURRENT Hardware: Any OS: Any Status: New Severity: Affects Only Me Priority: --- Component: kern Assignee: freebsd-bugs@FreeBSD.org Reporter: phk@FreeBSD.org I have a pretty trivial program here, which quite reliably will receive EAG= AIN on stdout/stderr when these are a shell created pipe. The command is run as: aardwarc stow |& tee /tmp/__ It does two popens, and chats with those two programs (ssh and mtree). Here is from a ktrace: First, checking that stderr & stdout are not O_NONBLOCK: 16131 aardwarc CALL fcntl(0x1,F_GETFL,0xffffe5bc) 16131 aardwarc RET fcntl 2 [...] 16131 aardwarc CALL fcntl(0x2,F_GETFL,0xffffe5bc) 16131 aardwarc RET fcntl 2 Then after a lot of output on stdout/stderr: 16131 aardwarc CALL write(0x1,0x7fffffffdd80,0x7e) 16131 aardwarc RET write -1 errno 35 Resource temporarily unavailable [...] 16131 aardwarc CALL write(0x2,0x7fffffffde90,0x16) 16131 aardwarc GIO fd 2 wrote 22 bytes [...] 16131 aardwarc CALL write(0x2,0x7fffffffddb0,0x9) 16131 aardwarc GIO fd 2 wrote 9 bytes [...] 16131 aardwarc CALL write(0x2,0x7fffffffdd70,0x44) 16131 aardwarc RET write -1 errno 35 Resource temporarily unavailable Presumably these are the same struct file, so it notable that stdout gets EAGAIN, the stderr manages two writes, then stderr also gets EAGAIN. AMD64, CURRENT, r297556 --=20 You are receiving this mail because: You are the assignee for the bug.=