mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-22 20:32:12 +00:00
MINOR: mux-h2/traces: explicitly show the error/refused stream states
Sometimes it's unclear whether a stream is still open or closed when certain traces are emitted, for example when the stream was refused, because the reported pointer and ID in fact correspond to the refused stream. And for closed streams, no pointer/name is printed, leaving some confusion about the state. This patch makes the situation easier to analyse by explicitly reporting "h2s=CLO" on closed/error/refused streams so that we don't waste time comparing pointers and we instantly know the stream is closed. Now instead of emitting: [03|h2|5|mux_h2.c:2874] h2c_frt_handle_headers(): leaving on error : h2c=0x7fdfa8026820(F,FRE) dsi=201 h2s=0x9fdb60(0,CLO) It will emit: [03|h2|5|mux_h2.c:2874] h2c_frt_handle_headers(): leaving on error : h2c=0x7fdfa8026820(F,FRE) dsi=201 h2s=CLO
This commit is contained in:
parent
f66b9f6018
commit
1deac6f99a
@ -516,8 +516,10 @@ static void h2_trace(enum trace_level level, uint64_t mask, const struct trace_s
|
||||
chunk_appendf(&trace_buf, " dsi=%d", h2c->dsi);
|
||||
if (h2s == h2_idle_stream)
|
||||
chunk_appendf(&trace_buf, " h2s=IDL");
|
||||
else if (h2s != h2_closed_stream)
|
||||
else if (h2s != h2_closed_stream && h2s != h2_refused_stream && h2s != h2_error_stream)
|
||||
chunk_appendf(&trace_buf, " h2s=%p(%d,%s)", h2s, h2s->id, h2s_st_to_str(h2s->st));
|
||||
else if (h2c->dsi > 0) // don't show that before sid is known
|
||||
chunk_appendf(&trace_buf, " h2s=CLO");
|
||||
if (h2s->id && h2s->errcode)
|
||||
chunk_appendf(&trace_buf, " err=%s/%02x", h2_err_str(h2s->errcode), h2s->errcode);
|
||||
}
|
||||
@ -2859,7 +2861,7 @@ static struct h2s *h2c_frt_handle_headers(struct h2c *h2c, struct h2s *h2s)
|
||||
h2_release_buf(h2c, &rxbuf);
|
||||
h2c->st0 = H2_CS_FRAME_E;
|
||||
|
||||
TRACE_USER("rejected H2 request", H2_EV_RX_FRAME|H2_EV_RX_HDR|H2_EV_STRM_NEW|H2_EV_STRM_END, h2c->conn, 0, &rxbuf);
|
||||
TRACE_USER("rejected H2 request", H2_EV_RX_FRAME|H2_EV_RX_HDR|H2_EV_STRM_NEW|H2_EV_STRM_END, h2c->conn, h2s, &rxbuf);
|
||||
TRACE_DEVEL("leaving on error", H2_EV_RX_FRAME|H2_EV_RX_HDR, h2c->conn, h2s);
|
||||
return h2s;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user