summaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)AuthorFilesLines
2020-03-03Tests: chdir() and open() for PHP module.Tiago Natel de Moura6-6/+161
These tests ensure optimizations in the chdir calls don't break SAPI semantics.
2020-03-03Tests: added tests for "fallback" option for the "share" action.Andrei Zeliankou1-0/+212
2020-03-03Tests: check unique options in "action" object.Andrei Zeliankou1-0/+50
2020-03-03Added a "fallback" option to be used with the "share" action.Valentin Bartenev4-23/+68
It allows proceeding to another action if a file isn't available. An example: { "share": "/data/www/", "fallback": { "pass": "applications/php" } } In the example above, an attempt is made first to serve a request with a file from the "/data/www/" directory. If there's no such file, the request is passed to the "php" application. Fallback actions may be nested: { "share": "/data/www/", "fallback": { "share": "/data/cache/", "fallback": { "proxy": "http://127.0.0.1:9000" } } }
2020-03-03Improved validation of the "action" object.Valentin Bartenev2-18/+41
Now it enforces the mutual exclusivity of "pass", "proxy", and "share" options.
2020-03-03PHP: optimization to avoid surplus chdir(2) calls.Tiago Natel de Moura2-101/+310
For each request, the worker calls the php_execute_script function from libphp that changes to the script directory before doing its work and then restores the process directory before returning. The chdir(2) calls it performs are unnecessary in Unit design. In simple benchmarks, profiling shows that the chdir syscall code path (syscall, FS walk, etc.) is where the CPU spends most of its time. PHP SAPI semantics requires the script to be run from the script directory. In Unit's PHP implementation, we have two use cases: - script - arbitrary path The "script" configuration doesn't have much need for a working directory change: it can be changed once at module initialization. The module needs to chdir again only if the user's PHP script also calls chdir to switch to another directory during execution. If "script" is not used in Unit configuration, we must ensure the script is run from its directory (thus calling chdir before exec), but there's no need to restore the working directory later. Our implementation disables mandatory chdir calls with the SAPI option SAPI_OPTION_NO_CHDIR, instead calling chdir only when needed. To detect the user's calls to chdir, a simple "unit" extension is added that hooks the built-in chdir() PHP call.
2020-03-03Fixing request_app_link reference counting for delayed requests.Max Romanov1-9/+36
Router built with debug may stop with assertion during stalled requests re-schedule. This was caused by missing reference counting increment before nxt_router_port_select() call.
2020-03-03Java: fixing Spring applications start.Max Romanov1-1/+1
This closes #403 issue on GitHub.
2020-03-03Node.js: fixing x86 warning about the signed/unsigned comparison.Max Romanov1-2/+1
2020-03-02Tests: truncated huge messages while logging.Andrei Zeliankou1-12/+33
2020-02-27Tests: added "-r" option to print unit.log on failures.Andrei Zeliankou1-5/+24
2020-02-27Tests: added test with invalid IPv6 address in routing block.Andrei Zeliankou1-0/+1
2020-02-25PHP: fixed php >= 7.4 with zts enabled.Tiago Natel de Moura1-13/+17
2020-02-21Tests: more static tests.Andrei Zeliankou1-4/+26
2020-02-20Tests: added PHP test with invalid index extension only.Andrei Zeliankou1-0/+30
2020-02-20Tests: added proxy test with large body.Andrei Zeliankou1-0/+7
2020-02-20Tests: more tests with "max_body_size".Andrei Zeliankou1-0/+25
2020-02-20Configuration: removing UTF-8 BOM from the input JSON.Valentin Bartenev1-0/+7
Some editors can add it to JSON files.
2020-02-20Configuration: stripping comments from the input JSON.Valentin Bartenev1-6/+66
This allows to have JavaScript-like comments in the uploading JSON.
2020-02-19Version bump.Valentin Bartenev1-2/+2
2020-02-06Added tag 1.15.0 for changeset 801ac82f80fbValentin Bartenev1-0/+1
2020-02-06Generated Dockerfiles for Unit 1.15.0.1.15.0Valentin Bartenev8-8/+8
2020-02-06Added version 1.15.0 CHANGES.Valentin Bartenev2-0/+68
2020-02-05Tests: added test for uploading files with SSL.Tiago Natel de Moura2-0/+49
* * * [mq]: multipart
2020-02-05Tests: add helper for form-data and multipart.Tiago Natel de Moura2-22/+90
2020-02-05Kept the value of c->socket.read_handler while data is available.Tiago Natel de Moura1-4/+0
This closes #370 in GitHub.
2020-02-04Tests: fixing Python 3.8.1 errors on Mac.Max Romanov3-21/+18
- "Can't pickle local object ..." - "if __name__ == '__main__':" pattern required for multiprocessing
2020-02-04Removing duplicate macro definitions.Max Romanov1-4/+0
This issue was introduced in 2c7f79bf0a1f.
2020-02-03Initializing local buffer ctx_impl field for correct release.Max Romanov1-0/+1
Uninitialized ctx_impl field may cause crash in application process. To reproduce the issue, need to trigger shared memory buffer send error on application side. In our case, send error caused by router process crash. This issue was introduced in 2c7f79bf0a1f.
2020-02-03Fixed req_app_link reference counting on cancellation.Max Romanov1-16/+7
Re-scheduled req_app_link structures should have use_count exactly equal to the number of references from the application and port list. However, there's one extra usage decrement that occurs after the req_app_link is created because the use_count is initialised as 1. This patch removes all excess instances of the usage decrement that caused preliminary req_app_link release and router process crash. To reproduce the issue need to cause request rescheduling between 2 app processes. This issue was introduced in 61e9f23a566d.
2020-02-03Storing pointer to next buffer in chain before free the buffer.Max Romanov1-2/+3
This is required to avoid dereference of freed memory. Found by Coverity (CID 353372).
2020-02-03Added missing stream argument to error message.Max Romanov1-1/+2
Found by Coverity (CID 353386).
2020-02-03Freeing memory allocated for engine structure in case of error.Max Romanov1-1/+1
Found by Coverity (CID 353389).
2020-01-23Tests: check for php extension.Tiago Natel de Moura2-1/+14
2020-01-28PHP: added check for the ".php" extension.Valentin Bartenev1-4/+11
A check for the ".php" extension is added to prevent execution of files with arbitrary extensions in cases where "index" and "script" options aren't used.
2020-01-28Go: adding main configure CFLAGS and LDFLAGS to module build flags.Max Romanov1-1/+10
This makes ASAN buildbot workers to work out-of-the-box.
2020-01-28Fixed missing IPv6 checking in route-addr and an unused variable.Axel Duch1-2/+6
This closes #363 issue on Github. Thanks to to 洪志道 (Hong Zhi Dao).
2020-01-28Node.js: suppress compilation warning.Max Romanov1-1/+1
2020-01-28Java: fixing configure errors reporting.Max Romanov1-3/+7
2020-01-28Java: introducing SHA512 sum validation for external JARs.Max Romanov4-1/+76
2020-01-28Java: fixing maven repository URL.Max Romanov1-1/+1
It is required to use https scheme and different host to download packages from maven repository.
2020-01-28Packages: added curl dependency to fetch Java archives.Max Romanov2-2/+2
2020-01-28Ruby: changing callback functions prototype for v2.7.Max Romanov2-11/+13
This closes #371 issue on GitHub.
2020-01-27Version bump.Valentin Bartenev1-2/+2
2020-01-27Updated copyright notice.Valentin Bartenev2-8/+18
2019-12-26Added tag 1.14.0 for changeset 6e28966ed1f2Valentin Bartenev1-0/+1
2019-12-26Generated Dockerfiles for Unit 1.14.0.1.14.0Valentin Bartenev8-8/+8
2019-12-26Added version 1.14.0 CHANGES.Valentin Bartenev2-0/+75
2019-12-25Go: changing import name for "unit.nginx.org/go".Max Romanov14-15/+15
This patch includes packaging changes - update unit-go installation directory.
2019-12-16Using the 64-bit Linux capability mode when available.Tiago Natel de Moura1-1/+11
For backward compatibility, the Linux capabilities macros exposes v1 semantics (32-bit) by default. We probe the version at runtime (because of pre-compiled binaries) but the kernel syscall API is conservative and it doesn't return a 64-bit capability version if the input version is v1. This patch suppress the kernel > 5.0 dmesg log below: capability: warning: 'unitd' uses 32-bit capabilities (legacy support in use)