check_disk command

eponymous alias eponymousalias at yahoo.com
Thu Apr 23 20:34:33 CEST 2015


Your clue is in this line:

> DISK CRITICAL - free space: /data02b 0 MB (0% inode=99%);| /data02b=2147483647MB;10874142;11096064;0;11096064

That "2147483647" number should look suspicious to you (being exactly 2^^31 − 1).  It's your evidence that check_disk encountered some sort of integer-overflow condition when sensing the disk space.  Quite possibly, the underlying disk driver returned such a number when asked about the amount of space in the partition.  Given that the two partitions in question both had 27873280 MB overall capacity (i.e., 28542238720 KB), and none of the other partitions approach anywhere near this size, I'd say that check_disk has trouble dealing with such a large partition.  64-bit arithmetic will be required throughout to handle this case.

The only way to debug this for sure is to dig into the check_disk code and instrument it to print out what it gets back from the OS when asking for the disk information, and then trace the arithmetic operations in check_disk itself.  And, look for evidence of 32-bit arithmetic within both results requested for disk sizing from the OS and for subsequent calculations within check_disk.

On Tue, 3/31/15, Phan, Thao-Chi X <Thao-Chi.Phan at allina.com> wrote:
> Please explain to me why the /usr/local/groundwork/nagios/libexec/check_disk
> doesn't report the correct disk space free on 2 mount points /data02b and /data02a on a server.
>
> root at abc2/usr/local/groundwork/nagios/libexec# df -m      
> Filesystem    MB blocks      Free %Used    Iused %Iused Mounted on
> /dev/hd4         512.00    336.67   35%     5761     3% /
> /dev/hd2        5120.00   2051.53   60%    44310     4% /usr
> /dev/hd9var      512.00    228.29   56%    26189    20% /var
> /dev/hd3        3072.00   2973.20    4%      101     1% /tmp
> /dev/hd1        7168.00   4794.46   34%     1854     1% /home
> /proc      	        -         -    -         -     -  /proc
> /dev/hd10opt    1024.00    320.47   69%     9826     4% /opt
> /dev/locallv    2048.00   1136.73   45%      720     1% /usr/local
> /dev/hd11admin    128.00    123.93    4%       20     1% /admin
> /dev/oralv    143360.00 100961.11   30%   203739     1% /oracle
> /dev/data01lv 276224.00 124619.55   55%       86     1% /data01
> /dev/eplv        256.00    253.61    1%        6     1% /epic
> /dev/clarlv   303104.00  89595.34   71%    67974     1% /epic/clarity
> /dev/ftplv       512.00    507.60    1%        4     1% /ftpdir
> /dev/dbkuplv   97792.00  67809.48   31%     3748     1% /dbkup
> /dev/data03lv 215040.00  32499.46   85%       89     1% /data03
> /dev/ctmaglv    5120.00   4587.26   11%     3301     1% /ctmag
> /dev/dump_cp    5120.00   5098.90    1%        4     1% /var/adm/ras/dump_cp
> /dev/lv00     27873280.00 11204341.16   60%	   880     1% /data02b
> /dev/lv02       5120.00   5027.61    2%       12     1% /data04b
> /dev/lv01      46080.00  16327.36   65%       14     1% /oraredob
> /dev/lv04a    27873280.00 2550106.27   91%      880     1% /data02a
> /dev/lv06a      5120.00   5027.61    2%       12     1% /data04a
> /dev/lv05a     46080.00  16327.36   65%       14     1% /oraredoa
>
> -------INCORRECT --- 0 MB is not correct. 0% free is not correct.
> root at abc2 /usr/local/groundwork/nagios/libexec# ./check_disk -w 2% -c 0% -p /data02b
> DISK CRITICAL - free space: /data02b 0 MB (0% inode=99%);| /data02b=2147483647MB;10874142;11096064;0;11096064
>
> -------INCORRECT ---- 22% free is not correct
> root at abc2 /usr/local/groundwork/nagios/libexec# ./check_disk -w 2% -c 0% -p /data02a
> DISK OK - free space: /data02a 2550106 MB (22% inode=99%);| /data02a=8545957MB;10874142;11096064;0;11096064
>
> -------CORRECT
> root at abc2 /usr/local/groundwork/nagios/libexec# ./check_disk -w 2% -c 0% -p /data04a
> DISK OK - free space: /data04a 5027 MB (98% inode=99%);| /data04a=92MB;5017;5120;0;5120
>
> -------CORRECT
> root at abc2 /usr/local/groundwork/nagios/libexec# ./check_disk -w 2% -c 0% -p /oracle
> DISK OK - free space: /oracle 100961 MB (70% inode=99%);| /oracle=42398MB;140492;143360;0;143360
>
> Thanks a lot.
>
> Thao-Chi




More information about the Devel mailing list