summaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)AuthorFilesLines
2020-03-25Tests: added tests for comments in JSON.Andrei Zeliankou1-0/+61
2020-03-25Tests: UTF-8 BOM test.Andrei Zeliankou1-0/+19
2020-03-25Configuration: fixed comments parsing.Valentin Bartenev1-1/+5
Unclosed multi-line comments and "/" at the end of JSON shouldn't be allowed.
2020-03-23Tests: increase default "read_timeout" value to 60s.Andrei Zeliankou2-15/+16
This change is necessary to avoid errors on slow hosts. Also slightly reworked argument passing to the recvall() function.
2020-03-23Tests: added notification on unsuccessful connect().Andrei Zeliankou1-1/+1
2020-03-23Tests: wait for unit.pid file before running tests.Andrei Zeliankou1-1/+4
Waiting for control.unit.sock was replaced by unit.pid due to current problem with race between connect() and listen() calls for control.unit.sock. This change should be reverted after fix.
2020-03-19Fixed filepath in the image checksum file.Konstantin Pavlov1-1/+1
2020-03-23Tests: rearranging functions in main.py.Andrei Zeliankou1-69/+69
2020-03-23Tests: terminate unitd process on exit().Andrei Zeliankou1-12/+14
2020-03-19Completing buffers immediatelyMax Romanov1-5/+2
This fixes crash introduced in 039b00e32e3d.
2020-03-19Completing request header buffers to avoid memory leak.Max Romanov3-22/+29
Before this fix, only persistent connection request buffers were completed. This issue was introduced in dc403927ab0b.
2020-03-19Tests: test_python_procman.py refactored.Andrei Zeliankou1-115/+58
2020-03-19Tests: fixed prerequisite in test_share_fallback.py.Andrei Zeliankou1-3/+3
2020-03-17Fixing body fd access racing condition.Max Romanov3-18/+32
To avoid closing the body fd prematurely, the fd value is moved from the request struct to the app link. The body fd should not be closed immediately after the request is sent to the application due to possible request rescheduling.
2020-03-17Checking sendfile() availability in configure.Max Romanov1-24/+32
Removing SF_NODISKIO flag for FreeBSD sendfile() check because it is not used yet and to support DragonFlyBSD. This closes #414 issue on GitHub.
2020-03-16Version bump.Valentin Bartenev1-2/+2
2020-03-13Added checksum generation to make dist target.Konstantin Pavlov1-0/+4
While at it, clean up dist artifacts on make clean.
2020-03-13Added a target to export docker images as tarballsKonstantin Pavlov2-5/+31
2020-03-12Tests: skip "close failed" alert in test_proxy_parallel test.Andrei Zeliankou1-0/+2
2020-03-12Added tag 1.16.0 for changeset 8bab088952ddValentin Bartenev1-0/+1
2020-03-12Generated Dockerfiles for Unit 1.16.0.1.16.0Valentin Bartenev8-8/+8
2020-03-12Added version 1.16.0 CHANGES.Valentin Bartenev2-0/+103
2020-03-12Using disk file to store large request body.Max Romanov18-36/+455
This closes #386 on GitHub.
2020-03-12Moving request memory pool retain call after RPC data allocation.Max Romanov2-10/+15
If the call is done only after a successful RPC data allocation, its corresponding release call is not missed, which avoids a potential leak.
2020-03-12Checking Content-Length value right after header parse.Max Romanov2-6/+8
The check was moved from the request body read stage.
2020-03-12Tests: added Python input readline and iterator tests.Max Romanov5-6/+125
2020-03-12Python: implementing input readline and line iterator.Max Romanov1-2/+145
2020-03-12Introducing readline function in libunit.Max Romanov4-44/+53
Ruby and Java modules now use this function instead of own implementations.
2020-03-12Tests: fixed race in USR1 signal tests.Andrei Zeliankou1-19/+22
Also, minor style fixes applied.
2020-03-12Tests: round robin upstream tests.Andrei Zeliankou4-0/+489
2020-03-12Tests: skip "last message send failed" alerts globally.Andrei Zeliankou1-0/+1
2020-03-06Round robin upstream added.Igor Sysoev11-34/+654
2020-03-04Legacy upstream code removed.Igor Sysoev4-274/+0
2020-03-04Refactored nxt_http_action.Igor Sysoev3-21/+19
2020-01-31Tests: more routing tests with negative rules.Andrei Zeliankou1-0/+57
2020-03-11Fixed negative patterns combined with address rules.Axel Duch1-6/+40
2020-03-10Tests: use blocking to print unit.log files.Andrei Zeliankou1-1/+1
2020-03-10Tests: redirect tests output to the stdout.Andrei Zeliankou6-13/+20
2020-03-06Tests: unitd stderr output redirected to unit.log.Valentin Bartenev1-13/+13
A part of the debug log was printed to stderr before the log file was opened. Now, this output is redirected to the same log file.
2020-03-06Tests: simplified unitd process running.Valentin Bartenev1-42/+26
There are no reasons to wrap the Unit daemon in a separate Python process.
2020-03-04PHP: fixed log format in alert.Tiago Natel de Moura1-1/+2
Found by Coverity: CID 354832 and CID 354833.
2020-03-04The kqueue EOF flag might be ignored on some conditions.Igor Sysoev1-2/+2
If kqueue reported both the EVFILT_READ and the EVFILT_WRITE events for the socket but only the former had the EV_EOF flag set, the flag was silently ignored.
2020-03-04PHP: added ZTS indication to ./configure output.Valentin Bartenev1-0/+19
2020-03-04PHP: rearranged feature checks in ./configure.Valentin Bartenev1-46/+48
Now it prints version even if PHP was built without embed SAPI.
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.