Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2020-05-12 | Waiting for router instead of reporting to user on config update. | Max Romanov | 1 | -24/+25 | |
2020-05-12 | Blocking config change when applying the initial router config. | Max Romanov | 1 | -11/+32 | |
2020-04-16 | Using malloc/free for the http fields hash. | Max Romanov | 1 | -4/+1 | |
This is required due to lack of a graceful shutdown: there is a small gap between the runtime's memory pool release and router process's exit. Thus, a worker thread may start processing a request between these two operations, which may result in an http fields hash access and subsequent crash. To simplify issue reproduction, it makes sense to add a 2 sec sleep before exit() in nxt_runtime_exit(). | |||||
2020-04-08 | Controller: improved handling of unix domain control socket. | Valentin Bartenev | 1 | -1/+1 | |
One of the ways to detect Unit's startup and subsequent readiness to accept commands relies on waiting for the control socket file to be created. Earlier, it was unreliable due to a race condition between the client's connect() and the daemon's listen() calls after the socket's bind() call. Now, unix domain listening sockets are created with a nxt_listen_socket_create() call as follows: s = socket(); unlink("path/to/socket.tmp") bind(s, "path/to/socket.tmp"); listen(s); rename("path/to/socket.tmp", "path/to/socket"); This eliminates a time-lapse when the socket file is already created but nobody is listening on it yet, which therefore prevents the condition described above. Also, it allows reliably detecting whether the socket is being used or simply wasn't cleaned after the daemon stopped abruptly. A successful connection to the socket file means the daemon has been started; otherwise, the file can be overwritten. | |||||
2020-04-08 | Removed unused code related to testing of address binding. | Valentin Bartenev | 1 | -1/+1 | |
2020-04-08 | Controller: eliminated extra control socket's sockaddr copying. | Valentin Bartenev | 1 | -11/+1 | |
2020-02-20 | Configuration: removing UTF-8 BOM from the input JSON. | Valentin Bartenev | 1 | -0/+7 | |
Some editors can add it to JSON files. | |||||
2019-09-16 | Configuration: added ability to access object members with slashes. | Valentin Bartenev | 1 | -0/+2 | |
Now URI encoding can be used to escape "/" in the request path: GET /config/listeners/unix:%2Fpath%2Fto%2Fsocket/ | |||||
2019-04-24 | Configuration: support for POST operations on arrays. | Valentin Bartenev | 1 | -7/+27 | |
It allows to add an array element without specifying the index. | |||||
2019-03-22 | Destroying pool in case of error. | Max Romanov | 1 | -0/+1 | |
This closes #233 issue on GitHub. Thanks to 洪志道 (Hong Zhi Dao). | |||||
2018-09-20 | Preserving inherited engine memory pool in controller process. | Max Romanov | 1 | -8/+0 | |
The pool is inherited from master process since changeset 854a1a440616. | |||||
2018-09-20 | Controller: certificates storage interface. | Valentin Bartenev | 1 | -18/+404 | |
2018-07-02 | Controller: fixed handling of zero Content-Length. | Valentin Bartenev | 1 | -1/+1 | |
2018-06-25 | Introduced nxt_length() macro. | Valentin Bartenev | 1 | -8/+8 | |
2018-05-21 | Added SERVER_SOFTWARE request meta-variable. | Valentin Bartenev | 1 | -2/+2 | |
2018-04-26 | Controller waits READY message from router. | Max Romanov | 1 | -14/+47 | |
This required to avoid racing condition when controller receive router port before router receives controller port. | |||||
2018-04-17 | Added missing checks if nxt_port_rpc_register_handler() failed. | Valentin Bartenev | 1 | -0/+4 | |
This closes #97 issue on GitHub. Thanks to 洪志道 (Hong Zhi Dao). | |||||
2018-04-11 | Controller: added "/config" prefix for the configuration object. | Valentin Bartenev | 1 | -0/+11 | |
2018-04-08 | Controller: fixed a memory leak when PUT operation failed. | Valentin Bartenev | 1 | -0/+2 | |
Thanks to 洪志道 (Hong Zhi Dao). | |||||
2018-03-13 | Capitalization in the "Server" field. | Valentin Bartenev | 1 | -2/+2 | |
2018-03-05 | Reduced number of critical log levels. | Valentin Bartenev | 1 | -6/+5 | |
2017-12-25 | HTTP parser: reworked header fields handling. | Valentin Bartenev | 1 | -24/+22 | |
2017-11-27 | A number of engine connections is decreased on connection close. | Igor Sysoev | 1 | -3/+1 | |
2017-10-25 | Checking the result of shared memory buffer allocation. | Max Romanov | 1 | -0/+3 | |
This closes #57 issue on GitHub. | |||||
2017-10-18 | Router: fixed segfault after configuration change. | Igor Sysoev | 1 | -1/+1 | |
2017-10-10 | Basic validation errors. | Valentin Bartenev | 1 | -18/+67 | |
2017-10-04 | Using port 'post' facility to proxy remove pid message to workers. | Max Romanov | 1 | -1/+1 | |
Remove pid proxying to worker engines implementation was originally overcomplicated. Memory pool and 2 engine posts (there and back again) are optimized out and replaced with band new nxt_port_post() call. | |||||
2017-10-04 | Using engine memiory pool for port write allocations. | Max Romanov | 1 | -1/+1 | |
To allow use port from different threads, the first step is to avoid using port's memory pool for temporary allocations required to send data through the port. Including but not limited by: - buffers for data; - send message structures; - new mmap fd notifications; It is still safe to use port memory pool for incoming buffers allocations because recieve operation bound to single thread. | |||||
2017-09-27 | Event engine memory cache for nxt_sockaddr_t. | Igor Sysoev | 1 | -0/+10 | |
Introducing event engine memory cache and using the cache for nxt_sockaddr_t structures. | |||||
2017-09-15 | Introducing named port message handlers to avoid misprints. | Max Romanov | 1 | -14/+9 | |
2017-09-15 | Fixed port handlers arrays. | Valentin Bartenev | 1 | -0/+1 | |
2017-09-10 | Configuration persistence. | Valentin Bartenev | 1 | -0/+87 | |
Now configuration survives server reloads. | |||||
2017-09-14 | Fixed textual socket name lengths and Unix domain sockaddr length. | Igor Sysoev | 1 | -3/+2 | |
2017-08-31 | nginext has been renamed to unit. | Igor Sysoev | 1 | -2/+2 | |
2017-08-30 | Controller: resending configuration to router after its restart. | Valentin Bartenev | 1 | -66/+116 | |
Now router crash can be survived with less damage. | |||||
2017-08-30 | Controller: waiting for router before start to accept connections. | Valentin Bartenev | 1 | -12/+48 | |
Previously, reconfiguration might fail right after the daemon start if the router process wasn't ready yet. | |||||
2017-08-30 | Controller: correct handling of missing router port. | Valentin Bartenev | 1 | -11/+41 | |
There's no router port if the router process is just crashed or hasn't started yet. | |||||
2017-08-29 | The master process has been renamed to the main process. | Igor Sysoev | 1 | -1/+1 | |
2017-08-28 | Improved reconfiguration requests serialization. | Valentin Bartenev | 1 | -81/+49 | |
Previously, only applying of updated configuration was serialized, while the changes themselves could be done in parallel on the same configuration. That resulted in inconsistent behaviour. | |||||
2017-08-26 | Added configure and command line option --control. | Igor Sysoev | 1 | -16/+0 | |
2017-08-13 | Fixed building by GCC after 7d1017bd0f6c. | Valentin Bartenev | 1 | -1/+1 | |
2017-08-11 | Controller: more HTTP headers and detailed JSON parsing errors. | Valentin Bartenev | 1 | -116/+238 | |
2017-08-04 | Fixed building without debug after c1ae75b4e17c and 6281674ecf4f. | Valentin Bartenev | 1 | -6/+2 | |
2017-08-02 | Using port rpc in controller->router configuration update. | Max Romanov | 1 | -10/+24 | |
2017-08-02 | Added bit flags to type parameter of nxt_port_socket_write(). | Max Romanov | 1 | -1/+2 | |
NXT_PORT_MSG_LAST - mark message as last; NXT_PORT_MSG_CLOSE_FD - close fd right after send; Type constants altered to include last flag for single buffer messages. Last sign is critical for coming port RPC layer. Handlers unregistered on last message. Create sync buffer is not convenient, extra parameter is better. | |||||
2017-07-21 | Fixed building without debug. | Valentin Bartenev | 1 | -4/+2 | |
2017-07-12 | New process port exchange changed. READY message type introduced. | Max Romanov | 1 | -8/+5 | |
Application process start request DATA message from router to master. Master notifies router via NEW_PORT message after worker process become ready. | |||||
2017-07-12 | Controller: proper reconfiguration requests handling. | Valentin Bartenev | 1 | -43/+136 | |
Now controller serializes all reconfiguration requests and waits for result from router. | |||||
2017-07-10 | Controller: passing full configuration to router. | Valentin Bartenev | 1 | -170/+6 | |
2017-07-06 | Controller: sending JSON configuration to router. | Valentin Bartenev | 1 | -32/+210 | |