<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Apr 22, 2013 at 3:34 AM, Tatsuo Ishii <span dir="ltr">&lt;<a href="mailto:ishii@postgresql.org" target="_blank">ishii@postgresql.org</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Can you please show pgpool log?<br></blockquote><div><br></div><div style>Hi Tatsuo,</div><div style><br></div><div style>
We are not able to reproduce the issue locally, we will try to get the logs from the customer. The issue is only reproduced in the customer environment so we might end up connecting to the customer machine remotely to progress the issue.</div>
<div style><br></div><div style>Thanks,</div><div style><br></div><div style>-- Ahsan </div><div style><br></div><div style> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

--<br>
Tatsuo Ishii<br>
SRA OSS, Inc. Japan<br>
English: <a href="http://www.sraoss.co.jp/index_en.php" target="_blank">http://www.sraoss.co.jp/index_en.php</a><br>
Japanese: <a href="http://www.sraoss.co.jp" target="_blank">http://www.sraoss.co.jp</a><br>
<div class="im"><br>
&gt; Hi,<br>
&gt;<br>
&gt; There is unexpected behavior in pgpool2 that seems to be a bug. Please find<br>
&gt; the details as following i.e.<br>
&gt;<br>
&gt; Phenomenon<br>
&gt;<br>
&gt;&gt; pgpool2 configuration option &quot;follow_master_command&quot; special character %H<br>
&gt;&gt; (Hostname of the new master node) is not working as expected<br>
&gt;&gt; In master slave mode after failover, 2nd node become new master but got<br>
&gt;&gt; unexpected hostname (via %H). Please find attached pgpool.conf for details.<br>
&gt;<br>
&gt;<br>
&gt; Versions<br>
&gt;<br>
&gt;&gt; OS version: RHEL - 64<br>
&gt;&gt; pgpool version: pgpool-II version 3.2.1 (namameboshi)<br>
&gt;<br>
&gt;<br>
</div>&gt; *Details/Observations* :-<br>
<div><div class="h5">&gt;<br>
&gt;&gt; At Start<br>
&gt;<br>
&gt;&gt;  node_id | hostname | port | status | lb_weight |  role<br>
&gt;&gt; ---------+----------+------+--------+-----------+---------<br>
&gt;&gt;  0       | dmp02    | 5444 | 2      | 0.333333  | primary<br>
&gt;&gt;  1       | dmp03    | 5444 | 2      | 0.333333  | standby<br>
&gt;&gt;  2       | dmp04    | 5444 | 2      | 0.333333  | standby<br>
&gt;&gt;<br>
&gt;<br>
&gt;<br>
&gt;&gt; Failover arguments when the user stopped DMP02.<br>
&gt;<br>
&gt;&gt; 2013îN 2åé 8ì˙ ã‡ójì˙ 12:44:12 JST<br>
&gt;<br>
&gt; FAILED_NODE_ID =0<br>
&gt;&gt; FAILED_NODE_NAME=dmp02<br>
&gt;&gt; FAILED_NODE_PORT=5444<br>
&gt;&gt; FAILED_NODE_DATA=/opt/PostgresPlus/9.2AS/data<br>
&gt;&gt; NEW_MASTER_ID =1<br>
&gt;&gt; OLD_MASTER_ID =0<br>
&gt;&gt; NEW_MASTER_NAME =dmp03<br>
&gt;&gt; OLD_PRIMARY_ID =0<br>
&gt;&gt; NEW_MASTER_DATA =/opt/PostgresPlus/9.2AS/data<br>
&gt;&gt; 0<br>
&gt;&gt;<br>
&gt;<br>
&gt;<br>
&gt;&gt; Then, these arguments told user that the master node has been changed<br>
&gt;<br>
&gt;&gt; 2013îN 2åé 8ì˙ ã‡ójì˙ 12:44:13 JST<br>
&gt;&gt; FAILED_NODE_ID =0<br>
&gt;&gt; FAILED_NODE_NAME=dmp02<br>
&gt;&gt; FAILED_NODE_PORT=5444<br>
&gt;&gt; FAILED_NODE_DATA=/opt/PostgresPlus/9.2AS/data<br>
&gt;&gt; NEW_MASTER_ID =1<br>
&gt;&gt; OLD_MASTER_ID =0<br>
&gt;&gt; NEW_MASTER_NAME =dmp03<br>
&gt;&gt; OLD_PRIMARY_ID =0<br>
&gt;&gt; NEW_MASTER_DATA =/opt/PostgresPlus/9.2AS/data<br>
&gt;&gt; 2013îN 2åé 8ì˙ ã‡ójì˙ 12:44:17 JST<br>
&gt;&gt; FAILED_NODE_ID =2<br>
&gt;&gt; FAILED_NODE_NAME=dmp04<br>
&gt;&gt; FAILED_NODE_PORT=5444<br>
&gt;&gt; FAILED_NODE_DATA=/opt/PostgresPlus/9.2AS/data<br>
&gt;&gt; NEW_MASTER_ID =1<br>
&gt;&gt; OLD_MASTER_ID =0<br>
</div></div>&gt;&gt; NEW_MASTER_NAME =dmp02  *&lt;--- *** The master name is unexpected ****<br>
<div><div class="h5">&gt;&gt; OLD_PRIMARY_ID =0<br>
&gt;&gt; NEW_MASTER_DATA =/opt/PostgresPlus/9.2AS/data<br>
&gt;&gt;<br>
&gt;<br>
&gt;<br>
&gt;&gt;  node_id | hostname | port | status | lb_weight |  role<br>
&gt;&gt; ---------+----------+------+--------+-----------+---------<br>
&gt;&gt;  0       | dmp02    | 5444 | 2      | 0.333333  | standby<br>
&gt;&gt;  1       | dmp03    | 5444 | 2      | 0.333333  | primary<br>
&gt;&gt;  2       | dmp04    | 5444 | 2      | 0.333333  | standby<br>
&gt;&gt;<br>
&gt;<br>
&gt;<br>
&gt;&gt;   pid  | usesysid |   usename    | application_name |  client_addr  |<br>
&gt;&gt; client_hostname | client_port |    backend_start                 |   state<br>
&gt;&gt;   | sent_location | write_location | flush_location | replay_location |<br>
&gt;&gt; sync_priority | sync_state<br>
&gt;&gt;<br>
&gt;&gt; -------+----------+--------------+------------------+---------------+-----------------+-------------+----------------------------------+-----------+---------------+----------------+----------------+-----------------+---------------+------------<br>

