2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-31 14:35:26 +00:00

Merge branch '3141-remove-the-artificial-stream-clients-limit' into 'main'

Remove the limit on the number of simultaneous TCP queries

Closes #3141

See merge request isc-projects/bind9!5851
This commit is contained in:
Evan Hunt
2022-02-18 00:40:45 +00:00
4 changed files with 10 additions and 15 deletions

View File

@@ -1,3 +1,6 @@
5812. [func] Drop the artificial limit on the number of queries
processed in a single TCP read callback. [GL #3141]
5811. [bug] Reimplement the maximum and idle timeouts for outgoing 5811. [bug] Reimplement the maximum and idle timeouts for outgoing
zone tranfers. [GL #1897] zone tranfers. [GL #1897]

View File

@@ -48,6 +48,10 @@ Feature Changes
scans, and other events that require exclusive access to a shared resources). scans, and other events that require exclusive access to a shared resources).
:gl:`#3137` :gl:`#3137`
- The limit on the number of simultaneously processed pipelined DNS queries
received over TCP has been dropped. Previously, it was capped at 23
queries processed at the same time. :gl:`#3141`
Bug Fixes Bug Fixes
~~~~~~~~~ ~~~~~~~~~

View File

@@ -2097,14 +2097,6 @@ isc__nmsocket_readtimeout_cb(uv_timer_t *timer);
void void
isc__nmsocket_writetimeout_cb(uv_timer_t *timer); isc__nmsocket_writetimeout_cb(uv_timer_t *timer);
/*%<
*
* Maximum number of simultaneous handles in flight supported for a single
* connected TCPDNS socket. This value was chosen arbitrarily, and may be
* changed in the future.
*/
#define STREAM_CLIENTS_PER_CONN 23
#define UV_RUNTIME_CHECK(func, ret) \ #define UV_RUNTIME_CHECK(func, ret) \
if (ret != 0) { \ if (ret != 0) { \
isc_error_fatal(__FILE__, __LINE__, "%s failed: %s\n", #func, \ isc_error_fatal(__FILE__, __LINE__, "%s failed: %s\n", #func, \

View File

@@ -2335,10 +2335,8 @@ processbuffer(isc_nmsocket_t *sock) {
* timers. If we do have a full message, reset the timer. * timers. If we do have a full message, reset the timer.
* *
* Stop reading if this is a client socket, or if the server socket * Stop reading if this is a client socket, or if the server socket
* has been set to sequential mode, or the number of queries we are * has been set to sequential mode. In this case we'll be called again
* processing simultaneously has reached the clients-per-connection * later by isc__nm_resume_processing().
* limit. In this case we'll be called again later by
* isc__nm_resume_processing().
*/ */
void void
isc__nm_process_sock_buffer(isc_nmsocket_t *sock) { isc__nm_process_sock_buffer(isc_nmsocket_t *sock) {
@@ -2375,9 +2373,7 @@ isc__nm_process_sock_buffer(isc_nmsocket_t *sock) {
isc__nmsocket_timer_stop(sock); isc__nmsocket_timer_stop(sock);
if (atomic_load(&sock->client) || if (atomic_load(&sock->client) ||
atomic_load(&sock->sequential) || atomic_load(&sock->sequential)) {
ah >= STREAM_CLIENTS_PER_CONN)
{
isc__nm_stop_reading(sock); isc__nm_stop_reading(sock);
return; return;
} }