[pgpool-hackers: 1096] Re: [pgpool-committers: 2702] pgpool: Mega patch to enhance performance in extended protocol mode.
Tatsuo Ishii
ishii at postgresql.org
Tue Oct 13 17:52:47 JST 2015
> Ishii-san
>
> Have you read my mail below?
Yes. I have been troubled with other pgpool-II bugs which needs urgent
fix (will report in separate message)
Best regards,
--
Tatsuo Ishii
SRA OSS, Inc. Japan
English: http://www.sraoss.co.jp/index_en.php
Japanese:http://www.sraoss.co.jp
> On Wed, 30 Sep 2015 18:21:44 +0900
> Yugo Nagata <nagata at sraoss.co.jp> wrote:
>
>> Ishii-san
>>
>> Thank you for reply. I understand that we don't have to be worry
>> about memory leak.
>>
>> BTW, I found other questions about the commit.
>>
>> (1)
>> > - New data structure called "pending message queue" is created to
>> > manage which response of particular message is pending. When
>> > Parse/Bind/Close message are received, each message is en-queued.
>> > The information is used to process those response messages, when
>> > Parse complete/Bind completes and Close compete message are received
>> > because they don't have any information regarding statement/portal.
>>
>> In the codes, this structure is used only for Close message
>> (in Close() and CloseComplete()). This is enough and the
>> structure is not necessary for Parse/Bind?
>>
>> (2)
>> In CloseComplete() function, the condition for removing message is
>> "kind == ' '". Is should be "kind != ' '" ?
>>
>> pool_remove_sent_message(' ', name) looks odd to me.
>>
>> 1865 if (kind == ' ')
>> 1866 {
>> 1867 pool_remove_sent_message(kind, name);
>> 1868 ereport(DEBUG1,
>> 1869 (errmsg("CloseComplete: remove uncompleted message. kind:%c, name:%s",
>> 1870 kind, name)));
>> 1871 }
>>
>>
>>
>> On Wed, 30 Sep 2015 14:04:10 +0900 (JST)
>> Tatsuo Ishii <ishii at postgresql.org> wrote:
>>
>> > [remving Cc: to pgpool-committers to keep the list clean]
>> >
>> > > Ishii-san
>> > >
>> > > Looking at the commit, I found that pool_sent_message_destory()
>> > > isn't called in pool_remove_sent_message() which is commented
>> > > out with XXX. Is it needed? I think this causes memory leak.
>> > >
>> > > @@ -304,7 +317,8 @@ bool pool_remove_sent_message(char kind, const char *name)
>> > > if (msglist->sent_messages[i]->kind == kind &&
>> > > !strcmp(msglist->sent_messages[i]->name, name))
>> > > {
>> > > - pool_sent_message_destroy(msglist->sent_messages[i]);
>> > > + //XXX
>> > > + //pool_sent_message_destroy(msglist->sent_messages[i]);
>> > > break;
>> > > }
>> > > }
>> >
>> > Because the commit removes most flush messages, it is possible that
>> > pending messages remain (not yet receiving response message from
>> > backend).
>> >
>> > Also, the memory for sent_message is in the session context, when a
>> > session ends, it will be freed anyway.
>> >
>> > However the code is apparently a temporary one, I should have cleaned
>> > earlier. Will work on it.
>> >
>> > Best regards,
>> > --
>> > Tatsuo Ishii
>> > SRA OSS, Inc. Japan
>> > English: http://www.sraoss.co.jp/index_en.php
>> > Japanese:http://www.sraoss.co.jp
>>
>>
>> --
>> Yugo Nagata <nagata at sraoss.co.jp>
>> _______________________________________________
>> pgpool-hackers mailing list
>> pgpool-hackers at pgpool.net
>> http://www.pgpool.net/mailman/listinfo/pgpool-hackers
>
>
> --
> Yugo Nagata <nagata at sraoss.co.jp>
More information about the pgpool-hackers
mailing list