From 39b60808c858b519d1b0325429de856a3c1a9ef4 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Fri, 13 Jun 2008 21:48:18 +0200 Subject: [PATCH] [BUG] log: reported queue position was offed-by-one The reported queue position in the logs was 0 for the first pending request in the queue, which is wrong because it means that one request will have to be completed before the queued one may execute. It caused the undesired side effect that 0/0 was reported when either 0 or 1 request was pending in the queue. Thus, we have to increment the queue size before reporting the value. --- src/queue.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/queue.c b/src/queue.c index d29170a3b..4d383f03f 100644 --- a/src/queue.c +++ b/src/queue.c @@ -135,14 +135,14 @@ struct pendconn *pendconn_add(struct session *sess) p->srv = sess->srv; if (sess->srv) { LIST_ADDQ(&sess->srv->pendconns, &p->list); - sess->logs.srv_queue_size += sess->srv->nbpend; sess->srv->nbpend++; + sess->logs.srv_queue_size += sess->srv->nbpend; if (sess->srv->nbpend > sess->srv->nbpend_max) sess->srv->nbpend_max = sess->srv->nbpend; } else { LIST_ADDQ(&sess->be->pendconns, &p->list); - sess->logs.prx_queue_size += sess->be->nbpend; sess->be->nbpend++; + sess->logs.prx_queue_size += sess->be->nbpend; if (sess->be->nbpend > sess->be->nbpend_max) sess->be->nbpend_max = sess->be->nbpend; }