History log of /unit/src/nxt_port_socket.c (Results 1 – 25 of 53)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 2139:99d792169ffb 16-Jun-2022 Andrew Clayton

Constified numerous function parameters.

As was pointed out by the cppcheck[0] static code analysis utility we
can mark numerous function parameters as 'const'. This acts as a hint to
the compiler a

Constified numerous function parameters.

As was pointed out by the cppcheck[0] static code analysis utility we
can mark numerous function parameters as 'const'. This acts as a hint to
the compiler about our intentions and the compiler will tell us when we
deviate from them.

[0]: https://cppcheck.sourceforge.io/

show more ...


Revision tags: 1.27.0-1, 1.27.0, 1.26.1-1, 1.26.1, 1.26.0-1, 1.26.0
# 1996:35873fa78fed 09-Nov-2021 Tiago Natel de Moura

Introduced SCM_CREDENTIALS / SCM_CREDS in the socket control msgs.


Revision tags: 1.25.0-1, 1.25.0
# 1908:de0c32ff1931 01-Jul-2021 Max Romanov

Deduplicating code for closing fds in nxt_port_send_msg_t.


# 1907:75ddb2d89b42 01-Jul-2021 Max Romanov

Fixing memory and descriptor leakage in case of port send failure.

In rare cases, when the destination process had finished running but no
notification of this was received yet, send could fail with

Fixing memory and descriptor leakage in case of port send failure.

In rare cases, when the destination process had finished running but no
notification of this was received yet, send could fail with an error, and the
send message structure with file descriptors could leak.

The leakage was periodically reproduced by respawn tests on FreeBSD 12.

show more ...


Revision tags: 1.24.0-1, 1.24.0, 1.23.0-1, 1.23.0
# 1832:7618b95f9cd2 25-Mar-2021 Max Romanov

Fixing shm buffer leakage when sending over the port queue.

When the shm buffer is sent over the port queue, it needs to be completed
because it's sent over the port socket.


Revision tags: 1.22.0-1, 1.22.0, 1.21.0-1, 1.21.0, 1.20.0-1, 1.20.0, 1.19.0-1, 1.19.0
# 1560:ef3da1be976d 12-Aug-2020 Max Romanov

Fixing issues found by static analyzer.


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


# 1553:c3fad601f58b 11-Aug-2020 Max Romanov

Port message extended to transfer 2 file descriptors.


Revision tags: 1.18.0-1, 1.18.0
# 1485:bef3cb69fc92 27-May-2020 Max Romanov

Closing unsent file descriptors from port queue.

After a process exits, all ports linked to it from other processes
should be closed. All unsent file descriptors in port queue, marked as
"close aft

Closing unsent file descriptors from port queue.

After a process exits, all ports linked to it from other processes
should be closed. All unsent file descriptors in port queue, marked as
"close after send", should be closed to avoid resource leakage.

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
# 1269:41331471eee7 14-Nov-2019 Igor Sysoev

Introduced chained buffer completion handlers.


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
# 1125:f92f3cd41257 15-Aug-2019 Max Romanov

Fixing multi-thread port write racing conditions.


# 1084:13df2ec78d4a 27-Jun-2019 Max Romanov

Fixing allocation alignment for port fragments.

All allocated blocks for lvlhash required to be aligned because lower
address bits used for various extra information. Using unaligned blocks
may cau

Fixing allocation alignment for port fragments.

All allocated blocks for lvlhash required to be aligned because lower
address bits used for various extra information. Using unaligned blocks
may cause invalid memory aceess.

This was issue found on buildbot running large configuration tests.

show more ...


Revision tags: 1.9.0-1, 1.9.0
# 1015:d195f2361ecf 25-Mar-2019 Max Romanov

Turning off port read event state after main process fork.

Master port stores two file descriptors and works as a read port on the master
process side. After a fork, the port switches into write mo

Turning off port read event state after main process fork.

