<feed xmlns='http://www.w3.org/2005/Atom'>
<title>unit.git/src, branch 1.6-1</title>
<subtitle>Universal Web Application Server</subtitle>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/'/>
<entry>
<title>Node.js: npm package readme cleanup.</title>
<updated>2018-11-15T12:53:35+00:00</updated>
<author>
<name>Valentin Bartenev</name>
<email>vbart@nginx.com</email>
</author>
<published>2018-11-15T12:53:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=2b4d83cbd8a228b0004e3831c9d933400dede3c1'/>
<id>2b4d83cbd8a228b0004e3831c9d933400dede3c1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Node.js: res.write() must return a bool value.</title>
<updated>2018-11-15T11:42:51+00:00</updated>
<author>
<name>Alexander Borisov</name>
<email>alexander.borisov@nginx.com</email>
</author>
<published>2018-11-15T11:42:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=5c2021f8340566cbdac9dcc8e32c710d4b763a43'/>
<id>5c2021f8340566cbdac9dcc8e32c710d4b763a43</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Node.js: fixed handling of response header fields.</title>
<updated>2018-11-15T12:21:52+00:00</updated>
<author>
<name>Alexander Borisov</name>
<email>alexander.borisov@nginx.com</email>
</author>
<published>2018-11-15T12:21:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=fb18a09cd748ff0107d4e27e514c9f5caf3aa5e6'/>
<id>fb18a09cd748ff0107d4e27e514c9f5caf3aa5e6</id>
<content type='text'>
This fixes two issues:

- values for mutiple header fields with the same name
  passed as arrays were converted to string;

- the type of field value wasn't preserved as required
  by specification.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This fixes two issues:

- values for mutiple header fields with the same name
  passed as arrays were converted to string;

- the type of field value wasn't preserved as required
  by specification.
</pre>
</div>
</content>
</entry>
<entry>
<title>Node.js: added correct exit processing.</title>
<updated>2018-11-15T12:39:34+00:00</updated>
<author>
<name>Alexander Borisov</name>
<email>alexander.borisov@nginx.com</email>
</author>
<published>2018-11-15T12:39:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=06b404feb17dec9e3a84da31e213f21a0a9b4846'/>
<id>06b404feb17dec9e3a84da31e213f21a0a9b4846</id>
<content type='text'>
Node.js processes didn't exit after the changes in b9f7635e6be2,
as the quit command from port wasn't handled by the module.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Node.js processes didn't exit after the changes in b9f7635e6be2,
as the quit command from port wasn't handled by the module.
</pre>
</div>
</content>
</entry>
<entry>
<title>Node.js: added reference count increment for the Unit object.</title>
<updated>2018-11-15T12:24:45+00:00</updated>
<author>
<name>Alexander Borisov</name>
<email>alexander.borisov@nginx.com</email>
</author>
<published>2018-11-15T12:24:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=71f4cb91340b656397eaaa356755b4a1e31c8010'/>
<id>71f4cb91340b656397eaaa356755b4a1e31c8010</id>
<content type='text'>
We increase the number to the Unit object so that it lives forever.
This is necessary so that the garbage collector does not delete the Unit object.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We increase the number to the Unit object so that it lives forever.
This is necessary so that the garbage collector does not delete the Unit object.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed lvlhsh test on 64-bit big-endian systems.</title>
<updated>2018-11-15T10:00:58+00:00</updated>
<author>
<name>Valentin Bartenev</name>
<email>vbart@nginx.com</email>
</author>
<published>2018-11-15T10:00:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=b033fb329fc14e6469596821508c487e3ed6ff82'/>
<id>b033fb329fc14e6469596821508c487e3ed6ff82</id>
<content type='text'>
The nxt_murmur_hash2() generated 4-byte hash that was stored in uintptr_t,
which was 8 bytes long on 64-bit systems.  At each iteration, it took the
previous key and hashed it again.

The problem was that it took only the first 4 bytes of the key, and these
4 bytes were always zero on 64-bit big-endian system.  That resulted in
equal keys at each iteration.

