mirror of
https://github.com/NLnetLabs/unbound.git
synced 2025-12-20 23:00:56 -05:00
- Fix the max number of reply-address count
git-svn-id: file:///svn/unbound/trunk@2171 be551aaa-1e26-0410-a405-d3ace91eadb9
This commit is contained in:
parent
0a848d686c
commit
6351307ab4
4 changed files with 14 additions and 12 deletions
|
|
@ -906,14 +906,6 @@ worker_handle_request(struct comm_point* c, void* arg, int error,
|
|||
}
|
||||
|
||||
/* grab a work request structure for this new request */
|
||||
if(worker->env.mesh->num_reply_addrs>worker->request_size*16) {
|
||||
/* protect our memory usage from storing reply addresses */
|
||||
verbose(VERB_ALGO, "Too many requests queued. "
|
||||
"dropping incoming query.");
|
||||
worker->env.mesh->stats_dropped++;
|
||||
comm_point_drop_reply(repinfo);
|
||||
return 0;
|
||||
}
|
||||
mesh_new_client(worker->env.mesh, &qinfo,
|
||||
ldns_buffer_read_u16_at(c->buffer, 2),
|
||||
&edns, repinfo, *(uint16_t*)ldns_buffer_begin(c->buffer));
|
||||
|
|
@ -1122,7 +1114,6 @@ worker_init(struct worker* worker, struct config_file *cfg,
|
|||
worker_delete(worker);
|
||||
return 0;
|
||||
}
|
||||
worker->request_size = cfg->num_queries_per_thread;
|
||||
|
||||
server_stats_init(&worker->stats, cfg);
|
||||
alloc_init(&worker->alloc, &worker->daemon->superalloc,
|
||||
|
|
|
|||
|
|
@ -102,9 +102,6 @@ struct worker {
|
|||
/** timer for statistics */
|
||||
struct comm_timer* stat_timer;
|
||||
|
||||
/** number of requests that can be handled by this worker */
|
||||
size_t request_size;
|
||||
|
||||
/** random() table for this worker. */
|
||||
struct ub_randstate* rndstate;
|
||||
/** do we need to restart or quit (on signal) */
|
||||
|
|
|
|||
|
|
@ -6,6 +6,9 @@
|
|||
/ (average time for such long queries) qps for long queries.
|
||||
And about (numqueriesperthread / 2)/(jostletimeout in whole seconds)
|
||||
qps for short queries, per thread.
|
||||
- Fix the max number of reply-address count to be applied for duplicate
|
||||
queries, and not for new query list entries. This raises the memory
|
||||
usage to a max of (16+1)*numqueriesperthread reply addresses.
|
||||
|
||||
25 June 2010: Wouter
|
||||
- Fix handling of corner case reply from lame server, follows rfc2308.
|
||||
|
|
|
|||
|
|
@ -283,6 +283,17 @@ void mesh_new_client(struct mesh_area* mesh, struct query_info* qinfo,
|
|||
mesh->stats_dropped ++;
|
||||
return;
|
||||
}
|
||||
/* for this new reply state, the reply address is free,
|
||||
* so the limit of reply addresses does not stop reply states*/
|
||||
} else {
|
||||
/* protect our memory usage from storing reply addresses */
|
||||
if(mesh->num_reply_addrs > mesh->max_reply_states*16) {
|
||||
verbose(VERB_ALGO, "Too many requests queued. "
|
||||
"dropping incoming query.");
|
||||
mesh->stats_dropped++;
|
||||
comm_point_drop_reply(rep);
|
||||
return;
|
||||
}
|
||||
}
|
||||
/* see if it already exists, if not, create one */
|
||||
if(!s) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue