You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl@perl.apache.org by Chris Kaltwasser <ch...@netpos.com> on 2012/06/13 04:50:17 UTC

SIGILL, illegal instruction on httpd startup

Hello, I'm getting a SIGILL, illegal instruction each time I startup my
application that is running fine on several other environments. It takes
place in startup.pl, before any error_log output is generated. I'm
including the back trace below in hopes that someone has a suggestion for
me, as I'm quite new to debugging Mod Perl internals.  If anyone has any
suggestions on what might be the cause or suggest some next steps to
diagnose I would be greatly appreciated.  -- Thank you.

The particulars of the environment are the following:

CentOS 6.2 64Bit
Perl Version 5.12.4   (also occurs with 5.14.1)
Mod Perl Version: mod_perl-2.0.5
Apache Version: httpd-2.2.19


Backtrace:
Program received signal SIGILL, Illegal instruction.
0x000000344ba14c30 in _dl_x86_64_save_sse () from
/lib64/ld-linux-x86-64.so.2
Missing separate debuginfos, use: debuginfo-install
cyrus-sasl-lib-2.1.23-13.el6.x86_64 expat-2.0.1-9.1.el6.x86_64
glibc-2.12-1.47.el6_2.12.x86_64 keyutils-libs-1.4-3.el6.x86_64
krb5-libs-1.9-22.el6_2.1.x86_64 libaio-0.3.107-10.el6.x86_64
libcom_err-1.41.12-11.el6.x86_64 libselinux-2.0.94-5.2.el6.x86_64
libtool-ltdl-2.2.6-15.5.el6.x86_64 nspr-4.8.9-3.el6_2.x86_64
nss-3.13.1-7.el6_2.x86_64 nss-softokn-freebl-3.12.9-11.el6.x86_64
nss-util-3.13.1-3.el6_2.x86_64 openldap-2.4.23-20.el6.x86_64
openssl-1.0.0-20.el6_2.5.x86_64 oracle-xe-11.2.0-1.0.x86_64
postgresql-libs-8.4.11-1.el6_2.x86_64 zlib-1.2.3-27.el6.x86_64
(gdb) bt
#0  0x000000344ba14c30 in _dl_x86_64_save_sse ()
   from /lib64/ld-linux-x86-64.so.2
#1  0x000000344ba0aad8 in _dl_lookup_symbol_x ()
   from /lib64/ld-linux-x86-64.so.2
#2  0x000000344ba0dfb0 in _dl_fixup () from /lib64/ld-linux-x86-64.so.2
#3  0x000000344ba14675 in _dl_runtime_resolve ()
   from /lib64/ld-linux-x86-64.so.2
#4  0x00007fffec494516 in boot_Apache2__Module (my_perl=0x77ab60,
cv=0x86bb78)
    at Module.c:459
#5  0x00007ffff2cdd8ab in Perl_pp_entersub (my_perl=0x77ab60) at
pp_hot.c:2885
#6  0x00007ffff2c7590e in Perl_runops_debug (my_perl=0x77ab60) at
dump.c:2049
#7  0x00007ffff2baa021 in Perl_call_sv (my_perl=0x77ab60, sv=0x7fd118,
    flags=14) at perl.c:2605
#8  0x00007ffff2bb6b08 in Perl_call_list (my_perl=0x77ab60, oldscope=11,
    paramList=0x7a7280) at perl.c:4600
#9  0x00007ffff2b8eaee in S_process_special_blocks (my_perl=0x77ab60,
    fullname=0x7a2c98 "BEGIN", gv=0x7fd190, cv=0x7fd118) at op.c:5960
#10 0x00007ffff2b8e7ce in Perl_newATTRSUB (my_perl=0x77ab60, floor=275,
    o=0x804390, proto=0x0, attrs=0x0, block=0x7f5a50) at op.c:5931
#11 0x00007ffff2c1d1ce in Perl_yyparse (my_perl=0x77ab60) at perly.y:567
#12 0x00007ffff2dc2798 in S_doeval (my_perl=0x77ab60, gimme=2, startop=0x0,
    outside=0x0, seq=241) at pp_ctl.c:3112
#13 0x00007ffff2dc9e0f in Perl_pp_require (my_perl=0x77ab60) at
pp_ctl.c:3690
---Type <return> to continue, or q <return> to quit---
#14 0x00007ffff31cf364 in modperl_pp_require (my_perl=0x77ab60)
    at modperl_perl_pp.c:70
