Closing app outgoing shared memory file descriptor.
This fixes file descriptor leakage in router. Shared memory file used to send data from router to application. These files are shared among all processes of same application and router keeps the opened file descriptor since 06017e6e3a5f commit.
This commit is contained in:
@@ -9,6 +9,12 @@
|
||||
date="" time=""
|
||||
packager="Andrei Belov <defan@nginx.com>">
|
||||
|
||||
<change type="bugfix">
|
||||
<para>
|
||||
a descriptor leak occurring in the router process when removing or
|
||||
reconfiguring an application; the bug had appeared in 1.19.0.
|
||||
</para>
|
||||
</change>
|
||||
|
||||
</changes>
|
||||
|
||||
|
||||
@@ -34,6 +34,10 @@ nxt_port_mmap_handler_use(nxt_port_mmap_handler_t *mmap_handler, int i)
|
||||
mmap_handler->hdr = NULL;
|
||||
}
|
||||
|
||||
if (mmap_handler->fd != -1) {
|
||||
nxt_fd_close(mmap_handler->fd);
|
||||
}
|
||||
|
||||
nxt_free(mmap_handler);
|
||||
}
|
||||
}
|
||||
@@ -238,6 +242,7 @@ nxt_port_incoming_port_mmap(nxt_task_t *task, nxt_process_t *process,
|
||||
}
|
||||
|
||||
mmap_handler->hdr = hdr;
|
||||
mmap_handler->fd = -1;
|
||||
|
||||
if (nxt_slow_path(hdr->src_pid != process->pid
|
||||
|| hdr->dst_pid != nxt_pid))
|
||||
|
||||
Reference in New Issue
Block a user