<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Wed, Nov 21, 2018 at 1:14 PM Tatsuo Ishii &lt;<a href="mailto:ishii@sraoss.co.jp">ishii@sraoss.co.jp</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Usama,<br>
<br>
<br>
&gt; Hi Ishii-San<br>
&gt; <br>
&gt; Thank you very much for testing and providing the log files. But apparently<br>
&gt; all the configuration<br>
&gt; files are as they should be and found no issues in those.<br>
&gt; <br>
&gt; There was only one thing in the example which was host dependent and that<br>
&gt; was creation of SSL<br>
&gt; certificates, So I have updated the example and moved the certificates<br>
&gt; creation part to inside the<br>
&gt; containers. Hopefully this should solve the problem.<br>
&gt; <br>
&gt; So can you please give it one more try with the latest version when ever<br>
&gt; you get the free time.<br>
&gt; Also you will notice that I have removed the build_all.sh script which is<br>
&gt; no more required. and now<br>
&gt; &#39;docker-compose build&#39; and &#39;docker-compose run&#39;<br>
&gt; are enough to execute the example<br>
<br>
Now everything works great. Thanks!<br>
(BTW, not &quot;docker-compose run&quot;, but &quot;docker-compose up&quot;).<br>
<br></blockquote><div><br></div><div>Great, and thanks for helping out in this and clarifying the mistake.</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Lessons learned here is, openssl command is very environment<br>
dependent:-)<br></blockquote><div><br></div><div>yes lesson learnt the hard way, :-)</div><div><br></div><div>Kind Regards</div><div>Muhammad Usama</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
&gt; <br>
&gt; Thanks<br>
&gt; Best regards<br>
&gt; Muhammad Usama<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; On Tue, Nov 20, 2018 at 6:16 AM Tatsuo Ishii &lt;<a href="mailto:ishii@sraoss.co.jp" target="_blank">ishii@sraoss.co.jp</a>&gt; wrote:<br>
&gt; <br>
&gt;&gt; Usama,<br>
&gt;&gt;<br>
&gt;&gt; F.Y.I. This is the output of &quot;docker-compose up&quot; by using your update<br>
&gt;&gt; to the git repository.<br>
&gt;&gt;<br>
&gt;&gt; $ docker-compose up<br>
&gt;&gt; Creating network &quot;pgpool_cert_auth_default&quot; with the default driver<br>
&gt;&gt; Creating network &quot;pgpool_cert_auth_app_net&quot; with driver &quot;bridge&quot;<br>
&gt;&gt; Creating pgsql-pgpool ... done<br>
&gt;&gt; Creating pgmaster     ... done<br>
&gt;&gt; Creating pgslave      ... done<br>
&gt;&gt; Creating pgpoolnode   ... done<br>
&gt;&gt; Creating clientnode   ... done<br>
&gt;&gt; Attaching to pgsql-pgpool, pgmaster, pgslave, pgpoolnode, clientnode<br>
&gt;&gt; pgsql-pgpool     | exiting<br>
&gt;&gt; pgslave          | + MASTER_IP=172.22.0.50<br>
&gt;&gt; pgslave          | + ROLE=standby<br>
&gt;&gt; pgslave          | + echo setting up server in standby role.<br>
&gt;&gt; pgslave          | + test -z standby<br>
&gt;&gt; pgpoolnode       | + IP=172.22.0.51<br>
&gt;&gt; pgpoolnode       | + PORT=5432<br>
&gt;&gt; pgpoolnode       | + echo checking for postgresql server at<br>
&gt;&gt; <a href="http://172.22.0.51:5432" rel="noreferrer" target="_blank">172.22.0.51:5432</a>.<br>
&gt;&gt; pgpoolnode       | + test -z 172.22.0.51<br>
&gt;&gt; pgslave          | setting up server in standby role.<br>
&gt;&gt; pgsql-pgpool exited with code 0<br>
&gt;&gt; pgslave          | + &#39;[&#39; standby = standby &#39;]&#39;<br>
&gt;&gt; pgslave          | + psql -h 172.22.0.50 -U postgres -c &#39;\q&#39;<br>
&gt;&gt; pgpoolnode       | + test -z 5432<br>
&gt;&gt; pgmaster         | + MASTER_IP=172.22.0.50<br>
&gt;&gt; pgmaster         | + ROLE=master<br>
&gt;&gt; clientnode       | + PGPOOL_IP=172.22.0.52<br>
&gt;&gt; clientnode       | + PGPOOL_PORT=9999<br>
&gt;&gt; clientnode       | + psql -h 172.22.0.52 -p 9999 -U postgres -c &#39;\q&#39;<br>
&gt;&gt; pgpoolnode       | checking for postgresql server at <a href="http://172.22.0.51:5432" rel="noreferrer" target="_blank">172.22.0.51:5432</a>.<br>
&gt;&gt; pgslave          | + echo &#39;mastar Postgres is up - executing basebackup<br>
&gt;&gt; command&#39;<br>
&gt;&gt; pgslave          | + rm -rf /var/lib/pgsql/10/data<br>
&gt;&gt; pgpoolnode       | + psql -h 172.22.0.51 -p 5432 -U postgres -c &#39;\q&#39;<br>
&gt;&gt; pgslave          | mastar Postgres is up - executing basebackup command<br>
&gt;&gt; pgslave          | + sudo -u postgres pg_basebackup -RP -p 5432 -h<br>
&gt;&gt; 172.22.0.50 -D /var/lib/pgsql/10/data<br>
&gt;&gt; pgmaster         | + echo setting up server in master role.<br>
&gt;&gt; clientnode       | Pgpool-II is up and running<br>
&gt;&gt; clientnode       | + echo &#39;Pgpool-II is up and running&#39;<br>
&gt;&gt; clientnode       | + sleep 5<br>
&gt;&gt; pgpoolnode       | + echo &#39;Postgres at <a href="http://172.22.0.51:5432" rel="noreferrer" target="_blank">172.22.0.51:5432</a> is up and running&#39;<br>
&gt;&gt; pgmaster         | + test -z master<br>
&gt;&gt; pgpoolnode       | Postgres at <a href="http://172.22.0.51:5432" rel="noreferrer" target="_blank">172.22.0.51:5432</a> is up and running<br>
&gt;&gt; pgmaster         | setting up server in master role.<br>
&gt;&gt; pgmaster         | + &#39;[&#39; master = standby &#39;]&#39;<br>
&gt;&gt; 23215/23215 kB (100%), 1/1 tablespaceoint<br>
&gt;&gt; pgmaster         | Starting postgresql-10 service: [  OK  ]<br>
&gt;&gt; pgmaster         | Success. You can now start the database server using:<br>
&gt;&gt; pgmaster         |<br>
&gt;&gt; pgmaster         |     /usr/pgsql-10/bin/pg_ctl -D /var/lib/pgsql/10/data<br>
&gt;&gt; -l logfile start<br>
&gt;&gt; pgmaster         |<br>
&gt;&gt; pgmaster         | 2018-11-20 01:09:44.662 UTC [40] LOG:  listening on<br>
&gt;&gt; IPv4 address &quot;0.0.0.0&quot;, port 5432<br>
&gt;&gt; pgmaster         | 2018-11-20 01:09:44.662 UTC [40] LOG:  listening on<br>
&gt;&gt; IPv6 address &quot;::&quot;, port 5432<br>
&gt;&gt; pgmaster         | 2018-11-20 01:09:44.669 UTC [40] LOG:  listening on<br>
&gt;&gt; Unix socket &quot;/var/run/postgresql/.s.PGSQL.5432&quot;<br>
&gt;&gt; pgmaster         | 2018-11-20 01:09:44.677 UTC [40] LOG:  listening on<br>
&gt;&gt; Unix socket &quot;/tmp/.s.PGSQL.5432&quot;<br>
&gt;&gt; pgmaster         | 2018-11-20 01:09:44.695 UTC [40] LOG:  redirecting log<br>
&gt;&gt; output to logging collector process<br>
&gt;&gt; pgmaster         | 2018-11-20 01:09:44.695 UTC [40] HINT:  Future log<br>
&gt;&gt; output will appear in directory &quot;log&quot;.<br>
&gt;&gt; pgmaster         | tail: unrecognized file system type 0x794c7630 for<br>
&gt;&gt; `/var/lib/pgsql/10/pgstartup.log&#39;. Reverting to polling.<br>
&gt;&gt; pgslave          | Starting postgresql-10 service: [  OK  ]<br>
&gt;&gt; pgslave          | tail: unrecognized file system type 0x794c7630 for<br>
&gt;&gt; `/var/lib/pgsql/10/pgstartup.log&#39;. Reverting to polling.<br>
&gt;&gt; pgslave          | Success. You can now start the database server using:<br>
&gt;&gt; pgslave          |<br>
&gt;&gt; pgslave          |     /usr/pgsql-10/bin/pg_ctl -D /var/lib/pgsql/10/data<br>
&gt;&gt; -l logfile start<br>
&gt;&gt; pgslave          |<br>
&gt;&gt; pgslave          | 2018-11-20 01:09:46.328 UTC [44] LOG:  listening on<br>
&gt;&gt; IPv4 address &quot;0.0.0.0&quot;, port 5432<br>
&gt;&gt; pgslave          | 2018-11-20 01:09:46.329 UTC [44] LOG:  listening on<br>
&gt;&gt; IPv6 address &quot;::&quot;, port 5432<br>
&gt;&gt; pgslave          | 2018-11-20 01:09:46.336 UTC [44] LOG:  listening on<br>
&gt;&gt; Unix socket &quot;/var/run/postgresql/.s.PGSQL.5432&quot;<br>
&gt;&gt; pgslave          | 2018-11-20 01:09:46.343 UTC [44] LOG:  listening on<br>
&gt;&gt; Unix socket &quot;/tmp/.s.PGSQL.5432&quot;<br>
&gt;&gt; pgslave          | 2018-11-20 01:09:46.354 UTC [44] LOG:  redirecting log<br>
&gt;&gt; output to logging collector process<br>
&gt;&gt; pgslave          | 2018-11-20 01:09:46.354 UTC [44] HINT:  Future log<br>
&gt;&gt; output will appear in directory &quot;log&quot;.<br>
&gt;&gt; pgpoolnode       | Starting pgpool service: [  OK  ]<br>
&gt;&gt; pgpoolnode       | tail: unrecognized file system type 0x794c7630 for<br>
&gt;&gt; `/var/log/pgpool.log&#39;. Reverting to polling.<br>
&gt;&gt; pgpoolnode       | 2018-11-20 01:09:46: pid 44: WARNING:  pool key file<br>
&gt;&gt; &quot;/home/postgres/.pgpoolkey&quot; has group or world access; permissions should<br>
&gt;&gt; be u=rw (0600) or less<br>
&gt;&gt; pgpoolnode       |<br>
&gt;&gt; pgpoolnode       | 2018-11-20 01:09:46: pid 44: LOG:  Backend status file<br>
&gt;&gt; /var/log/pgpool/pgpool_status does not exist<br>
&gt;&gt; pgpoolnode       | 2018-11-20 01:09:46: pid 44: LOG:  Setting up socket<br>
&gt;&gt; for <a href="http://0.0.0.0:9999" rel="noreferrer" target="_blank">0.0.0.0:9999</a><br>
&gt;&gt; pgpoolnode       | 2018-11-20 01:09:46: pid 44: LOG:  Setting up socket<br>
&gt;&gt; for :::9999<br>
&gt;&gt; pgpoolnode       | 2018-11-20 01:09:46: pid 44: WARNING:  failed to open<br>
&gt;&gt; status file at: &quot;/var/log/pgpool/pgpool_status&quot;<br>
&gt;&gt; pgpoolnode       | 2018-11-20 01:09:46: pid 44: DETAIL:  &quot;No such file or<br>
&gt;&gt; directory&quot;<br>
&gt;&gt; pgpoolnode       | 2018-11-20 01:09:46: pid 44: LOG:  pgpool-II<br>
&gt;&gt; successfully started. version 4.0.1 (torokiboshi)<br>
&gt;&gt; pgpoolnode       | 2018-11-20 01:09:47: pid 75: WARNING:  failed to open<br>
&gt;&gt; status file at: &quot;/var/log/pgpool/pgpool_status&quot;<br>
&gt;&gt; pgpoolnode       | 2018-11-20 01:09:47: pid 75: DETAIL:  &quot;No such file or<br>
&gt;&gt; directory&quot;<br>
&gt;&gt; clientnode       | + psql -h 172.22.0.52 -p 9999 -U postgres -c &#39;SET<br>
&gt;&gt; password_encryption = &#39;\&#39;&#39;scram-sha-256&#39;\&#39;&#39;; CREATE ROLE scramuser PASSWORD<br>
&gt;&gt; &#39;\&#39;&#39;scram_password&#39;\&#39;&#39;; ALTER ROLE scramuser WITH LOGIN;&#39; postgres<br>
&gt;&gt; clientnode       | ALTER ROLE<br>
&gt;&gt; clientnode       | + psql -h 172.22.0.52 -p 9999 -U postgres -c &#39;SET<br>
&gt;&gt; password_encryption = &#39;\&#39;&#39;scram-sha-256&#39;\&#39;&#39;; CREATE ROLE certuser PASSWORD<br>
&gt;&gt; &#39;\&#39;&#39;cert_password&#39;\&#39;&#39;; ALTER ROLE certuser WITH LOGIN;&#39; postgres<br>
&gt;&gt; pgpoolnode       | 2018-11-20 01:09:52: pid 76: WARNING:  failed to open<br>
&gt;&gt; status file at: &quot;/var/log/pgpool/pgpool_status&quot;<br>
&gt;&gt; pgpoolnode       | 2018-11-20 01:09:52: pid 76: DETAIL:  &quot;No such file or<br>
&gt;&gt; directory&quot;<br>
&gt;&gt; clientnode       | ALTER ROLE<br>
&gt;&gt; clientnode       | + echo &#39;testing if ssl connection without proper client<br>
&gt;&gt; certificate is rejected&#39;<br>
&gt;&gt; clientnode       | + sudo -u postgres psql &#39;sslmode=require port=9999<br>
&gt;&gt; host=172.22.0.52 dbname=postgres user=scramuser&#39;<br>
&gt;&gt; clientnode       | testing if ssl connection without proper client<br>
&gt;&gt; certificate is rejected<br>
&gt;&gt; clientnode       | psql: server does not support SSL, but SSL was required<br>
&gt;&gt; clientnode       | + echo &#39;testing if ssl connection with proper client<br>
&gt;&gt; certificate works&#39;<br>
&gt;&gt; clientnode       | + sudo -u postgres psql &#39;sslmode=require port=9999<br>
&gt;&gt; host=172.22.0.52 dbname=postgres user=certuser&#39;<br>
&gt;&gt; clientnode       | testing if ssl connection with proper client<br>
&gt;&gt; certificate works<br>
&gt;&gt; clientnode       | psql: server does not support SSL, but SSL was required<br>
&gt;&gt; clientnode       | + tail -f /dev/null<br>
&gt;&gt; pgpoolnode       | 2018-11-20 01:09:52: pid 75: WARNING:  failed to open<br>
&gt;&gt; status file at: &quot;/var/log/pgpool/pgpool_status&quot;<br>
&gt;&gt; pgpoolnode       | 2018-11-20 01:09:52: pid 75: DETAIL:  &quot;No such file or<br>
&gt;&gt; directory&quot;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; &gt; Sorry, 2.txt was empty. Attached again.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt; Usama,<br>
&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt; &gt; Hi<br>
&gt;&gt; &gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt; &gt; I have created a simple docker based example of using CERT<br>
&gt;&gt; authentication<br>
&gt;&gt; &gt;&gt;&gt;&gt; &gt; with Pgpool-II frontend connections  for the reference.<br>
&gt;&gt; &gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt; &gt; Please have a look and let me know what you think<br>
&gt;&gt; &gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt; &gt; <a href="https://github.com/codeforall/pgpool_cert_auth" rel="noreferrer" target="_blank">https://github.com/codeforall/pgpool_cert_auth</a><br>
&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt; Unfortunately it does not work for me.<br>
&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt; docker exec -it clientnode sudo -u postgres psql &quot;sslmode=require<br>
&gt;&gt; &gt;&gt;&gt;&gt; port=9999 host=172.22.0.52 dbname=postgres user=certuser&quot; -c &quot;show<br>
&gt;&gt; &gt;&gt;&gt;&gt; pool_nodes&quot;<br>
&gt;&gt; &gt;&gt;&gt;&gt; psql: server does not support SSL, but SSL was required<br>
&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; This is very strange, I have rebuild the dockers by pulling the fresh<br>
&gt;&gt; code<br>
&gt;&gt; &gt;&gt;&gt; from repo and can run the test successfully.<br>
&gt;&gt; &gt;&gt;&gt; Seems like setting of ssl configuration is failing.<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; can you please help me identify the issue by sending the log of<br>
&gt;&gt; &gt;&gt;&gt; &quot;docker-compose up &quot; and of the output of following commands<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Sure. Log attached.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; docker exec -it pgmaster  /bin/bash -c &#39;cat $PGDATA/postgresql.conf&#39;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Attached (1.txt).<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; docker exec -it pgmaster  /bin/bash -c &#39;cd $PGDATA/log &amp;&amp; cat &quot;$(ls<br>
&gt;&gt; -1rt  |<br>
&gt;&gt; &gt;&gt;&gt; tail -n1)&quot;&#39;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Attached (2.txt).<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; docker exec -it pgslave  /bin/bash -c &#39;cat $PGDATA/postgresql.conf&#39;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Attached (3.txt).<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; docker exec -it pgslave  /bin/bash -c &#39;cd $PGDATA/log &amp;&amp; cat &quot;$(ls<br>
&gt;&gt; -1rt  |<br>
&gt;&gt; &gt;&gt;&gt; tail -n1)&quot;&#39;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Attached (4.txt).<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; docker exec -it pgpoolnode  /bin/bash -c &#39;cat<br>
&gt;&gt; ${PGPOOLCONF}/pgpool.conf&#39;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Attached (5.txt).<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt; Also I noticed you do not use Pgpool-II RPMs provided by Pgpool-II<br>
&gt;&gt; &gt;&gt;&gt;&gt; community:<br>
&gt;&gt; &gt;&gt;&gt;&gt; <a href="https://pgpool.net/mediawiki/index.php/Yum_Repository" rel="noreferrer" target="_blank">https://pgpool.net/mediawiki/index.php/Yum_Repository</a><br>
&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt; Is there any reason for this?<br>
&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt; No reason as such, I just installed the Pgpool rpms from same repo<br>
&gt;&gt; from<br>
&gt;&gt; &gt;&gt;&gt; where I was getting the PG server.<br>
&gt;&gt; &gt;&gt;&gt; I have update the docker files to use the pgpool community rpms<br>
&gt;&gt; instead.<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; <a href="https://github.com/codeforall/pgpool_cert_auth/commit/218f7536330677597552330199d0fd637f88d5b0" rel="noreferrer" target="_blank">https://github.com/codeforall/pgpool_cert_auth/commit/218f7536330677597552330199d0fd637f88d5b0</a><br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; Thanks<br>
&gt;&gt; &gt;&gt;&gt; Best Regards<br>
&gt;&gt; &gt;&gt;&gt; Muhammad Usama<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt; Best regards,<br>
&gt;&gt; &gt;&gt;&gt;&gt; --<br>
&gt;&gt; &gt;&gt;&gt;&gt; Tatsuo Ishii<br>
&gt;&gt; &gt;&gt;&gt;&gt; SRA OSS, Inc. Japan<br>
&gt;&gt; &gt;&gt;&gt;&gt; English: <a href="http://www.sraoss.co.jp/index_en.php" rel="noreferrer" target="_blank">http://www.sraoss.co.jp/index_en.php</a><br>
&gt;&gt; &gt;&gt;&gt;&gt; Japanese:<a href="http://www.sraoss.co.jp" rel="noreferrer" target="_blank">http://www.sraoss.co.jp</a><br>
&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt;<br>
</blockquote></div></div>