halfcountplus has asked for the wisdom of the Perl Monks concerning the following question:

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 mod_perl modules with apache. This works:

sub handler { return 500; }

but this:

use Apache2::Const; sub handler { return SERVER_ERROR; }

Does not -- ie, loading Apache2::Const, or a number of other modules, causes the worker to receive SIGILL (Illegal instruction). Apache2::RequestRec is okay, but most of my stuff is now non-functional :(

I've run httpd -X in gdb and pasted the backtrace:
pastebin backtrace

The "illegal instruction" appears to be _dl_x86_64_save_sse, although I know nothing about assembly. This does not happen if I use an offending module in a normal perl script; I have tried re-building them via CPAN on the "new platform", the issue remains. Apache and mod_perl are from the distro.

I've been writing and using Apache/mod_perl modules for a few years and this would be a SERIOUS problem if it happened anywhere else suddenly. I'm looking for any tips or information you can provide to help isolate the problem further; it seems to me it may be beyond my control and I will have to go to the provider with some evidence regarding mod_perl under openVZ on their new hardware (but that is still not clear).

Replies are listed 'Best First'.
Re: SIGILL with mod_perl on openVZ
by Anonymous Monk on Jul 08, 2011 at 20:34 UTC
      Done! When I find out the cause I'll post back here for posterity.
Re: SIGILL with mod_perl on openVZ
by halfcountplus (Hermit) on Jul 10, 2011 at 12:49 UTC

    It appears this is a glibc 2.12 bug from last year:

    bugzilla

    As this is the same OS (Fedora 13) with the same AVX enabled hardware, and a near identical backtrace. Also, the "small reproducer" posted with that bug report reproduces the problem on that system. Evidently Fedora never upgraded the glibc package after the patch.

    :(