SIGILL on openVZ
am 09.07.2011 15:05:50 von mkI have a small openVZ slice I use for testing and personal projects.
Recently, the provider transferred to the new Xeon "Sandy Bridge"
platform; I am not sure if this is the cause of my problem or not, but
since then, I have been unable to use most of my mod_perl based
modules with apache. The apache worker receives SIGILL (Illegal
instruction) as soon as the module is called upon.
I've run httpd -X in gdb and posted an example backtrace here:
http://pastebin.com/16SrEzHM
The offending instruction is "dl_x86_64_save_sse" (I don't know any
assembly), and it is always from
/usr/src/debug/glibc-2.12.2/sysdeps/x86_64/dl-trampoline.S,
so perhaps not a strictly mod_perl issue, but I do not have the problem
with anything else. Context #5 in the backtrace relates to
Apache2::Const, and in fact a module like this:
use Apache2::Const qw(SERVER_ERROR);
sub handler {
return SERVER_ERROR;
}
Triggers the issue. Removing Apache2::Const and returning 500 does not.
Apache2::RequestRec is okay, but most other modules are not (and not
necessarily all Apache2 modules, eg, Mouse will also trigger this),
meaning most of my stuff is now non-functional. Regular perl scripts
using these modules are fine. I have tried recompiling them on "the
new platform" via CPAN; this did not make any difference.
I've been writing and using Apache/mod_perl modules for a few years and
this would be a very serious problem for me if it happened anywhere
else. I'm looking for some help in determining why this suddenly
happened and what I can do about it.
Thanks -- MK
--
"Enthusiasm is not the enemy of the intellect." (said of Irving Howe)
"The angel of history[...]is turned toward the past." (Walter Benjamin)