<feed xmlns='http://www.w3.org/2005/Atom'>
<title>unit.git/src, branch 1.19.0-1</title>
<subtitle>Universal Web Application Server</subtitle>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/'/>
<entry>
<title>Fixing router assertion in result of application prefork error.</title>
<updated>2020-08-13T13:08:38+00:00</updated>
<author>
<name>Max Romanov</name>
<email>max.romanov@nginx.com</email>
</author>
<published>2020-08-13T13:08:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=b04b5ce430ef055a7552b9fc451ca23f7d5effb3'/>
<id>b04b5ce430ef055a7552b9fc451ca23f7d5effb3</id>
<content type='text'>
Buffer for application prefork request allocated from temp conf mem_pool.
If error response from main process received before buffer completion handler,
temp conf mem_pool destroyed and router may crash in completion handler.

Assertion "src/nxt_buf.c:208 assertion failed: data == b-&gt;parent" triggered
when NXT_DEBUG_ALLOC enabled in configure.

This patch disables completion handler and memory allocated for buffer
released with memory pool.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Buffer for application prefork request allocated from temp conf mem_pool.
If error response from main process received before buffer completion handler,
temp conf mem_pool destroyed and router may crash in completion handler.

Assertion "src/nxt_buf.c:208 assertion failed: data == b-&gt;parent" triggered
when NXT_DEBUG_ALLOC enabled in configure.

This patch disables completion handler and memory allocated for buffer
released with memory pool.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed error handling of prefork callback.</title>
<updated>2020-08-13T11:25:52+00:00</updated>
<author>
<name>Tiago Natel de Moura</name>
<email>t.nateldemoura@f5.com</email>
</author>
<published>2020-08-13T11:25:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=b9ed3384cb620618c2622e387d1770bb8c43ff13'/>
<id>b9ed3384cb620618c2622e387d1770bb8c43ff13</id>
<content type='text'>
Previously, an error during the prefork phase triggered assert:

 src/nxt_port.c:27 assertion failed: port-&gt;pair[0] == -1

and resulted in exiting of the main process.

This could be easily reproduced by pushing a configuration with "rootfs",
when daemon is running without required permissions.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously, an error during the prefork phase triggered assert:

 src/nxt_port.c:27 assertion failed: port-&gt;pair[0] == -1

and resulted in exiting of the main process.

This could be easily reproduced by pushing a configuration with "rootfs",
when daemon is running without required permissions.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed typo in return value check.</title>
<updated>2020-08-13T00:45:54+00:00</updated>
<author>
<name>Valentin Bartenev</name>
<email>vbart@nginx.com</email>
</author>
<published>2020-08-13T00:45:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=a58f224e26cf3bcb79adbd69ccc2c67733fe372f'/>
<id>a58f224e26cf3bcb79adbd69ccc2c67733fe372f</id>
<content type='text'>
Found by Coverity (CID 361277).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Found by Coverity (CID 361277).
</pre>
</div>
</content>
</entry>
<entry>
<title>Basic variables support.</title>
<updated>2020-08-12T23:46:54+00:00</updated>
<author>
<name>Valentin Bartenev</name>
<email>vbart@nginx.com</email>
</author>
<published>2020-08-12T23:46:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=93146616cf56a94fc2979cb978c7b451c5592594'/>
<id>93146616cf56a94fc2979cb978c7b451c5592594</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>PHP: compatibility with 8.0.0 Beta 1.</title>
<updated>2020-08-12T19:55:01+00:00</updated>
<author>
<name>Remi Collet</name>
<email>remi@remirepo.net</email>
</author>
<published>2020-08-12T19:55:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=21ac95f17e70f2f20fe8e2a99bbe9cc7328a6e62'/>
<id>21ac95f17e70f2f20fe8e2a99bbe9cc7328a6e62</id>
<content type='text'>
This closes #441 PR on GitHub.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This closes #441 PR on GitHub.
</pre>
</div>
</content>
</entry>
<entry>
<title>Responding with error in case of first process start failure.</title>
<updated>2020-08-12T12:25:29+00:00</updated>
<author>
<name>Max Romanov</name>
<email>max.romanov@nginx.com</email>
</author>
<published>2020-08-12T12:25:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=09685e2b4143ec19afef7673a455cf7e4d1414b7'/>
<id>09685e2b4143ec19afef7673a455cf7e4d1414b7</id>
<content type='text'>
After shared application port introducing, request queue in router was
removed and requests may stuck forever waiting for another process start.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
After shared application port introducing, request queue in router was
removed and requests may stuck forever waiting for another process start.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixing issues found by static analyzer.</title>
<updated>2020-08-12T10:37:49+00:00</updated>
<author>
<name>Max Romanov</name>
<email>max.romanov@nginx.com</email>
</author>
<published>2020-08-12T10:37:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=2136eb411c9b99ffd65751bd13e10ce426be2492'/>
<id>2136eb411c9b99ffd65751bd13e10ce426be2492</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixing return value initialization.</title>
<updated>2020-08-11T18:48:46+00:00</updated>
<author>
<name>Max Romanov</name>
<email>max.romanov@nginx.com</email>
</author>
<published>2020-08-11T18:48:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=fd2c01c58f5f3bfd357e9931a9abb64083afc3ac'/>
<id>fd2c01c58f5f3bfd357e9931a9abb64083afc3ac</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Style fixes for 2 file descriptors transfer over port.</title>
<updated>2020-08-11T18:48:27+00:00</updated>
<author>
<name>Max Romanov</name>
<email>max.romanov@nginx.com</email>
</author>
<published>2020-08-11T18:48:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=f147943f6382c0e90a216615ff9bcf57a3db8c75'/>
<id>f147943f6382c0e90a216615ff9bcf57a3db8c75</id>
<content type='text'>
Two consecutive fd and fd2 fields replaced with array.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Two consecutive fd and fd2 fields replaced with array.
</pre>
</div>
</content>
</entry>
<entry>
<title>Moving file descriptor blocking to libunit.</title>
<updated>2020-08-11T18:48:16+00:00</updated>
<author>
<name>Max Romanov</name>
<email>max.romanov@nginx.com</email>
</author>
<published>2020-08-11T18:48:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=acb0cca49def92563d9b221d818b541b60e30eaa'/>
<id>acb0cca49def92563d9b221d818b541b60e30eaa</id>
<content type='text'>
The default libunit behavior relies on blocking the recv() call for port file
descriptors, which an application may override if needed.  For external
applications, port file descriptors were toggled to blocking mode before the
exec() call.  If the exec() call failed, descriptor remained blocked, so the
process hanged while trying to read from it.

This patch moves file descriptor mode switch inside libunit.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The default libunit behavior relies on blocking the recv() call for port file
descriptors, which an application may override if needed.  For external
applications, port file descriptors were toggled to blocking mode before the
exec() call.  If the exec() call failed, descriptor remained blocked, so the
process hanged while trying to read from it.

This patch moves file descriptor mode switch inside libunit.
</pre>
</div>
</content>
</entry>
</feed>
