CC: | "Narulkar, Mangesh" <Mangesh.Narulkar [...] ncr.com>, "Sarmah, Sudeepta" <Sudeepta.Sarmah [...] ncr.com> |
Subject: | Perl script Crashes while Accessing Environment Hash |
Date: | Fri, 20 Apr 2012 06:44:24 -0400 |
To: | "bug-Env [...] rt.cpan.org" <bug-Env [...] rt.cpan.org> |
From: | "Dange, Afrin" <Afrin.Dange [...] ncr.com> |
Hi,
We are facing a Adress Alignment issue while accessing the Environment Hash variable .
CoreDump Trace
Show quoted text
> ::stack
free+0x180(1, 0, 219000, 7f8, ff, ffffffff7ffffcf9)
Perl_my_setenv+0x118(100226330, 0, 100226330, 0, 30, 1006ba368)
Perl_magic_clearenv+0x6c(10022c090, 10022b9a0, 4040007, 404c007, b, 100226330)
Perl_mg_clear+0x44(10022c090, 100787300, 100213c20, 10022b9a0, 400, 100074a00)
Perl_hv_delete_ent+0x60(10022c020, 100787300, 2, 0, 10022c090, 0)
Perl_pp_delete+0x3a4(1004bdb20, 10021ac78, 80, 100219598, 1003180a8, 10022c020)
Perl_runops_standard+0x34(100626740, 0, 100219400, 219400, 100000000, 1)
S_run_body+0x1ac(0, 219400, 10021af80, 100626740, 100000000, 1)
perl_run+0x370(100626740, 21a800, ffffffff7ffff878, 100000000, 1, 1)
main+0xa4(3, ffffffff7ffffa98, 100213800, 213800, 0, 100218ce0)
_start+0x17c(0, 0, 0, 0, 0, 0)
Explanation of Truss:
From truss we observed that each time It fails It throws following fault
3178: write(4, 0x10079500C, 40) = 40
3178: h a n d l e _ r e q u e s t : d e l e t i n g L O G N A M E
3178: = r o o t\n
3178: write(4, 0x10079500C, 74) = 74
3178: h a n d l e _ r e q u e s t : P A T H = / u s r / s b i n
3178: : / u s r / b i n : / u s r / o p e n w i n / b i n : / u s r /
3178: l o c a l / b i n\n
3178: write(4, 0x10079500C, 83) = 83
3178: h a n d l e _ r e q u e s t : d e l e t i n g P A T H =
3178: / u s r / s b i n : / u s r / b i n : / u s r / o p e n w i n /
3178: b i n : / u s r / l o c a l / b i n\n
3178: write(4, 0x10079500C, 33) = 33
3178: h a n d l e _ r e q u e s t : S H E L L = / s b i n / s h
3178: \n
3178: write(4, 0x10079500C, 42) = 42
3178: h a n d l e _ r e q u e s t : d e l e t i n g S H E L L =
3178: / s b i n / s h\n
3178: write(4, 0x10079500C, 38) = 38
3178: h a n d l e _ r e q u e s t : M A I L = / v a r / m a i l
3178: / r o o t\n
3178: write(4, 0x10079500C, 47) = 47
3178: h a n d l e _ r e q u e s t : d e l e t i n g M A I L =
3178: / v a r / m a i l / r o o t\n
3178: write(4, 0x10079500C, 24) = 24
3178: h a n d l e _ r e q u e s t : L A N G = \n
3178: write(4, 0x10079500C, 42) = 42
3178: h a n d l e _ r e q u e s t : D e l e t i n g t h e E N V
3178: h a s h e n d\n
3178: Incurred fault #5, FLTACCESS %pc = 0x100021A10
3178: siginfo: SIGBUS BUS_ADRALN addr=0xFFFFFFFF7FFFFE2C
3178: Received signal #10, SIGBUS [default]
3178: siginfo: SIGBUS BUS_ADRALN addr=0xFFFFFFFF7FFFFE2C
26021: pollsys(0xFFFFFFFF7FFFF330, 3, 0xFFFFFFFF7FFFF470, 0x00000000) (sleeping...)
26021: pollsys(0xFFFFFFFF7FFFF330, 3, 0xFFFFFFFF7FFFF470, 0x00000000) = 1
26021: time() = 1334146883
Details of the system where it crashes
bash-3.00# uname -a
SunOS lcms1 5.10 Generic_147440-07 sun4v sparc SUNW,T5240
Information Regarding Perl
bash-3.00$ perl -V
Summary of my perl5 (revision 5.0 version 6 subversion 1) configuration:
Platform:
osname=solaris, osvers=2.8, archname=sun4-solaris
uname='sunos archdev 5.8 generic_108528-13 sun4u sparc sunw,sun-fire-280r '
config_args=''
hint=recommended, useposix=true, d_sigaction=define
usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef
useperlio=undef d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=define use64bitall=define uselongdouble=undef
Compiler:
cc='/opt/SUNWspro/bin/cc', ccflags =' -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -xarch=v9 ',
optimize='-O -xcode=abs64 -xarch=v9',
cppflags=''
ccversion='Sun WorkShop 6 update 2 C 5.3 2001/05/15', gccversion='', gccosandvers=''
intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=87654321
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, usemymalloc=y, prototype=define
Linker and Libraries:
ld='/opt/SUNWspro/bin/cc', ldflags ='-xcode=abs64 -xarch=v9 -xarch=v9'
libpth=/usr/lib /usr/ccs/lib
libs=-lsocket -lnsl -ldl -lm -lc
perllibs=-lsocket -lnsl -ldl -lm -lc
libc=/usr/lib/sparcv9/libc.so, so=so, useshrplib=false, libperl=libperl.a
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' '
cccdlflags='-KPIC', lddlflags=' -G -xarch=v9'
Characteristics of this binary (from libperl):
Compile-time options: USE_64_BIT_INT USE_64_BIT_ALL USE_LARGE_FILES
Built under solaris
Compiled at Apr 27 2011 04:27:46
@INC:
/usr/lib/perl5/5.6.1/sun4-solaris
/usr/lib/perl5/5.6.1
/usr/lib/perl5/site_perl/5.6.1/sun4-solaris
/usr/lib/perl5/site_perl/5.6.1
/usr/lib/perl5/site_perl
Code Area where it crashes
$envtz = $ENV{"TZ"};
$envuser = $ENV{"USER"};
$envpath = $ENV{"PATH"};
$envlang = $ENV{"LANG"};
$envroot = $ENV{"SystemRoot"};
print DEBUG "handle_request: Deleting the ENV hash start\n";
foreach my $k (keys %ENV) {
print DEBUG "handle_request: $k = $ENV{$k}\n";
if($ENV{$k})
{
print DEBUG "handle_request: deleting $k = $ENV{$k}\n";
delete($ENV{$k});
}
}
print DEBUG "handle_request: Deleting the ENV hash end\n";
$ENV{"PATH"} = $envpath if ($envpath);
$ENV{"TZ"} = $envtz if ($envtz);
$ENV{"USER"} = $envuser if ($envuser);
$ENV{"OLD_LANG"} = $envlang if ($envlang);
$ENV{"SystemRoot"} = $envroot if ($envroot);
print DEBUG "handle_request: Setting home as $user_homedir \n";
$ENV{"HOME"} = $user_homedir;
Attached is detail truss
Thanks and Regards,
Afrin
Message body is not shown because sender requested not to inline it.