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