mirror of
http://git.haproxy.org/git/haproxy.git
synced 2026-02-21 19:33:41 +02:00
BUG/MINOR: stream: Be sure to have a listener to increment its counters
In process_stream(), when a client or a server abort is handled, the corresponding listener's counter is incremented. But, we must be sure to have a listener attached to the session. This bug was introduced by the commitcff0f739e5. Thanks to Fred to reporting me the bug. No need to backport this patch, except if commitcff0f739e5is backported.
This commit is contained in:
20
src/stream.c
20
src/stream.c
@@ -1616,7 +1616,7 @@ struct task *process_stream(struct task *t, void *context, unsigned short state)
|
||||
if (!(req->analysers) && !(res->analysers)) {
|
||||
_HA_ATOMIC_ADD(&s->be->be_counters.cli_aborts, 1);
|
||||
_HA_ATOMIC_ADD(&sess->fe->fe_counters.cli_aborts, 1);
|
||||
if (sess->listener->counters)
|
||||
if (sess->listener && sess->listener->counters)
|
||||
_HA_ATOMIC_ADD(&sess->listener->counters->cli_aborts, 1);
|
||||
if (srv)
|
||||
_HA_ATOMIC_ADD(&srv->counters.cli_aborts, 1);
|
||||
@@ -1639,7 +1639,7 @@ struct task *process_stream(struct task *t, void *context, unsigned short state)
|
||||
if (!(req->analysers) && !(res->analysers)) {
|
||||
_HA_ATOMIC_ADD(&s->be->be_counters.srv_aborts, 1);
|
||||
_HA_ATOMIC_ADD(&sess->fe->fe_counters.srv_aborts, 1);
|
||||
if (sess->listener->counters)
|
||||
if (sess->listener && sess->listener->counters)
|
||||
_HA_ATOMIC_ADD(&sess->listener->counters->srv_aborts, 1);
|
||||
if (srv)
|
||||
_HA_ATOMIC_ADD(&srv->counters.srv_aborts, 1);
|
||||
@@ -1894,7 +1894,7 @@ struct task *process_stream(struct task *t, void *context, unsigned short state)
|
||||
if (req->flags & CF_READ_ERROR) {
|
||||
_HA_ATOMIC_ADD(&s->be->be_counters.cli_aborts, 1);
|
||||
_HA_ATOMIC_ADD(&sess->fe->fe_counters.cli_aborts, 1);
|
||||
if (sess->listener->counters)
|
||||
if (sess->listener && sess->listener->counters)
|
||||
_HA_ATOMIC_ADD(&sess->listener->counters->cli_aborts, 1);
|
||||
if (srv)
|
||||
_HA_ATOMIC_ADD(&srv->counters.cli_aborts, 1);
|
||||
@@ -1903,7 +1903,7 @@ struct task *process_stream(struct task *t, void *context, unsigned short state)
|
||||
else if (req->flags & CF_READ_TIMEOUT) {
|
||||
_HA_ATOMIC_ADD(&s->be->be_counters.cli_aborts, 1);
|
||||
_HA_ATOMIC_ADD(&sess->fe->fe_counters.cli_aborts, 1);
|
||||
if (sess->listener->counters)
|
||||
if (sess->listener && sess->listener->counters)
|
||||
_HA_ATOMIC_ADD(&sess->listener->counters->cli_aborts, 1);
|
||||
if (srv)
|
||||
_HA_ATOMIC_ADD(&srv->counters.cli_aborts, 1);
|
||||
@@ -1912,7 +1912,7 @@ struct task *process_stream(struct task *t, void *context, unsigned short state)
|
||||
else if (req->flags & CF_WRITE_ERROR) {
|
||||
_HA_ATOMIC_ADD(&s->be->be_counters.srv_aborts, 1);
|
||||
_HA_ATOMIC_ADD(&sess->fe->fe_counters.srv_aborts, 1);
|
||||
if (sess->listener->counters)
|
||||
if (sess->listener && sess->listener->counters)
|
||||
_HA_ATOMIC_ADD(&sess->listener->counters->srv_aborts, 1);
|
||||
if (srv)
|
||||
_HA_ATOMIC_ADD(&srv->counters.srv_aborts, 1);
|
||||
@@ -1921,7 +1921,7 @@ struct task *process_stream(struct task *t, void *context, unsigned short state)
|
||||
else {
|
||||
_HA_ATOMIC_ADD(&s->be->be_counters.srv_aborts, 1);
|
||||
_HA_ATOMIC_ADD(&sess->fe->fe_counters.srv_aborts, 1);
|
||||
if (sess->listener->counters)
|
||||
if (sess->listener && sess->listener->counters)
|
||||
_HA_ATOMIC_ADD(&sess->listener->counters->srv_aborts, 1);
|
||||
if (srv)
|
||||
_HA_ATOMIC_ADD(&srv->counters.srv_aborts, 1);
|
||||
@@ -1948,7 +1948,7 @@ struct task *process_stream(struct task *t, void *context, unsigned short state)
|
||||
if (res->flags & CF_READ_ERROR) {
|
||||
_HA_ATOMIC_ADD(&s->be->be_counters.srv_aborts, 1);
|
||||
_HA_ATOMIC_ADD(&sess->fe->fe_counters.srv_aborts, 1);
|
||||
if (sess->listener->counters)
|
||||
if (sess->listener && sess->listener->counters)
|
||||
_HA_ATOMIC_ADD(&sess->listener->counters->srv_aborts, 1);
|
||||
if (srv)
|
||||
_HA_ATOMIC_ADD(&srv->counters.srv_aborts, 1);
|
||||
@@ -1957,7 +1957,7 @@ struct task *process_stream(struct task *t, void *context, unsigned short state)
|
||||
else if (res->flags & CF_READ_TIMEOUT) {
|
||||
_HA_ATOMIC_ADD(&s->be->be_counters.srv_aborts, 1);
|
||||
_HA_ATOMIC_ADD(&sess->fe->fe_counters.srv_aborts, 1);
|
||||
if (sess->listener->counters)
|
||||
if (sess->listener && sess->listener->counters)
|
||||
_HA_ATOMIC_ADD(&sess->listener->counters->srv_aborts, 1);
|
||||
if (srv)
|
||||
_HA_ATOMIC_ADD(&srv->counters.srv_aborts, 1);
|
||||
@@ -1966,7 +1966,7 @@ struct task *process_stream(struct task *t, void *context, unsigned short state)
|
||||
else if (res->flags & CF_WRITE_ERROR) {
|
||||
_HA_ATOMIC_ADD(&s->be->be_counters.cli_aborts, 1);
|
||||
_HA_ATOMIC_ADD(&sess->fe->fe_counters.cli_aborts, 1);
|
||||
if (sess->listener->counters)
|
||||
if (sess->listener && sess->listener->counters)
|
||||
_HA_ATOMIC_ADD(&sess->listener->counters->cli_aborts, 1);
|
||||
if (srv)
|
||||
_HA_ATOMIC_ADD(&srv->counters.cli_aborts, 1);
|
||||
@@ -1975,7 +1975,7 @@ struct task *process_stream(struct task *t, void *context, unsigned short state)
|
||||
else {
|
||||
_HA_ATOMIC_ADD(&s->be->be_counters.cli_aborts, 1);
|
||||
_HA_ATOMIC_ADD(&sess->fe->fe_counters.cli_aborts, 1);
|
||||
if (sess->listener->counters)
|
||||
if (sess->listener && sess->listener->counters)
|
||||
_HA_ATOMIC_ADD(&sess->listener->counters->cli_aborts, 1);
|
||||
if (srv)
|
||||
_HA_ATOMIC_ADD(&srv->counters.cli_aborts, 1);
|
||||
|
||||
Reference in New Issue
Block a user