Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2018-06-25 | Introduced nxt_length() macro. | Valentin Bartenev | 1 | -3/+3 | |
2018-05-30 | Fixed keep-alive hanging after reconfiguration. | Igor Sysoev | 1 | -60/+30 | |
2018-04-27 | Eliminating possible NULL pointer dereference. | Max Romanov | 1 | -1/+3 | |
Found by Coverity (CID 276138). | |||||
2018-04-26 | Controller waits READY message from router. | Max Romanov | 1 | -0/+34 | |
This required to avoid racing condition when controller receive router port before router receives controller port. | |||||
2018-04-19 | Router: fixed race condition while access log reopening. | Valentin Bartenev | 1 | -2/+21 | |
In order to reopen access log, the router process creates a memory pool and allocates a buffer to send RPC message for the main process. Previously, the memory pool was destroyed when RPC response handler was called. It appeared, that the buffer completion handler could be not triggered by that time and still remained in a queue. Now the memory pool is destroyed only after both events are happen. | |||||
2018-04-18 | Added missing cleanup when nxt_port_socket_write() failed. | Valentin Bartenev | 1 | -13/+39 | |
2018-04-17 | Added missing checks if nxt_port_rpc_register_handler() failed. | Valentin Bartenev | 1 | -1/+1 | |
This closes #97 issue on GitHub. Thanks to 洪志道 (Hong Zhi Dao). | |||||
2018-04-11 | Access log reopening. | Valentin Bartenev | 1 | -0/+113 | |
2018-04-11 | Initial access log support. | Valentin Bartenev | 1 | -5/+298 | |
2018-04-05 | Handling error return from application 'run()' function. | Max Romanov | 1 | -3/+7 | |
Server error response generated or connection closed. | |||||
2018-04-05 | Stopping timed out application process. | Max Romanov | 1 | -9/+88 | |
2018-04-03 | HTTP: using r->mem_pool retention counter for response buffers. | Igor Sysoev | 1 | -9/+8 | |
2018-03-28 | Using more expressive name for field. | Igor Sysoev | 1 | -18/+19 | |
2018-03-21 | Added Ruby support. | Alexander Borisov | 1 | -0/+88 | |
2018-03-15 | Skipping idle state when port already closed. | Max Romanov | 1 | -1/+1 | |
2018-03-14 | Ignoring response for already terminated request. | Max Romanov | 1 | -0/+3 | |
Request can be terminated because of invalid response headers and content should be ignored in this case. | |||||
2018-03-13 | Releasing application on configuration failure. | Max Romanov | 1 | -0/+15 | |
2018-03-07 | Socket configuration should retain application. | Max Romanov | 1 | -0/+8 | |
This retains application during reconfiguration if an incoming connection was already established before the reconfiguration, but no request was yet created for the connection and thus no application was yet assigned to the request. | |||||
2018-03-05 | Reduced number of critical log levels. | Valentin Bartenev | 1 | -15/+14 | |
2018-02-20 | Removed unwanted assertions. | Max Romanov | 1 | -11/+19 | |
2018-02-09 | Made nxt_assert() statements to be compiled only with debug. | Valentin Bartenev | 1 | -2/+12 | |
2018-02-09 | Changed the default number of spare processes to 0. | Valentin Bartenev | 1 | -1/+1 | |
2018-02-08 | Router: fixed freed memory access race condition. | Igor Sysoev | 1 | -6/+8 | |
2018-02-07 | Style fixes. | Andrey Zelenkov | 1 | -1/+1 | |
2018-02-07 | Fixed processing of application response in router. | Max Romanov | 1 | -1/+4 | |
If the first buffer contained only header and there were other buffers in chain, those buffers were not processed. In particular, this broke Perl application responses with empty body. | |||||
2018-01-31 | Added Perl support. | Alexander Borisov | 1 | -4/+93 | |
2018-01-29 | Introducing extended app process management. | Max Romanov | 1 | -85/+545 | |
- 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). | |||||
2018-01-24 | Fixed formatting in nxt_sprintf() and logging. | Sergey Kandaurov | 1 | -3/+3 | |
2018-01-24 | Using size_t for the field width type of the "%*s" specifier. | Sergey Kandaurov | 1 | -3/+3 | |
2017-12-28 | Fixing memory leak introduced in changeset 5817734dd9b9. | Igor Sysoev | 1 | -1/+4 | |
2017-12-28 | HTTP keep-alive connections support. | Igor Sysoev | 1 | -640/+120 | |
2017-12-28 | Changed nxt_mp_retain() and nxt_mp_release() interfaces. | Igor Sysoev | 1 | -4/+13 | |
2017-12-27 | Implementing worker stop after limits.requests. | Max Romanov | 1 | -4/+13 | |
2017-12-27 | Rescheduling of pending request after configured timeout. | Max Romanov | 1 | -83/+214 | |
New optional configuration parameter introduced: limits.reschedule_timeout. Default value 1 second. In the case when request is written to the port socket 'in advance', it is called 'pending'. On every completed request, the head of pending request is checked against reschedule timeout. If this request waiting for execution longer than timeout, it is cancelled, new port selected for this request. | |||||
2017-12-27 | Fixing code style. | Max Romanov | 1 | -16/+16 | |
2017-12-27 | Fixing application timeout. | Max Romanov | 1 | -89/+318 | |
Application timeout limits maximum time of worker response in processing particular request. Not including the time required to start worker, time in request queue etc. | |||||
2017-12-27 | Changing worker selection precedence. | Max Romanov | 1 | -22/+47 | |
This patch increase precedence of non-started worker over busy worker. 1. idle worker; 2. start new worker; 3. busy worker, but can accept request in advance; | |||||
2017-12-27 | Implementing the ability to cancel request before worker starts processing it. | Max Romanov | 1 | -131/+103 | |
2017-12-25 | HTTP parser: reworked header fields handling. | Valentin Bartenev | 1 | -8/+8 | |
2017-12-25 | Restoring apps in case of reconfiguration error. | Max Romanov | 1 | -0/+3 | |
2017-11-27 | A number of engine connections is decreased on connection close. | Igor Sysoev | 1 | -1/+1 | |
2017-10-19 | Keep application worker until response for all requests received. | Max Romanov | 1 | -1/+4 | |
2017-10-19 | Fixed the bug introduced in the previous changeset. | Igor Sysoev | 1 | -4/+9 | |
2017-10-18 | Router: fixed segfault after configuration change. | Igor Sysoev | 1 | -177/+241 | |
2017-10-17 | Storing memory cache slot hint inside nxt_sockaddr_t. | Igor Sysoev | 1 | -3/+5 | |
2017-10-10 | Optimized application type handling. | Valentin Bartenev | 1 | -17/+2 | |
2017-10-04 | Port message fragmentation supported. | Max Romanov | 1 | -15/+9 | |
- Each sendmsg() transmits no more than port->max_size payload data. - Longer buffers are fragmented and send using multiple sendmsg() calls. - On receive side, buffers are connected in chain. - Number of handler calls is the same as number of nxt_port_socket_write() calls. - nxt_buf_make_plain() function introduced to make single plain buffer from the chain. | |||||
2017-10-04 | Optimized request<->app link allocation. | Max Romanov | 1 | -36/+59 | |
Only purpose of request<->app link instance is to be enqueued in application requests queue. It is possible to avoid request<->app link allocation from memory pool in case when spare application port is available. Instance from local stack can be used to prepare and send message to application. | |||||
2017-10-04 | Using port 'post' facility to proxy remove pid message to workers. | Max Romanov | 1 | -83/+21 | |
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 request mem pool for req<->app link. | Max Romanov | 1 | -2/+19 | |
Request <-> application link structure (nxt_req_app_link_t) used to register the request in application request queue (nxt_app_t.requests) and generate application-specific port message. Now it is allocated from request pool. This pool created for request parsing and used to allocate and store information specific to this request. |