Max Romanov
d321d454f9
Perl: request processing in multiple threads.
...
This closes #486 issue on GitHub.
2020-11-05 16:10:59 +03:00
Max Romanov
e17e73edda
Tests: added Ruby threading tests.
2020-11-05 12:45:26 +03:00
Max Romanov
b6475df79c
Ruby: request processing in multiple threads.
...
This closes #482 issue on GitHub.
2020-11-05 12:45:10 +03:00
Max Romanov
9f8b746e77
Ruby: reusing static constant references to string objects.
...
This shall save a couple of CPU cycles in request processing.
2020-11-05 12:45:08 +03:00
Max Romanov
28f1eb55e7
Tests: added Java threading tests.
2020-11-05 00:06:13 +03:00
Max Romanov
29db46c52b
Java: request processing in multiple threads.
...
This closes #458 issue on GitHub.
2020-11-05 00:06:10 +03:00
Max Romanov
f27953af61
Tests: added Python threading tests.
2020-11-05 00:05:02 +03:00
Max Romanov
8e37b1cbf5
Python: fixing some arguments reference counting.
2020-11-05 00:05:00 +03:00
Max Romanov
8dcb0b9987
Python: request processing in multiple threads.
...
This closes #459 issue on GitHub.
2020-11-05 00:04:59 +03:00
Max Romanov
4225361f0e
Python: introducting macro to simplify minor version check.
2020-11-05 00:04:58 +03:00
Andrei Zeliankou
a29d970f10
Tests: disabled detailed output by default.
2020-11-03 01:32:40 +00:00
Andrei Zeliankou
5182d2c398
Tests: force applications to build for JVM 8.
...
This change is made to avoid situations when an application
is compiled for a version newer than the Java module used.
2020-11-03 01:31:05 +00:00
Max Romanov
4ba9e1d005
Java: upgrading 3rd-party components.
2020-11-02 21:05:04 +03:00
Valentin Bartenev
d03b217f33
Fixed building test app without debug.
...
Compilers complained about unused variables after 37e2a3ea1bf1.
2020-11-01 13:22:11 +03:00
Max Romanov
bbe4b97ca1
Java: supporting jsp-file attribute for servlet.
...
This closes #487 issue on GitHub.
2020-10-30 17:33:36 +03:00
Valentin Bartenev
50af47fd7c
Isolation: fixed passing custom options to nmount().
...
The "iov" array was filled incorrectly when custom mounting options were set.
2020-10-30 07:55:26 +03:00
Tiago Natel de Moura
0390cb3a61
Isolation: mounting of procfs by default when using "rootfs".
2020-10-29 20:30:53 +00:00
Tiago Natel de Moura
417f5d911d
Tests: added new ruby isolation test without namespaces.
2020-10-29 14:31:37 +00:00
Tiago Natel de Moura
5ffd88ad7c
Isolation: correctly unmount non-dependent paths first.
...
When mount points reside within other mount points, this
patch sorts them by path length and then unmounts then
in an order reverse to their mounting. This results in
independent paths being unmounted first.
This fixes an issue in buildbots where dependent paths failed
to unmount, leading to the build script removing system-wide
language libraries.
2020-10-29 14:24:38 +00:00
Max Romanov
6a00bab41e
Tests: improving get_application_type() and fixing its name.
...
This patch also enables multiversion tests running for Java.
2020-10-28 00:01:46 +03:00
Max Romanov
f007ad4dcf
Added threading to the libunit test app.
2020-10-28 00:01:46 +03:00
Max Romanov
80a8cb835b
Preserving the app port write socket.
...
The socket is required for intercontextual communication in multithreaded apps.
2020-10-28 00:01:46 +03:00
Max Romanov
d8cc830ea0
Libunit: waking another context with the RPC_READY message.
2020-10-28 00:01:46 +03:00
Max Romanov
4cb8aeb31a
Router: introducing the PORT_ACK message.
...
The PORT_ACK message is the router's response to the application's NEW_PORT
message. After receiving PORT_ACK, the application is safe to process requests
using this port.
This message avoids a racing condition when the application starts processing a
request from the shared queue and sends REQ_HEADERS_ACK. The REQ_HEADERS_ACK
message contains the application port ID as reply_port, which the router uses
to send request data. When the application creates a new port, it
immediately sends it to the main router thread. Because the request is
processed outside the main thread, a racing condition can occur between the
receipt of the new port in the main thread and the receipt of REQ_HEADERS_ACK
in the worker router thread where the same port is specified as reply_port.
2020-10-28 00:01:46 +03:00
Max Romanov
131b6a7ffa
Libunit: releasing cached read buffers when destroying context.
2020-10-28 00:01:46 +03:00
Max Romanov
a5508cec7a
Libunit: added a function to discern main and worker contexts.
2020-10-28 00:01:46 +03:00
Max Romanov
28ab1de364
Libunit: gracefully quitting a multicontext application.
2020-10-28 00:01:46 +03:00
Max Romanov
ccee391ab2
Router: broadcasting the SHM_ACK message to all process ports.
2020-10-28 00:01:46 +03:00
Max Romanov
735bb2f127
Added error response logging.
...
Every internal server error response should have a clear description in log.
2020-10-28 00:01:46 +03:00
Max Romanov
38a9027fe5
Router: checking a buffer before accessing its memory fields.
...
This fixes the router's crash on buildbot; the reason was an unexpected 'last'
response from the application to the router arriving before the response
headers. The last buffer is not a memory buffer, so the result of accessing
memory fields is unpredictable.
The unexpected 'last' message was caused by an error in libunit; fixed in
fee8fd855a00.
2020-10-28 00:01:46 +03:00
Max Romanov
00561a961f
Libunit: protecting the new mmap from being used in another thread.
...
Until the mmap is received by the router, only the creator thread may use this
mmap, so the "mmap not found" state in the router is avoided.
2020-10-28 00:01:46 +03:00
Max Romanov
779b1131c5
Router: closing app worker's ports.
2020-10-28 00:01:46 +03:00
Andrei Zeliankou
8956e668cc
Tests: fixed isolation detection.
2020-10-27 04:09:52 +00:00
Valentin Bartenev
434c3228d9
Increased request memory pool size.
...
Previous value was too small, which reduced efficiency of the pool causing
a lot of additional allocations even for simple request and response.
2020-10-26 22:26:02 +03:00
Valentin Bartenev
84136eb49d
Configure: using comma instead of space for passing -rpath value.
...
This variant will be more interoperable across various systems
and it's already used in Ruby module.
Otherwise, configure tests fail on NetBSD with:
gcc: Missing argument for -Wl,-rpath
2020-10-26 22:24:32 +03:00
Andrei Zeliankou
54837759f3
Tests: fixed unit.log print.
2020-10-19 22:25:29 +01:00
Max Romanov
d8628a43d0
Fixing uninitialized ncpu value on unsupported platforms.
...
Thanks to @geyslan.
This closes #455 issue on GitHub.
2020-10-14 18:41:31 +03:00
Max Romanov
9dcb7ec4b7
Java: response locale methods implemented.
...
This closes #479 issue on GitHub.
2020-10-14 16:18:34 +03:00
Igor Sysoev
90b2c9f7d6
Using union instead of "void *".
2020-10-13 12:56:56 +03:00
Igor Sysoev
f541cbcce4
Using C99 style declaration.
2020-10-13 12:56:56 +03:00
Igor Sysoev
edafa954d4
Reordering declarations.
2020-10-13 12:56:56 +03:00
Valentin Bartenev
0919166145
Fixed building with Python 3.9.
...
PyUnicode_GET_SIZE() in deprecated since 3.3 and will be removed in 3.12.
In version 3.9 it was explicitly marked by deprecation warning causing
compilation error with Unit.
PyUnicode_GET_LENGTH() must be used instead.
2020-10-13 01:37:39 +03:00
Valentin Bartenev
c4f2a58aaf
Version bump.
2020-10-13 01:37:39 +03:00
Valentin Bartenev
ad516735a6
Adjusted tag 1.20.0 to include 0e985b300673.
2020-10-08 19:09:16 +03:00
Valentin Bartenev
7d77d50568
Updated 1.20.0 CHANGES to include pytest migration.
2020-10-08 19:04:40 +03:00
Valentin Bartenev
10468ed22b
Added tag 1.20.0 for changeset f7e9cf490512
2020-10-08 18:55:50 +03:00
Valentin Bartenev
03d965b49c
Generated Dockerfiles for Unit 1.20.0.
2020-10-08 18:32:48 +03:00
Valentin Bartenev
f221ddbe66
Added version 1.20.0 CHANGES.
2020-10-08 18:32:36 +03:00
Konstantin Pavlov
bebc3746ca
Regenerated dockerfiles.
2020-09-22 15:55:28 +03:00
Konstantin Pavlov
5a8adce8c2
Ensure docker images are using latest versions of base OS packages.
2020-09-22 15:55:28 +03:00