#15 0x00007ffff2c7590e in Perl_runops_debug (my_perl=0x77ab60) at
dump.c:2049
#16 0x00007ffff2baa021 in Perl_call_sv (my_perl=0x77ab60, sv=0x7a7118,
    flags=14) at perl.c:2605
#17 0x00007ffff2bb6b08 in Perl_call_list (my_perl=0x77ab60, oldscope=5,
    paramList=0x79c088) at perl.c:4600
#18 0x00007ffff2b8eaee in S_process_special_blocks (my_perl=0x77ab60,
    fullname=0x7a9918 "BEGIN", gv=0x7c3400, cv=0x7a7118) at op.c:5960
#19 0x00007ffff2b8e7ce in Perl_newATTRSUB (my_perl=0x77ab60, floor=136,
    o=0x7a2b30, proto=0x0, attrs=0x0, block=0x7f5190) at op.c:5931
#20 0x00007ffff2b837cd in Perl_utilize (my_perl=0x77ab60, aver=1,
floor=136,
    version=0x0, idop=0x80b250, arg=0x0) at op.c:3986
#21 0x00007ffff2c1d5c2 in Perl_yyparse (my_perl=0x77ab60) at perly.y:674
#22 0x00007ffff2dc2798 in S_doeval (my_perl=0x77ab60, gimme=2, startop=0x0,
    outside=0x0, seq=239) at pp_ctl.c:3112
#23 0x00007ffff2dc9e0f in Perl_pp_require (my_perl=0x77ab60) at
pp_ctl.c:3690
#24 0x00007ffff31cf364 in modperl_pp_require (my_perl=0x77ab60)
    at modperl_perl_pp.c:70
#25 0x00007ffff2c7590e in Perl_runops_debug (my_perl=0x77ab60) at
dump.c:2049
#26 0x00007ffff2baafd1 in Perl_eval_sv (my_perl=0x77ab60, sv=0x77eb28,
flags=4)
    at perl.c:2705
#27 0x00007ffff2badb8e in Perl_require_pv (my_perl=0x77ab60,
---Type <return> to continue, or q <return> to quit---
    pv=0x737fa0 "/opt/netpos/mg8/run.master/run.8108/conf/startup.pl")
    at perl.c:2804
#28 0x00007ffff31ae2be in modperl_require_file (my_perl=0x77ab60,
    pv=0x737fa0 "/opt/netpos/mg8/run.master/run.8108/conf/startup.pl",
    logfailure=1) at modperl_util.c:48
#29 0x00007ffff319b1b9 in modperl_config_apply_PerlPostConfigRequire (
    s=0x6c07c0, scfg=0x712f20, p=0x69e138) at modperl_config.c:455
#30 0x00007ffff3195f6f in modperl_post_config_require (s=0x6c07c0,
p=0x69e138)
    at mod_perl.c:478
#31 0x00007ffff31965ba in modperl_hook_post_config_last (pconf=0x69e138,
    plog=0x6e0348, ptemp=0x6e2358, s=0x6c07c0) at mod_perl.c:681
#32 0x0000000000437bf9 in ap_run_post_config ()
#33 0x00000000004245a5 in main ()

Re: SIGILL, illegal instruction on httpd startup

Posted by Chris Kaltwasser <ch...@netpos.com>.
On Wed, Jun 13, 2012 at 7:04 AM, Chris Kaltwasser <ch...@netpos.com> wrote:

>
> looks like your CPU does not support an instruction the library is
>> trying to use. Or the lib is corrupted.
>>
>> What does "cat /proc/cpuinfo" say?
>>
>> Thanks for the suggestion. I've pasted that output below. But, wouldn't a
> more likely cause for an illegal instruction be some bug in modperl, for
> example a call to an uninitialized function pointer, or the code had been
> over written during runtime?  (All other components seem to be behaving
> correctly.)
>
> I forgot to mention that I've rebuilt the libraries many times with the
same result, so if it were a corrupted library it would be other than in
the perl / apache stack and I would expect other symptoms.  Thanks again.

Re: SIGILL, illegal instruction on httpd startup

Posted by Chris Kaltwasser <ch...@netpos.com>.
> looks like your CPU does not support an instruction the library is
> trying to use. Or the lib is corrupted.
>
> What does "cat /proc/cpuinfo" say?
>
> Thanks for the suggestion. I've pasted that output below. But, wouldn't a
more likely cause for an illegal instruction be some bug in modperl, for
example a call to an uninitialized function pointer, or the code had been
over written during runtime?  (All other components seem to be behaving
correctly.)

