[pgpool-hackers: 1451] Re: Item #11, torward pgpool-II 3.6
Tatsuo Ishii
ishii at postgresql.org
Mon Mar 7 15:59:51 JST 2016
> On Mon, 22 Feb 2016 16:02:03 +0900 (JST)
> Tatsuo Ishii <ishii at postgresql.org> wrote:
>
>> > Do you mean if we can distiguish TCP connection failure from othres, we
>> > can eliminate unnecessary proces exiting on failover?
>>
>> No. I am talking about a problem caused by a cable is pulled out. See
>> the attached mails in the upthread email.
>
> I'm sorry. I had read the attached mails but I wrote it incorrectly.
> What I want to ask is; when a failover occurs, if we know this isn't caused
> by a cable pllued out, can we handle this without killing the processes?
Yes, if we knew the failure is not caused by a pulled out cable, we
would not need to restart child process.
>> > For example, don't we need to exit processes in the following cases?
>> >
>> > a. when using pcp_degenerate_node commend
>>
>> What is pcp_degenerate_node commend?
>
> It's a mistake. I meant pcp_detach_node. This command is used to
> degenerate the backend manually, and in this case, the failover
> isn't caused by a cable plugged out.
>
>>
>> > b. when the backend send ADMIN_SHUTDOWN_ERROR_CODE ("57P01") or
>> > CRASH_SHUTDOWN_ERROR_CODE "57P02"
>>
>> Not related to the topic I'm arguing.
>
> When these error/notice messages are sent, a failover occurs by calling
> notice_backend_error(). However, this is caused administrative shutdown
> of backend and not a cable un-plugged. I think we don't need kill
> processes in this case.
>
>
> (pool_process_query.c)
> 4521 /*
> 4522 * admin shutdown postmaster or postmaster goes down
> 4523 */
> 4524 r = detect_postmaster_down_error(CONNECTION(backend, i), MAJOR(backend));
> 4525 if (r == SPECIFIED_ERROR)
> 4526 {
> 4527 ereport(LOG,
> 4528 (errmsg("reading and processing packets"),
> 4529 errdetail("postmaster on DB node %d was shutdown by administrative command", i)));
> 4530 /* detach backend node. */
> 4531 was_error = 1;
> 4532 if (!VALID_BACKEND(i))
> 4533 break;
> 4534 notice_backend_error(i);
> 4535 sleep(5);
> 4536 break;
> 4537 }
>
>
>>
>> > c. when we can confirm that there are no problem on TCP connection
>> > from ping result
>> >
>> > Of course, this is the exception when the backend is used by the current session.
>>
>> Yes.
>>
>> 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>
More information about the pgpool-hackers
mailing list