summaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)AuthorFilesLines
2021-11-25PHP: fixed crash when calling module functions in OPcache preload.Valentin Bartenev2-2/+12
In PHP, custom fastcgi_finish_request() and overloaded chdir() functions can be invoked by an OPcache preloading script (it runs when php_module_startup() is called in the app process setup handler). In this case, there was no runtime context set so trying to access it caused a segmentation fault. This closes #602 issue on GitHub.
2021-11-25Added a changelog for 730e903f4534.Max Romanov1-0/+7
2021-11-25Fixing access_log structure reference counting.Max Romanov2-4/+33
The reference to the access_log structure is stored in the current nxt_router_conf_t and the global nxt_router_t. When the reference is copied, the reference counter should be adjusted accordingly. This closes #593 issue on GitHub.
2021-11-24Fixing zombie process appearance and hang up on shutdown.Max Romanov1-1/+3
After the c8790d2a89bb commit, the SIGCHLD handler may return before processing all awaiting PIDs. To avoid zombie processes and ensure successful main process termination, waitpid() must be called until an error is returned. This closes #600 issue on GitHub.
2021-11-24Fixing alerts on router restart.Max Romanov3-7/+16
Splitting the process type connectivity matrix to 'keep ports' and 'send ports'; the 'keep ports' matrix is used to clean up unnecessary ports after forking a new process, and the 'send ports' matrix determines which process types expect to get created process ports. Unfortunately, the original single connectivity matrix no longer works because of an application stop delay caused by prototypes. Existing applications should not get the new router port at the moment.
2021-11-24Sending shared port to application prototype.Max Romanov8-85/+110
Application process started with shared port (and queue) already configured. But still waits for PORT_ACK message from router to start request processing (so-called "ready state"). Waiting for router confirmation is necessary. Otherwise, the application may produce response and send it to router before the router have the information about the application process. This is a subject of further optimizations.
2021-11-23Fixed possible access to an uninitialized field.Valentin Bartenev1-3/+3
The "recv_msg.incoming_buf" is checked after jumping to the "done" label if nxt_socket_msg_oob_get_fds() returns an error. Also moved initialization of "port_msg" near to its first usage. Found by Coverity (CID 373899).
2021-11-22Version bump.Valentin Bartenev2-2/+31
2021-11-18Unit 1.26.0 release.Valentin Bartenev1-0/+1
2021-11-18Generated Dockerfiles for Unit 1.26.0.1.26.0Valentin Bartenev8-8/+8
2021-11-18Added version 1.26.0 CHANGES.Valentin Bartenev2-5/+34
2021-11-18Reordered changes for 1.26.0 by significance (subjective).Valentin Bartenev1-10/+10
2021-11-15Tests: fixed session reuse tests.Andrei Zeliankou1-17/+13
Since SSL_CTX_sess_set_cache_size() can't guarantee the size of the cache there is no need to test edge "cache_size" values.
2021-11-15Tests: refactored working with processes.Andrei Zeliankou8-39/+39
2021-11-12Packages: added support for Fedora 35.Andrei Belov3-1/+76
2021-11-11Removed the execute permission bit from "nxt_h1proto.c".Valentin Bartenev1-0/+0
It was accidentally added in 4645a43bc248.
2021-11-10Tests: added more tests for "query" routing pattern.Andrei Zeliankou1-8/+16
2021-11-09Tests: PHP shared opcache test added.Max Romanov4-9/+54
2021-11-09Tests: app prototype related fixes.Max Romanov5-3/+19
2021-11-09Introducing application prototype processes.Tiago Natel de Moura15-182/+1098
2021-11-09Changed nxt_process_* for reuse.Tiago Natel de Moura7-261/+255
This enables the reuse of process creation functions.
2021-11-09Introduced SCM_CREDENTIALS / SCM_CREDS in the socket control msgs.Tiago Natel de Moura16-349/+578
2021-11-09Style fix in "changes.xml".Artem Konev1-2/+2
2021-11-09Packages: fixed dependency checks on multi-arch Debian/Ubuntu.Andrei Belov1-1/+1
2021-11-08Go: fixing racing condition on app start.Max Romanov2-5/+9
Request procesing loop should be started in ready handler to avoid race between go-routine start and context ready flag assignment. The issue introduced in 43553aa72111.
2021-11-08Moving change record to the right place.Max Romanov1-7/+7
The change record was incorectly merged in 43553aa72111.
2021-11-05Router: matching query string support.Zhidao HONG5-0/+101
The "query" option matches decoded arguments, including plus ('+') to space (' '). Like "uri", it can be a string or an array of strings.
2021-11-05HTTP: removed surplus check for r->args is not NULL.Zhidao HONG2-6/+2
2021-11-05Router: fixed nxt_http_route_arguments_parse().Zhidao HONG1-20/+11
A valid query string argument is a string of "key=value\[&key=value ...\]" pairs with non-empty keys. The fix removes invalid empty arguments.
2021-11-05Configuration: improved matching pattern error messages.Zhidao HONG1-22/+51
2021-11-04Tests: added "requirements.txt".Andrei Zeliankou1-0/+2
2021-11-04Tests: added migration test for "share".Andrei Zeliankou2-4/+52
2021-11-02Tests: added pyOpenSSL module check were necessary.Andrei Zeliankou2-0/+4
2021-11-02Tests: removed unused imports.Andrei Zeliankou11-12/+0
2021-11-02Improved logging of app module load errors.Valentin Bartenev1-5/+22
2021-10-28Tests: added tests for TLS session tickets.Andrei Zeliankou1-0/+195
2021-10-28Tests: added tests for TLS sessions.Andrei Zeliankou1-0/+129
2021-10-28Moving request limit control to libunit.Max Romanov24-248/+273
Introducting application graceful stop. For now only used when application process reach request limit value. This closes #585 issue on GitHub.
2021-10-28Python: creating and reusing asgi_add_reader() wrapper.Max Romanov1-62/+21
2021-10-28Adding explicit app reference to nxt_router_app_port_release().Max Romanov1-11/+8
port->app field is not thread safe and should be used in main thread only. To release port after request processing, application reference should be obtained from corresponding request descriptor.
2021-10-27Fixed memleaks if PID checks fail in nxt_port_incoming_port_mmap().Valentin Bartenev1-11/+12
Memory allocated for "mem" and "mmap_handler" leaked in that case. Also removed one dead assigment of "hdr" pointer.
2021-10-26Fixed a potential descriptor leak if mmap() failed.Valentin Bartenev1-0/+1
2021-10-26Custom implementation of Base64 decoding function.Valentin Bartenev9-82/+209
Compared to the previous implementation based on OpenSSL, the new implementation has these advantages: 1. Strict and reliable detection of invalid strings, including strings with less than 4 bytes of garbage at the end; 2. Allows to use Base64 strings without '=' padding.
2021-10-21Packages: removed support for EOL'ed Debian/Ubuntu distros.Andrei Belov3-102/+3
While here, default debhelper compat level bumped to 11 (this is the version installed out of the box on Ubuntu 18.04 "bionic" which is the oldest one from supported distros).
2021-10-21Packages: added Ubuntu 21.10 "impish" support.Andrei Belov7-3/+193
2021-10-19Packages: fixed dependency tracking for Go and Java modules on RHEL7.Andrei Belov1-2/+2
2021-10-18Tests: style.Andrei Zeliankou51-74/+19
2021-10-12Removed unused declarations.Zhidao HONG1-4/+0
Declarations became unused after 6976d36be926. No functional changes.
2021-10-09Configuration: automatic migration to the new "share" behavior.Zhidao HONG8-46/+174
2021-10-08Merged with the default branch.Artem Konev3-0/+269