atom feed7 messages in ru.sysoev.nginxRe: call ngx_localtime may cause dead...
FromSent OnAttachments
georgexshMar 4, 2010 2:08 am 
Maxim DouninMar 4, 2010 4:14 am 
Igor SysoevMar 4, 2010 4:21 am 
georgexshMar 4, 2010 7:20 am 
Maxim DouninMar 4, 2010 8:49 am 
Igor SysoevMar 4, 2010 11:54 am 
Maxim DouninMar 4, 2010 4:58 pm 
Subject:Re: call ngx_localtime may cause deadlock?
From:Maxim Dounin (mdou@mdounin.ru)
Date:Mar 4, 2010 8:49:34 am
List:ru.sysoev.nginx

Hello!

On Thu, Mar 04, 2010 at 10:20:29AM -0500, georgexsh wrote:

Igor Sysoev Wrote:

-------------------------------------------------------

Here is third-party module which probably uses threads:

#11 0x08088c9f in ngx_foo_time_str (r=0x9dcdc28, time_str=0xbfe18450, t=-4) at ./ngx_foo_module//uti.c:111 #12 0x08087d1a in ngx_http_foo_record (r=0x9dcdc28, request_arg=0x9dcddb0) at ./ngx_foo_module//foo.c:124 #13 0x0808788c in ngx_http_foo_handler (r=0x9dcdc28) at ./ngx_foo_module//ngx_http_foo_module.c:74

No, ngx_foo_module/* is my module which does't use threads ethier.

ref: http://blogs.inxsasia.com/hiran/2009/07/stupid-futex-and-glibc.html http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=301511

Ok, second link suggest that recent glibc uses futex even when there are no threads in application.

This isn't really relevant though as underlying problem is in nginx and should be fixed anyway. Only async-signal-safe functions may be used in signal handlers, anything else leads to undefined behaviour.

For now - use ngx_time() and don't use timer_resolution unless you have kqueue or eventport.