nginx worker segfault, NULL pool

Maxim Dounin mdounin at mdounin.ru
Sat Jun 9 13:48:03 UTC 2012


Hello!

On Fri, Jun 08, 2012 at 11:40:46PM +0200, Bruno Prémont wrote:

> Hello Maxim,
> 
> > On Fri, 08 June 2012 Maxim Dounin <mdounin at mdounin.ru> wrote:
> > > On Fri, Jun 08, 2012 at 02:40:52PM +0200, Bruno Prémont wrote:
> > > > Running nginx on ARM I'm having it segfault at about any request (those
> > > > known not to crash are /status/nginx and /status/php-fpm).
> > > > Attaching it with GDB I get the following trace:
> > > 
> > > [...]
> > > 
> > > >         geoip_country  /usr/share/GeoIP/GeoIPv6.dat;
> > > 
> > > Is it works for you if you don't use GeoIP?
> > 
> > Just disabling it config side makes no difference.
> > 
> > I will try disabling it at configure time and see if it changes
> > anything, though I doubt it will.
> 
> Exact same result when geoip support is not built at all.
> 
> 
> Looking more exactly at the URLs I tested, static file like images
> don't crash the worker, just those that get handled by php-fpm upstream
> do (e.g. /collectd/ which implies /collectd/index.php).

You've claimed above "/status/php-fpm" works ok too.  Is it was 
mistake?

Anyway, please make sure you have aligment problems properly 
reported by a kernel.  It looks like the linux kernel has an 
unfortunate default to silently ignore alignment problems on arm, 
which results in data corruption on unaligned accesses instead of 
immediate exit on SIGBUS when unaligned access happens.  You may 
get proper behaviour with

echo 4 > /proc/cpu/alignment 

This should allow to trace a root of your problems.

See http://lecs.cs.ucla.edu/wiki/index.php/XScale_alignment for 
more details.

Maxim Dounin



More information about the nginx mailing list