nginx crash

Maxim Dounin mdounin at mdounin.ru
Mon Nov 28 19:15:23 UTC 2011


Hello!

On Sat, Nov 26, 2011 at 10:07:48PM +0800, MagicBear wrote:

> Here is the crash bt.

[...]

> warning: Can't read pathname for load map: Input/output error.
> [Thread debugging using libthread_db enabled]
> Core was generated by `nginx:'.
> Program terminated with signal 11, Segmentation fault.
> #0  ngx_rbtree_min (sentinel=<optimized out>, node=0x0) at
> src/core/ngx_rbtree.h:75
> 75	    while (node->left != sentinel) {
> (gdb) bt
> #0  ngx_rbtree_min (sentinel=<optimized out>, node=0x0) at
> src/core/ngx_rbtree.h:75
> #1  ngx_rbtree_delete (tree=0x7f463a38c000, node=0x7f463a38f000) at
> src/core/ngx_rbtree.c:178
> #2  0x0000000000451a24 in ngx_http_file_cache_free (c=0x2509a70,
> tf=0x250a3a8) at src/http/ngx_http_file_cache.c:956
> #3  0x0000000000447759 in ngx_http_upstream_process_request
> (r=0x24ab650) at src/http/ngx_http_upstream.c:2738
> #4  0x000000000044783b in ngx_http_upstream_process_upstream
> (r=0x24ab650, u=0x24db4c0) at src/http/ngx_http_upstream.c:2677
> #5  0x000000000044792c in ngx_http_upstream_handler (ev=<optimized
> out>) at src/http/ngx_http_upstream.c:935
> #6  0x0000000000425979 in ngx_event_expire_timers () at
> src/event/ngx_event_timer.c:149
> #7  0x00000000004255b0 in ngx_process_events_and_timers
> (cycle=0x2465bf0) at src/event/ngx_event.c:261

[...]

> I have increase the key size to 128M, the problem has disappear for 2
> weeks, but just has happen again.

Unfortunately, backtrace isn't really usefull here.  Bad thing 
happens before this - when a cache manager decides to cleanup 
long locked cache entry, while it's still required.

Could you please add $request_time and $upstream_response_time to 
logs and provide some stats about maximum values (note there may 
be many times in $upstream_response_time for a single request, sum 
of them all is intresting)?

After looking into code again I tend to think that it should work 
as intended, just default inactive= value isn't enough in your case.  
Bumping it to something like "5h" may also help, i.e.

    proxy_cache_path ... inactive=5h;

Maxim Dounin



More information about the nginx-devel mailing list