Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2020-11-16 | Tests: fixing tests interrupt in terminal. | Max Romanov | 10 | -9/+52 | |
KeyboardInterrupt re-raised. | |||||
2020-11-16 | Tests: making available versions unique. | Max Romanov | 1 | -4/+3 | |
2020-11-13 | Isolation: added option to disable tmpfs mount. | Tiago Natel de Moura | 3 | -19/+33 | |
Now users can disable the default tmpfs mount point in the rootfs. { "isolation": { "automount": { "tmpfs": false } } } | |||||
2020-11-12 | Tests: removed test case that reuses rootfs path. | Tiago Natel de Moura | 1 | -4/+0 | |
Different applications cannot reuse the same rootfs path if not using namespaces because of globally visible builtin mount points. | |||||
2020-11-12 | Tests: added a test for "body_buffer_size" option. | Andrei Zeliankou | 1 | -0/+38 | |
2020-11-11 | Tests: added a test for fastcgi_finish_request() function. | Andrei Zeliankou | 2 | -0/+37 | |
2020-11-11 | PHP: implementation of the fastcgi_finish_request() function. | Valentin Bartenev | 1 | -2/+76 | |
This closes #219 issue on GitHub. | |||||
2020-11-11 | PHP: prevention of consuming unread request body on finalization. | Valentin Bartenev | 1 | -0/+15 | |
The php_request_shutdown() function calls sapi_deactivate() that tries to read request body into a dummy buffer. In our case it's just waste of CPU cycles. This change is also required for the following implementation of the fastcgi_finish_request() function, where the request context can be cleared by the time of finalization. | |||||
2020-11-10 | Fixing multi-buffer body send to application. | Max Romanov | 2 | -6/+20 | |
Application shared queue only capable to pass one shared memory buffer. The rest buffers in chain needs to be send directly to application in response to REQ_HEADERS_AC message. The issue can be reproduced for configurations where 'body_buffer_size' is greater than memory segment size (10 Mb). Requests with body size greater than 10 Mb are just `stuck` e.g. not passed to application awaiting for more data from router. The bug was introduced in 1d84b9e4b459 (v1.19.0). | |||||
2020-11-10 | Python: supporting ASGI legacy protocol. | Max Romanov | 11 | -28/+242 | |
Introducing manual protocol selection for 'universal' apps and frameworks. | |||||
2020-11-10 | Java: fixing isolation mounts for Alpine musl. | Max Romanov | 1 | -1/+1 | |
Thanks to @wujjpp. This closes #490 PR on GitHub. | |||||
2020-11-10 | Tests: supporting instant app parameters in load(). | Max Romanov | 3 | -89/+37 | |
2020-11-09 | Packages: added Ubuntu 20.10 "groovy" support. | Andrei Belov | 8 | -1/+274 | |
2020-11-06 | Java: fixing ClassGraph deprecated API call. | Max Romanov | 1 | -1/+1 | |
The issue (deprecated API warning) introduced by ClassGraph upgrade in ccd5c695b739 commit. | |||||
2020-11-06 | Tests: fixing racing condition in ASGI threads test. | Max Romanov | 1 | -5/+5 | |
ASGI threads read all the requests from the queue before start processing it. This why test need to wait a little to let the ASGI thread start request processing and block. In virtual environment any thread or process may be delayed and only method to avoid racing is a reasonable sleep increase. | |||||
2020-11-05 | Ruby: error checking during thread creation. | Max Romanov | 1 | -2/+6 | |
Application terminates in case of thread creation failure. | |||||
2020-11-05 | Tests: added Perl threading tests. | Max Romanov | 2 | -0/+52 | |
2020-11-05 | Perl: request processing in multiple threads. | Max Romanov | 5 | -148/+374 | |
This closes #486 issue on GitHub. | |||||
2020-11-05 | Tests: added Ruby threading tests. | Max Romanov | 2 | -0/+54 | |
2020-11-05 | Ruby: request processing in multiple threads. | Max Romanov | 6 | -206/+510 | |
This closes #482 issue on GitHub. | |||||
2020-11-05 | Ruby: reusing static constant references to string objects. | Max Romanov | 1 | -43/+115 | |
This shall save a couple of CPU cycles in request processing. | |||||
2020-11-05 | Tests: added Java threading tests. | Max Romanov | 2 | -0/+73 | |
2020-11-05 | Java: request processing in multiple threads. | Max Romanov | 4 | -14/+205 | |
This closes #458 issue on GitHub. | |||||
2020-11-05 | Tests: added Python threading tests. | Max Romanov | 4 | -0/+124 | |
2020-11-05 | Python: fixing some arguments reference counting. | Max Romanov | 1 | -33/+130 | |
2020-11-05 | Python: request processing in multiple threads. | Max Romanov | 13 | -497/+992 | |
This closes #459 issue on GitHub. | |||||
2020-11-05 | Python: introducting macro to simplify minor version check. | Max Romanov | 1 | -1/+3 | |
2020-11-03 | Tests: disabled detailed output by default. | Andrei Zeliankou | 1 | -1/+1 | |
2020-11-03 | Tests: force applications to build for JVM 8. | Andrei Zeliankou | 1 | -0/+1 | |
This change is made to avoid situations when an application is compiled for a version newer than the Java module used. | |||||
2020-11-02 | Java: upgrading 3rd-party components. | Max Romanov | 3 | -19/+19 | |
2020-11-01 | Fixed building test app without debug. | Valentin Bartenev | 1 | -2/+8 | |
Compilers complained about unused variables after 37e2a3ea1bf1. | |||||
2020-10-30 | Java: supporting jsp-file attribute for servlet. | Max Romanov | 1 | -0/+66 | |
This closes #487 issue on GitHub. | |||||
2020-10-30 | Isolation: fixed passing custom options to nmount(). | Valentin Bartenev | 1 | -4/+8 | |
The "iov" array was filled incorrectly when custom mounting options were set. | |||||
2020-10-29 | Isolation: mounting of procfs by default when using "rootfs". | Tiago Natel de Moura | 15 | -198/+353 | |
2020-10-29 | Tests: added new ruby isolation test without namespaces. | Tiago Natel de Moura | 1 | -1/+20 | |
2020-10-29 | Isolation: correctly unmount non-dependent paths first. | Tiago Natel de Moura | 1 | -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-28 | Tests: improving get_application_type() and fixing its name. | Max Romanov | 7 | -28/+14 | |
This patch also enables multiversion tests running for Java. | |||||
2020-10-28 | Added threading to the libunit test app. | Max Romanov | 1 | -22/+108 | |
2020-10-28 | Preserving the app port write socket. | Max Romanov | 4 | -10/+17 | |
The socket is required for intercontextual communication in multithreaded apps. | |||||
2020-10-28 | Libunit: waking another context with the RPC_READY message. | Max Romanov | 1 | -1/+37 | |
2020-10-28 | Router: introducing the PORT_ACK message. | Max Romanov | 4 | -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-28 | Libunit: releasing cached read buffers when destroying context. | Max Romanov | 1 | -0/+8 | |
2020-10-28 | Libunit: added a function to discern main and worker contexts. | Max Romanov | 2 | -0/+13 | |
2020-10-28 | Libunit: gracefully quitting a multicontext application. | Max Romanov | 2 | -24/+74 | |
2020-10-28 | Router: broadcasting the SHM_ACK message to all process ports. | Max Romanov | 3 | -11/+40 | |
2020-10-28 | Added error response logging. | Max Romanov | 1 | -4/+10 | |
Every internal server error response should have a clear description in log. | |||||
2020-10-28 | Router: checking a buffer before accessing its memory fields. | Max Romanov | 1 | -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-28 | Libunit: protecting the new mmap from being used in another thread. | Max Romanov | 1 | -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-28 | Router: closing app worker's ports. | Max Romanov | 1 | -0/+19 | |
2020-10-27 | Tests: fixed isolation detection. | Andrei Zeliankou | 3 | -27/+112 | |