nginx dso coredump

Maxim Dounin mdounin at mdounin.ru
Tue Aug 30 16:14:12 UTC 2016


Hello!

On Tue, Aug 30, 2016 at 11:25:26PM +0800, 洪志道 wrote:

> So is it not allowed that we reload a configuration after change
> load_module directive?

Reloading configuration is allowed.  What is not allowed is 
loading incompatible modules with conflicting symbols defined, 
and, as far as I understand, this what essentially happens in your 
case.

You configuration has ngx_http_abc_module_1.so loaded with the 
ngx_http_abc_module symbol defined.  And you load 
ngx_http_abc_module_2.so which defines the ngx_http_abc_module to 
something different and incompatible.

> But it seems probably happened that others guys reload nginx, since they
> don't know
> whether load_module changes.
> 
> I mean we should upgrade after change so files, but it's easy to get a
> segmentation fault
> if some other guy run a reload command at that time.

What happens is a direct result of your manual intervention to 
naming and thus introducing multiple conflicting modules.  And I 
don't think nginx can do much to prevent this from happening, at 
least without limiting of what modules can do.  Most simple 
solution is to avoid manually renaming modules.

-- 
Maxim Dounin
http://nginx.org/



More information about the nginx-devel mailing list