I am posting this to the devel list to see if anyone has any answers. I look through the code and I don't see how the package that is created for the plugin is being uncached when the mtime changes. Can someone point me in the code where this is taking place. The problem I am having is definitely being caused by the package not being removed from memory.
Running perl 5.8.8 ---- Larry Low 4150 N Drinkwater Blvd., 5th Floor Scottsdale, AZ 85251 Office: 480.385.7045 E-mail: [EMAIL PROTECTED]' Telesphere Networks, Inc -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Larry Low Sent: Friday, October 12, 2007 10:56 AM To: nagios-users@lists.sourceforge.net Subject: Re: [Nagios-users] Nagios 3.0b5 - ePN and perl caching [SEC=UNCLASSIFIED] I guess the question is how to unload the perl package that the plugin is wrapped in. ---- Larry Low 4150 N Drinkwater Blvd., 5th Floor Scottsdale, AZ 85251 E-mail: [EMAIL PROTECTED]' Telesphere Networks, Inc -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Larry Low Sent: Friday, October 12, 2007 10:44 AM To: nagios-users@lists.sourceforge.net Subject: Re: [Nagios-users] Nagios 3.0b5 - ePN and perl caching [SEC=UNCLASSIFIED] I had been compiling without perl cache so that would explain why $delete was being set to 1. The problem must be in getting rid of the old cached script. I am digging deeper. ---- Larry Low 4150 N Drinkwater Blvd., 5th Floor Scottsdale, AZ 85251 E-mail: [EMAIL PROTECTED]' Telesphere Networks, Inc -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Larry Low Sent: Friday, October 12, 2007 10:13 AM To: nagios-users@lists.sourceforge.net Subject: Re: [Nagios-users] Nagios 3.0b5 - ePN and perl caching [SEC=UNCLASSIFIED] Thanks Stanley, Using my check_ifoperstatus script. Available from http://www.nagiosexchange.org/Networking.53.0.html?&tx_netnagext_pi1[p_view] =1099 I've done a few minutes of debugging and the first problem I see is the MTIME is not being populated. Here is my epn_leave-msgs.log. I added print LH "$filename - $mtime = ".$Cache{$filename}[MTIME]."\n"; while (my ($key,$value) = each %Cache) { foreach (@$value) { print LH "$key - $_\n"; } } right before it compares mtime and you will see below that MTIME is not populated. I also added a couple logs where MTIME is supposed to be set. print LH "$mtime "; $Cache{$filename}[MTIME] = $mtime unless $delete ; print LH $Cache{$filename}[MTIME]."\n"; You will see below that $mtime is fine but $Cache{$filename}[MTIME] is not. I changed $Cache{$filename}[MTIME] = $mtime unless $delete ; to $Cache{$filename}[MTIME] = $mtime; and the problem goes away. I tested for $delete and it is being set to 1 every time. What is calling eval_file? Is this from the nagios core? ************** epn_leave-msgs.log /opt/nagios/libexec/check_ifoperstatus.pl - 2.96796296296296 = 2.96796296296296 Fri Oct 12 10:00:29 2007 eval_file: successfully compiled "/opt/nagios/libexec/check_ifoperstatus.pl -H XXXX -C XXXX -k 0 -I -N Gi0/0 --cacti_database=cacti_2 --cacti_password=XXXX". Fri Oct 12 10:00:29 2007 run_package: "/opt/nagios/libexec/check_ifoperstatus.pl -H XXXX -C XXXX -k 0 -I -N Gi0/0 --cacti_database=cacti_2 --cacti_password=XXXX" returning (0, "OK - Interface 'Gi0/0' is 'up(1)' - (index 1)"). /opt/nagios/libexec/check_ifoperstatus.pl - 2.96796296296296 = /opt/nagios/libexec/check_ifoperstatus.pl - /opt/nagios/libexec/check_ifoperstatus.pl - HASH(0x9267264) /opt/nagios/libexec/check_ifoperstatus.pl - /opt/nagios/libexec/check_ifoperstatus.pl - CODE(0x9276778) 2.96796296296296 Fri Oct 12 10:00:59 2007 eval_file: syntax error in /opt/nagios/libexec/check_ifoperstatus.pl: "Subroutine print_help redefined at (eval 9) line 295,". ************** <Stanley.Hopcroft <at> Dest.gov.au> writes: > > Dear Larry, > > There are debugging hooks in p1.pl that would be useful to enable. > > If you are interested in helping deal with this problem please would you > > 1 Back up your original copy of p1.pl (path is specified in nagios.cfg > IIRC) > > 2 Change the DEBUG_LEVEL to > > use constant DEBUG_LEVEL => LEAVE_MSG | CACHE_DUMP ; > > 3 Change the DEBUG_LOG_PATH to something appropriate for your system eg > > use constant DEBUG_LOG_PATH => '/tmp/' ; > > 4 Make p1.pl still compiles (perl -c p1.pl should be nag free; $? == 0) > > 5 Restart Nagios > > (IIRC, all this is documented in POD format in p1.pl, so perldoc p1.pl > should show > > ... blah blah > > Extra logging is given by setting DEBUG_LEVEL to include > > LEAVE_MSG > > 1 opens an extra output stream in the path given by the value of > DEBUG_LOG_PATH > > 2 logs messages describing the success or otherwise of the plugin > com- > pilation and the result of the plugin run. > > An example of such messages are > > Fri Apr 22 11:54:21 2005 eval_file: successfully compiled > "/usr/local/nagios/libexec/check_bass ". > Fri Apr 22 11:54:21 2005 run_package: > "/usr/local/nagios/libexec/check_bass " returning ("0", "BASS > Transaction completed Ok. > > "). > Fri Apr 22 11:55:02 2005 eval_file: successfully compiled > "/usr/local/nagios/libexec/check_ad -D production.prod -S". > > Fri Apr 22 11:55:02 2005 run_package: > "/usr/local/nagios/libexec/check_ad -D foo.dom -S" returning ("0", "Ok. > Expected 2 domain controllers [foo1 foo2] for "foo.dom.prod" domain from > "1.1.2.3" DNS, found 8 [foo1 foo2 ..] > > "). > > .. blah blah > ) > > In my case I see > > [root <at> acisp057 bin]# perl -c p1.pl > p1.pl syntax OK > [root <at> acisp057 bin]# diff -c p1.pl.orig p1.pl > *** p1.pl.orig 2007-10-12 14:09:24.000000000 +1000 > --- p1.pl 2007-10-12 14:09:56.000000000 +1000 > *************** > *** 10,22 **** > use constant CACHE_DUMP => 2 ; > use constant PLUGIN_DUMP => 4 ; > > ! use constant DEBUG_LEVEL => 0 ; > # use constant DEBUG_LEVEL => CACHE_DUMP ; > # use constant DEBUG_LEVEL => LEAVE_MSG ; > ! # use constant DEBUG_LEVEL => LEAVE_MSG | > CACHE_DUMP ; > # use constant DEBUG_LEVEL => LEAVE_MSG | > CACHE_DUMP | PLUGIN_DUMP ; > > ! use constant DEBUG_LOG_PATH => '/usr/local/nagios/var/' ; > # use constant DEBUG_LOG_PATH => './' ; > use constant LEAVE_MSG_STREAM => DEBUG_LOG_PATH . > 'epn_leave-msgs.log' ; > use constant CACHE_DUMP_STREAM => DEBUG_LOG_PATH . > 'epn_cache-dump.log' ; > --- 10,22 ---- > use constant CACHE_DUMP => 2 ; > use constant PLUGIN_DUMP => 4 ; > > ! # use constant DEBUG_LEVEL => 0 ; > # use constant DEBUG_LEVEL => CACHE_DUMP ; > # use constant DEBUG_LEVEL => LEAVE_MSG ; > ! use constant DEBUG_LEVEL => LEAVE_MSG | CACHE_DUMP ; > # use constant DEBUG_LEVEL => LEAVE_MSG | > CACHE_DUMP | PLUGIN_DUMP ; > > ! use constant DEBUG_LOG_PATH => '/tmp/' ; > # use constant DEBUG_LOG_PATH => './' ; > use constant LEAVE_MSG_STREAM => DEBUG_LOG_PATH . > 'epn_leave-msgs.log' ; > use constant CACHE_DUMP_STREAM => DEBUG_LOG_PATH . > 'epn_cache-dump.log' ; > > and > > [root <at> acisp057 nagios]# more /tmp/epn_leave-msgs.log > Fri Oct 12 14:17:08 2007 eval_file: successfully compiled > "/usr/lib/nagios/plugins/check_sysUpTime -R 10.208.1.254". > Fri Oct 12 14:17:08 2007 run_package: > "/usr/lib/nagios/plugins/check_sysUpTime -R 10.208.1.254" returning (0, > "sysUpTime of router 1 > > 0.208.1.254 is 231 days, 18:14:31.55"). > Fri Oct 12 14:17:17 2007 eval_file: > /usr/lib/nagios/plugins/check_sysUpTime already successfully compiled > and file has not changed; > > skipping compilation. > Fri Oct 12 14:17:17 2007 run_package: > "/usr/lib/nagios/plugins/check_sysUpTime -R 10.36.103.254" returning (0, > "sysUpTime of router > > 10.36.103.254 is 269 days, 00:03:26.48"). > Fri Oct 12 14:17:22 2007 eval_file: successfully compiled > "/usr/lib/nagios/plugins/check_backuplinks -N "BRUSW200"". > Fri Oct 12 14:17:22 2007 run_package: > "/usr/lib/nagios/plugins/check_backuplinks -N "BRUSW200"" returning (0, > "Ok. All links from br > > usw200/10.0.254.167 to mtasw200 via Etherchannel _are_ in "up" > operational status. Redundant topology Ok."). > [root <at> acisp057 nagios]# > > Unfortch, although the log stream should be unbuffered, it wasn't being > flushed while Nag was running. I had to restart Nag again to > > get the messages flushed (when I changed the path for the log messages). > > You prob should ensure that the problem plugin is scheduled frequently > (eg each 5 mins) and let it run for about 5 check periods. > > Please post the results to the list. > > Thank you, > > Yours sincerely. > > Stanley Hopcroft > > Data Communications > > 02 6211 6110 > 0412 766 832 > > Classification: UNCLASSIFIED > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. > Still grepping through log files to find problems? Stop. > Now Search log events and configuration files using AJAX and a browser. > Download your FREE copy of Splunk now >> http://get.splunk.com/ > _______________________________________________ > Nagios-users mailing list > Nagios-users <at> lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/nagios-users > ::: Please include Nagios version, plugin version (-v) and OS when reporting any issue. > ::: Messages without supporting info will risk being sent to /dev/null > > ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ Nagios-users mailing list Nagios-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nagios-users ::: Please include Nagios version, plugin version (-v) and OS when reporting any issue. ::: Messages without supporting info will risk being sent to /dev/null ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ Nagios-users mailing list Nagios-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nagios-users ::: Please include Nagios version, plugin version (-v) and OS when reporting any issue. ::: Messages without supporting info will risk being sent to /dev/null ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ Nagios-users mailing list Nagios-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nagios-users ::: Please include Nagios version, plugin version (-v) and OS when reporting any issue. ::: Messages without supporting info will risk being sent to /dev/null ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ Nagios-users mailing list Nagios-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nagios-users ::: Please include Nagios version, plugin version (-v) and OS when reporting any issue. ::: Messages without supporting info will risk being sent to /dev/null