| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
| |
It is currently used from master process on abnormal worker termination to
unlock accept mutex (unlocking of accept mutex was broken in 1.0.2). It is
expected to be used in the future to unlock other mutexes as well.
Shared mutex code was rewritten to make this possible in a safe way, i.e.
with a check if lock was actually held by the exited process. We again use
pid to lock mutex, and use separate atomic variable for a count of processes
waiting in sem_wait().
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Stale write event may happen if epoll_wait() reported both read and write
events, and processing of the read event closed descriptor.
Patch by Yichun Zhang (agentzh).
|
|
|
|
|
|
| |
Non-default servers may not have ssl context created if there are no
certificate defined. Make sure to check if ssl context present before
using it.
|
|
|
|
| |
Patch by Alexander Usov. The bug has been introduced in r4267.
|
|
|
|
|
|
| |
A fix for the broken build applied.
Patch from Igor Sysoev.
|
|
|
|
|
|
| |
Check if received data length match Content-Length header (if present),
don't cache response if no match found. This prevents caching of corrupted
response in case of premature connection close by upstream.
|
|
|
|
|
|
|
|
| |
Used "\x5" in 5th byte to claim presence of both audio and video. Used
previous tag size 0 in the beginning of the flv body (bytes 10 .. 13) as
required by specification (see http://www.adobe.com/devnet/f4v.html).
Patch by Piotr Sikora.
|
| |
|
|
|
|
|
|
|
|
| |
Previously it used a hardcoded value of 300 seconds. Also added the
"valid=" parameter to the "resolver" directive that can be used to
override the cache validity time.
Patch by Kirill A. Korinskiy with minor changes.
|
| |
|
|
|
|
|
| |
After first upgrade it was ignored since r4020 (1.1.1, 1.0.9) as
ngx_daemonized wasn't set.
|
| |
|
|
|
|
|
| |
for output of ./configure options, etc., since ngx_log_stderr() output
length is limited by 2048 characters defined as NGX_MAX_ERROR_STR.
|
|
|
|
| |
Patch by Piotr Sikora.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The following problems were fixed:
1. Directive fastcgi_cache affected headers sent to backends in unrelated
servers / locations (see ticket #45).
2. If-Unmodified-Since, If-Match and If-Range headers were sent to backends
if fastcgi_cache was used.
3. Cache-related headers were sent to backends if there were no fastcgi_param
directives and fastcgi_cache was used at server level.
|
|
|
|
| |
No functional changes.
|
|
|
|
| |
This was missed in proxy HTTP/1.1 support commit (r4127).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Headers cleared with cache enabled (If-Modified-Since etc.) might be cleared
in unrelated servers/locations without proxy_cache enabled if proxy_cache was
used in some server/location.
Example config which triggered the problem:
proxy_set_header X-Test "test";
server { location /1 { proxy_cache name; proxy_pass ... } }
server { location /2 { proxy_pass ... } }
Another one:
server {
proxy_cache name;
location /1 { proxy_pass ... }
location /2 { proxy_cache off; proxy_pass ... }
}
In both cases If-Modified-Since header wasn't sent to backend in location /2.
Fix is to not modify conf->headers_source, but instead merge user-supplied
headers from conf->headers_source and default headers (either cache or not)
into separate headers_merged array.
|
| |
|
|
|
|
|
| |
It supersedes old "limit_zone" directive (deprecated accordingly) and uses
syntax consistent with the "limit_req_zone" directive.
|
| |
|
|
|
|
| |
No functional changes.
|
|
|
|
| |
"open_file_cache max=0" case.
|
|
|
|
| |
Thanks to Ben Hawkes.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The following config caused segmentation fault due to conf->file not
being properly set if "ssl on" was inherited from the http level:
http {
ssl on;
server {
}
}
|
|
|
|
|
|
|
|
| |
If possible we now just extend already present file buffer in p->out chain
instead of keeping ngx_buf_t for each buffer we've flushed to disk. This
saves about 120 bytes of memory per buffer flushed to disk, and resolves
high CPU usage observed in edge cases (due to coalescing these buffers on
send).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. In ngx_event_pipe_write_chain_to_temp_file() make sure to fully write
all shadow buffers up to last_shadow. With this change recycled buffers
cannot appear in p->out anymore. This also fixes segmentation faults
observed due to ngx_event_pipe_write_chain_to_temp() not freeing any
raw buffers while still returning NGX_OK.
2. In ngx_event_pipe_write_to_downstream() we now properly check for busy
size as a size of buffers, not a size of data in these buffers. This
fixes situations where all available buffers became busy (including
segmentation faults due to this).
3. The ngx_event_pipe_free_shadow_raw_buf() function is dropped. It's
incorrect and not needed.
|
| |
|
| |
|
| |
|
|
|
|
| |
Patch by Kirill A. Korinskiy.
|
| |
|
| |
|
|
|
|
| |
The bug has been introduced in r3799.
|
|
|
|
|
| |
Previous patch missed special case for one iovec, it needs total bytes
written to be returned as well.
|
|
|
|
|
|
| |
Previously result of last iteration's writev() was returned. This was
unnoticed as return value was only used if chain contained only one or
two buffers.
|
| |
|
| |
|
| |
|