<div dir="ltr">Hi Ishii,<div>I don&#39;t have any SSL setup for the database I am using. Last log I shared for fall back, only trust was used as fall back. I am not sure why we see SSLRequest in log (Could it be a bug?)</div><div><br></div><div>I retested the fallback scenario with scram-sha-256 and the following is log, and it successfully used scram-sha-256 after gss fallback.</div><div><br></div><div>psql- output:</div><div>[umarhayat@myrealm pgpool2]# psql -U &quot;postgres/myrealm.example@MYREALM.EXAMPLE&quot; -h myrealm.example postgres -p 9999<br>Password for user postgres/myrealm.example@MYREALM.EXAMPLE: <br>psql (13.0)<br>Type &quot;help&quot; for help.<br></div><div><br></div><div>pgpool log:</div><div>2020-10-02 12:16:34: pid 35644: DEBUG:  selecting backend connection<br>2020-10-02 12:16:34: pid 35644: DETAIL:  GSSAPI request from client<br>2020-10-02 12:16:34: pid 35644: DEBUG:  reading startup packet<br>2020-10-02 12:16:34: pid 35644: DETAIL:  Protocol Major: 1234 Minor: 5679 database:  � 0 user:  � 0<br>2020-10-02 12:16:34: pid 35644: DEBUG:  selecting backend connection<br>2020-10-02 12:16:34: pid 35644: DETAIL:  SSLRequest from client<br>2020-10-02 12:16:34: pid 35644: DEBUG:  reading startup packet<br>2020-10-02 12:16:34: pid 35644: DETAIL:  application_name: psql<br>2020-10-02 12:16:34: pid 35644: DEBUG:  reading startup packet<br>2020-10-02 12:16:34: pid 35644: DETAIL:  Protocol Major: 3 Minor: 0 database: postgres user: postgres/myrealm.example@MYREALM.EXAMPLE<br>2020-10-02 12:16:34: pid 35644: DEBUG:  creating new connection to backend<br>2020-10-02 12:16:34: pid 35644: DETAIL:  connecting 0 backend<br>2020-10-02 12:16:34: pid 35644: DEBUG:  authentication backend<br>2020-10-02 12:16:34: pid 35644: DETAIL:  auth kind:10<br>2020-10-02 12:16:34: pid 35644: DEBUG:  authentication backend 0<br>2020-10-02 12:16:34: pid 35644: DETAIL:  trying SCRAM authentication<br>2020-10-02 12:16:38: pid 35669: DEBUG:  I am 35669 accept fd 7<br>2020-10-02 12:16:38: pid 35669: DEBUG:  reading startup packet<br>2020-10-02 12:16:38: pid 35669: DETAIL:  Protocol Major: 1234 Minor: 5680 database:  user: <br>2020-10-02 12:16:38: pid 35669: DEBUG:  selecting backend connection<br>2020-10-02 12:16:38: pid 35669: DETAIL:  GSSAPI request from client<br>2020-10-02 12:16:38: pid 35669: DEBUG:  reading startup packet<br>2020-10-02 12:16:38: pid 35669: DETAIL:  Protocol Major: 1234 Minor: 5679 database:  � 0 user:  � 0<br>2020-10-02 12:16:38: pid 35669: DEBUG:  selecting backend connection<br>2020-10-02 12:16:38: pid 35669: DETAIL:  SSLRequest from client<br>2020-10-02 12:16:38: pid 35669: DEBUG:  reading startup packet<br>2020-10-02 12:16:38: pid 35669: DETAIL:  application_name: psql<br>2020-10-02 12:16:38: pid 35669: DEBUG:  reading startup packet<br>2020-10-02 12:16:38: pid 35669: DETAIL:  Protocol Major: 3 Minor: 0 database: postgres user: postgres/myrealm.example@MYREALM.EXAMPLE<br>2020-10-02 12:16:38: pid 35669: DEBUG:  creating new connection to backend<br>2020-10-02 12:16:38: pid 35669: DETAIL:  connecting 0 backend<br>2020-10-02 12:16:38: pid 35669: DEBUG:  authentication backend<br>2020-10-02 12:16:38: pid 35669: DETAIL:  auth kind:10<br>2020-10-02 12:16:38: pid 35669: DEBUG:  authentication backend 0<br>2020-10-02 12:16:38: pid 35669: DETAIL:  trying SCRAM authentication<br>2020-10-02 12:16:38: pid 35669: DEBUG:  SCRAM authentication successful for backend 0<br></div><div><br></div><div>pg_hba:</div><div>host    all             all             <a href="http://127.0.0.1/32">127.0.0.1/32</a>            scram-sha-256<br>host all postgres/myrealm.example@MYREALM.EXAMPLE  <a href="http://0.0.0.0/0">0.0.0.0/0</a> gss include_realm=1 krb_realm=MYREALM.EXAMPLE<br></div><div><br></div><div><br></div><div>Let me know if more investigation is required.</div><div><br></div><div>Regards</div><div>Umar Hayat</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Oct 2, 2020 at 9:55 AM 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:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi Umar,<br>
<br>
&gt; Hi Ishii,<br>
&gt; I didn&#39;t share the output earlier, where there is some other pg_hba entry<br>
&gt; available to fallback. It does fallback in that case. Please see psql<br>
&gt; output and log snippet below.<br>
<br>
Oh, ok thanks.  It seems the following output fallbacks to SSL<br>
connection. Can you confirm it can also fallback to non-SSL<br>
connection?<br>
<br>
&gt; [umarhayat@localhost pgpool2]# psql -U<br>
&gt; &quot;postgres/myrealm.example@MYREALM.EXAMPLE&quot; -h myrealm.example postgres -p<br>
&gt; 9999<br>
&gt; psql (13.0)<br>
&gt; Type &quot;help&quot; for help.<br>
&gt; <br>
&gt; 2020-10-01 07:33:06: pid 21199: DETAIL:  Protocol Major: 1234 Minor: 5680<br>
&gt; database:  user:<br>
&gt; 2020-10-01 07:33:06: pid 21199: DEBUG:  selecting backend connection<br>
&gt; 2020-10-01 07:33:06: pid 21199: DETAIL:  GSSAPI request from client<br>
&gt; 2020-10-01 07:33:06: pid 21199: DEBUG:  reading startup packet<br>
&gt; 2020-10-01 07:33:06: pid 21199: DETAIL:  Protocol Major: 1234 Minor: 5679<br>
&gt; database: � 0 user: � 0<br>
&gt; 2020-10-01 07:33:06: pid 21199: DEBUG:  selecting backend connection<br>
&gt; 2020-10-01 07:33:06: pid 21199: DETAIL:  SSLRequest from client<br>
&gt; 2020-10-01 07:33:06: pid 21199: DEBUG:  reading startup packet<br>
&gt; 2020-10-01 07:33:06: pid 21199: DETAIL:  application_name: psql<br>
&gt; 2020-10-01 07:33:06: pid 21199: DEBUG:  reading startup packet<br>
&gt; 2020-10-01 07:33:06: pid 21199: DETAIL:  Protocol Major: 3 Minor: 0<br>
&gt; database: postgres user: postgres/myrealm.example@MYREALM.EXAMPLE<br>
&gt; 2020-10-01 07:33:06: pid 21199: DEBUG:  creating new connection to backend<br>
&gt; 2020-10-01 07:33:06: pid 21199: DETAIL:  connecting 0 backend<br>
&gt; 2020-10-01 07:33:06: pid 21199: DEBUG:  authentication backend<br>
&gt; 2020-10-01 07:33:06: pid 21199: DETAIL:  auth kind:0<br>
&gt; <br>
&gt; Regards<br>
&gt; Umar Hayat<br>
&gt; <br>
&gt; <br>
&gt; On Fri, Oct 2, 2020 at 2:31 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; Hi Umar,<br>
&gt;&gt;<br>
&gt;&gt; I actually expected that psql connects to Pgpool-II without GSSAPI<br>
&gt;&gt; auth (i.e. fallback to non-GSSAPI auth). In my understanding the<br>
&gt;&gt; default behavior of psql does so because of gssencmode=prefer.  Can<br>
&gt;&gt; you please enable pgpool debug log by log_min_messages=debug1 and show<br>
&gt;&gt; the log?<br>
&gt;&gt;<br>
&gt;&gt; &gt; Thank you!<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; Hi Ishii,<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; I tested your patch and was not able to apply it, so I rebased it. I<br>
&gt;&gt; tested<br>
&gt;&gt; &gt;&gt; it on Pgpool 4.1 and it is working as expected.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; - GSSAPI Authentication direct to PG13<br>
&gt;&gt; &gt;&gt; [umarhayat@localhost pgpool2]# psql -U<br>
&gt;&gt; &gt;&gt; &quot;postgres/myrealm.example@MYREALM.EXAMPLE&quot; -h myrealm.example postgres<br>
&gt;&gt; -p<br>
&gt;&gt; &gt;&gt; 5432<br>
&gt;&gt; &gt;&gt; psql (13.0)<br>
&gt;&gt; &gt;&gt; GSSAPI-encrypted connection<br>
&gt;&gt; &gt;&gt; Type &quot;help&quot; for help.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; - GSSAPI Authentication via Pgpool direct to PG13 (before patch)<br>
&gt;&gt; &gt;&gt; postgres=# \q<br>
&gt;&gt; &gt;&gt; [umarhayat@localhost pgpool2]# psql -U<br>
&gt;&gt; &gt;&gt; &quot;postgres/myrealm.example@MYREALM.EXAMPLE&quot; -h myrealm.example postgres<br>
&gt;&gt; -p<br>
&gt;&gt; &gt;&gt; 9999<br>
&gt;&gt; &gt;&gt; psql: error: could not connect to server: server closed the connection<br>
&gt;&gt; &gt;&gt; unexpectedly<br>
&gt;&gt; &gt;&gt; This probably means the server terminated abnormally<br>
&gt;&gt; &gt;&gt; before or while processing the request.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; - GSSAPI Authentication via Pgpool direct to PG13 (after patch)<br>
&gt;&gt; &gt;&gt; [umarhayat@localhost pgpool2]# psql -U<br>
&gt;&gt; &gt;&gt; &quot;postgres/myrealm.example@MYREALM.EXAMPLE&quot; -h myrealm.example postgres<br>
&gt;&gt; -p<br>
&gt;&gt; &gt;&gt; 9999<br>
&gt;&gt; &gt;&gt; psql: error: could not connect to server: ERROR:  failed to authenticate<br>
&gt;&gt; &gt;&gt; with backend<br>
&gt;&gt; &gt;&gt; DETAIL:  unsupported auth kind received from backend: authkind:7<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Regards<br>
&gt;&gt; &gt;&gt; Umar Hayat<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; On Wed, Sep 23, 2020 at 8:15 AM Tatsuo Ishii &lt;<a href="mailto:ishii@sraoss.co.jp" target="_blank">ishii@sraoss.co.jp</a>&gt;<br>
&gt;&gt; wrote:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; As you might already know, Pgpool-II currently does not support<br>
&gt;&gt; &gt;&gt;&gt; GSSAPI.  Until we support it, I think we need to tell frontend that<br>
&gt;&gt; &gt;&gt;&gt; Pgpool-II does not support GSSAPI when frontend requests it. Otherwise<br>
&gt;&gt; &gt;&gt;&gt; frontend will have a confusing message from Pgpool-II.<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; <a href="https://www.pgpool.net/pipermail/pgpool-general/2020-September/007353.html" rel="noreferrer" target="_blank">https://www.pgpool.net/pipermail/pgpool-general/2020-September/007353.html</a><br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; Attached patch should do it. I don&#39;t have GSSAPI enabled frontend and<br>
&gt;&gt; &gt;&gt;&gt; I cannot test it. I would appreciate if someone tests it out.<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; Best regards,<br>
&gt;&gt; &gt;&gt;&gt; --<br>
&gt;&gt; &gt;&gt;&gt; Tatsuo Ishii<br>
&gt;&gt; &gt;&gt;&gt; SRA OSS, Inc. Japan<br>
&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; Japanese:<a href="http://www.sraoss.co.jp" rel="noreferrer" target="_blank">http://www.sraoss.co.jp</a><br>
&gt;&gt; &gt;&gt;&gt; _______________________________________________<br>
&gt;&gt; &gt;&gt;&gt; pgpool-hackers mailing list<br>
&gt;&gt; &gt;&gt;&gt; <a href="mailto:pgpool-hackers@pgpool.net" target="_blank">pgpool-hackers@pgpool.net</a><br>
&gt;&gt; &gt;&gt;&gt; <a href="http://www.pgpool.net/mailman/listinfo/pgpool-hackers" rel="noreferrer" target="_blank">http://www.pgpool.net/mailman/listinfo/pgpool-hackers</a><br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt; pgpool-hackers mailing list<br>
&gt;&gt; &gt; <a href="mailto:pgpool-hackers@pgpool.net" target="_blank">pgpool-hackers@pgpool.net</a><br>
&gt;&gt; &gt; <a href="http://www.pgpool.net/mailman/listinfo/pgpool-hackers" rel="noreferrer" target="_blank">http://www.pgpool.net/mailman/listinfo/pgpool-hackers</a><br>
&gt;&gt;<br>
</blockquote></div>