Re: scalability bottlenecks with (many) partitions (and more)

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Andres Freund <andres@anarazel.de>
Cc: Tomas Vondra <tomas@vondra.me>, Andrew Dunstan <andrew@dunslane.net>, Jakub Wartak <jakub.wartak@enterprisedb.com>, Robert Haas <robertmhaas@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2025-03-04T21:30:34Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Make FP_LOCK_SLOTS_PER_BACKEND look like a function

  2. Fix asserts in fast-path locking code

  3. Increase the number of fast-path lock slots

Andres Freund <andres@anarazel.de> writes:
> On 2025-03-04 19:58:38 +0100, Tomas Vondra wrote:
>> I noticed sifaka started failing right after I pushed this:

> It's worth noting that
> a) sifaka doesn't build with ldap support
> b) the failure is in checkprep, not when running the tests
> c) the buildfarm unfortunately doesn't archive install.log, so it's hard to
>    know what actually went wrong

Yeah, I've been poking at that.  It's not at all clear why the
animal is trying to run src/test/modules/ldap_password_func
now when it didn't before.  I've been through the diffs between
BF client 18 and 19 multiple times and nothing jumps out at me.

What's clear though is that it *is* trying to do "make check"
in that directory, and the link step blows up with

ccache clang -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Werror=unguarded-availability-new -Wendif-labels -Wmissing-format-attribute -Wcast-function-type -Wformat-security -Wmissing-variable-declarations -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-unused-command-line-argument -Wno-compound-token-split-by-macro -Wno-cast-function-type-strict -g -O2  -fvisibility=hidden -bundle -o ldap_password_func.dylib ldap_password_func.o  -L../../../../src/port -L../../../../src/common  -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX15.2.sdk  -L/opt/local/libexec/llvm-17/lib -L/opt/local/lib  -Wl,-dead_strip_dylibs   -fvisibility=hidden -bundle_loader ../../../../src/backend/postgres
Undefined symbols for architecture arm64:
  "_ldap_password_hook", referenced from:
      __PG_init in ldap_password_func.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

That happens because

(a) ldap_password_hook is not defined unless USE_LDAP;

(b) macOS's linker is persnickety and reports the missing symbol
at shlib link time, not shlib load time.

Maybe we should rethink (a)?  In the meantime I'm trying to hack
the script so it skips that test module, and finding out that
my Perl is rustier than I thought.

			regards, tom lane