summaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)AuthorFilesLines
2020-10-29Isolation: mounting of procfs by default when using "rootfs".Tiago Natel de Moura15-198/+353
2020-10-29Tests: added new ruby isolation test without namespaces.Tiago Natel de Moura1-1/+20
2020-10-29Isolation: correctly unmount non-dependent paths first.Tiago Natel de Moura1-4/+36
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-28Tests: improving get_application_type() and fixing its name.Max Romanov7-28/+14
This patch also enables multiversion tests running for Java.
2020-10-28Added threading to the libunit test app.Max Romanov1-22/+108
2020-10-28Preserving the app port write socket.Max Romanov4-10/+17
The socket is required for intercontextual communication in multithreaded apps.
2020-10-28Libunit: waking another context with the RPC_READY message.Max Romanov1-1/+37
2020-10-28Router: introducing the PORT_ACK message.Max Romanov4-5/+39
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-28Libunit: releasing cached read buffers when destroying context.Max Romanov1-0/+8
2020-10-28Libunit: added a function to discern main and worker contexts.Max Romanov2-0/+13
2020-10-28Libunit: gracefully quitting a multicontext application.Max Romanov2-24/+74
2020-10-28Router: broadcasting the SHM_ACK message to all process ports.Max Romanov3-11/+40
2020-10-28Added error response logging.Max Romanov1-4/+10
Every internal server error response should have a clear description in log.
2020-10-28Router: checking a buffer before accessing its memory fields.Max Romanov1-1/+1
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-28Libunit: protecting the new mmap from being used in another thread.Max Romanov1-1/+6
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-28Router: closing app worker's ports.Max Romanov1-0/+19
2020-10-27Tests: fixed isolation detection.Andrei Zeliankou3-27/+112
2020-10-26Increased request memory pool size.Valentin Bartenev1-1/+1
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-26Configure: using comma instead of space for passing -rpath value.Valentin Bartenev3-4/+3
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-19Tests: fixed unit.log print.Andrei Zeliankou44-488/+427
2020-10-14Fixing uninitialized ncpu value on unsupported platforms.Max Romanov1-1/+4
Thanks to @geyslan. This closes #455 issue on GitHub.
2020-10-14Java: response locale methods implemented.Max Romanov1-3/+18
This closes #479 issue on GitHub.
2020-10-13Using union instead of "void *".Igor Sysoev1-102/+110
2020-10-13Using C99 style declaration.Igor Sysoev1-563/+423
2020-10-13Reordering declarations.Igor Sysoev1-296/+317
2020-10-13Fixed building with Python 3.9.Valentin Bartenev2-2/+3
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-13Version bump.Valentin Bartenev1-2/+2
2020-10-08Adjusted tag 1.20.0 to include 0e985b300673.Valentin Bartenev1-1/+1
2020-10-08Updated 1.20.0 CHANGES to include pytest migration.1.20.0Valentin Bartenev2-0/+8
2020-10-08Added tag 1.20.0 for changeset f7e9cf490512Valentin Bartenev1-0/+1
2020-10-08Generated Dockerfiles for Unit 1.20.0.Valentin Bartenev9-9/+9
2020-10-08Added version 1.20.0 CHANGES.Valentin Bartenev2-0/+166
2020-09-22Regenerated dockerfiles.Konstantin Pavlov9-1/+112
2020-09-22Ensure docker images are using latest versions of base OS packages.Konstantin Pavlov1-3/+6
2020-09-22Added jsc11 docker image.Konstantin Pavlov2-2/+6
2020-10-06PHP: compatibility with 8.0.0 RC1.Valentin Bartenev4-10/+40
This closes #474 PR on GitHub.
2020-10-07Tests: minor fixes.Andrei Zeliankou46-95/+125
2020-10-07Tests: fixed loading selected module version.Valentin Bartenev3-3/+15
Previously, for PHP, Ruby, and Perl the latest version was always loaded in multi-version tests.
2020-10-07Router: fixed "not empty" pattern matching.Valentin Bartenev2-4/+15
The "!" pattern should be opposite to "", i.e. match only non-empty values. But after 3c00af54b937 it was equal to "!*", which is wrong.
2020-10-06Tests: fixed tests to run as root.Andrei Zeliankou2-8/+4
2020-10-06Removing a meaningless warning message.Max Romanov1-4/+0
Data in the queue and the socket are transmitted independently; special READ_QUEUE and READ_SOCKET message types are used for synchronization. The warning was accidentally committed with changeset 1d84b9e4b459.
2020-10-05Tests: pretty versions output for multi-version tests.Max Romanov1-3/+3
2020-10-05Tests: added websocket test with long length.Andrei Zeliankou1-0/+12
2020-10-05Tests: added ASGI Lifespan.Andrei Zeliankou5-0/+114
2020-10-02Fixed comment.Igor Sysoev1-1/+1
Thanks to 洪志道 (Hong Zhi Dao).
2020-10-01Tests: added ASGI HTTP applications.Max Romanov9-0/+598
2020-10-01Tests: added ASGI WebSocket.Max Romanov4-1/+1476
2020-10-01Python: ASGI server introduced.Max Romanov11-29/+3728
This closes #461 issue on GitHub.
2020-10-01Publishing libunit's malloc() and free() wrappers for apps.Max Romanov2-49/+57
2020-09-09PHP: fixed "rootfs" isolation dependency on system mounts.Tiago Natel de Moura4-135/+138