I wondered about this transient failure:
https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=crake&dt=2019-09-09%2008%3A48%3A25
The only information that was captured was
# Running: /usr/sbin/slapd -f /home/bf/bfr/root/HEAD/pgsql.build/src/test/ldap/tmp_check/slapd.conf -h
ldap://localhost:57797ldaps://localhost:57798
Bail out! system /usr/sbin/slapd failed
So, slapd failed without writing anything to stderr *or* its configured
log file, which is pretty unhelpful. But, casting about for a possible
explanation, I noticed the port setup code earlier in the script:
my $ldap_port = get_free_port();
my $ldaps_port = $ldap_port + 1;
Translated: we're finding one free port and just assuming that
the next one will be free (or even exists :-().
Sure enough, I can reproduce the failure seen on crake if I force
the $ldaps_port to be a port number that something has in use.
Presumably that transient failure occurred because something was
using 57798.
So this code needs to be
my $ldap_port = get_free_port();
my $ldaps_port = get_free_port();
I'll go fix that in a moment.
regards, tom lane