Re: BUG #17391: While using --with-ssl=openssl and PG_TEST_EXTRA='ssl' options, SSL tests fail on OpenBSD 7.0

Thomas Munro <thomas.munro@gmail.com>

From: Thomas Munro <thomas.munro@gmail.com>
To: Daniel Gustafsson <daniel@yesql.se>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Andres Freund <andres@anarazel.de>, byavuz81@gmail.com, PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>, Heikki Linnakangas <heikki.linnakangas@iki.fi>, Michael Paquier <michael@paquier.xyz>
Date: 2022-02-05T21:20:56Z
Lists: pgsql-bugs
On Sat, Feb 5, 2022 at 3:12 AM Daniel Gustafsson <daniel@yesql.se> wrote:
> Looking at these remaining failures today left me a bit confused.  It seems to
> be some form of timing or synchronization issue as delaying shutdown with a
> sleep(1) in the be_tls_open_server errorpath makes the tests pass.  With the
> attached diff I get all tests passing on OpenBSD 7.  Following the bouncing
> ball into differences between OpenSSL and LibreSSL in the revocation and
> shutdown paths didn't lead to anything.
>
> Does anyone have any ideas what this could be?

usleep(1) is also enough, but usleep(0) isn't.  I wonder if something
could be disabling SO_LINGER on the socket, or somehow activating
similar data-dropping behaviour so the final ereport doesn't get
transferred.



Commits

  1. Move libpq's write_failed mechanism down to pqsecure_raw_write().

  2. Fix thinko in PQisBusy().

  3. Set SNI ClientHello extension to localhost in tests

  4. Improve worst-case performance of text_position_get_match_pos()