#
2229:3a230013e58a |
| 27-Oct-2022 |
Andrew Clayton |
Fixed some function definitions.
Future releases of GCC will render function definitions like
func()
invalid by default. See the previous commit 09f88c9 ("Fixed main() prototypes in auto tests."
Fixed some function definitions.
Future releases of GCC will render function definitions like
func()
invalid by default. See the previous commit 09f88c9 ("Fixed main() prototypes in auto tests.") for details.
Such functions should be defined like
func(void)
This is a good thing to do regardless of the upcoming GCC changes.
Reviewed-by: Alejandro Colomar <alx@nginx.com> Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
show more ...
|
Revision tags: 1.28.0-1, 1.28.0, 1.27.0-1, 1.27.0 |
|
#
2050:d1298cc3f385 |
| 03-Dec-2021 |
Valentin Bartenev |
Merged with the 1.26 branch.
|
Revision tags: 1.26.1-1, 1.26.1 |
|
#
2015:4570130dd183 |
| 24-Nov-2021 |
Max Romanov |
Fixing alerts on router restart.
Splitting the process type connectivity matrix to 'keep ports' and 'send ports'; the 'keep ports' matrix is used to clean up unnecessary ports after forking a new pr
Fixing alerts on router restart.
Splitting the process type connectivity matrix to 'keep ports' and 'send ports'; the 'keep ports' matrix is used to clean up unnecessary ports after forking a new process, and the 'send ports' matrix determines which process types expect to get created process ports.
Unfortunately, the original single connectivity matrix no longer works because of an application stop delay caused by prototypes. Existing applications should not get the new router port at the moment.
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.
|
#
1997:a8a3f1d243ee |
| 09-Nov-2021 |
Tiago Natel de Moura |
Changed nxt_process_* for reuse.
This enables the reuse of process creation functions.
|
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 |
|
#
1789:959b19fff9cf |
| 03-Feb-2021 |
Max Romanov |
Fixing shared app queue unmap size.
Shared app queue takes more memory than port memory. To unmap all memory pages correct size need to be specified for munmap() call. Otherwise 4 Mb memory leaked
Fixing shared app queue unmap size.
Shared app queue takes more memory than port memory. To unmap all memory pages correct size need to be specified for munmap() call. Otherwise 4 Mb memory leaked on each configured application removal.
The issue was introduced in 1d84b9e4b459.
show more ...
|
Revision tags: 1.21.0-1, 1.21.0, 1.20.0-1, 1.20.0, 1.19.0-1, 1.19.0 |
|
#
1558:026e4b909b61 |
| 11-Aug-2020 |
Max Romanov |
Style fixes for 2 file descriptors transfer over port.
Two consecutive fd and fd2 fields replaced with array.
|
#
1555:1d84b9e4b459 |
| 11-Aug-2020 |
Max Romanov |
Introducing application and port shared memory queues.
The goal is to minimize the number of syscalls needed to deliver a message.
|
#
1547:cbcd76704c90 |
| 11-Aug-2020 |
Max Romanov |
Introducing the shared application port.
This is the port shared between all application processes which use it to pass requests for processing. Using it significantly simplifies the request proces
Introducing the shared application port.
This is the port shared between all application processes which use it to pass requests for processing. Using it significantly simplifies the request processing code in the router. The drawback is 2 more file descriptors per each configured application and more complex libunit message wait/read code.
show more ...
|
Revision tags: 1.18.0-1, 1.18.0 |
|
#
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 |
|
#
1302:d4c6a91f7091 |
| 26-Nov-2019 |
Tiago Natel |
Refactor of process init.
Introduces the functions nxt_process_init_create() and nxt_process_init_creds_set().
|
Revision tags: 1.13.0-1, 1.13.0 |
|
#
1254:aae6699f4eee |
| 29-Oct-2019 |
Hong Zhi Dao |
Process port refactoring.
- Introduced nxt_runtime_process_port_create(). - Moved nxt_process_use() into nxt_process.c from nxt_runtime.c. - Renamed nxt_runtime_process_remove_pid() as nxt_runtime_p
Process port refactoring.
- Introduced nxt_runtime_process_port_create(). - Moved nxt_process_use() into nxt_process.c from nxt_runtime.c. - Renamed nxt_runtime_process_remove_pid() as nxt_runtime_process_remove(). - Some public functions transformed to static.
This closes #327 issue on GitHub.
show more ...
|
Revision tags: 1.12.0-1, 1.12.0, 1.11.0-2, 1.11.0-1, 1.11.0 |
|
#
1180:9424f6fa0d1a |
| 18-Sep-2019 |
Max Romanov |
Fixing master process crash after failed fork.
This closes #312 issue on GitHub.
|
Revision tags: 1.10.0-2, 1.10.0-1, 1.10.0 |
|
#
1131:ec7d924d8dfb |
| 20-Aug-2019 |
Max Romanov |
Introducing websocket support in router and libunit.
|
Revision tags: 1.9.0-1, 1.9.0 |
|
#
1008:84f2370bd642 |
| 11-Mar-2019 |
Andrey Zelenkov |
Style.
|
Revision tags: 1.8.0-1, 1.8.0, 1.7.1-1, 1.7.1, 1.7-1, 1.7, 1.6-1, 1.6, 1.5-1, 1.5 |
|
#
799:fdd5d8ee8165 |
| 02-Oct-2018 |
Max Romanov |
Making port fd blocking on app side and non-blocking in Unit.
This issue was introduced in libunit commit (e0f0cd7d244a). All port sockets in application should be in blocking mode whereas Unit its
Making port fd blocking on app side and non-blocking in Unit.
This issue was introduced in libunit commit (e0f0cd7d244a). All port sockets in application should be in blocking mode whereas Unit itself operates non-blocking sockets.
Having non-blocking sockets in application may cause send error during intensive response packets generation.
See https://mailman.nginx.org/pipermail/unit/2018-October/000080.html.
show more ...
|
Revision tags: 1.4-2, 1.4 |
|
#
761:43683916898a |
| 07-Sep-2018 |
Max Romanov |
Misspelled variable names fixed.
|
#
753:0f0094dc0f51 |
| 10-Aug-2018 |
Max Romanov |
Introducing app joint to accurate app release.
For accurate app descriptor release, it is required to count the number of use counts. Use count increased when: - app linked to configuration app que
Introducing app joint to accurate app release.
For accurate app descriptor release, it is required to count the number of use counts. Use count increased when: - app linked to configuration app queue; - socket conf stores pointer to app; - request for start app process posted to router service thread;
Application port has pointer to app, but it does not increase use count to avoid use count loop.
Timer needs a pointer to nxt_timer_t which is stored in engine timers tree. nxt_timer_t now resides in nxt_app_joint_t and does not lock the application.
Start process port RPC handlers is also linked to nxt_app_joint_t.
App joint (nxt_app_joint_t) is a 'weak pointer': - single threaded; - use countable; - store pointer to nxt_app_t (which can be NULL);
nxt_app_t has pointer to nxt_app_joint_t and update its pointer to app.
show more ...
|
Revision tags: 1.3 |
|
#
697:b73f6d3709c2 |
| 18-Jun-2018 |
Igor Sysoev |
Fixed exit status on start failure.
This and previous commit close #131 issue on GitHub.
|
#
696:9476693a47bd |
| 18-Jun-2018 |
Igor Sysoev |
Removing Unix control socket on start failure.
The bug had appeared in 5cc5002a788e when process type has been converted to bitmask. This commit reverts the type back to a number.
This commit is re
Removing Unix control socket on start failure.
The bug had appeared in 5cc5002a788e when process type has been converted to bitmask. This commit reverts the type back to a number.
This commit is related to #131 issue on GitHub.
show more ...
|
Revision tags: 1.2, 1.1, 1.0, 0.7 |
|
#
583:39771486d997 |
| 21-Mar-2018 |
Max Romanov |
Triggering RPC error for all handlers on port close.
This is required to avoid crashes and memory leaks on Unit exit.
|
#
564:762f8c976ead |
| 05-Mar-2018 |
Valentin Bartenev |
Reduced number of critical log levels.
|
#
551:220b0834790b |
| 20-Feb-2018 |
Max Romanov |
Removed unwanted assertions.
|
Revision tags: 0.6, 0.5 |
|
#
507:fa714d76592b |
| 29-Jan-2018 |
Max Romanov |
Introducing extended app process management.
- Pre-fork 'processes.spare' application processes; - fork more processes to keep 'processes.spare' idle processes; - fork on-demand up to 'processes.max
Introducing extended app process management.
- Pre-fork 'processes.spare' application processes; - fork more processes to keep 'processes.spare' idle processes; - fork on-demand up to 'processes.max' count; - scale down idle application processes above 'processes.spare' after 'processes.idle_timeout'; - number of concurrently started application processes also limited by 'processes.spare' (or 1, if spare is 0).
show more ...
|