commit 83458b8df4f36e4693b51fd34e158a6e9f9a621e
| author | 斟酌 鵬兄 <tgckpg@gmail.com> |
| date | 2026-06-09T17:47:38Z |
| subject | Better logging |
commit 83458b8df4f36e4693b51fd34e158a6e9f9a621e
Author: 斟酌 鵬兄 <tgckpg@gmail.com>
Date: 2026-06-09T17:47:38Z
Better logging
---
src/stream_conn.c | 28 +++++++++++++++++++++++++---
1 file changed, 25 insertions(+), 3 deletions(-)
diff --git a/src/stream_conn.c b/src/stream_conn.c
index 8f4f422..81fffcf 100644
--- a/src/stream_conn.c
+++ b/src/stream_conn.c
@@ -239,9 +239,31 @@ void stream_upstream_event_cb(struct bufferevent *bev, short events, void *arg)
client_sni = stream_sniff_log_sni(&conn->sniff);
}
- LOG_WARN(conn->upstream_connected
- ? "upstream I/O timed out"
- : "upstream connect timed out",
+ if (!conn->upstream_connected) {
+ LOG_WARN("upstream connect timed out",
+ "listen", _LOGV_ENDPOINT(&r->listen),
+ "upstream", _LOGV_ENDPOINT(&r->upstream),
+ "client_addr", _LOGV_SOCKADDR(&conn->peer_addr, conn->peer_addr_len,
+ peer_buf, sizeof(peer_buf)),
+ "client_sni", _LOGV(client_sni)
+ );
+ goto out_free;
+ }
+
+ if (!client_has_pending_output(conn) && bev_output_len(conn->upstream) == 0) {
+ LOG_DEBUG("stream idle timed out",
+ "listen", _LOGV_ENDPOINT(&r->listen),
+ "upstream", _LOGV_ENDPOINT(&r->upstream),
+ "client_addr", _LOGV_SOCKADDR(&conn->peer_addr, conn->peer_addr_len,
+ peer_buf, sizeof(peer_buf)),
+ "client_sni", _LOGV(client_sni)
+ );
+ goto out_free;
+ }
+
+ LOG_WARN("stream I/O stalled timed out",
+ "client_output", _LOGV(bev_output_len(conn->client)),
+ "upstream_output", _LOGV(bev_output_len(conn->upstream)),
"listen", _LOGV_ENDPOINT(&r->listen),
"upstream", _LOGV_ENDPOINT(&r->upstream),
"client_addr", _LOGV_SOCKADDR(&conn->peer_addr, conn->peer_addr_len,