Age | Commit message (Collapse) | Author | Files | Lines |
|
Now users can disable the default tmpfs mount point
in the rootfs.
{
"isolation": {
"automount": {
"tmpfs": false
}
}
}
|
|
Different applications cannot reuse the same rootfs path
if not using namespaces because of globally visible
builtin mount points.
|
|
|
|
|
|
This closes #219 issue on GitHub.
|
|
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.
|
|
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).
|
|
Introducing manual protocol selection for 'universal' apps and frameworks.
|
|
Thanks to @wujjpp.
This closes #490 PR on GitHub.
|
|
|
|
|
|
The issue (deprecated API warning) introduced by ClassGraph upgrade
in ccd5c695b739 commit.
|
|
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.
|
|
Application terminates in case of thread creation failure.
|
|
|
|
This closes #486 issue on GitHub.
|
|
|
|
This closes #482 issue on GitHub.
|
|
This shall save a couple of CPU cycles in request processing.
|
|
|
|
This closes #458 issue on GitHub.
|
|
|
|
|
|
This closes #459 issue on GitHub.
|
|
|
|
|
|
This change is made to avoid situations when an application
is compiled for a version newer than the Java module used.
|
|
|
|
Compilers complained about unused variables after 37e2a3ea1bf1.
|
|
This closes #487 issue on GitHub.
|
|
The "iov" array was filled incorrectly when custom mounting options were set.
|
|
|
|
|
|
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.
|
|
This patch also enables multiversion tests running for Java.
|
|
|
|
The socket is required for intercontextual communication in multithreaded apps.
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
Every internal server error response should have a clear description in log.
|
|
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.
|
|
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.
|
|
|
|
|
|
Previous value was too small, which reduced efficiency of the pool causing
a lot of additional allocations even for simple request and response.
|
|
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
|