summaryrefslogtreecommitdiffhomepage
path: root/src/os/unix/ngx_process.c (follow)
AgeCommit message (Collapse)AuthorFilesLines
2017-11-28Fixed "changing binary" when reaper is not init.Ruslan Ermilov1-3/+4
On some systems, it's possible that reaper of orphaned processes is set to something other than "init" process. On such systems, the changing binary procedure did not work. The fix is to check if PPID has changed, instead of assuming it's always 1 for orphaned processes.
2017-04-27Added missing "fall through" comments (ticket #1259).Maxim Dounin1-0/+1
Found by gcc7 (-Wimplicit-fallthrough).
2017-04-20Core: signal sender pid logging.Igor Sysoev1-8/+24
2017-03-16Added missing "static" specifier found by gcc -Wtraditional.Ruslan Ermilov1-1/+1
This has somehow escaped from fbdaad9b0e7b.
2016-03-31Fixed ngx_os_signal_process() prototype.Ruslan Ermilov1-2/+2
2016-03-31Fixed ngx_pid_t formatting in ngx_sprintf() and logging.Sergey Kandaurov1-1/+1
2013-06-05Valgrind: sigaction() failure now ignored.Maxim Dounin1-0/+5
Valgrind intercepts SIGUSR2 in some cases, and nginx might not be able to start due to sigaction() failure. If compiled with NGX_VALGRIND defined, we now ignore the failure of sigaction().
2012-10-18Removed conditional compilation from waitpid() error test.Maxim Dounin1-4/+0
There are reports that call to a signal handler for an exited process despite waitpid() already called for the process may happen on Linux as well.
2012-03-05Whitespace fixes.Maxim Dounin1-1/+1
2012-01-18Copyright updated.Maxim Konovalov1-0/+1
2011-11-28Added (void) as we intentionally ignore returned values.Maxim Dounin1-1/+1
Requested by Igor Sysoev.
2011-11-23Unlock of shared memory zones on process crash.Maxim Dounin1-11/+50
If process exited abnormally while holding lock on some shared memory zone - unlock it. It may be not safe thing to do (as crash with lock held may result in corrupted shared memory structure, and other processes will subsequently crash while trying to access shared data), therefore complain loudly if unlock succeeds.
2011-11-23Added shmtx interface to forcibly unlock mutexes.Maxim Dounin1-1/+1
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().
2011-09-19Replaced "can not" with "cannot" and "could not" in a bunch of places.Ruslan Ermilov1-1/+1
Fixed nearby grammar errors.
2011-08-22SIGWINCH/NOACCEPT signal is disabled now in non-daemon mode.Igor Sysoev1-2/+7
Non-daemon mode is currently used by supervisord, daemontools and so on or during debugging. The NOACCEPT signal is only used for online upgrade which is not supported when nginx is run under supervisord, etc., so this change should not break existant setups.
2010-11-25use copied strerror() messages and autoconfigured sys_nerr valueIgor Sysoev1-6/+4
2010-07-08style fixIgor Sysoev1-4/+4
2010-03-25*) introduce ngx_time_sigsafe_update() to update the error log time onlyIgor Sysoev1-1/+1
*) change ngx_time_update() interface
2010-03-13*) use previously cached GMT offset value to update time from a signal handlerIgor Sysoev1-1/+1
*) change ngx_time_update() interface since there are no notification methods those return time
2010-03-12use sys_errlist[] in signal handler insteadIgor Sysoev1-5/+6
of non Async-Signal-Safe strerror_r()
2009-11-23add NGX_PROCESS_HELPER process statusIgor Sysoev1-0/+1
2009-08-26twice termination delay only after SIGALRM, otherwise many separate SIGCHLDIgor Sysoev1-0/+1
and SIGIO signals quickly increase delay to the level when SIGKILL is sent
2009-08-26ignore SIGSYSIgor Sysoev1-0/+2
2009-08-10introduce NGX_PROCESS_JUST_SPAWN and change field name accordinglyIgor Sysoev1-3/+15
2009-04-21implement "-s signal" option for UnixIgor Sysoev1-6/+33
2009-02-05AIX has no WCOREDUMP()Igor Sysoev1-0/+6
2008-04-09grammar fixIgor Sysoev1-3/+4
2006-12-23lower the log level of the waitpid() ENOCHILD error on FreeBSDIgor Sysoev1-1/+5
2006-09-16fix typoIgor Sysoev1-1/+1
2005-10-19nginx-0.3.3-RELEASE importrelease-0.3.3Igor Sysoev1-4/+3
*) Change: the "bl" and "af" parameters of the "listen" directive was renamed to the "backlog" and "accept_filter". *) Feature: the "rcvbuf" and "sndbuf" parameters of the "listen" directive. *) Change: the "$msec" log parameter does not require now the additional the gettimeofday() system call. *) Feature: the -t switch now tests the "listen" directives. *) Bugfix: if the invalid address was specified in the "listen" directive, then after the -HUP signal nginx left an open socket in the CLOSED state. *) Bugfix: the mime type may be incorrectly set to default value for index file with variable in the name; the bug had appeared in 0.3.0. *) Feature: the "timer_resolution" directive. *) Feature: the millisecond "$upstream_response_time" log parameter. *) Bugfix: a temporary file with client request body now is removed just after the response header was transferred to a client. *) Bugfix: OpenSSL 0.9.6 compatibility. *) Bugfix: the SSL certificate and key file paths could not be relative. *) Bugfix: the "ssl_prefer_server_ciphers" directive did not work in the ngx_imap_ssl_module. *) Bugfix: the "ssl_protocols" directive allowed to specify the single protocol only.
2005-10-07nginx-0.3.0-RELEASE importrelease-0.3.0Igor Sysoev1-5/+0
*) Change: the 10-days live time limit of worker process was eliminated. The limit was introduced because of millisecond timers overflow.
2005-09-23nginx-0.2.0-RELEASE importrelease-0.2.0Igor Sysoev1-9/+9
*) The pid-file names used during online upgrade was changed and now is not required a manual rename operation. The old master process adds the ".oldbin" suffix to its pid-file and executes a new binary file. The new master process creates usual pid-file without the ".newbin" suffix. If the master process exits, then old master process renames back its pid-file with the ".oldbin" suffix to the pid-file without suffix. *) Change: the "worker_connections" directive, new name of the "connections" directive; now the directive specifies maximum number of connections, but not maximum socket descriptor number. *) Feature: SSL supports the session cache inside one worker process. *) Feature: the "satisfy_any" directive. *) Change: the ngx_http_access_module and ngx_http_auth_basic_module do not run for subrequests. *) Feature: the "worker_rlimit_nofile" and "worker_rlimit_sigpending" directives. *) Bugfix: if all backend using in load-balancing failed after one error, then nginx did not try do connect to them during 60 seconds. *) Bugfix: in IMAP/POP3 command argument parsing. Thanks to Rob Mueller. *) Bugfix: errors while using SSL in IMAP/POP3 proxy. *) Bugfix: errors while using SSI and gzipping. *) Bugfix: the "Expires" and "Cache-Control" header lines were omitted from the 304 responses. Thanks to Alexandr Kukushkin.
2005-09-06nginx-0.1.44-RELEASE importrelease-0.1.44Igor Sysoev1-0/+213
*) Feature: the IMAP/POP3 proxy supports SSL. *) Feature: the "proxy_timeout" directive of the ngx_imap_proxy_module. *) Feature: the "userid_mark" directive. *) Feature: the $remote_user variable value is determined independently of authorization use.
2005-05-19nginx-0.1.32-RELEASE importrelease-0.1.32Igor Sysoev1-7/+11
*) Bugfix: the arguments were omitted in the redirects, issued by the "rewrite" directive; the bug had appeared in 0.1.29. *) Feature: the "if" directive supports the captures in regular expressions. *) Feature: the "set" directive supports the variables and the captures of regular expressions. *) Feature: the "X-Accel-Redirect" response header line is supported in proxy and FastCGI mode.
2005-03-19nginx-0.1.25-RELEASE importrelease-0.1.25Igor Sysoev1-1/+0
*) Bugfix: nginx did run on Linux parisc. *) Feature: nginx now does not start under FreeBSD if the sysctl kern.ipc.somaxconn value is too big. *) Bugfix: if a request was internally redirected by the ngx_http_index_module module to the ngx_http_proxy_module or ngx_http_fastcgi_module modules, then the index file was not closed after request completion. *) Feature: the "proxy_pass" can be used in location with regular expression. *) Feature: the ngx_http_rewrite_filter_module module supports the condition like "if ($HTTP_USER_AGENT ~ MSIE)". *) Bugfix: nginx started too slow if the large number of addresses and text values were used in the "geo" directive. *) Change: a variable name must be declared as "$name" in the "geo" directive. The previous variant without "$" is still supported, but will be removed soon. *) Feature: the "%{VARIABLE}v" logging parameter. *) Feature: the "set $name value" directive. *) Bugfix: gcc 4.0 compatibility. *) Feature: the --with-openssl-opt=OPTIONS autoconfiguration directive.
2004-12-21nginx-0.1.13-RELEASE importrelease-0.1.13Igor Sysoev1-3/+3
*) Feature: the server_names_hash and server_names_hash_threshold directives. *) Bugfix: the *.domain.tld names in the "server_name" directive did not work. *) Bugfix: the %request_length log parameter logged the incorrect length.
2004-11-11nginx-0.1.5-RELEASE importrelease-0.1.5Igor Sysoev1-6/+24
*) Bugfix: on Solaris and Linux there may be too many "recvmsg() returned not enough data" alerts. *) Bugfix: there were the "writev() failed (22: Invalid argument)" errors on Solaris in proxy mode without sendfile. On other platforms that do not support sendfile at all the process got caught in an endless loop. *) Bugfix: segmentation fault on Solaris in proxy mode and using sendfile. *) Bugfix: segmentation fault on Solaris. *) Bugfix: on-line upgrade did not work on Linux. *) Bugfix: the ngx_http_autoindex_module module did not escape the spaces, the quotes, and the percent signs in the directory listing. *) Change: the decrease of the copy operations. *) Feature: the userid_p3p directive.
2004-10-21nginx-0.1.2-RELEASE importrelease-0.1.2Igor Sysoev1-1/+1
*) Feature: the --user=USER, --group=GROUP, and --with-ld-opt=OPTIONS options in configure. *) Feature: the server_name directive supports *.domain.tld. *) Bugfix: the portability improvements. *) Bugfix: if configuration file was set in command line, the reconfiguration was impossible; the bug had appeared in 0.1.1. *) Bugfix: proxy module may get caught in an endless loop when sendfile is not used. *) Bugfix: with sendfile the response was not recoded according to the charset module directives; the bug had appeared in 0.1.1. *) Bugfix: very seldom bug in the kqueue processing. *) Bugfix: the gzip module compressed the proxied responses that was already compressed.
2004-10-11nginx-0.1.1-RELEASE importrelease-0.1.1Igor Sysoev1-4/+24
*) Feature: the gzip_types directive. *) Feature: the tcp_nodelay directive. *) Feature: the send_lowat directive is working not only on OSes that support kqueue NOTE_LOWAT, but also on OSes that support SO_SNDLOWAT. *) Feature: the setproctitle() emulation for Linux and Solaris. *) Bugfix: the "Location" header rewrite bug fixed while the proxying. *) Bugfix: the ngx_http_chunked_module module may get caught in an endless loop. *) Bugfix: the /dev/poll module bugs fixed. *) Bugfix: the responses were corrupted when the temporary files were used while the proxying. *) Bugfix: the unescaped requests were passed to the backend. *) Bugfix: while the build configuration on Linux 2.4 the --with-poll_module parameter was required.
2004-09-29nginx-0.1.0-2004-09-29-20:00:49 import; remove years from copyrightIgor Sysoev1-1/+1
2004-09-28nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused filesIgor Sysoev1-0/+5
2004-07-14nginx-0.0.7-2004-07-14-20:01:42 importIgor Sysoev1-12/+6
2004-07-13nginx-0.0.7-2004-07-13-21:59:12 importIgor Sysoev1-7/+21
2004-06-23nginx-0.0.7-2004-06-23-19:18:17 importIgor Sysoev1-0/+16
2004-06-23nginx-0.0.7-2004-06-23-09:54:27 importIgor Sysoev1-27/+55
2004-06-18nginx-0.0.7-2004-06-18-20:22:16 importIgor Sysoev1-3/+15
2004-06-15nginx-0.0.7-2004-06-15-21:47:16 importIgor Sysoev1-0/+2
2004-06-15nginx-0.0.7-2004-06-15-11:55:11 importIgor Sysoev1-22/+50
2004-04-16nginx-0.0.3-2004-04-16-09:14:16 importIgor Sysoev1-32/+22
2004-04-04nginx-0.0.3-2004-04-05-00:32:09 importIgor Sysoev1-0/+13