pgpool2.git / summary / log / commit / refs

commit    e8f509252a1bacc2bc8993299ad393e9bbab4724
Author:   Tatsuo Ishii <ishii@postgresql.org>
Date:     Wed Aug 16 05:54:44 2017 +0000

    Fix infinite loop while resetting connection.
    
    If there was an error, bogus sent_message is registered and it causes
    an infinite loop because removing the bogus list does not work in the
    current implementation. Solution is, not to register bogus sent
    message in the error case.


src/protocol/pool_proto_modules.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/protocol/pool_proto_modules.c b/src/protocol/pool_proto_modules.c index d02955646..764acceef 100644 --- a/src/protocol/pool_proto_modules.c +++ b/src/protocol/pool_proto_modules.c @@ -1908,7 +1908,8 @@ POOL_STATUS ReadyForQuery(POOL_CONNECTION *frontend, if ((pool_is_doing_extended_query_message() && session_context->query_context->query_state[MASTER_NODE_ID] != POOL_UNPARSED && session_context->uncompleted_message) || - (!pool_is_doing_extended_query_message() && session_context->uncompleted_message)) + (!pool_is_doing_extended_query_message() && session_context->uncompleted_message && + session_context->uncompleted_message->kind != 0)) { pool_add_sent_message(session_context->uncompleted_message); pool_remove_sent_message(session_context->uncompleted_message->kind, [parent: 9f1acea4e6b1]