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