Subject: bin/32836: vmstat(1),stdout buffered on using pipe.
To: None <gnats-admin@netbsd.org, netbsd-bugs@netbsd.org>
From: None <takuro@bonz.squares.net>
List: netbsd-bugs
Date: 02/14/2006 14:40:01
>Number:         32836
>Category:       bin
>Synopsis:       vmstat(1),stdout buffered on using pipe.
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    bin-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Feb 14 14:40:01 +0000 2006
>Originator:     Takuro KUBOTA
>Release:        3.0
>Organization:
>Environment:
NetBSD blue.home.ichijiku.org 3.0 NetBSD 3.0 (GENERIC) #0: Mon Dec 19 01:04:02 UTC 2005  builds@works.netbsd.org:/home/builds/ab/netbsd-3-0-RELEASE/i386/200512182024Z-obj/home/builds/ab/netbsd-3-0-RELEASE/src/sys/arch/i386/compile/GENERIC i386
>Description:
vmstat(1),stdout buffered on using pipe.

if it run "vmstat -f -w 1 | awk '/total/ { print systime() ":" $1;}'", then sometimes output.
>How-To-Repeat:
vmstat -f -w 1 | awk '/total/ { print systime() ":" $1;}'
>Fix:
--- vmstat.c.org        2006-02-14 01:27:35.000000000 +0900
+++ vmstat.c    2006-02-14 01:28:20.000000000 +0900
@@ -463,6 +463,7 @@
                                putchar('\n');
                        }
 
+                       (void)fflush(stdout);
                        if (reps >= 0 && --reps <=0)
                                break;
                        nanosleep(&interval, NULL);