[Bug 209509] EAGAIN on shell pipes / O_NONBLOCK error in kernel ?

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Sat May 14 22:57:09 UTC 2016


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=209509

Don Lewis <truckman at FreeBSD.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |truckman at FreeBSD.org

--- Comment #1 from Don Lewis <truckman at FreeBSD.org> ---
I don't see this with slightly older -CURRENT (r299612)  It may also be
dependent on the write size with partial writes being the trigger.

This is how I did my test:

# truss -do /tmp/truss.out cat /usr/share/dict/web2 | & ( sleep 60 ; cat >
/tmp/out )

The point at which the pipe file is visible here:

0.008018050 write(1,"\nalif\naliferous\naliform\nalig"...,4096) = 4096 (0x1000)
0.008089335 read(3,"oplasmatic\nalloplasmic\nallopla"...,4096) = 4096 (0x1000)
0.008183362 write(1,"oplasmatic\nalloplasmic\nallopla"...,4096) = 4096 (0x1000)
0.008255003 read(3,"\naltininck\naltiplano\naltiscop"...,4096) = 4096 (0x1000)
0.008353817 write(1,"\naltininck\naltiplano\naltiscop"...,4096) = 4096 (0x1000)
0.008425411 read(3,"ambrosiate\nambrosin\nambrosine"...,4096) = 4096 (0x1000)
60.037870962 write(1,"ambrosiate\nambrosin\nambrosine"...,4096) = 4096 (0x1000)
60.038272972 read(3,"n\nAmnionata\namnionate\namnioni"...,4096) = 4096 (0x1000)
60.038579389 write(1,"n\nAmnionata\namnionate\namnioni"...,4096) = 4096
(0x1000)

I just tried an odd-size write test and that works properly as well:

# truss -do /tmp/truss.out dd if=/usr/share/dict/web2 bs=111 | & ( sleep 60 ;
cat > /tmp/out )

0.281516906 read(3,"\namboceptor\nAmbocoelia\nAmboin"...,111) = 111 (0x6f)
0.281774261 write(1,"\namboceptor\nAmbocoelia\nAmboin"...,111) = 111 (0x6f)
0.281966423 read(3,"n\nambrein\nambrette\nAmbrica\na"...,111) = 111 (0x6f)
0.282239613 write(1,"n\nambrein\nambrette\nAmbrica\na"...,111) = 111 (0x6f)
0.282433782 read(3,"ous\nambrosial\nambrosially\nAmb"...,111) = 111 (0x6f)
60.078868711 write(1,"ous\nambrosial\nambrosially\nAmb"...,111) = 111 (0x6f)
60.079279323 read(3,"y\nambsace\nambulacral\nambulacr"...,111) = 111 (0x6f)
60.079588632 write(1,"y\nambsace\nambulacral\nambulacr"...,111) = 111 (0x6f)
60.079823710 read(3,"ative\nambulator\nAmbulatoria\na"...,111) = 111 (0x6f)
60.080113161 write(1,"ative\nambulator\nAmbulatoria\na"...,111) = 111 (0x6f)

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-bugs mailing list