Merge branch '4742-tcp4clients-statistic-is-inaccurate' into 'bind-9.18'

Increase TCP4Clients/TCP6Clients after point of no failure

See merge request isc-projects/bind9!9066
This commit is contained in:
Aydın Mercan 2024-05-30 11:28:48 +00:00
commit eaacc6d4d6
5 changed files with 14 additions and 4 deletions

View file

@ -1,3 +1,6 @@
6391. [bug] TCP client statistics could sometimes fail to decrease
when accepting client connection fails. [GL #4742]
6390. [bug] Fix a data race in isc_task_purgeevent(). [GL !8937]
6389. [bug] dnssec-verify and dnssec-signzone could fail if there

View file

@ -8244,3 +8244,6 @@ exceptions are noted in the descriptions.
``<TYPE>RecvErr``
This indicates the number of errors in socket receive operations, including errors of send operations on a connected UDP socket, notified by an ICMP error message.
``TCP4Clients``/``TCP6Clients``
This indicates the number of IPv4/IPv6 clients currently connected over TCP.

View file

@ -43,6 +43,10 @@ Bug Fixes
:iscman:`named` could crash with an assertion failure. This has been
fixed. :gl:`#4719`
- The statistics channel counters that indicated the number of currently
connected TCP IPv4/IPv6 clients were not properly adjusted in certain
failure scenarios. This has been fixed. :gl:`#4742`
Known Issues
~~~~~~~~~~~~

View file

@ -1005,8 +1005,6 @@ accept_connection(isc_nmsocket_t *ssock, isc_quota_t *quota) {
UV_RUNTIME_CHECK(uv_timer_init, r);
uv_handle_set_data((uv_handle_t *)&csock->read_timer, csock);
isc__nm_incstats(csock, STATID_CLIENTS);
r = uv_accept(&ssock->uv_handle.stream, &csock->uv_handle.stream);
if (r != 0) {
result = isc__nm_uverr2result(r);
@ -1084,6 +1082,8 @@ accept_connection(isc_nmsocket_t *ssock, isc_quota_t *quota) {
isc_nmhandle_detach(&handle);
isc__nm_incstats(csock, STATID_CLIENTS);
/*
* sock is now attached to the handle.
*/

View file

@ -1629,8 +1629,6 @@ accept_connection(isc_nmsocket_t *ssock, isc_quota_t *quota) {
UV_RUNTIME_CHECK(uv_timer_init, r);
uv_handle_set_data((uv_handle_t *)&csock->read_timer, csock);
isc__nm_incstats(csock, STATID_CLIENTS);
r = uv_accept(&ssock->uv_handle.stream, &csock->uv_handle.stream);
if (r != 0) {
result = isc__nm_uverr2result(r);
@ -1727,6 +1725,8 @@ accept_connection(isc_nmsocket_t *ssock, isc_quota_t *quota) {
goto failure;
}
isc__nm_incstats(csock, STATID_CLIENTS);
/*
* sock is now attached to the handle.
*/