&gt;&gt;  20641 |       10 | enterprisedb | dmp02            | 172.24.217.23 |<br>
&gt;&gt;             |       16948 | 08-FEB-13 17:39:44.078173 +09:00 | streaming |<br>
&gt;&gt; 14/C50000E0   | 14/C50000E0    | 14/C50000E0    | 14/C50000E0     |<br>
&gt;&gt;     0 | async<br>
&gt;&gt; (1 çs)<br>
&gt;&gt;<br>
&gt;<br>
&gt; There is one pg_stat_replication record because dmp04 is connecting to dmp02<br>
&gt;<br>
&gt; This phenomenon is reproduced by user. What we need to do is just make the<br>
&gt; scripts like follow_master.sh and launch pgpool process with -F [path to<br>
&gt; pcp.conf].<br>
&gt;<br>
&gt; 1. Before failover<br>
&gt;<br>
&gt;&gt; -bash-3.2$ psql -h 10.1.1.187 -p 9999 -c &quot;show pool_nodes&quot;<br>
&gt;&gt; node_id | hostname | port | status | lb_weight | role<br>
&gt;&gt; ---------+----------+------+--------+-----------+---------<br>
&gt;&gt; 0 | slave1 | 5444 | 2 | 0.333333 | primary<br>
&gt;&gt; 1 | slave2 | 5444 | 2 | 0.333333 | standby<br>
&gt;&gt; 2 | slave3 | 5444 | 2 | 0.333333 | standby<br>
&gt;&gt; (3 行)<br>
&gt;<br>
&gt;<br>
&gt; 2. We stopped slave 1 node with &quot;pg_ctl -D /data -m immediate stop&quot;.<br>
&gt;<br>
&gt; 3. After failover<br>
&gt;<br>
&gt;&gt; -bash-3.2$ psql -h 10.1.1.187 -p 9999 -c &quot;show pool_nodes&quot;<br>
&gt;&gt; node_id | hostname | port | status | lb_weight | role<br>
&gt;&gt; ---------+----------+------+--------+-----------+---------<br>
&gt;&gt; 0 | slave1 | 5444 | 2 | 0.333333 | standby<br>
&gt;&gt; 1 | slave2 | 5444 | 2 | 0.333333 | primary<br>
&gt;&gt; 2 | slave3 | 5444 | 2 | 0.333333 | standby<br>
&gt;&gt; (3 行)<br>
&gt;<br>
&gt;<br>
&gt; 4. Then user got output like below after failover that is not expected that<br>
&gt; is present at the end of follow_master.sh.log i.e.<br>
&gt;<br>
&gt;&gt; NEW_MASTER_NAME =slave1<br>
&gt;<br>
&gt;<br>
&gt; [root@master1 ~]# cat /tmp/failover.sh.log<br>
&gt;<br>
&gt;&gt; 2013年 3月 13日 水曜日 11:36:28 JST<br>
&gt;&gt; FAILED_NODE_ID =0<br>
&gt;&gt; FAILED_NODE_NAME=slave1<br>
&gt;&gt; FAILED_NODE_PORT=5444<br>
&gt;&gt; FAILED_NODE_DATA=/opt/PostgresPlus/9.2AS/data<br>
&gt;&gt; NEW_MASTER_ID =1<br>
&gt;&gt; OLD_MASTER_ID =0<br>
&gt;&gt; NEW_MASTER_NAME =slave2<br>
&gt;&gt; OLD_PRIMARY_ID =0<br>
&gt;&gt; NEW_MASTER_DATA =/opt/PostgresPlus/9.2AS/data<br>
&gt;&gt; 0<br>
&gt;&gt;<br>
&gt; [root@master1 ~]# cat /tmp/follow_master.sh.log<br>
&gt;<br>
&gt;&gt; 2013年 3月 13日 水曜日 11:36:30 JST<br>
&gt;&gt; FAILED_NODE_ID =0<br>
&gt;&gt; FAILED_NODE_NAME=slave1<br>
&gt;&gt; FAILED_NODE_PORT=5444<br>
&gt;&gt; FAILED_NODE_DATA=/opt/PostgresPlus/9.2AS/data<br>
&gt;&gt; NEW_MASTER_ID =1<br>
&gt;&gt; OLD_MASTER_ID =0<br>
&gt;&gt; NEW_MASTER_NAME =slave2<br>
&gt;&gt; OLD_PRIMARY_ID =0<br>
&gt;&gt; NEW_MASTER_DATA =/opt/PostgresPlus/9.2AS/data<br>
&gt;&gt; 2013年 3月 13日 水曜日 11:36:32 JST<br>
&gt;&gt; FAILED_NODE_ID =2<br>
&gt;&gt; FAILED_NODE_NAME=slave3<br>
&gt;&gt; FAILED_NODE_PORT=5444<br>
&gt;&gt; FAILED_NODE_DATA=/opt/PostgresPlus/9.2AS/data<br>
&gt;&gt; NEW_MASTER_ID =1<br>
&gt;&gt; OLD_MASTER_ID =0<br>
</div></div>&gt;&gt; NEW_MASTER_NAME =*slave1<br>
&gt;&gt; *OLD_PRIMARY_ID =0<br>
<div class="im">&gt;&gt; NEW_MASTER_DATA =/opt/PostgresPlus/9.2AS/data<br>
&gt;<br>
&gt;<br>
&gt; Please guide. Thanks.<br>
&gt;<br>
&gt; Best Regards,<br>
&gt; Asif Naeem<br>
</div>_______________________________________________<br>
pgpool-hackers mailing list<br>
<a href="mailto:pgpool-hackers@pgpool.net">pgpool-hackers@pgpool.net</a><br>
<a href="http://www.pgpool.net/mailman/listinfo/pgpool-hackers" target="_blank">http://www.pgpool.net/mailman/listinfo/pgpool-hackers</a><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>Ahsan Hadi<br>Snr Director Product Development<br>EnterpriseDB Corporation<br>The Enterprise Postgres Company<br><br>Phone: +92-51-8358874    <br>Mobile: +92-333-5162114<br>
<br>Website: <a href="http://www.enterprisedb.com">www.enterprisedb.com</a><br>EnterpriseDB Blog: <a href="http://blogs.enterprisedb.com/">http://blogs.enterprisedb.com/</a><br>Follow us on Twitter: <a href="http://www.twitter.com/enterprisedb">http://www.twitter.com/enterprisedb</a><br>
<br>This e-mail message (and any attachment) is intended for the use of the individual or entity to whom it is addressed. This message contains information from EnterpriseDB Corporation that may be privileged, confidential, or exempt from disclosure under applicable law. If you are not the intended recipient or authorized to receive this for the intended recipient, any use, dissemination, distribution, retention, archiving, or copying of this communication is strictly prohibited. If you have received this e-mail in error, please notify the sender immediately by reply e-mail and delete this message.
</div></div>