Master port stores two file descriptors and works as a read port on the master
process side. After a fork, the port switches into write mode and the read
socket closes, but the same event structure is used for the write socket.
However, the inherited structure remained in read state, telling the epoll
engine to use MOD operation instead of ADD. The patch resets read event
state, so the engine may write using proper ADD operation.

show more ...


# 1005:7000543fffde 05-Mar-2019 Max Romanov

Improving port message fragment recognition.

This is required to assemble fragmented messages correctly. Stream
identifier is unique only for messages generated within a process, but
the (stream, p

Improving port message fragment recognition.

This is required to assemble fragmented messages correctly. Stream
identifier is unique only for messages generated within a process, but
the (stream, pid) pair should be enough to avoid collisions. Adding
reply_port seems redundant because it's enough to add stream to a pid.

This closes #199 issue on GitHub.
Thanks to 洪志道 (Hong Zhi Dao).

show more ...


# 1004:306ceaf8927d 05-Mar-2019 Max Romanov

Fixing EAGAIN processing for port message send.

Sending large plain (exceeding port's max_size, not in shared memory) messages
causes message fragmentation. First message fragment is sent successfu

Fixing EAGAIN processing for port message send.

Sending large plain (exceeding port's max_size, not in shared memory) messages
causes message fragmentation. First message fragment is sent successfully,
but the next fragment may fail with the EAGAIN error. In this case, the
message has to be pushed back to queue head for additional processing.

Related to #167 issue on GitHub.

show more ...


# 1002:ba4c745528cf 05-Mar-2019 Max Romanov

Including port message header into message size limit.

Before this fix, large plain message (i.e. configuration) send may fail
with the 'Message too big' error, because internal fragmentation
implem

Including port message header into message size limit.

Before this fix, large plain message (i.e. configuration) send may fail
with the 'Message too big' error, because internal fragmentation
implementation does not account for 16 byte message header.

This closes #167 issue on GitHub.

show more ...


Revision tags: 1.8.0-1, 1.8.0
# 978:13b7e32876cf 28-Feb-2019 Max Romanov

Preserving message 'share' field when pushing to queue.

As far as I understand, this field is important to control the number of
buffers send in a single write attempt. Furthermore, having uninitia

Preserving message 'share' field when pushing to queue.

As far as I understand, this field is important to control the number of
buffers send in a single write attempt. Furthermore, having uninitialized
field is always bad.

This closes #204 issue on GitHub.
Thanks to 洪志道 (Hong Zhi Dao).

show more ...


# 974:c6d9f0ba74be 28-Feb-2019 Max Romanov

Reusing fragmented message buffers.

Fragmented message non-mmap buffer chain not freed nor reused before
this fix.

This closes #206 on GitHub.
Thanks to 洪志道 (Hong Zhi Dao).


Revision tags: 1.7.1-1, 1.7.1, 1.7-1, 1.7, 1.6-1, 1.6, 1.5-1, 1.5, 1.4-2, 1.4, 1.3, 1.2, 1.1, 1.0
# 613:e5dd7bc63d59 05-Apr-2018 Valentin Bartenev

Style.


# 592:f2b174742bf3 28-Mar-2018 Igor Sysoev

nxt_port_buf_completion() and nxt_sendbuf_completion().

nxt_sendbuf_completion() has been renamed to nxt_port_buf_completion()
and moved to src/nxt_port_socket.c. nxt_sendbuf_completion0() has been

nxt_port_buf_completion() and nxt_sendbuf_completion().

nxt_sendbuf_completion() has been renamed to nxt_port_buf_completion()
and moved to src/nxt_port_socket.c. nxt_sendbuf_completion0() has been
renamed to nxt_sendbuf_completion().

show more ...


Revision tags: 0.7
# 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
# 521:93dc4a28dd37 07-Feb-2018 Andrey Zelenkov

Style fixes.


Revision tags: 0.4, 0.3
# 430:3a24c399394f 28-Dec-2017 Igor Sysoev

Changed nxt_mp_retain() and nxt_mp_release() interfaces.


123