Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 14 May 2016 22:01:52 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-bugs@FreeBSD.org
Subject:   [Bug 209509] EAGAIN on shell pipes / O_NONBLOCK error in kernel ?
Message-ID:  <bug-209509-8@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
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.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-209509-8>