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)