From: Toshihiro Kitagawa Date: Fri, 1 Apr 2011 10:57:35 +0000 (+0000) Subject: Fix hangup with CloseComplete(C) message handling. X-Git-Tag: V3_1_0_ALPHA2~25 X-Git-Url: http://git.postgresql.org/gitweb/static/gitweb.js?a=commitdiff_plain;h=993214be936f830b935ce781a423b95cc29e9810;p=pgpool2.git Fix hangup with CloseComplete(C) message handling. --- diff --git a/pool_proto_modules.c b/pool_proto_modules.c index c3c0874bc..fb45da94f 100644 --- a/pool_proto_modules.c +++ b/pool_proto_modules.c @@ -1424,6 +1424,7 @@ POOL_STATUS BindComplete(POOL_CONNECTION *frontend, POOL_CONNECTION_POOL *backen POOL_STATUS CloseComplete(POOL_CONNECTION *frontend, POOL_CONNECTION_POOL *backend) { POOL_SESSION_CONTEXT *session_context; + POOL_STATUS status; /* Get session context */ session_context = pool_get_session_context(); @@ -1433,6 +1434,10 @@ POOL_STATUS CloseComplete(POOL_CONNECTION *frontend, POOL_CONNECTION_POOL *backe return POOL_END; } + /* Send CloseComplete(3) to frontend before removing the target message */ + status = SimpleForwardToFrontend('3', frontend, backend); + + /* Remove the target message */ if (session_context->uncompleted_message) { pool_remove_sent_message(session_context->uncompleted_message->kind, @@ -1445,7 +1450,7 @@ POOL_STATUS CloseComplete(POOL_CONNECTION *frontend, POOL_CONNECTION_POOL *backe return POOL_END; } - return SimpleForwardToFrontend('3', frontend, backend); + return status; } POOL_STATUS CommandComplete(POOL_CONNECTION *frontend, POOL_CONNECTION_POOL *backend)