misc/104092: Missing blanks in iostat output

Dr. Markus Waldeck waldeck at gmx.de
Sat Oct 7 02:10:33 PDT 2006


>Number:         104092
>Category:       misc
>Synopsis:       Missing blanks in iostat output
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sat Oct 07 09:10:24 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Dr. Markus Waldeck
>Release:        6.1
>Organization:
>Environment:
FreeBSD fb 6.1-RELEASE FreeBSD 6.1-RELEASE #0: Sun May 7 04:32:43 UTC 2006 root at opus.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386
>Description:
If some values increases over a special size the ouput gets unusable.
>How-To-Repeat:
find /
find / | xargs cat > /dev/null

>Fix:
*** iostat.c    Mon Oct  2 21:58:52 2006
--- iostat.c.patched    Mon Oct  2 21:56:12 2006
***************
*** 548,554 ****
                }
  
                if (Tflag > 0)
!                       printf("%4.0Lf%5.0Lf", cur.tk_nin / etime, 
                                cur.tk_nout/etime);
  
                devstats(hflag, etime, havelast);
--- 548,554 ----
                }
  
                if (Tflag > 0)
!                       printf("%4.0Lf %4.0Lf", cur.tk_nin / etime, 
                                cur.tk_nout/etime);
  
                devstats(hflag, etime, havelast);
***************
*** 684,696 ****
                        int msdig = (ms_per_transaction < 100.0) ? 1 : 0;
  
                        if (Iflag == 0)
!                               printf("%4.0Lf%4.0Lf%5.*Lf ",
                                       blocks_per_second,
                                       transfers_per_second,
                                       msdig,
                                       ms_per_transaction);
                        else 
!                               printf("%4.1qu%4.1qu%5.*Lf ",
                                       total_blocks,
                                       total_transfers,
                                       msdig,
--- 684,696 ----
                        int msdig = (ms_per_transaction < 100.0) ? 1 : 0;
  
                        if (Iflag == 0)
!                               printf(" %3.0Lf %3.0Lf %4.*Lf ",
                                       blocks_per_second,
                                       transfers_per_second,
                                       msdig,
                                       ms_per_transaction);
                        else 
!                               printf(" %3.1qu %3.1qu %4.*Lf ",
                                       total_blocks,
                                       total_transfers,
                                       msdig,


>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list