Subject: | Perl warning in SingleCheck.pm line 369 |
Date: | Thu, 21 Oct 2010 11:59:28 -0400 |
To: | bug-jmx4perl [...] rt.cpan.org |
From: | Isaac Hollander <isaac.hollander [...] seleritycorp.com> |
Hello,
I'm working on integrating Jmx4Perl into my Nagios monitoring system,
and see a Perl warning:
CentOS 5.5, with jmx4perl 0.72 installed from CPAN
[root@ny2bmonp01 selerity]# check_jmx4perl --url
http://jc1txtrt01:8080/j4p --string --critical '!true' -m
'core-services:name=datasource' -o checkConnection
Use of uninitialized value in concatenation (.) or string at
/usr/lib/perl5/site_perl/5.8.8/JMX/Jmx4Perl/Nagios/SingleCheck.pm line 369.
Use of uninitialized value in concatenation (.) or string at
/usr/lib/perl5/site_perl/5.8.8/JMX/Jmx4Perl/Nagios/SingleCheck.pm line 369.
OK - [core-services:name=datasource,] : 'true' as expected |
[core-services:name#datasource,]=true;;!true
Looks like $self->alias is not defined:
sub _get_name {
361 my $self = shift;
362 my $args = { @_ };
363 my $name = $args->{name};
364 if (!$name) {
365 if ($self->name) {
366 $name = $self->name;
367 } else {
368 # Default name
369 $name = $self->alias ?
370 "[".$self->alias.($self->path ? "," . $self->path :
"") ."]" :
371 $self->value ?
372 "[" . $self->value . "]" :
373 "[".$self->mbean.",".$self->attribute.($self->path ?
"," . $self->path : "")."]";
374 }
375 }
376 if ($args->{cleanup}) {
377 # Enable this when '=' gets forbidden
378 $name =~ s/=/#/g;
379 }
380 # Prepare label for usage with Nagios::Plugin, which will
blindly
381 # add quotes if a space is contained in the label.
382 # We are doing the escape of quotes ourself here
383 $name =~ s/'/''/g;
384 return $name;
385 }
_get_name() is called in 2 places -- once in _format_label() and once in
extract_responses(). For what its worth, adding a --label arg to the
command line removes one of the warnings.
[root@ny2bmonp01 selerity]# check_jmx4perl --url
http://jc1txtrt01:8080/j4p --string --critical '!true' -m
'core-services:name=datasource' -o checkConnection --label checkConnection
Use of uninitialized value in concatenation (.) or string at
/usr/lib/perl5/site_perl/5.8.8/JMX/Jmx4Perl/Nagios/SingleCheck.pm line 369.
OK - checkConnection | [core-services:name#datasource,]=true;;!true
[root@ny2bmonp01 selerity]# uname -a
Linux ny2bmonp01.seleritycorp.com 2.6.18-194.11.3.el5 #1 SMP Mon Aug 30
16:19:16 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux
[root@ny2bmonp01 selerity]# perl -v
This is perl, v5.8.8 built for x86_64-linux-thread-multi
Copyright 1987-2006, Larry Wall
Perl may be copied only under the terms of either the Artistic License
or the
GNU General Public License, which may be found in the Perl 5 source kit.
Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl". If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.
[root@ny2bmonp01 selerity]# perl -V
Summary of my perl5 (revision 5 version 8 subversion 8) configuration:
Platform:
osname=linux, osvers=2.6.18-53.el5, archname=x86_64-linux-thread-multi
uname='linux builder10.centos.org 2.6.18-53.el5 #1 smp mon nov 12
02:14:55 est 2007 x86_64 x86_64 x86_64 gnulinux '
config_args='-des -Doptimize=-O2 -g -pipe -Wall
-Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
--param=ssp-buffer-size=4 -m64 -mtune=generic -Dversion=5.8.8
-Dmyhostname=localhost -Dperladmin=root@localhost -Dcc=gcc -Dcf_by=Red
Hat, Inc. -Dinstallprefix=/usr -Dprefix=/usr -Dlibpth=/usr/local/lib64
/lib64 /usr/lib64 -Dprivlib=/usr/lib/perl5/5.8.8
-Dsitelib=/usr/lib/perl5/site_perl/5.8.8
-Dvendorlib=/usr/lib/perl5/vendor_perl/5.8.8
-Darchlib=/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi
-Dsitearch=/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi
-Dvendorarch=/usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi -Darchname=x86_64-linux-thread-multi
-Dvendorprefix=/usr -Dsiteprefix=/usr -Duseshrplib -Dusethreads
-Duseithreads -Duselargefiles -Dd_dosuid -Dd_semctl_semun -Di_db
-Ui_ndbm -Di_gdbm -Di_shadow -Di_syslog -Dman3ext=3pm -Duseperlio
-Dinstallusrbinperl=n -Ubincompat5005 -Uversiononly
-Dpager=/usr/bin/less -isr -Dd_gethostent_r_proto -Ud_endhostent_r_proto
-Ud_sethostent_r_proto -Ud_endprotoent_r_proto -Ud_setprotoent_r_proto
-Ud_endservent_r_proto -Ud_setservent_r_proto -Dinc_version_list=5.8.7
5.8.6 5.8.5 -Dscriptdir=/usr/bin'
hint=recommended, useposix=true, d_sigaction=define
usethreads=define use5005threads=undef useithreads=define
usemultiplicity=define
useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=define use64bitall=define uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='gcc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing
-pipe -Wdeclaration-after-statement -I/usr/local/include
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm',
optimize='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions
-fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic',
cppflags='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe
-Wdeclaration-after-statement -I/usr/local/include -I/usr/include/gdbm'
ccversion='', gccversion='4.1.2 20080704 (Red Hat 4.1.2-48)',
gccosandvers=''
intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t',
lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='gcc', ldflags =''
libpth=/usr/local/lib64 /lib64 /usr/lib64
libs=-lresolv -lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc
perllibs=-lresolv -lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
libc=, so=so, useshrplib=true, libperl=libperl.so
gnulibc_version='2.5'
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E
-Wl,-rpath,/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE'
cccdlflags='-fPIC', lddlflags='-shared -O2 -g -pipe -Wall
-Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
--param=ssp-buffer-size=4 -m64 -mtune=generic'
Characteristics of this binary (from libperl):
Compile-time options: MULTIPLICITY PERL_IMPLICIT_CONTEXT
PERL_MALLOC_WRAP USE_64_BIT_ALL USE_64_BIT_INT
USE_ITHREADS USE_LARGE_FILES USE_PERLIO
USE_REENTRANT_API
Built under linux
Compiled at Jun 7 2010 21:26:02
@INC:
/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.8
/usr/lib/perl5/site_perl
/usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.8
/usr/lib/perl5/vendor_perl
/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi
/usr/lib/perl5/5.8.8
.
--
Isaac Hollander
Senior Systems Engineer
Selerity http://www.seleritycorp.com
O: (201) 377 2095