mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-09-02 23:55:27 +00:00
Don't increment network error stats on UV_EOF
When networking statistics was added to the netmgr (in commit
5234a8e00a
), two lines were added that
increment the 'STATID_RECVFAIL' statistic: One if 'uv_read_start'
fails and one at the end of the 'read_cb'. The latter happens
if 'nread < 0'.
According to the libuv documentation, I/O read callbacks (such as for
files and sockets) are passed a parameter 'nread'. If 'nread' is less
than 0, there was an error and 'UV_EOF' is the end of file error, which
you may want to handle differently.
In other words, we should not treat EOF as a RECVFAIL error.
This commit is contained in:
3
CHANGES
3
CHANGES
@@ -1,3 +1,6 @@
|
|||||||
|
5517. [bug] Handle 'UV_EOF' differently and don't contribute it to
|
||||||
|
the RECVFAIL statistic count. [GL #2208]
|
||||||
|
|
||||||
5516. [func] The default EDNS buffer size has been changed from 4096
|
5516. [func] The default EDNS buffer size has been changed from 4096
|
||||||
to 1232, the EDNS buffer size probing has been removed
|
to 1232, the EDNS buffer size probing has been removed
|
||||||
and ``named`` now sets the DON'T FRAGMENT flag on
|
and ``named`` now sets the DON'T FRAGMENT flag on
|
||||||
|
@@ -161,6 +161,8 @@ if $FEATURETEST --have-libxml2 && [ -x "${CURL}" ] && [ -x "${XSLTPROC}" ] ; th
|
|||||||
${CURL} http://10.53.0.3:${EXTRAPORT1}/xml/v3 > curl.out.${n}.xml 2>/dev/null || ret=1
|
${CURL} http://10.53.0.3:${EXTRAPORT1}/xml/v3 > curl.out.${n}.xml 2>/dev/null || ret=1
|
||||||
${CURL} http://10.53.0.3:${EXTRAPORT1}/bind9.xsl > curl.out.${n}.xsl 2>/dev/null || ret=1
|
${CURL} http://10.53.0.3:${EXTRAPORT1}/bind9.xsl > curl.out.${n}.xsl 2>/dev/null || ret=1
|
||||||
${XSLTPROC} curl.out.${n}.xsl - < curl.out.${n}.xml > xsltproc.out.${n} 2>/dev/null || ret=1
|
${XSLTPROC} curl.out.${n}.xsl - < curl.out.${n}.xml > xsltproc.out.${n} 2>/dev/null || ret=1
|
||||||
|
cp curl.out.${n}.xml stats.xml.out || ret=1
|
||||||
|
|
||||||
#
|
#
|
||||||
# grep for expected sections.
|
# grep for expected sections.
|
||||||
#
|
#
|
||||||
@@ -205,6 +207,30 @@ if [ $ret != 0 ]; then echo_i "failed"; fi
|
|||||||
status=`expr $status + $ret`
|
status=`expr $status + $ret`
|
||||||
n=`expr $n + 1`
|
n=`expr $n + 1`
|
||||||
|
|
||||||
|
ret=0
|
||||||
|
echo_i "checking bind9.xml socket statistics ($n)"
|
||||||
|
if $FEATURETEST --have-libxml2 && [ -x "${CURL}" ] && [ -x "${XSLTPROC}" ] ; then
|
||||||
|
# Socket statistics (expect no errors)
|
||||||
|
grep "<counter name=\"TCP4AcceptFail\">0</counter>" stats.xml.out >/dev/null || ret=1
|
||||||
|
grep "<counter name=\"TCP4BindFail\">0</counter>" stats.xml.out >/dev/null || ret=1
|
||||||
|
grep "<counter name=\"TCP4ConnFail\">0</counter>" stats.xml.out >/dev/null || ret=1
|
||||||
|
grep "<counter name=\"TCP4OpenFail\">0</counter>" stats.xml.out >/dev/null || ret=1
|
||||||
|
grep "<counter name=\"TCP4RecvErr\">0</counter>" stats.xml.out >/dev/null || ret=1
|
||||||
|
grep "<counter name=\"TCP4SendErr\">0</counter>" stats.xml.out >/dev/null || ret=1
|
||||||
|
|
||||||
|
grep "<counter name=\"TCP6AcceptFail\">0</counter>" stats.xml.out >/dev/null || ret=1
|
||||||
|
grep "<counter name=\"TCP6BindFail\">0</counter>" stats.xml.out >/dev/null || ret=1
|
||||||
|
grep "<counter name=\"TCP6ConnFail\">0</counter>" stats.xml.out >/dev/null || ret=1
|
||||||
|
grep "<counter name=\"TCP6OpenFail\">0</counter>" stats.xml.out >/dev/null || ret=1
|
||||||
|
grep "<counter name=\"TCP6RecvErr\">0</counter>" stats.xml.out >/dev/null || ret=1
|
||||||
|
grep "<counter name=\"TCP6SendErr\">0</counter>" stats.xml.out >/dev/null || ret=1
|
||||||
|
else
|
||||||
|
echo_i "skipping test as libxml2 and/or curl and/or xsltproc was not found"
|
||||||
|
fi
|
||||||
|
if [ $ret != 0 ]; then echo_i "failed"; fi
|
||||||
|
status=`expr $status + $ret`
|
||||||
|
n=`expr $n + 1`
|
||||||
|
|
||||||
ret=0
|
ret=0
|
||||||
echo_i "checking priming queries are counted ($n)"
|
echo_i "checking priming queries are counted ($n)"
|
||||||
grep "1 priming queries" ns3/named.stats
|
grep "1 priming queries" ns3/named.stats
|
||||||
|
@@ -69,3 +69,6 @@ Bug Fixes
|
|||||||
- `named` would start continous rollovers for policies that algorithms
|
- `named` would start continous rollovers for policies that algorithms
|
||||||
Ed25519 or Ed448 due to a mismatch in created key size and expected key size.
|
Ed25519 or Ed448 due to a mismatch in created key size and expected key size.
|
||||||
[GL #2171]
|
[GL #2171]
|
||||||
|
|
||||||
|
- Handle `UV_EOF` differently such that it is not treated as a `TCP4RecvErr` or
|
||||||
|
`TCP6RecvErr`. [GL #2208]
|
||||||
|
@@ -803,8 +803,10 @@ read_cb(uv_stream_t *stream, ssize_t nread, const uv_buf_t *buf) {
|
|||||||
* This might happen if the inner socket is closing. It means that
|
* This might happen if the inner socket is closing. It means that
|
||||||
* it's detached, so the socket will be closed.
|
* it's detached, so the socket will be closed.
|
||||||
*/
|
*/
|
||||||
if (cb != NULL) {
|
if (nread != UV_EOF) {
|
||||||
isc__nm_incstats(sock->mgr, sock->statsindex[STATID_RECVFAIL]);
|
isc__nm_incstats(sock->mgr, sock->statsindex[STATID_RECVFAIL]);
|
||||||
|
}
|
||||||
|
if (cb != NULL) {
|
||||||
isc__nmsocket_clearcb(sock);
|
isc__nmsocket_clearcb(sock);
|
||||||
cb(sock->statichandle, ISC_R_EOF, NULL, cbarg);
|
cb(sock->statichandle, ISC_R_EOF, NULL, cbarg);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user