Opened 12 years ago

Closed 12 years ago

#210 closed defect (fixed)

ownership of shared memory zones should be tracked better

Reported by: Ruslan Ermilov Owned by: somebody
Priority: minor Milestone:
Component: nginx-core Version: 1.3.x
Keywords: Cc:
uname -a:
nginx -V: nginx/1.3.6

Description

nginx doesn't allow the same shared memory zone to be used for different purposes.
It implements this by assigning zone an "owner" tag (an address of the module structure).

It's also a property of the shared memory zone that it survives a reconfiguration.

If a shared memory zone changes ownership, e.g. as a result of reconfiguration, nginx doesn't notice this and may crash, like shown below.

configuration A:

http {
    limit_conn_zone $binary_remote_addr zone=X:10m;
}

configuration B:

http {
    limit_req_zone $binary_remote_addr zone=X:10m rate=1r/s;
}

Change History (2)

comment:1 by Ruslan Ermilov, 12 years ago

In 4934/nginx:

Core: don't reuse shared memory zone that changed ownership (ticket #210).

nginx doesn't allow the same shared memory zone to be used for different
purposes, but failed to check this on reconfiguration. If a shared memory
zone was used for another purpose in the new configuration, nginx attempted
to reuse it and crashed.

comment:2 by Ruslan Ermilov, 12 years ago

Resolution: fixed
sensitive: 0
Status: newclosed

Fix committed.

Note: See TracTickets for help on using tickets.