The bug was discovered on IBM/S390x.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The nxt_murmur_hash2() generated 4-byte hash that was stored in uintptr_t,
which was 8 bytes long on 64-bit systems.  At each iteration, it took the
previous key and hashed it again.

The problem was that it took only the first 4 bytes of the key, and these
4 bytes were always zero on 64-bit big-endian system.  That resulted in
equal keys at each iteration.

The bug was discovered on IBM/S390x.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed discovering of modules on 64-bit big-endian systems.</title>
<updated>2018-11-15T08:59:03+00:00</updated>
<author>
<name>Valentin Bartenev</name>
<email>vbart@nginx.com</email>
</author>
<published>2018-11-15T08:59:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=08e0082e070354919de9584a8d26436a1dadeac0'/>
<id>08e0082e070354919de9584a8d26436a1dadeac0</id>
<content type='text'>
The nxt_conf_map_object() function used nxt_int_t for NXT_CONF_MAP_INT, which
was 8 bytes long on 64-bit systems.

But the nxt_port_main_start_worker_handler() used it to map into the int field
of the nxt_common_app_conf_t structure, which was 4 bytes.  As the result, on
a 64-bit big-endian system all the meaningful module type numbers were assigned
into the gap above the "type" field.

The bug was discovered on IBM/S390x.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The nxt_conf_map_object() function used nxt_int_t for NXT_CONF_MAP_INT, which
was 8 bytes long on 64-bit systems.

But the nxt_port_main_start_worker_handler() used it to map into the int field
of the nxt_common_app_conf_t structure, which was 4 bytes.  As the result, on
a 64-bit big-endian system all the meaningful module type numbers were assigned
into the gap above the "type" field.

The bug was discovered on IBM/S390x.
</pre>
</div>
</content>
</entry>
<entry>
<title>Checking error states in I/O handlers.</title>
<updated>2018-11-13T16:04:48+00:00</updated>
<author>
<name>Igor Sysoev</name>
<email>igor@sysoev.ru</email>
</author>
<published>2018-11-13T16:04:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=92ddc15a84d50306b3d1e22387dd0373994968af'/>
<id>92ddc15a84d50306b3d1e22387dd0373994968af</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed nxt_openssl_chain_file() return type.</title>
<updated>2018-11-13T15:43:39+00:00</updated>
<author>
<name>Valentin Bartenev</name>
<email>vbart@nginx.com</email>
</author>
<published>2018-11-13T15:43:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=ff9bed64da495b6c234bcfa4dcf18932730e58e7'/>
<id>ff9bed64da495b6c234bcfa4dcf18932730e58e7</id>
<content type='text'>
This closes #182 issue on GitHub.
Thanks to 洪志道 (Hong Zhi Dao).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This closes #182 issue on GitHub.
Thanks to 洪志道 (Hong Zhi Dao).
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed "freed pointer is out of pool" alerts.</title>
<updated>2018-11-10T04:38:43+00:00</updated>
<author>
<name>Valentin Bartenev</name>
<email>vbart@nginx.com</email>
</author>
<published>2018-11-10T04:38:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=4f4a2d8c63e55401fe0fccb47d747701cdf3171e'/>
<id>4f4a2d8c63e55401fe0fccb47d747701cdf3171e</id>
<content type='text'>
The issue was caused by misplacement of allocated blocks in rbtree due
to broken comparison function if the distance between two allocations
did not fit into intptr_t.  As the result, nxt_mp_free() could have
failed to find the allocation.

In particular, it was mostly observed when Unit was compiled with
musl C library on 32-bits systems.

This closes #118 issue on GitHub.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The issue was caused by misplacement of allocated blocks in rbtree due
to broken comparison function if the distance between two allocations
did not fit into intptr_t.  As the result, nxt_mp_free() could have
failed to find the allocation.

In particular, it was mostly observed when Unit was compiled with
musl C library on 32-bits systems.

This closes #118 issue on GitHub.
</pre>
</div>
</content>
</entry>
</feed>
