#
2050:d1298cc3f385 |
| 03-Dec-2021 |
Valentin Bartenev |
Merged with the 1.26 branch.
|
Revision tags: 1.26.1-1, 1.26.1 |
|
#
2025:9c4c2435499f |
| 01-Dec-2021 |
Max Romanov |
Fixing prototype process crash.
A prototype stores linked application processes structures. When an application process terminates, it's removed from the list. To avoid double removal, the pointer
Fixing prototype process crash.
A prototype stores linked application processes structures. When an application process terminates, it's removed from the list. To avoid double removal, the pointer to the next element should be set to NULL.
The issue was introduced in c8790d2a89bb.
show more ...
|
#
2014:f8a0992944df |
| 24-Nov-2021 |
Max Romanov |
Sending shared port to application prototype.
Application process started with shared port (and queue) already configured. But still waits for PORT_ACK message from router to start request processin
Sending shared port to application prototype.
Application process started with shared port (and queue) already configured. But still waits for PORT_ACK message from router to start request processing (so-called "ready state").
Waiting for router confirmation is necessary. Otherwise, the application may produce response and send it to router before the router have the information about the application process. This is a subject of further optimizations.
show more ...
|
Revision tags: 1.26.0-1, 1.26.0 |
|
#
1998:c8790d2a89bb |
| 09-Nov-2021 |
Tiago Natel de Moura |
Introducing application prototype processes.
|
#
1983:ca8c8d29f323 |
| 02-Nov-2021 |
Valentin Bartenev |
Improved logging of app module load errors.
|
#
1980:43553aa72111 |
| 28-Oct-2021 |
Max Romanov |
Moving request limit control to libunit.
Introducting application graceful stop. For now only used when application process reach request limit value.
This closes #585 issue on GitHub.
|
Revision tags: 1.25.0-1, 1.25.0, 1.24.0-1, 1.24.0, 1.23.0-1, 1.23.0, 1.22.0-1, 1.22.0, 1.21.0-1, 1.21.0 |
|
#
1673:883f2f79c2f6 |
| 29-Oct-2020 |
Tiago Natel de Moura |
Isolation: mounting of procfs by default when using "rootfs".
|
#
1668:03fa2be97871 |
| 27-Oct-2020 |
Max Romanov |
Preserving the app port write socket.
The socket is required for intercontextual communication in multithreaded apps.
|
Revision tags: 1.20.0-1, 1.20.0 |
|
#
1579:c80e692dc644 |
| 20-Aug-2020 |
Tiago Natel de Moura |
Moved isolation related code to "nxt_isolation.c".
|
Revision tags: 1.19.0-1, 1.19.0 |
|
#
1557:a9f991601a8b |
| 11-Aug-2020 |
Max Romanov |
Moving file descriptor blocking to libunit.
The default libunit behavior relies on blocking the recv() call for port file descriptors, which an application may override if needed. For external appl
Moving file descriptor blocking to libunit.
The default libunit behavior relies on blocking the recv() call for port file descriptors, which an application may override if needed. For external applications, port file descriptors were toggled to blocking mode before the exec() call. If the exec() call failed, descriptor remained blocked, so the process hanged while trying to read from it.
This patch moves file descriptor mode switch inside libunit.
show more ...
|
#
1543:42f27153db91 |
| 11-Aug-2020 |
Max Romanov |
Libunit refactoring: port management.
- Changed the port management callbacks to notifications, which e. g. avoids the need to call the libunit function - Added context and library instance referenc
Libunit refactoring: port management.
- Changed the port management callbacks to notifications, which e. g. avoids the need to call the libunit function - Added context and library instance reference counts for a safer resource release - Added the router main port initialization
show more ...
|
#
1518:46e8c414db88 |
| 23-Jul-2020 |
Max Romanov |
Fixing main and application port structs file descriptor init.
Correct value for non-initialized file descriptor is -1, because most of the checks in libunit compares file descriptor with -1 before
Fixing main and application port structs file descriptor init.
Correct value for non-initialized file descriptor is -1, because most of the checks in libunit compares file descriptor with -1 before performing an action. Using 0 as default value, may cause to close file descriptor #0, this may affect application logic.
It is not required to list this patch in changelog because impact is not seen by end users.
show more ...
|
#
1515:7a7c78ca9f91 |
| 22-Jul-2020 |
Max Romanov |
Fixing buffer overflow check in discovery.
Incorrect check prevents Unit to start without modules.
This issue was introduced in 4a3ec07f4b19.
|
#
1503:c21230ef5a0e |
| 22-Jun-2020 |
Tiago Natel de Moura |
Isolation: fixed build when features aren't detected.
|
Revision tags: 1.18.0-1, 1.18.0 |
|
#
1489:4a3ec07f4b19 |
| 28-May-2020 |
Tiago Natel de Moura |
Added "rootfs" feature.
|
#
1488:6976d36be926 |
| 09-Mar-2020 |
Tiago Natel de Moura |
Refactor of process management.
The process abstraction has changed to:
setup(task, process) start(task, process_data) prefork(task, process, mp)
The prefork() occurs in the main process rig
Refactor of process management.
The process abstraction has changed to:
setup(task, process) start(task, process_data) prefork(task, process, mp)
The prefork() occurs in the main process right before fork.
The file src/nxt_main_process.c is completely free of process specific logic.
The creation of a process now supports a PROCESS_CREATED state. The The setup() function of each process can set its state to either created or ready. If created, a MSG_PROCESS_CREATED is sent to main process, where external setup can be done (required for rootfs under container).
The core processes (discovery, controller and router) doesn't need external setup, then they all proceeds to their start() function straight away.
In the case of applications, the load of the module happens at the process setup() time and The module's init() function has changed to be the start() of the process.
The module API has changed to:
setup(task, process, conf) start(task, data)
As a direct benefit of the PROCESS_CREATED message, the clone(2) of processes using pid namespaces now doesn't need to create a pipe to make the child block until parent setup uid/gid mappings nor it needs to receive the child pid.
show more ...
|
Revision tags: 1.17.0-1, 1.17.0, 1.16.0-1, 1.16.0, 1.15.0-1, 1.15.0, 1.14.0-1, 1.14.0, 1.13.0-1, 1.13.0 |
|
#
1239:12102374f13a |
| 22-Oct-2019 |
Max Romanov |
Fixing process crash in case of module load error.
This is related to #330 issue on GitHub.
|
Revision tags: 1.12.0-1, 1.12.0, 1.11.0-2, 1.11.0-1, 1.11.0, 1.10.0-2, 1.10.0-1, 1.10.0 |
|
#
1104:cb554ac9411a |
| 17-Jul-2019 |
Max Romanov |
Exiting application process in case of pre_init stage error.
|
Revision tags: 1.9.0-1, 1.9.0 |
|
#
1007:7435036ed31e |
| 06-Mar-2019 |
Alexander Borisov |
Removed unnecessary abstraction layer.
|
Revision tags: 1.8.0-1, 1.8.0 |
|
#
977:4f9268f27b57 |
| 28-Feb-2019 |
Max Romanov |
Introducing Java Servlet Container beta.
|
Revision tags: 1.7.1-1, 1.7.1, 1.7-1, 1.7, 1.6-1, 1.6, 1.5-1, 1.5 |
|
#
804:fe8d2dea28dd |
| 09-Oct-2018 |
Valentin Bartenev |
Renamed "go" application type to "external".
There's nothing specific to Go language. This type of application object can be used to run any external application that utilizes libunit API.
|
Revision tags: 1.4-2, 1.4 |
|
#
743:e0f0cd7d244a |
| 06-Aug-2018 |
Max Romanov |
Unit application library.
Library now used in all language modules. Old 'nxt_app_*' code removed.
See src/test/nxt_unit_app_test.c for usage sample.
|
Revision tags: 1.3 |
|
#
723:c48e0ee3a8b3 |
| 12-Jul-2018 |
Max Romanov |
Enabled body buffer shared memory segmentation.
Changeset #699 fixes shared memory allocation: continous buffer with requested size should be allocated or function failed. For body longer than 10 M
Enabled body buffer shared memory segmentation.
Changeset #699 fixes shared memory allocation: continous buffer with requested size should be allocated or function failed. For body longer than 10 Mb, this allocation will definitely fails.
For body buffer it is not required to send it in a single continous buffer, so, need to request minimum reasonable amount of shared memory and try to extend it, if possible or allocate next buffer.
show more ...
|
#
703:2d536dde84d2 |
| 25-Jun-2018 |
Valentin Bartenev |
Introduced nxt_length() macro.
|
Revision tags: 1.2 |
|
#
678:f05d36cbe461 |
| 28-May-2018 |
Valentin Bartenev |
Configuration of environment variables for application processes.
|