Andrew Dunstan <and...@dunslane.net> writes: > If I redirect the output to a file (which is what the buildfarm client > actually does), it seems like it completes successfully, but I still get > a non-zero exit:
> pgrunner@EC2AMAZ-GCB871B UCRT64 ~/bf > $ /usr/bin/perl -e 'chdir "root/HEAD/instkeep.2023-04-25_11-09-41"; > system("bin/pg_ctl -D data-C -l logfile stop > stoplog 2>&1") ; print > "BANG\n" if $?; ' > BANG > pgrunner@EC2AMAZ-GCB871B UCRT64 ~/bf > $ cat root/HEAD/instkeep.2023-04-25_11-09-41/stoplog > waiting for server to shut down.... done > server stopped Thats ... just wacko. do_stop() emits "waiting for server to shut down...", "done", and "server stopped" in the same way (via print_msg). How is it that all three messages show up in one context but not the other? Could wait_for_postmaster_stop or get_pgpid be bollixing the stdout channel somehow? Try redirecting stdout and stderr separately to see if that proves anything. > It seems more than odd that we get to where the "server stopped" massage > is printed but we get a failure. Indeed, that's even weirder. do_stop() returns directly to the exit(0) in main(). regards, tom lane