<feed xmlns='http://www.w3.org/2005/Atom'>
<title>unit.git/src, branch 1.4</title>
<subtitle>Universal Web Application Server</subtitle>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/'/>
<entry>
<title>Resetting init-&gt;stream for ready process.</title>
<updated>2018-09-20T14:30:56+00:00</updated>
<author>
<name>Max Romanov</name>
<email>max.romanov@nginx.com</email>
</author>
<published>2018-09-20T14:30:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=58c38298f53e684e2b5a45e5f7cf053f142ba384'/>
<id>58c38298f53e684e2b5a45e5f7cf053f142ba384</id>
<content type='text'>
Router requests application start by sending port message with application
parameters to master.  In response router gets application port.  Stream id
used to link request and response.  If application process terminates
unexpectedly (e.g. before ready state), it is required to notify router about
application start failure.  For this purpose stream id is stored in process
initialization parameters.

Stream id sequentially incremented and starts from 1 in case of router
resurrection.  New router application start stream id may coincide with
stream id of currently running/terminating application processes.  In such
cases router may receive REMOVE_PID message with same stream id as used in
application start request and mistakenly reports application start failure.

This commit tries to avoid such errors by resetting stream for processes in
ready state.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Router requests application start by sending port message with application
parameters to master.  In response router gets application port.  Stream id
used to link request and response.  If application process terminates
unexpectedly (e.g. before ready state), it is required to notify router about
application start failure.  For this purpose stream id is stored in process
initialization parameters.

Stream id sequentially incremented and starts from 1 in case of router
resurrection.  New router application start stream id may coincide with
stream id of currently running/terminating application processes.  In such
cases router may receive REMOVE_PID message with same stream id as used in
application start request and mistakenly reports application start failure.

This commit tries to avoid such errors by resetting stream for processes in
ready state.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed building perl on Alpine Linux.</title>
<updated>2018-09-20T13:34:19+00:00</updated>
<author>
<name>Sergey Kandaurov</name>
<email>pluknet@nginx.com</email>
</author>
<published>2018-09-20T13:34:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=e4650b741291cce8269e9ee10484c79be101edcd'/>
<id>e4650b741291cce8269e9ee10484c79be101edcd</id>
<content type='text'>
_GNU_SOURCE is required there to expose off64_t and other types.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
_GNU_SOURCE is required there to expose off64_t and other types.
</pre>
</div>
</content>
</entry>
<entry>
<title>Preventing port from release in asynchronous operations.</title>
<updated>2018-09-20T13:16:32+00:00</updated>
<author>
<name>Max Romanov</name>
<email>max.romanov@nginx.com</email>
</author>
<published>2018-09-20T13:16:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=9fe6e75d355266024f67a5611120c3c97557be14'/>
<id>9fe6e75d355266024f67a5611120c3c97557be14</id>
<content type='text'>
Router reconfiguration may lead to starting new application processes, opening
listen ports etc.  These actions are asynchronous and require message
exchange with master process.  Router stores reference for controller
(response) port in structure associated with reconfiguration process (tmcf).
The port used to provide reconfiguration response (either success or failed)
to controller.

This commit increases response port use counter to make sure port structure
not freed while router waits for result of asynchronous operations.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Router reconfiguration may lead to starting new application processes, opening
listen ports etc.  These actions are asynchronous and require message
exchange with master process.  Router stores reference for controller
(response) port in structure associated with reconfiguration process (tmcf).
The port used to provide reconfiguration response (either success or failed)
to controller.

This commit increases response port use counter to make sure port structure
not freed while router waits for result of asynchronous operations.
</pre>
</div>
</content>
</entry>
<entry>
<title>Python: adjusted input.read(size) argument value interpretation.</title>
<updated>2018-09-20T13:04:49+00:00</updated>
<author>
<name>Valentin Bartenev</name>
<email>vbart@nginx.com</email>
</author>
<published>2018-09-20T13:04:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=510c2e15c5b55a48f15f0ba680c5e82a2db5456f'/>
<id>510c2e15c5b55a48f15f0ba680c5e82a2db5456f</id>
<content type='text'>
Previously, passing 0 resulted in reading the whole body and all negative
values raised an exception.

Now the behaviour is in consistentance with io.RawIOBase.read() interface,
and passing 0 returns empty (byte) string, while -1 results in reading the
whole body.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously, passing 0 resulted in reading the whole body and all negative
values raised an exception.

Now the behaviour is in consistentance with io.RawIOBase.read() interface,
and passing 0 returns empty (byte) string, while -1 results in reading the
whole body.
</pre>
</div>
</content>
</entry>
<entry>
<title>Preserving inherited engine memory pool in controller process.</title>
<updated>2018-09-20T12:50:48+00:00</updated>
<author>
<name>Max Romanov</name>
<email>max.romanov@nginx.com</email>
</author>
<published>2018-09-20T12:50:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=9f29ac9f3e85b34317ab68ae297dabc6c6ffa6ae'/>
<id>9f29ac9f3e85b34317ab68ae297dabc6c6ffa6ae</id>
<content type='text'>
The pool is inherited from master process since changeset 854a1a440616.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The pool is inherited from master process since changeset 854a1a440616.
</pre>
</div>
</content>
</entry>
<entry>
<title>Controller: addressing of array elements in requests.</title>
<updated>2018-09-20T12:27:14+00:00</updated>
<author>
<name>Valentin Bartenev</name>
<email>vbart@nginx.com</email>
</author>
<published>2018-09-20T12:27:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=a2eca97e89f4898ca3f3287038e3757f4f778161'/>
<id>a2eca97e89f4898ca3f3287038e3757f4f778161</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Controller: certificates storage interface.</title>
<updated>2018-09-20T12:27:08+00:00</updated>
<author>
<name>Valentin Bartenev</name>
<email>vbart@nginx.com</email>
</author>
<published>2018-09-20T12:27:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=8d844bc2aa78d5acc789c5865a62bedbeba76902'/>
<id>8d844bc2aa78d5acc789c5865a62bedbeba76902</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Deduplicated string value initializations.</title>
<updated>2018-09-20T12:27:06+00:00</updated>
<author>
<name>Valentin Bartenev</name>
<email>vbart@nginx.com</email>
</author>
<published>2018-09-20T12:27:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=2dfd8ffc2fa36712c8987afa870c355185d61af9'/>
<id>2dfd8ffc2fa36712c8987afa870c355185d61af9</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Added nginx error 497 response.</title>
<updated>2018-09-20T12:05:38+00:00</updated>
<author>
<name>Igor Sysoev</name>
<email>igor@sysoev.ru</email>
</author>
<published>2018-09-20T12:05:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=b5d76454ed41cdc38ac801ef143ca0ab516d741f'/>
<id>b5d76454ed41cdc38ac801ef143ca0ab516d741f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Added SSL/TLS support on connection level.</title>
<updated>2018-09-20T12:05:37+00:00</updated>
<author>
<name>Igor Sysoev</name>
<email>igor@sysoev.ru</email>
</author>
<published>2018-09-20T12:05:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=96cd68b34037f8b6d9a1d43f67b8fe7c1df2ef9e'/>
<id>96cd68b34037f8b6d9a1d43f67b8fe7c1df2ef9e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
