# Nngix maybe dead lock in ngnix\_event\_timer

**URL:** <https://www.ruby-forum.com/t/nngix-maybe-dead-lock-in-ngnix-event-timer/202081>\
**Category:** NGINX\
**Created:** [January 21, 2011, 11:34am UTC](https://www.ruby-forum.com/t/nngix-maybe-dead-lock-in-ngnix-event-timer/202081 "2011-01-21T11:34:04Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![dubstep](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/cdc98d/32.png) [@dubstep](https://www.ruby-forum.com/u/dubstep)\
**Post date:** [January 21, 2011, 11:34am UTC](https://www.ruby-forum.com/t/nngix-maybe-dead-lock-in-ngnix-event-timer/202081/1 "2011-01-21T11:34:04Z")

</div>

In file src/event/ngx\_event\_timer.c:  
function:  
void ngx\_event\_expire\_timers (void)  
{  
… …  
for ( ;; ) {

```
    [color=#FF0000]ngx_mutex_lock(ngx_event_timer_mutex);[/color]

    root = ngx_event_timer_rbtree.root;

    [color=#FF0000]if (root == sentinel) {
        return;
    }[/color]

```

… …  
}

While timer rb-tree is empty, mutex\_lock ‘ngx\_event\_timer\_mutex’ would  
not unlock!

This bug is avaliable in every nginx version. Should fix it pls.

Posted at Nginx Forum:

> **[Nngix maybe dead lock in ngnix\_event\_timer](https://forum.nginx.org/read.php?2,168188,168188#msg-168188)**
>
> In file src/event/ngx\_event\_timer.c: function: void ngx\_event\_expire\_timers (void) { .... ... for ( ;; ) { \[color=#FF0000\]ngx\_mutex\_lock(ngx\_event\_timer\_mutex);\[/color\] root = ngx\_event\_timer\_rbtree.root;

---

<div class="post-metadata">

**Author:** ![ljzwaterbull](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/5fc32e/32.png) [@ljzwaterbull](https://www.ruby-forum.com/u/ljzwaterbull)\
**Post date:** [January 21, 2011, 11:46am UTC](https://www.ruby-forum.com/t/nngix-maybe-dead-lock-in-ngnix-event-timer/202081/2 "2011-01-21T11:46:37Z")

</div>

Hi,

> While timer rb-tree is empty, mutex\_lock ‘ngx\_event\_timer\_mutex’ would  
> not unlock!
> 
> This bug is avaliable in every nginx version. Should fix it pls.

There is nothing to unlock, ngx\_mutex\_lock() is no-op.

Best regards,  
Piotr S. \< [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) \>
