I 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)

Reply via email to