nginx dso coredump

洪志道 hongzhidao at gmail.com
Tue Aug 30 10:54:45 UTC 2016


Plus: kill -USR2 pid; sleep(2); kill -QUIT oldpid;

2016-08-30 18:33 GMT+08:00 洪志道 <hongzhidao at gmail.com>:

> Hi, guys
>
> I found a coredump file generated on production.
>
>
> (gdb) print ngx_http_abc_module
> $7 = {ctx_index = 18446744073709551615, index = 18446744073709551615, name
> = 0x0, spare0 = 0, spare1 = 0, version = 1010001, signature = 0x3520
> <Address 0x3520 out of bounds>,
>   ctx = 0x204800, commands = 0x204840, type = 1347703880, init_master = 0,
> init_module = 0, init_process = 0, init_thread = 0, exit_thread = 0,
> exit_process = 0,
>   exit_master = 0, spare_hook0 = 0, spare_hook1 = 0, spare_hook2 = 0,
> spare_hook3 = 0, spare_hook4 = 0, spare_hook5 = 0, spare_hook6 = 0,
> spare_hook7 = 0}
>
>
> The ngx_http_'abc'_module is a simple module written by ourself.
> It runed well in the past time, and I just changed the following structure
> defined in the module.
>
> typedef struct {
>
>     ngx_flag_t         valid;
>
>     ...
>
>     ngx_uint_t      member1;  # added
>
>     ngx_uint_t         member2;  # added
>
>     ...
>
> } ngx_http_abc_ctx_t;
>
>
> nginx.conf
>
> load_module  modules/....;
> load_module  modules/ngx_http_abc_module_3.so;  # This module is in the
> last postion, the other modules seems right.
>
> And there is tiny detail. I generate so file named
> 'ngx_http_abc_module.so', then I copy as ngx_http_abc_module_3.so
>
> And here are short codes about this module.
>
> static ngx_int_t
>
> ngx_http_abc_handler(ngx_http_request_t *r)
>
> {
>
>     ...
>
>     ngx_http_abc_ctx_t             *ctx;
>
>     ngx_http_abc_loc_conf_t     *vlcf;
>
>     vlcf = ngx_http_get_module_loc_conf(r, ngx_http_abc_module);
>
>     if (vlcf->enable == 0) {
>
>         return NGX_DECLINED;
>
>     }
>
>     ctx = ngx_pcalloc(r->pool, sizeof(ngx_http_abc_ctx_t));
>
>     if (ctx == NULL) {
>
>         return NGX_ERROR;
>
>     }
>
>     ngx_http_set_ctx(r, ctx, ngx_http_abc_module);
>
>>
> }
>
>
> config
>
> ngx_addon_name="ngx_http_abc_module"
>
> ngx_module_type=HTTP
>
> ngx_module_name=ngx_http_abc_module
>
> ngx_module_incs="$ngx_addon_dir"
>
> ngx_module_srcs="$ngx_addon_dir/ngx_http_abc_module.c"
>
> . auto/module
>
>
> It's sad that I can't regenerate coredump file now.
>
> By the way, It's so convinient that use dso instead of upgrading static
> module.
>
> Thanks so much.
>
>
> B.R.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-devel/attachments/20160830/768afa71/attachment.html>


More information about the nginx-devel mailing list