History log of /unit/src/nxt_router.c (Results 176 – 200 of 271)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 423:449f2a9c5e62 27-Dec-2017 Max Romanov

Implementing the ability to cancel request before worker starts processing it.


# 417:47366bb40f2c 25-Dec-2017 Valentin Bartenev

HTTP parser: reworked header fields handling.


# 416:2101db5383a7 25-Dec-2017 Max Romanov

Restoring apps in case of reconfiguration error.


# 386:d9e23ae1617d 27-Nov-2017 Igor Sysoev

A number of engine connections is decreased on connection close.


Revision tags: 0.2
# 367:1a733ff177d7 19-Oct-2017 Max Romanov

Keep application worker until response for all requests received.


# 361:260625842635 19-Oct-2017 Igor Sysoev

Fixed the bug introduced in the previous changeset.


# 359:d4848619451a 18-Oct-2017 Igor Sysoev

Router: fixed segfault after configuration change.


# 358:40bbd4c2349d 17-Oct-2017 Igor Sysoev

Storing memory cache slot hint inside nxt_sockaddr_t.


# 356:b6c89a2f537b 10-Oct-2017 Valentin Bartenev

Optimized application type handling.


# 352:47649fbbcb53 04-Oct-2017 Max Romanov

Port message fragmentation supported.

- Each sendmsg() transmits no more than port->max_size payload data.
- Longer buffers are fragmented and send using multiple sendmsg() calls.
- On receive side,

Port message fragmentation supported.

- 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.

show more ...


# 351:92038a9f4937 04-Oct-2017 Max Romanov

Optimized request<->app link allocation.

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 memo

Optimized request<->app link allocation.

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.

show more ...


# 347:e14011f5f005 04-Oct-2017 Max Romanov

Using port 'post' facility to proxy remove pid message to workers.

Remove pid proxying to worker engines implementation was originally
overcomplicated. Memory pool and 2 engine posts (there and bac

Using port 'post' facility to proxy remove pid message to workers.

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.

show more ...


# 346:88444c3b5dff 04-Oct-2017 Max Romanov

Using request mem pool for req<->app link.

Request <-> application link structure (nxt_req_app_link_t) used to register
the request in application request queue (nxt_app_t.requests) and generate
app

Using request mem pool for req<->app link.

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.

show more ...


# 345:04a80660766c 04-Oct-2017 Max Romanov

Fixed error generation during request processing.

Request can be processed in thread different from the thread where the
connection originally handled.

Because of possible racing conditions, using

Fixed error generation during request processing.

Request can be processed in thread different from the thread where the
connection originally handled.

Because of possible racing conditions, using original connection structures
is unsafe. To solve this, error condition is registered in 'ra' (request <->
application link) and traversed back to original connection thread where
the error message can be generated and send back to client.

show more ...


# 343:9fa845db60fb 04-Oct-2017 Max Romanov

Introducing use counters for port and app. Thread safe port write.

Use counter helps to simplify logic around port and application free.

Port 'post' function introduced to simplify post execution

Introducing use counters for port and app. Thread safe port write.

Use counter helps to simplify logic around port and application free.

Port 'post' function introduced to simplify post execution of particular
function to original port engine's thread.

Write message queue is protected by mutex which makes port write operation
thread safe.

show more ...


# 342:82c2825a617a 04-Oct-2017 Max Romanov

Using engine memiory pool for port write allocations.

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 th

Using engine memiory pool for port write allocations.

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.

show more ...


# 340:c68833ba4383 04-Oct-2017 Max Romanov

Fixing memory leak when handling remove pid message.

Worker threads ports need to receive 'remove pid' message to properly handle
application process exit case and finish requests processed by parti

Fixing memory leak when handling remove pid message.

Worker threads ports need to receive 'remove pid' message to properly handle
application process exit case and finish requests processed by particular
application worker. Main process send 'remove pid' notification to service
thread port only and this message must be 'proxied' to other running engines.

Separate memory pool created for this message. For each engine structure
required to post message to engine allocate from the pool using 'retain'
allocation method. After successfull post structure will be freed using
'release' method. To completely destroy poll one more 'release' should be
called to release initial reference count.

I'm afraid this should be simplified using good old malloc() and free() calls.

show more ...


# 337:854a1a440616 27-Sep-2017 Igor Sysoev

Event engine memory cache for nxt_sockaddr_t.

Introducing event engine memory cache and using the cache for
nxt_sockaddr_t structures.


# 326:2aad6a5fac13 22-Sep-2017 Valentin Bartenev

Removed fibers from compilation.

It's not used anyway, but breaks building with musl.

This closes issue #5 on GitHub.


# 320:d385755599d6 15-Sep-2017 Max Romanov

Introducing named port message handlers to avoid misprints.


# 319:e5a65b58101f 15-Sep-2017 Max Romanov

Fixing memory leak of request parse context.


# 318:c2442f5e054d 15-Sep-2017 Max Romanov

Introducing application timeout.


# 317:94010c8bd7bc 15-Sep-2017 Valentin Bartenev

Fixed port handlers arrays.


# 316:52b6535fece5 14-Sep-2017 Igor Sysoev

Router: more logical code order change.

Updating the router engines list before posting jobs to worker thread
engines is more logical because worker threads may exit after the posting.
However, the

Router: more logical code order change.

Updating the router engines list before posting jobs to worker thread
engines is more logical because worker threads may exit after the posting.
However, the previous code was safe because an engine is freed by
the router main thread after worker its thread has exited.

show more ...


# 315:1726a13006e2 14-Sep-2017 Igor Sysoev

Router: fixed segmentation fault.

The router process exited abnormally on reconfiguration if number
of worker threads had been decreased on the previous reconfiguration.
Besides the list of router e

Router: fixed segmentation fault.

The router process exited abnormally on reconfiguration if number
of worker threads had been decreased on the previous reconfiguration.
Besides the list of router engines should be updated only after a new
configuration joints have been prepared for all engines.

show more ...


1234567891011