<feed xmlns='http://www.w3.org/2005/Atom'>
<title>nginx.git/src/core, branch release-1.13.3</title>
<subtitle>nginx</subtitle>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/'/>
<entry>
<title>Resolver: cancelable resend timer event.</title>
<updated>2017-07-04T15:50:41+00:00</updated>
<author>
<name>Ruslan Ermilov</name>
<email>ru@nginx.com</email>
</author>
<published>2017-07-04T15:50:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=6330817a96bbe2227dd6f2cfeaa785ed27c169a0'/>
<id>6330817a96bbe2227dd6f2cfeaa785ed27c169a0</id>
<content type='text'>
It is safe because re-sending still works during graceful shutdown as
long as resolving takes place (and resolve tasks set their own timeouts
that are not cancelable).

Also, the new ctx-&gt;cancelable flag can be set to make resolve task's
timeout event cancelable.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It is safe because re-sending still works during graceful shutdown as
long as resolving takes place (and resolve tasks set their own timeouts
that are not cancelable).

Also, the new ctx-&gt;cancelable flag can be set to make resolve task's
timeout event cancelable.
</pre>
</div>
</content>
</entry>
<entry>
<title>Resolver: factored out setting a timer for resolver timeout.</title>
<updated>2017-07-04T15:46:30+00:00</updated>
<author>
<name>Sergey Kandaurov</name>
<email>pluknet@nginx.com</email>
</author>
<published>2017-07-04T15:46:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=225a5c7704f0c98d91fd908c210d3957454ef20e'/>
<id>225a5c7704f0c98d91fd908c210d3957454ef20e</id>
<content type='text'>
No functional changes.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
No functional changes.
</pre>
</div>
</content>
</entry>
<entry>
<title>Slab: fixed small allocations on systems with large pagesize.</title>
<updated>2017-07-04T15:32:30+00:00</updated>
<author>
<name>Ruslan Ermilov</name>
<email>ru@nginx.com</email>
</author>
<published>2017-07-04T15:32:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=d0071f08e88660aab9af84f4210c1a4a32f34980'/>
<id>d0071f08e88660aab9af84f4210c1a4a32f34980</id>
<content type='text'>
Notably, on ppc64 with 64k pagesize, slab 0 (of size 8) requires
128 64-bit elements for bitmasks.  The code bogusly assumed that
one uintptr_t is enough for bitmasks plus at least one free slot.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Notably, on ppc64 with 64k pagesize, slab 0 (of size 8) requires
128 64-bit elements for bitmasks.  The code bogusly assumed that
one uintptr_t is enough for bitmasks plus at least one free slot.
</pre>
</div>
</content>
</entry>
<entry>
<title>Slab: style.</title>
<updated>2017-07-04T15:32:28+00:00</updated>
<author>
<name>Ruslan Ermilov</name>
<email>ru@nginx.com</email>
</author>
<published>2017-07-04T15:32:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=75c3f8958be4ae7284a46f1d61d79193e6bc5d95'/>
<id>75c3f8958be4ae7284a46f1d61d79193e6bc5d95</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Resolver: fixed possible use-after-free while resolving SRV.</title>
<updated>2017-07-04T15:07:29+00:00</updated>
<author>
<name>Roman Arutyunyan</name>
<email>arut@nginx.com</email>
</author>
<published>2017-07-04T15:07:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=7570718594d846787ca31914e0f8431d7a4cfad1'/>
<id>7570718594d846787ca31914e0f8431d7a4cfad1</id>
<content type='text'>
Resolving an SRV record includes resolving its host names in subrequests.
Previously, if memory allocation failed while reporting a subrequest result
after receiving a response from a DNS server, the SRV resolve handler was
called immediately with the NGX_ERROR state.  However, if the SRV record
included another copy of the resolved name, it was reported once again.
This could trigger the use-after-free memory access after SRV resolve
handler freed the resolve context by calling ngx_resolve_name_done().

Now the SRV resolve handler is called only when all its subrequests are
completed.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Resolving an SRV record includes resolving its host names in subrequests.
Previously, if memory allocation failed while reporting a subrequest result
after receiving a response from a DNS server, the SRV resolve handler was
called immediately with the NGX_ERROR state.  However, if the SRV record
included another copy of the resolved name, it was reported once again.
This could trigger the use-after-free memory access after SRV resolve
handler freed the resolve context by calling ngx_resolve_name_done().

Now the SRV resolve handler is called only when all its subrequests are
completed.
</pre>
</div>
</content>
</entry>
<entry>
<title>Version bump.</title>
<updated>2017-07-03T13:58:08+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2017-07-03T13:58:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=3057fca368b102895ee2e125a3b648afecd2da73'/>
<id>3057fca368b102895ee2e125a3b648afecd2da73</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Resolver: added the "async" flag to resolver context.</title>
<updated>2017-06-14T15:13:31+00:00</updated>
<author>
<name>Roman Arutyunyan</name>
<email>arut@nginx.com</email>
</author>
<published>2017-06-14T15:13:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=439e205255267662c04d13c3404937e3324e06a5'/>
<id>439e205255267662c04d13c3404937e3324e06a5</id>
<content type='text'>
The flag indicates that the resolve handler is called asynchronously after the
resolve function ngx_resolve_name()/ngx_resolve_addr() exited.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The flag indicates that the resolve handler is called asynchronously after the
resolve function ngx_resolve_name()/ngx_resolve_addr() exited.
</pre>
</div>
</content>
</entry>
<entry>
<title>Resolver: fixed allocation error handling while resolving SRV.</title>
<updated>2017-06-19T11:25:42+00:00</updated>
<author>
<name>Bart Warmerdam</name>
<email>bartw@xs4all.nl</email>
</author>
<published>2017-06-19T11:25:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=b0b24e8a30d0cd412b9f1a7a67d3030580b6acf6'/>
<id>b0b24e8a30d0cd412b9f1a7a67d3030580b6acf6</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Introduced ngx_rwlock_downgrade().</title>
<updated>2017-06-16T15:15:58+00:00</updated>
<author>
<name>Ruslan Ermilov</name>
<email>ru@nginx.com</email>
</author>
<published>2017-06-16T15:15:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=6a4a1f0e23ae07d5a425900b1a9f3623134be55a'/>
<id>6a4a1f0e23ae07d5a425900b1a9f3623134be55a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Added memory barrier semantics to ngx_rwlock_unlock().</title>
<updated>2017-06-16T15:15:53+00:00</updated>
<author>
<name>Ruslan Ermilov</name>
<email>ru@nginx.com</email>
</author>
<published>2017-06-16T15:15:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=3f26c207560037af6cc47964da72c53d587e2def'/>
<id>3f26c207560037af6cc47964da72c53d587e2def</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
