| Commit message (Collapse) | Author | Age |
... | |
|
|
|
| |
Signed-off-by: Piotr Sikora <piotrsikora@google.com>
|
|
|
|
| |
It is more effective, because it doesn't require a separate lseek().
|
|
|
|
| |
No functional changes.
|
|
|
|
| |
This is in addition to 6fce16b1fc10.
|
|
|
|
|
|
|
|
|
| |
This fixes suboptimal behavior caused by surplus lseek() for sequential writes
on systems without pwrite(). A consecutive read after write might result in an
error on systems without pread() and pwrite().
Fortunately, at the moment there are no widely used systems without these
syscalls.
|
| |
|
|
|
|
|
| |
At least such behavior was observed with CephFS, see:
http://mailman.nginx.org/pipermail/nginx/2015-July/048188.html.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Iterating through all connections takes a lot of CPU time, especially
with large number of worker connections configured. As a result
nginx processes used to consume CPU time during graceful shutdown.
To mitigate this we now only do a full scan for idle connections when
shutdown signal is received.
Transitions of connections to idle ones are now expected to be
avoided if the ngx_exiting flag is set. The upstream keepalive module
was modified to follow this.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
With this change it's no longer needed to pass -D_GNU_SOURCE manually,
and -D_FILE_OFFSET_BITS=64 is set to use 64-bit off_t.
Note that nginx currently fails to work properly with master process
enabled on GNU Hurd, as fcntl(F_SETOWN) returns EOPNOTSUPP for sockets
as of GNU Hurd 0.6. Additionally, our strerror() preloading doesn't
work well with GNU Hurd, as it uses large numbers for most errors.
|
| |
|
|
|
|
| |
It was only needed by the just removed rtsig module.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
It's mostly dead code and the original idea of worker threads has been rejected.
|
|
|
|
|
|
| |
The code that calls sendfile() was cut into a separate function.
This simplifies EINTR processing, yet is needed for the following
changes that add threads support.
|
|
|
|
|
|
|
|
| |
This reduces layering violation and simplifies the logic of AIO preread, since
it's now triggered by the send chain function itself without falling back to
the copy filter. The context of AIO operation is now stored per file buffer,
which makes it possible to properly handle cases when multiple buffers come
from different locations, each with its own configuration.
|
|
|
|
|
|
|
| |
The trailer.count variable was not initialized if there was a header,
resulting in "sendfile() failed (22: Invalid argument)" alerts on OS X
if the "sendfile" directive was used. The bug was introduced
in 8e903522c17a (1.7.8).
|
| |
|
| |
|
|
|
|
|
| |
There was no real problem since the amount of bytes can be sent is limited by
NGX_SENDFILE_MAXSIZE to less than 2G. But that can be changed in the future
|
|
|
|
|
| |
This reduces code duplication and unifies debug logging of the writev() syscall
among various send chain functions.
|
|
|
|
| |
No functional changes.
|
| |
|
|
|
|
|
|
|
| |
Though ngx_solaris_sendfilev_chain() shouldn't suffer from the problem mentioned
in d1bde5c3c5d2 since currently IOV_MAX on Solaris is 16, but this follows the
change from 3d5717550371 in order to make the code look similar to other systems
and potentially eliminates the problem in the future.
|
|
|
|
|
| |
It deduplicates code of the send chain functions and uses only preallocated
memory, which completely solves the problem mentioned in d1bde5c3c5d2.
|
|
|
|
| |
No functional changes.
|
| |
|
|
|
|
|
| |
It's mostly dead code. And the idea of thread support for this task has
been deprecated.
|
| |
|
|
|
|
|
|
| |
Previously, a value of the "send" variable wasn't properly adjusted
in a rare case when syscall was interrupted by a signal. As a result,
these functions could send less data than the limit allows.
|
| |
|
|
|
|
| |
No functional changes.
|
|
|
|
| |
No functional changes. This follows the change from ad137a80919f.
|
|
|
|
|
| |
There's no real need in two separate implementations,
with and without kqueue support.
|
|
|
|
|
| |
It was made redundant by the previous change, since the "sent" variable
is no longer modified.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
The ngx_init_setproctitle() function, as used on systems without
setproctitle(3), may fail due to memory allocation errors, and
therefore its return code needs to be checked.
Reported by Markus Linnala.
|
|
|
|
|
| |
It's mostly dead code. And the idea of thread support for this task has
been deprecated.
|
|
|
|
| |
Signed-off-by: Piotr Sikora <piotr@cloudflare.com>
|
|
|
|
|
|
| |
This helps to reduce likelyhood of memory allocations in ngx_readv_chain(),
which are known to lead to noticeable effects in some cases, see
http://mailman.nginx.org/pipermail/nginx/2014-July/044512.html.
|