Page 1 of 1

[Nagios-devel] trying to find problem in cgi/status.c

Posted: Thu Mar 03, 2005 1:39 am
by Guest
Hi All

I am running Nagios 2 beta - CVS snapshot Feb 24 19:47 2005 on Solaris 8.

I have a problem where my host detail and status map options in the left
frame will die with a segmentation fault after displaying some of my
hosts. The number of hosts depends on the sort options.

Note that the "service detail" option will display *all* hosts and *all*
services. Weird.

I am guessing I am hitting some sort of problem, where the code expects
to see something in memory, but it is not there. I think it may be in my
hosts definition, but I have 25 hosts defined so not sure if I have a
typo in any of the definitions.

Each entry basically looks like:
define host{
host_name nemesis
alias db server
address 1.2.3.4
check_command check-host-alive
max_check_attempts 5
contact_groups nagios-admins
notification_interval 30
notification_period 24x7
notification_options d,u,r
}

Some hosts (not all) have partially filled out hostextinfo entries:
define hostextinfo{
host_name thunderbird
notes IMAP/POP3 Server
notes_url URL
action_url URL
icon_image sun/ppserve450-68sm.jpg
icon_image_alt Sun E450 Server
}

I can run the status CGI from the command line:
export REMOTE_USER=userid
export REQUEST_METHOD=GET
export QUERY_STRING='hostgroup=all&style=hostdetail&sorttype=2&sortoption=4'

$ pwd
/usr/local/nagios/src/nagios-cvs/cgi

$ /usr/local/bin/gdb ./status.cgi
(gdb) run
Starting program: /usr/local/nagios/src/nagios-cvs/cgi/status.cgi
Cache-Control: no-store
Pragma: no-cache
Refresh: 90
Last-Modified: Thu, 03 Mar 2005 09:31:51 GMT
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Content-type: text/html




Current Network Status
.
.
.
.
17d 1h 35m 54s

Program received signal SIGSEGV, Segmentation fault.
0xff2b3218 in strlen () from /lib/libc.so.1

(gdb) where
#0 0xff2b3218 in strlen () from /lib/libc.so.1
#1 0xff306530 in _doprnt () from /lib/libc.so.1
#2 0xff3081d0 in printf () from /lib/libc.so.1
#3 0x0001a35c in show_host_detail () at status.c:2089

I am now at my limit in C and gdb, so was wondering if anyone had any
pointers as to how I debug the code to find out what the problem is? ie
how can I see the contents of the memory, and what the variables are set at?

Thanks

John





This post was automatically imported from historical nagios-devel mailing list archives
Original poster: [email protected]