yandex / odyssey

Scalable PostgreSQL connection pooler

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Twice response to one query

vadv opened this issue · comments

commented

It can be seen in tcpdump that two responses came to one client query.

in stream 270 tcp.stream eq 270:

  • query: packet number 202136
  • twice response: packet number 202175

CleanShot 2023-04-14 at 11 49 36@2x

tcpdump

commented

here the fix:

From: Dmitry Vasiliev <dmitrivasilyev@ozon.ru>
Date: Mon, 17 Apr 2023 17:12:26 +0300
Subject: [PATCH] fix backend reset

---
 sources/reset.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/sources/reset.c b/sources/reset.c
index ff4424b..d92e63e 100644
--- a/sources/reset.c
+++ b/sources/reset.c
@@ -58,6 +58,10 @@ int od_reset(od_server_t *server)
 		if (server->relay.packet > 0)
 			goto error;

+		if (!od_server_synchronized(server)) {
+			goto drop;
+		}
+
 		while (!od_server_synchronized(server)) {
 			od_debug(&instance->logger, "reset", server->client,
 				 server,
--
2.40.0

UPD: that's not helping.