$ cat /proc/cpuinfo

processor    : 0
vendor_id    : AuthenticAMD
cpu family    : 21
model        : 1
model name    : AMD Opteron(TM) Processor 6238
stepping    : 2
cpu MHz        : 2600.008
cache size    : 2048 KB
fpu        : yes
fpu_exception    : yes
cpuid level    : 10
wp        : yes
flags        : fpu tsc msr pae cx8 cmov pat clflush mmx fxsr sse sse2
syscall nx mmxext fxsr_opt lm rep_good unfair_spinlock pni pclmulqdq ssse3
cx16 sse4_1 sse4_2 popcnt aes avx hypervisor lahf_lm cmp_legacy svm
cr8_legacy abm sse4a misalignsse 3dnowprefetch xop fma4
bogomips    : 5200.01
TLB size    : 1536 4K pages
clflush size    : 64
cache_alignment    : 64
address sizes    : 48 bits physical, 48 bits virtual
power management:

processor    : 1
vendor_id    : AuthenticAMD
cpu family    : 21
model        : 1
model name    : AMD Opteron(TM) Processor 6238
stepping    : 2
cpu MHz        : 2600.008
cache size    : 2048 KB
fpu        : yes
fpu_exception    : yes
cpuid level    : 10
wp        : yes
flags        : fpu tsc msr pae cx8 cmov pat clflush mmx fxsr sse sse2
syscall nx mmxext fxsr_opt lm rep_good unfair_spinlock pni pclmulqdq ssse3
cx16 sse4_1 sse4_2 popcnt aes avx hypervisor lahf_lm cmp_legacy svm
cr8_legacy abm sse4a misalignsse 3dnowprefetch xop fma4
bogomips    : 5200.01
TLB size    : 1536 4K pages
clflush size    : 64
cache_alignment    : 64
address sizes    : 48 bits physical, 48 bits virtual
power management:

processor    : 2
vendor_id    : AuthenticAMD
cpu family    : 21
model        : 1
model name    : AMD Opteron(TM) Processor 6238
stepping    : 2
cpu MHz        : 2600.008
cache size    : 2048 KB
fpu        : yes
fpu_exception    : yes
cpuid level    : 10
wp        : yes
flags        : fpu tsc msr pae cx8 cmov pat clflush mmx fxsr sse sse2
syscall nx mmxext fxsr_opt lm rep_good unfair_spinlock pni pclmulqdq ssse3
cx16 sse4_1 sse4_2 popcnt aes avx hypervisor lahf_lm cmp_legacy svm
cr8_legacy abm sse4a misalignsse 3dnowprefetch xop fma4
bogomips    : 5200.01
TLB size    : 1536 4K pages
clflush size    : 64
cache_alignment    : 64
address sizes    : 48 bits physical, 48 bits virtual
power management:

processor    : 3
vendor_id    : AuthenticAMD
cpu family    : 21
model        : 1
model name    : AMD Opteron(TM) Processor 6238
stepping    : 2
cpu MHz        : 2600.008
cache size    : 2048 KB
fpu        : yes
fpu_exception    : yes
cpuid level    : 10
wp        : yes
flags        : fpu tsc msr pae cx8 cmov pat clflush mmx fxsr sse sse2
syscall nx mmxext fxsr_opt lm rep_good unfair_spinlock pni pclmulqdq ssse3
cx16 sse4_1 sse4_2 popcnt aes avx hypervisor lahf_lm cmp_legacy svm
cr8_legacy abm sse4a misalignsse 3dnowprefetch xop fma4
bogomips    : 5200.01
TLB size    : 1536 4K pages
clflush size    : 64
cache_alignment    : 64
address sizes    : 48 bits physical, 48 bits virtual
power management:

Re: SIGILL, illegal instruction on httpd startup

Posted by Torsten Förtsch <to...@gmx.net>.
On 06/13/2012 04:50 AM, Chris Kaltwasser wrote:
> Backtrace:
> Program received signal SIGILL, Illegal instruction.
> 0x000000344ba14c30 in _dl_x86_64_save_sse () from
> /lib64/ld-linux-x86-64.so.2

looks like your CPU does not support an instruction the library is
trying to use. Or the lib is corrupted.

What does "cat /proc/cpuinfo" say?

Torsten