[Nagiosplug-help] plugin 'check_disk' fails on Solaris 10 with 16 TiB volume (with research)

Dennis Jenkins djenkins at istreamimaging.com
Mon Jan 14 15:11:26 CET 2008


Thomas Guyot-Sionnest wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> On 09/01/08 01:23 AM, Thomas Guyot-Sionnest wrote:
>   
>> On 07/01/08 05:28 PM, Dennis Jenkins wrote:
>>     
>>> (Originally posted to "Nagios-Users" this morning.  Reposted without change after another posted indicated that this is a more appropriate group):
>>>       
>>     
>>> Hello,
>>>       
>>>     This is my first post to this list.  I was unable to find any 
>>> previous mention of an issue like this, nor was I able to find a better 
>>> place to submit this (bug report?) to.  I'm not a Solaris expert (I am 
>>> pretty good with Linux and BSD though - including writing low-level 
>>> system code).  It is entirely possible that I'm off my rocker and that I 
>>> somehow and at fault.. but I doubt it  :) 
>>>       
>>>     The server in question is a Sun x4600 ("thumper").  It is a 64 bit 
>>> AMD server running Solaris 10 (SunOS 5.10) [1].  The system has a few 
>>> small volumes and one HUGE 16TiB volume (in a zpool).  This ZFS volume 
>>> is exported as several volumes over NFS.
>>>       
>>>     Nagios was installed following the instructions on terdmonk's web 
>>> site [2].  Nagios itself runs on a remote Gentoo Linux box.  I use nrpe 
>>> on the Solaris box to execute the plugins.  I have ruled out nrpe as the 
>>> source of the problem.  I think that the problem is in the plugin's 
>>> (check_disk) call to "statvfs".
>>>       
>> Hi,
>>
>> We've seen this problem in the past; you can search the archives of
>> nagiosplug-devel and nagiosplug-help and maybe you'll find something.
>>
>> 80+ TB volumes worked well on my amd64 Linux worktation (tested using
>> spase-file loop devices - I wish I have 80TB at home but I don't). I
>> think I've been able to reproduce this problem only by copying a binary
>> built on a 32-bit system to my workstation. If I recall correctly the
>> difference was the syscalls being different or something like that.
>>
>> Have you compiled Nagios-plugins on the server you're having problem
>> with? If not that's the first thing I'd try.
>>
>> You may also want to try with this configure line to compile 64-bit
>> binaries (assuming this is gcc, for sun cc it appears to be -xarch=v9):
>>
>> CFLAGS=' -m64 ' ./configure [your regular args here...]
>>
>>     
>
> After looking a bit more It looks like this could be a limitation of
> gnulib (it should look for availability of ststvfs64 and use it where
> available).
>
> Try editing gl/fsusage.c and gl/mountlist.c and replace every
> occurrences of:
>
> struct statvfs [something]
>
> with:
>
> struct statvfs64 [something]
>
> and
>
> if (statvfs (file, &fsd) < 0)
>
> with:
>
> if (statvfs64 (file, &fsd) < 0)
>
> (Don't touch the "#include <>" lines)
>
> If you still have issues, try both 64-bit and this change
>
> I can make a patch if you're having trouble.
>
> Thomas
>
>   
Thank you for your kind offer Thomas.

I did not compile nrpe from source on this Solaris server.  The GNU 
tool-chain is not in the default path and we're nervous about making 
changes.  (I'm not a Solaris guru).  However, I did do a small test 
using Sun's C compiler:


-bash-3.00$ cat stat-test.c
/*      stat-test.c    djenkins, 2008-01-14.
        Small program to test statfs() and statfs64().
*/

#include <stdio.h>
#include <sys/statvfs.h>

int     main(int argc, char *argv[])
{
        int i, ret32, ret64;
        struct statvfs fsd32;
        struct statvfs64 fsd64;

        for (i = 1; i < argc; i++)
        {
                ret32 = statvfs(argv[i], &fsd32);
                ret64 = statvfs64(argv[i], &fsd64);

                printf("%s: 32:%d, 64:%d\n", argv[i], ret32, ret64);
        }

        return 0;
}

-bash-3.00$ cc stat-test.c -o stat-test

-bash-3.00$ ./stat-test / /zpool1/
/: 32:0, 64:0
/zpool1/: 32:-1, 64:0

-bash-3.00$ df / /zpool1/
/                  (/dev/md/dsk/d10   ):10375930 blocks  1080274 files
/zpool1            (zpool1            ):34437844801 blocks 34437844801 files

-bash-3.00$ df -h / /zpool1/
Filesystem             size   used  avail capacity  Mounted on
/dev/md/dsk/d10         11G   5.6G   4.8G    54%    /
zpool1                  17T    58G    16T     1%    /zpool1


    So, we you can see, the call to "statvfs64" works where the call to 
"statvfs" does not.

    I will experiment with getting "nrpe" and the "nagios-plugins" to 
compile from source.  It is just that we try to always install managed 
packages so that we can inventory our systems using the built in package 
tools set.  In the end if I can get "check_disk" to compile manually and 
work, I will probably just dump the new one in on top of the old one, 
but let Solaris think that I've still got the original package installed. 

    I'm new to Solaris, and I don't want to break anything...  I prefer 
the Gentoo and BSD way of package management.  Binary packages annoy me, 
but I must live with them... :(

    Thank you very much for your help.


-- 
CONFIDENTIALITY NOTICE
This electronic mail and the information contained herein are intended for the named recipient only.  It may contain confidential, proprietary and/or privileged information.  If you have received this electronic mail in error, please do not read any text other than the text of this notice and do not open any attachments. Also, please immediately notify the sender by replying to this electronic mail or by collect call to (262) 796-0925. After notifying the sender as described above, please delete this electronic mail message immediately and purge the item from the deleted items folder (or the equivalent) of your electronic mail system. Thank you.

Disclaimer -- Do not remove this disclaimer under penalty of law.

For optimum performance and safety, please read these instructions carefully.

Void where prohibited. No representation or warranty, express or implied, with respect to the completeness, accuracy, fitness for a particular purpose, or utility of these materials or any information or opinion contained herein. Actual mileage may vary. Prices slightly higher west of the Mississippi. All models over 18 years of age. No animals were harmed during the production of this product. Any resemblance to actual people, living or dead, or events, past, present or future, is purely coincidental. This product not to be construed as an endorsement of any product or company, nor as the adoption or promulgation of any guidelines, standards or recommendations. Some names have been changed to protect the innocent. This product is meant for educational purposes only. Some assembly required. Batteries not included. Package sold by weight, not volume. Contents may settle during shipment. No user-serviceable parts inside. Use only as directed.

Do not eat. Not a toy.

Postage will be paid by addressee. If condition persists, consult your physician. Subject to change without notice. Times approximate. One size fits all. Colors may, in time, fade. For office use only. Edited for television. List was current at time of printing. At participating locations only. Keep away from fire or flame. Avoid contact with skin. Sanitised for your protection. Employees and their families are not eligible. Beware of the dog. Limited time offer. No purchase necessary. Not recommended for children under 12. Prerecorded for this time zone. Some of the trademarks mentioned in this product appear for identification purposes only. Freshest if eaten before date on carton. Subject to change without notice. Please allow 4 to 6 weeks for delivery. Not responsible for direct, indirect, incidental or consequential damages resulting from any defect, error or failure to perform. Slippery when wet. Substantial penalty for early withdrawal. For recreational use only. No Canadian coins. List each check separately by bank number. This is not an offer to sell securities.

Read at your own risk. Ask your doctor or pharmacist. Parental guidance advised. Always read the label. Do not use while operating a motor vehicle or heavy equipment. Do not stamp. Breaking seal constitutes acceptance of agreement. Contains non-milk fat. Date as postmark. Lost ticket pays maximum rate. Use only in well-ventilated area. Price does not include taxes. Not for resale. Hand wash only. Keep away from sunlight. For a limited time only. No preservatives or additives. Keep away from pets and small children. Safety goggles required during use. If rash, irritation, redness, or swelling develops, discontinue use. Do not fold, spindle or mutilate. Please remain seated until the web page has come to a complete stop. Refrigerate after opening. Flammable. Must be 18 years or older. Seat backs and tray tables must be in the upright position. Repeat as necessary. Do not look directly into light. Avoid extreme temperatures and store in a cool dry place. No salt, MSG, artificial colouring or flavoring added. Reproduction strictly prohibited. Pregnant women, the elderly, and children should avoid prolonged exposure to this product. If ingested, do not induce vomiting. May contain nuts. Objects in mirror may be closer than they appear. Do not use if safety seal is broken.

Apply only to affected area. Do not use this product if you have high blood pressure, heart disease, diabetes, thyroid disease, asthma, glaucoma, or difficulty in urination. May be too intense for some viewers. In case of accidental ingestion, seek professional assistance or contact a poison control center immediately. Many suitcases look alike. Post office will not deliver without postage. Not the Beatles. Products are not authorized for use as critical components in life support devices or systems. Driver does not carry cash. Do not puncture or incinerate. Do not play your headset at high volume. Discontinue use of this product if any of the following occurs: itching, aching, vertigo, dizziness, ringing in your ears, vomiting, giddiness, aural or visual hallucinations, tingling in extremities, loss of balance or coordination, slurred speech, temporary blindness, drowsiness, insomnia, profuse sweating, shivering, or heart palpitations. Video+ and Video- are at ECL voltage levels, HSYNC and VSYNC are at TTL voltage levels. It is a violation of federal law to use this product in a manner inconsistent with its labeling. Intentional misuse by deliberately concentrating and inhaling the contents can be harmful or fatal. This product has been shown to cause cancer in laboratory rats. Do not use the AC adaptor provided with this player for other products.

Warranty does not cover normal wear and tear, misuse, accident, lightning, flood, hail storm, tornado, tsunami, volcanic eruption, avalanche, earthquake or tremor, hurricane, solar activity, meteorite strike, nearby supernova and other Acts of God, neglect, damage from improper or unauthorised use, incorrect line voltage, unauthorised use, unauthorised repair, improper installation, typographical errors, broken antenna or marred cabinet, missing or altered serial numbers, electromagnetic radiation from nuclear blasts, microwave ovens or mobile phones, sonic boom vibrations, ionising radiation, customer adjustments that are not covered in this list, and incidents owing to an airplane crash, ship sinking or taking on water, motor vehicle crashing, dropping the item, falling rocks, leaky roof, broken glass, disk failure, accidental file deletions, mud slides, forest fire, riots or other civil unrest, acts of terrorism or war, whether declared or not, explosive devices or projectiles (which can include, but may not be limited to, arrows, crossbow bolts, air gun pellets, bullets, shot, cannon balls, BBs, shrapnel, lasers, napalm, torpedoes, ICBMs, or emissions of electromagnetic radiation such as radio waves, microwaves, infra-red radiation, visible light, UV, X-rays, alpha, beta and gamma rays, neutrons, neutrinos, positrons, N-rays, knives, stones, bricks, spit-wads, spears, javelins etc.).

Other restrictions may apply. Breach of these conditions is likely to cause unquantifiable loss that may not be capable of remedy by the payment of damages.








More information about the Help mailing list