<feed xmlns='http://www.w3.org/2005/Atom'>
<title>unit.git/test/unit, 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>Tests: fixed double stop() call for some tests.</title>
<updated>2020-07-28T03:53:32+00:00</updated>
<author>
<name>Andrei Zeliankou</name>
<email>zelenkov@nginx.com</email>
</author>
<published>2020-07-28T03:53:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=355ed9697d10f163f4b96bc459f9c402aefa5d55'/>
<id>355ed9697d10f163f4b96bc459f9c402aefa5d55</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Tests: style.</title>
<updated>2020-07-28T02:09:50+00:00</updated>
<author>
<name>Andrei Zeliankou</name>
<email>zelenkov@nginx.com</email>
</author>
<published>2020-07-28T02:09:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=dc1377dc489937abcc6a5d0dcbfa628e0e6bdf1c'/>
<id>dc1377dc489937abcc6a5d0dcbfa628e0e6bdf1c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Tests: switching stdout to blocking before printing log.</title>
<updated>2020-07-22T07:05:10+00:00</updated>
<author>
<name>Max Romanov</name>
<email>max.romanov@nginx.com</email>
</author>
<published>2020-07-22T07:05:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=661c223eda641eeb2ee02db3d1e1cd4e5cd583f7'/>
<id>661c223eda641eeb2ee02db3d1e1cd4e5cd583f7</id>
<content type='text'>
This is another attempt to fix the following error message:
BlockingIOError: [Errno 11] write could not complete without blocking
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is another attempt to fix the following error message:
BlockingIOError: [Errno 11] write could not complete without blocking
</pre>
</div>
</content>
</entry>
<entry>
<title>Tests: Added rootfs tests.</title>
<updated>2020-05-28T13:59:52+00:00</updated>
<author>
<name>Tiago Natel de Moura</name>
<email>t.nateldemoura@f5.com</email>
</author>
<published>2020-05-28T13:59:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=08b765ae4289f399bb3642d327ccf402efca3537'/>
<id>08b765ae4289f399bb3642d327ccf402efca3537</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Tests: print unit.log in case of errors.</title>
<updated>2020-05-20T22:06:56+00:00</updated>
<author>
<name>Andrei Zeliankou</name>
<email>zelenkov@nginx.com</email>
</author>
<published>2020-05-20T22:06:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=fa4d4b61200b6f465edbe24ebcdce1a7a8675d39'/>
<id>fa4d4b61200b6f465edbe24ebcdce1a7a8675d39</id>
<content type='text'>
Thanks to hongzhidao.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Thanks to hongzhidao.
</pre>
</div>
</content>
</entry>
<entry>
<title>Tests: style.</title>
<updated>2020-05-15T03:20:56+00:00</updated>
<author>
<name>Andrei Zeliankou</name>
<email>zelenkov@nginx.com</email>
</author>
<published>2020-05-15T03:20:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=ce4a2bbd05f42d258f9bf7880060a604ac1a866e'/>
<id>ce4a2bbd05f42d258f9bf7880060a604ac1a866e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Configuration: URI encoding in the "pass" option.</title>
<updated>2020-05-14T10:15:00+00:00</updated>
<author>
<name>Valentin Bartenev</name>
<email>vbart@nginx.com</email>
</author>
<published>2020-05-14T10:15:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=0174c971b5ec0d604e4e9becfa41e0bc31179e57'/>
<id>0174c971b5ec0d604e4e9becfa41e0bc31179e57</id>
<content type='text'>
This is useful to escape "/" in path fragments.  For example, in order
to reference the application named "foo/bar":

  {
      "pass": "applications/foo%2Fbar"
  }
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is useful to escape "/" in path fragments.  For example, in order
to reference the application named "foo/bar":

  {
      "pass": "applications/foo%2Fbar"
  }
</pre>
</div>
</content>
</entry>
<entry>
<title>Tests: introduced module version specification in prerequisites.</title>
<updated>2020-04-24T04:08:56+00:00</updated>
<author>
<name>Andrei Zeliankou</name>
<email>zelenkov@nginx.com</email>
</author>
<published>2020-04-24T04:08:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=6a9a4fe0d46263d4d158803d4a82851e240e0e63'/>
<id>6a9a4fe0d46263d4d158803d4a82851e240e0e63</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Tests: minor fixes and style.</title>
<updated>2020-04-14T01:35:04+00:00</updated>
<author>
<name>Andrei Zeliankou</name>
<email>zelenkov@nginx.com</email>
</author>
<published>2020-04-14T01:35:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=0bfa09dfa0ec6a1474ba30d0e1f8aea832fbc1fc'/>
<id>0bfa09dfa0ec6a1474ba30d0e1f8aea832fbc1fc</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Controller: improved handling of unix domain control socket.</title>
<updated>2020-04-08T12:15:24+00:00</updated>
<author>
<name>Valentin Bartenev</name>
<email>vbart@nginx.com</email>
</author>
<published>2020-04-08T12:15:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=c7f5c1c6641838006088524c2122eae8f9c30431'/>
<id>c7f5c1c6641838006088524c2122eae8f9c30431</id>
<content type='text'>
One of the ways to detect Unit's startup and subsequent readiness to accept
commands relies on waiting for the control socket file to be created.
Earlier, it was unreliable due to a race condition between the client's
connect() and the daemon's listen() calls after the socket's bind() call.

Now, unix domain listening sockets are created with a nxt_listen_socket_create()
call as follows:

   s = socket();
   unlink("path/to/socket.tmp")
   bind(s, "path/to/socket.tmp");
   listen(s);
   rename("path/to/socket.tmp", "path/to/socket");

This eliminates a time-lapse when the socket file is already created but nobody
is listening on it yet, which therefore prevents the condition described above.

Also, it allows reliably detecting whether the socket is being used or simply
wasn't cleaned after the daemon stopped abruptly.  A successful connection to
the socket file means the daemon has been started; otherwise, the file can be
overwritten.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
One of the ways to detect Unit's startup and subsequent readiness to accept
commands relies on waiting for the control socket file to be created.
Earlier, it was unreliable due to a race condition between the client's
connect() and the daemon's listen() calls after the socket's bind() call.

Now, unix domain listening sockets are created with a nxt_listen_socket_create()
call as follows:

   s = socket();
   unlink("path/to/socket.tmp")
   bind(s, "path/to/socket.tmp");
   listen(s);
   rename("path/to/socket.tmp", "path/to/socket");

This eliminates a time-lapse when the socket file is already created but nobody
is listening on it yet, which therefore prevents the condition described above.

Also, it allows reliably detecting whether the socket is being used or simply
wasn't cleaned after the daemon stopped abruptly.  A successful connection to
the socket file means the daemon has been started; otherwise, the file can be
overwritten.
</pre>
</div>
</content>
</entry>
</feed>
