<feed xmlns='http://www.w3.org/2005/Atom'>
<title>unit.git/src, branch 1.26.1</title>
<subtitle>Universal Web Application Server</subtitle>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/'/>
<entry>
<title>Fixing prototype process crash.</title>
<updated>2021-12-01T15:05:50+00:00</updated>
<author>
<name>Max Romanov</name>
<email>max.romanov@nginx.com</email>
</author>
<published>2021-12-01T15:05:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=97e61aad736da5fe1ad136a1d3055e16698f7d2b'/>
<id>97e61aad736da5fe1ad136a1d3055e16698f7d2b</id>
<content type='text'>
A prototype stores linked application processes structures.  When an
application process terminates, it's removed from the list.  To avoid double
removal, the pointer to the next element should be set to NULL.

The issue was introduced in c8790d2a89bb.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A prototype stores linked application processes structures.  When an
application process terminates, it's removed from the list.  To avoid double
removal, the pointer to the next element should be set to NULL.

The issue was introduced in c8790d2a89bb.
</pre>
</div>
</content>
</entry>
<entry>
<title>Logging of the daemon version on startup.</title>
<updated>2021-12-01T14:09:02+00:00</updated>
<author>
<name>Valentin Bartenev</name>
<email>vbart@nginx.com</email>
</author>
<published>2021-12-01T14:09:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=b8ea9d34fdff699006ecfdbd948f113686d2dc0c'/>
<id>b8ea9d34fdff699006ecfdbd948f113686d2dc0c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>PHP: fixed crash when calling module functions in OPcache preload.</title>
<updated>2021-11-25T16:58:54+00:00</updated>
<author>
<name>Valentin Bartenev</name>
<email>vbart@nginx.com</email>
</author>
<published>2021-11-25T16:58:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=d4b13c7cd5520b2b8bd8833765a3ba4246a93df7'/>
<id>d4b13c7cd5520b2b8bd8833765a3ba4246a93df7</id>
<content type='text'>
In PHP, custom fastcgi_finish_request() and overloaded chdir() functions can be
invoked by an OPcache preloading script (it runs when php_module_startup() is
called in the app process setup handler).  In this case, there was no runtime
context set so trying to access it caused a segmentation fault.

This closes #602 issue on GitHub.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In PHP, custom fastcgi_finish_request() and overloaded chdir() functions can be
invoked by an OPcache preloading script (it runs when php_module_startup() is
called in the app process setup handler).  In this case, there was no runtime
context set so trying to access it caused a segmentation fault.

This closes #602 issue on GitHub.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixing access_log structure reference counting.</title>
<updated>2021-11-25T13:58:43+00:00</updated>
<author>
<name>Max Romanov</name>
<email>max.romanov@nginx.com</email>
</author>
<published>2021-11-25T13:58:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=1c0436d644c3a313096cd7d43c4148151c2193ee'/>
<id>1c0436d644c3a313096cd7d43c4148151c2193ee</id>
<content type='text'>
The reference to the access_log structure is stored in the current
nxt_router_conf_t and the global nxt_router_t.  When the reference is copied,
the reference counter should be adjusted accordingly.

This closes #593 issue on GitHub.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The reference to the access_log structure is stored in the current
nxt_router_conf_t and the global nxt_router_t.  When the reference is copied,
the reference counter should be adjusted accordingly.

This closes #593 issue on GitHub.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixing zombie process appearance and hang up on shutdown.</title>
<updated>2021-11-24T10:11:50+00:00</updated>
<author>
<name>Max Romanov</name>
<email>max.romanov@nginx.com</email>
</author>
<published>2021-11-24T10:11:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=aaa34e0a644912e49d7c5619749b67f585da9c85'/>
<id>aaa34e0a644912e49d7c5619749b67f585da9c85</id>
<content type='text'>
After the c8790d2a89bb commit, the SIGCHLD handler may return before processing
all awaiting PIDs.  To avoid zombie processes and ensure successful main
process termination, waitpid() must be called until an error is returned.

This closes #600 issue on GitHub.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
After the c8790d2a89bb commit, the SIGCHLD handler may return before processing
all awaiting PIDs.  To avoid zombie processes and ensure successful main
process termination, waitpid() must be called until an error is returned.

This closes #600 issue on GitHub.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixing alerts on router restart.</title>
<updated>2021-11-24T10:11:48+00:00</updated>
<author>
<name>Max Romanov</name>
<email>max.romanov@nginx.com</email>
</author>
<published>2021-11-24T10:11:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=c33c2925d91510e1c059a1581aad6dd959817191'/>
<id>c33c2925d91510e1c059a1581aad6dd959817191</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed possible access to an uninitialized field.</title>
<updated>2021-11-23T12:36:24+00:00</updated>
<author>
<name>Valentin Bartenev</name>
<email>vbart@nginx.com</email>
</author>
<published>2021-11-23T12:36:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=62d173f7af34eb3c6323e8c8aac15e20498c1785'/>
<id>62d173f7af34eb3c6323e8c8aac15e20498c1785</id>
<content type='text'>
The "recv_msg.incoming_buf" is checked after jumping to the "done" label
if nxt_socket_msg_oob_get_fds() returns an error.

Also moved initialization of "port_msg" near to its first usage.

Found by Coverity (CID 373899).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The "recv_msg.incoming_buf" is checked after jumping to the "done" label
if nxt_socket_msg_oob_get_fds() returns an error.

Also moved initialization of "port_msg" near to its first usage.

Found by Coverity (CID 373899).
</pre>
</div>
</content>
</entry>
<entry>
<title>Removed the execute permission bit from "nxt_h1proto.c".</title>
<updated>2021-11-11T15:54:10+00:00</updated>
<author>
<name>Valentin Bartenev</name>
<email>vbart@nginx.com</email>
</author>
<published>2021-11-11T15:54:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=aed1c55a06794b6b76c1dfede6fe263f6aa9656f'/>
<id>aed1c55a06794b6b76c1dfede6fe263f6aa9656f</id>
<content type='text'>
It was accidentally added in 4645a43bc248.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It was accidentally added in 4645a43bc248.
</pre>
</div>
</content>
</entry>
<entry>
<title>Introducing application prototype processes.</title>
<updated>2021-11-09T12:48:44+00:00</updated>
<author>
<name>Tiago Natel de Moura</name>
<email>t.nateldemoura@f5.com</email>
</author>
<published>2021-11-09T12:48:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=e207415a78ae67b937faf7e5bcd6e5192993180a'/>
<id>e207415a78ae67b937faf7e5bcd6e5192993180a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Changed nxt_process_* for reuse.</title>
<updated>2021-11-09T12:48:44+00:00</updated>
<author>
<name>Tiago Natel de Moura</name>
<email>t.nateldemoura@f5.com</email>
</author>
<published>2021-11-09T12:48:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=1de660b6df93c09719361e364211c7c6388c01ce'/>
<id>1de660b6df93c09719361e364211c7c6388c01ce</id>
<content type='text'>
This enables the reuse of process creation functions.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This enables the reuse of process creation functions.
</pre>
</div>
</content>
</entry>
</feed>
