Using the %m printf format more - Mailing list pgsql-hackers
From | Dagfinn Ilmari Mannsåker |
---|---|
Subject | Using the %m printf format more |
Date | |
Msg-id | 87sf13jhuw.fsf@wibble.ilmari.org Whole thread Raw |
Responses |
Re: Using the %m printf format more
|
List | pgsql-hackers |
Hi hackers, I just noticed that commit d93627bc added a bunch of pg_fatal() calls using %s and strerror(errno), which could be written more concisely as %m. I'm assuming this was done because the surrounding code also uses this pattern, and hadn't been changed to use %m when support for that was added to snprintf.c to avoid backporting hazards. However, that support was in v12, which is now the oldest still-supported back branch, so we can safely make that change. The attached patch does so everywhere appropriate. One place where it's not appropriate is the TAP-emitting functions in pg_regress, since those call fprintf() and other potentially errno-modifying functions before evaluating the format string. - ilmari From 17ad27665821decf9116723fe8873bd256e9d75d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dagfinn=20Ilmari=20Manns=C3=A5ker?= <ilmari@ilmari.org> Date: Wed, 6 Mar 2024 16:58:33 +0000 Subject: [PATCH] Use %m printf format instead of strerror(errno) where appropriate Now that all live branches (12-) support %m in printf formats, let's use it everywhere appropriate. Particularly, we're _not_ converting the TAP output calls in pg_regress, since those functions call fprintf() and friends before evaluating the format string, which can clobber errno. --- src/backend/postmaster/postmaster.c | 21 ++-- src/backend/postmaster/syslogger.c | 2 +- src/backend/utils/misc/guc.c | 9 +- src/bin/initdb/findtimezone.c | 4 +- src/bin/pg_ctl/pg_ctl.c | 74 +++++++------- src/bin/pg_dump/compress_gzip.c | 2 +- src/bin/pg_dump/compress_none.c | 5 +- src/bin/pg_upgrade/check.c | 41 +++----- src/bin/pg_upgrade/controldata.c | 6 +- src/bin/pg_upgrade/exec.c | 14 ++- src/bin/pg_upgrade/file.c | 98 +++++++++---------- src/bin/pg_upgrade/function.c | 3 +- src/bin/pg_upgrade/option.c | 10 +- src/bin/pg_upgrade/parallel.c | 12 +-- src/bin/pg_upgrade/pg_upgrade.c | 4 +- src/bin/pg_upgrade/relfilenumber.c | 5 +- src/bin/pg_upgrade/tablespace.c | 4 +- src/bin/pg_upgrade/version.c | 9 +- src/common/psprintf.c | 4 +- src/interfaces/ecpg/preproc/ecpg.c | 12 +-- src/test/isolation/isolationtester.c | 2 +- .../modules/libpq_pipeline/libpq_pipeline.c | 4 +- src/tools/ifaddrs/test_ifaddrs.c | 2 +- 23 files changed, 157 insertions(+), 190 deletions(-) diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index f3c09e8dc0..af8a1efe66 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -1375,12 +1375,12 @@ PostmasterMain(int argc, char *argv[]) /* Make PID file world readable */ if (chmod(external_pid_file, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH) != 0) - write_stderr("%s: could not change permissions of external PID file \"%s\": %s\n", - progname, external_pid_file, strerror(errno)); + write_stderr("%s: could not change permissions of external PID file \"%s\": %m\n", + progname, external_pid_file); } else - write_stderr("%s: could not write external PID file \"%s\": %s\n", - progname, external_pid_file, strerror(errno)); + write_stderr("%s: could not write external PID file \"%s\": %m\n", + progname, external_pid_file); on_proc_exit(unlink_external_pid_file, 0); } @@ -1589,8 +1589,8 @@ checkControlFile(void) { write_stderr("%s: could not find the database system\n" "Expected to find it in the directory \"%s\",\n" - "but could not open file \"%s\": %s\n", - progname, DataDir, path, strerror(errno)); + "but could not open file \"%s\": %m\n", + progname, DataDir, path); ExitPostmaster(2); } FreeFile(fp); @@ -6277,15 +6277,13 @@ read_backend_variables(char *id, Port **port, BackgroundWorker **worker) fp = AllocateFile(id, PG_BINARY_R); if (!fp) { - write_stderr("could not open backend variables file \"%s\": %s\n", - id, strerror(errno)); + write_stderr("could not open backend variables file \"%s\": %m\n", id); exit(1); } if (fread(¶m, sizeof(param), 1, fp) != 1) { - write_stderr("could not read from backend variables file \"%s\": %s\n", - id, strerror(errno)); + write_stderr("could not read from backend variables file \"%s\": %m\n", id); exit(1); } @@ -6293,8 +6291,7 @@ read_backend_variables(char *id, Port **port, BackgroundWorker **worker) FreeFile(fp); if (unlink(id) != 0) { - write_stderr("could not remove file \"%s\": %s\n", - id, strerror(errno)); + write_stderr("could not remove file \"%s\": %m\n", id); exit(1); } #else diff --git a/src/backend/postmaster/syslogger.c b/src/backend/postmaster/syslogger.c index c2a6a226e7..d9d042f562 100644 --- a/src/backend/postmaster/syslogger.c +++ b/src/backend/postmaster/syslogger.c @@ -1173,7 +1173,7 @@ write_syslogger_file(const char *buffer, int count, int destination) * to our input pipe which would result in a different sort of looping. */ if (rc != count) - write_stderr("could not write to log file: %s\n", strerror(errno)); + write_stderr("could not write to log file: %m\n"); } #ifdef WIN32 diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index dd5a46469a..391866145e 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -1799,10 +1799,9 @@ SelectConfigFiles(const char *userDoption, const char *progname) if (configdir && stat(configdir, &stat_buf) != 0) { - write_stderr("%s: could not access directory \"%s\": %s\n", + write_stderr("%s: could not access directory \"%s\": %m\n", progname, - configdir, - strerror(errno)); + configdir); if (errno == ENOENT) write_stderr("Run initdb or pg_basebackup to initialize a PostgreSQL data directory.\n"); return false; @@ -1851,8 +1850,8 @@ SelectConfigFiles(const char *userDoption, const char *progname) */ if (stat(ConfigFileName, &stat_buf) != 0) { - write_stderr("%s: could not access the server configuration file \"%s\": %s\n", - progname, ConfigFileName, strerror(errno)); + write_stderr("%s: could not access the server configuration file \"%s\": %m\n", + progname, ConfigFileName); free(configdir); return false; } diff --git a/src/bin/initdb/findtimezone.c b/src/bin/initdb/findtimezone.c index e15630fdee..95204e482b 100644 --- a/src/bin/initdb/findtimezone.c +++ b/src/bin/initdb/findtimezone.c @@ -680,8 +680,8 @@ scan_available_timezones(char *tzdir, char *tzdirsub, struct tztry *tt, if (stat(tzdir, &statbuf) != 0) { #ifdef DEBUG_IDENTIFY_TIMEZONE - fprintf(stderr, "could not stat \"%s\": %s\n", - tzdir, strerror(errno)); + fprintf(stderr, "could not stat \"%s\": %m\n", + tzdir); #endif tzdir[tzdir_orig_len] = '\0'; continue; diff --git a/src/bin/pg_ctl/pg_ctl.c b/src/bin/pg_ctl/pg_ctl.c index 6900b27675..405e223c19 100644 --- a/src/bin/pg_ctl/pg_ctl.c +++ b/src/bin/pg_ctl/pg_ctl.c @@ -254,8 +254,8 @@ get_pgpid(bool is_status_request) write_stderr(_("%s: directory \"%s\" does not exist\n"), progname, pg_data); else - write_stderr(_("%s: could not access directory \"%s\": %s\n"), progname, - pg_data, strerror(errno)); + write_stderr(_("%s: could not access directory \"%s\": %m\n"), progname, + pg_data); /* * The Linux Standard Base Core Specification 3.1 says this should @@ -280,8 +280,8 @@ get_pgpid(bool is_status_request) return 0; else { - write_stderr(_("%s: could not open PID file \"%s\": %s\n"), - progname, pid_file, strerror(errno)); + write_stderr(_("%s: could not open PID file \"%s\": %m\n"), + progname, pid_file); exit(1); } } @@ -454,8 +454,8 @@ start_postmaster(void) if (pm_pid < 0) { /* fork failed */ - write_stderr(_("%s: could not start server: %s\n"), - progname, strerror(errno)); + write_stderr(_("%s: could not start server: %m\n"), + progname); exit(1); } if (pm_pid > 0) @@ -474,8 +474,8 @@ start_postmaster(void) #ifdef HAVE_SETSID if (setsid() < 0) { - write_stderr(_("%s: could not start server due to setsid() failure: %s\n"), - progname, strerror(errno)); + write_stderr(_("%s: could not start server due to setsid() failure: %m\n"), + progname); exit(1); } #endif @@ -496,8 +496,8 @@ start_postmaster(void) (void) execl("/bin/sh", "/bin/sh", "-c", cmd, (char *) NULL); /* exec failed */ - write_stderr(_("%s: could not start server: %s\n"), - progname, strerror(errno)); + write_stderr(_("%s: could not start server: %m\n"), + progname); exit(1); return 0; /* keep dumb compilers quiet */ @@ -544,8 +544,8 @@ start_postmaster(void) */ if (errno != ENOENT) { - write_stderr(_("%s: could not open log file \"%s\": %s\n"), - progname, log_file, strerror(errno)); + write_stderr(_("%s: could not open log file \"%s\": %m\n"), + progname, log_file); exit(1); } } @@ -851,8 +851,8 @@ trap_sigint_during_startup(SIGNAL_ARGS) if (postmasterPID != -1) { if (kill(postmasterPID, SIGINT) != 0) - write_stderr(_("%s: could not send stop signal (PID: %d): %s\n"), - progname, (int) postmasterPID, strerror(errno)); + write_stderr(_("%s: could not send stop signal (PID: %d): %m\n"), + progname, (int) postmasterPID); } /* @@ -1035,8 +1035,7 @@ do_stop(void) if (kill(pid, sig) != 0) { - write_stderr(_("%s: could not send stop signal (PID: %d): %s\n"), progname, (int) pid, - strerror(errno)); + write_stderr(_("%s: could not send stop signal (PID: %d): %m\n"), progname, (int) pid); exit(1); } @@ -1103,8 +1102,7 @@ do_restart(void) { if (kill(pid, sig) != 0) { - write_stderr(_("%s: could not send stop signal (PID: %d): %s\n"), progname, (int) pid, - strerror(errno)); + write_stderr(_("%s: could not send stop signal (PID: %d): %m\n"), progname, (int) pid); exit(1); } @@ -1159,8 +1157,8 @@ do_reload(void) if (kill(pid, sig) != 0) { - write_stderr(_("%s: could not send reload signal (PID: %d): %s\n"), - progname, (int) pid, strerror(errno)); + write_stderr(_("%s: could not send reload signal (PID: %d): %m\n"), + progname, (int) pid); exit(1); } @@ -1207,25 +1205,25 @@ do_promote(void) if ((prmfile = fopen(promote_file, "w")) == NULL) { - write_stderr(_("%s: could not create promote signal file \"%s\": %s\n"), - progname, promote_file, strerror(errno)); + write_stderr(_("%s: could not create promote signal file \"%s\": %m\n"), + progname, promote_file); exit(1); } if (fclose(prmfile)) { - write_stderr(_("%s: could not write promote signal file \"%s\": %s\n"), - progname, promote_file, strerror(errno)); + write_stderr(_("%s: could not write promote signal file \"%s\": %m\n"), + progname, promote_file); exit(1); } sig = SIGUSR1; if (kill(pid, sig) != 0) { - write_stderr(_("%s: could not send promote signal (PID: %d): %s\n"), - progname, (int) pid, strerror(errno)); + write_stderr(_("%s: could not send promote signal (PID: %d): %m\n"), + progname, (int) pid); if (unlink(promote_file) != 0) - write_stderr(_("%s: could not remove promote signal file \"%s\": %s\n"), - progname, promote_file, strerror(errno)); + write_stderr(_("%s: could not remove promote signal file \"%s\": %m\n"), + progname, promote_file); exit(1); } @@ -1280,25 +1278,25 @@ do_logrotate(void) if ((logrotatefile = fopen(logrotate_file, "w")) == NULL) { - write_stderr(_("%s: could not create log rotation signal file \"%s\": %s\n"), - progname, logrotate_file, strerror(errno)); + write_stderr(_("%s: could not create log rotation signal file \"%s\": %m\n"), + progname, logrotate_file); exit(1); } if (fclose(logrotatefile)) { - write_stderr(_("%s: could not write log rotation signal file \"%s\": %s\n"), - progname, logrotate_file, strerror(errno)); + write_stderr(_("%s: could not write log rotation signal file \"%s\": %m\n"), + progname, logrotate_file); exit(1); } sig = SIGUSR1; if (kill(pid, sig) != 0) { - write_stderr(_("%s: could not send log rotation signal (PID: %d): %s\n"), - progname, (int) pid, strerror(errno)); + write_stderr(_("%s: could not send log rotation signal (PID: %d): %m\n"), + progname, (int) pid); if (unlink(logrotate_file) != 0) - write_stderr(_("%s: could not remove log rotation signal file \"%s\": %s\n"), - progname, logrotate_file, strerror(errno)); + write_stderr(_("%s: could not remove log rotation signal file \"%s\": %m\n"), + progname, logrotate_file); exit(1); } @@ -1396,8 +1394,8 @@ do_kill(pid_t pid) { if (kill(pid, sig) != 0) { - write_stderr(_("%s: could not send signal %d (PID: %d): %s\n"), - progname, sig, (int) pid, strerror(errno)); + write_stderr(_("%s: could not send signal %d (PID: %d): %m\n"), + progname, sig, (int) pid); exit(1); } } diff --git a/src/bin/pg_dump/compress_gzip.c b/src/bin/pg_dump/compress_gzip.c index c768a11750..26768b9f71 100644 --- a/src/bin/pg_dump/compress_gzip.c +++ b/src/bin/pg_dump/compress_gzip.c @@ -292,7 +292,7 @@ Gzip_getc(CompressFileHandle *CFH) if (ret == EOF) { if (!gzeof(gzfp)) - pg_fatal("could not read from input file: %s", strerror(errno)); + pg_fatal("could not read from input file: %m"); else pg_fatal("could not read from input file: end of file"); } diff --git a/src/bin/pg_dump/compress_none.c b/src/bin/pg_dump/compress_none.c index 06c400424a..f3a524d8a4 100644 --- a/src/bin/pg_dump/compress_none.c +++ b/src/bin/pg_dump/compress_none.c @@ -94,8 +94,7 @@ read_none(void *ptr, size_t size, size_t *rsize, CompressFileHandle *CFH) ret = fread(ptr, 1, size, fp); if (ret != size && !feof(fp)) - pg_fatal("could not read from input file: %s", - strerror(errno)); + pg_fatal("could not read from input file: %m"); if (rsize) *rsize = ret; @@ -137,7 +136,7 @@ getc_none(CompressFileHandle *CFH) if (ret == EOF) { if (!feof(fp)) - pg_fatal("could not read from input file: %s", strerror(errno)); + pg_fatal("could not read from input file: %m"); else pg_fatal("could not read from input file: end of file"); } diff --git a/src/bin/pg_upgrade/check.c b/src/bin/pg_upgrade/check.c index 5ab8fe8009..6936acbccb 100644 --- a/src/bin/pg_upgrade/check.c +++ b/src/bin/pg_upgrade/check.c @@ -505,8 +505,8 @@ create_script_for_old_cluster_deletion(char **deletion_script_file_name) prep_status("Creating script to delete old cluster"); if ((script = fopen_priv(*deletion_script_file_name, "w")) == NULL) - pg_fatal("could not open file \"%s\": %s", - *deletion_script_file_name, strerror(errno)); + pg_fatal("could not open file \"%s\": %m", + *deletion_script_file_name); #ifndef WIN32 /* add shebang header */ @@ -556,8 +556,8 @@ create_script_for_old_cluster_deletion(char **deletion_script_file_name) #ifndef WIN32 if (chmod(*deletion_script_file_name, S_IRWXU) != 0) - pg_fatal("could not add execute permission to file \"%s\": %s", - *deletion_script_file_name, strerror(errno)); + pg_fatal("could not add execute permission to file \"%s\": %m", + *deletion_script_file_name); #endif check_ok(); @@ -678,8 +678,7 @@ check_proper_datallowconn(ClusterInfo *cluster) if (strcmp(datallowconn, "f") == 0) { if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL) - pg_fatal("could not open file \"%s\": %s", - output_path, strerror(errno)); + pg_fatal("could not open file \"%s\": %m", output_path); fprintf(script, "%s\n", datname); } @@ -794,8 +793,7 @@ check_for_isn_and_int8_passing_mismatch(ClusterInfo *cluster) for (rowno = 0; rowno < ntups; rowno++) { if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL) - pg_fatal("could not open file \"%s\": %s", - output_path, strerror(errno)); + pg_fatal("could not open file \"%s\": %m", output_path); if (!db_used) { fprintf(script, "In database: %s\n", active_db->db_name); @@ -889,8 +887,7 @@ check_for_user_defined_postfix_ops(ClusterInfo *cluster) { if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL) - pg_fatal("could not open file \"%s\": %s", - output_path, strerror(errno)); + pg_fatal("could not open file \"%s\": %m", output_path); if (!db_used) { fprintf(script, "In database: %s\n", active_db->db_name); @@ -1018,8 +1015,7 @@ check_for_incompatible_polymorphics(ClusterInfo *cluster) { if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL) - pg_fatal("could not open file \"%s\": %s", - output_path, strerror(errno)); + pg_fatal("could not open file \"%s\": %s", output_path); if (!db_used) { fprintf(script, "In database: %s\n", active_db->db_name); @@ -1095,8 +1091,7 @@ check_for_tables_with_oids(ClusterInfo *cluster) for (rowno = 0; rowno < ntups; rowno++) { if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL) - pg_fatal("could not open file \"%s\": %s", - output_path, strerror(errno)); + pg_fatal("could not open file \"%s\": %m", output_path); if (!db_used) { fprintf(script, "In database: %s\n", active_db->db_name); @@ -1374,8 +1369,7 @@ check_for_pg_role_prefix(ClusterInfo *cluster) for (int rowno = 0; rowno < ntups; rowno++) { if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL) - pg_fatal("could not open file \"%s\": %s", - output_path, strerror(errno)); + pg_fatal("could not open file \"%s\": %m", output_path); fprintf(script, "%s (oid=%s)\n", PQgetvalue(res, rowno, i_rolname), PQgetvalue(res, rowno, i_roloid)); @@ -1448,8 +1442,7 @@ check_for_user_defined_encoding_conversions(ClusterInfo *cluster) { if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL) - pg_fatal("could not open file \"%s\": %s", - output_path, strerror(errno)); + pg_fatal("could not open file \"%s\": %m", output_path); if (!db_used) { fprintf(script, "In database: %s\n", active_db->db_name); @@ -1631,8 +1624,7 @@ check_old_cluster_for_valid_slots(bool live_check) { if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL) - pg_fatal("could not open file \"%s\": %s", - output_path, strerror(errno)); + pg_fatal("could not open file \"%s\": %m", output_path); fprintf(script, "The slot \"%s\" is invalid\n", slot->slotname); @@ -1651,8 +1643,7 @@ check_old_cluster_for_valid_slots(bool live_check) { if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL) - pg_fatal("could not open file \"%s\": %s", - output_path, strerror(errno)); + pg_fatal("could not open file \"%s\": %m", output_path); fprintf(script, "The slot \"%s\" has not consumed the WAL yet\n", @@ -1721,8 +1712,7 @@ check_old_cluster_subscription_state(void) for (int i = 0; i < ntup; i++) { if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL) - pg_fatal("could not open file \"%s\": %s", - output_path, strerror(errno)); + pg_fatal("could not open file \"%s\": %m", output_path); fprintf(script, "The replication origin is missing for database:\"%s\" subscription:\"%s\"\n", PQgetvalue(res, i, 0), PQgetvalue(res, i, 1)); @@ -1774,8 +1764,7 @@ check_old_cluster_subscription_state(void) for (int i = 0; i < ntup; i++) { if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL) - pg_fatal("could not open file \"%s\": %s", - output_path, strerror(errno)); + pg_fatal("could not open file \"%s\": %m", output_path); fprintf(script, "The table sync state \"%s\" is not allowed for database:\"%s\" subscription:\"%s\" schema:\"%s\"relation:\"%s\"\n", PQgetvalue(res, i, 0), diff --git a/src/bin/pg_upgrade/controldata.c b/src/bin/pg_upgrade/controldata.c index d10e31426d..3c836c7c13 100644 --- a/src/bin/pg_upgrade/controldata.c +++ b/src/bin/pg_upgrade/controldata.c @@ -126,8 +126,7 @@ get_control_data(ClusterInfo *cluster, bool live_check) fflush(NULL); if ((output = popen(cmd, "r")) == NULL) - pg_fatal("could not get control data using %s: %s", - cmd, strerror(errno)); + pg_fatal("could not get control data using %s: %m", cmd); /* we have the result of cmd in "output". so parse it line by line now */ while (fgets(bufin, sizeof(bufin), output)) @@ -197,8 +196,7 @@ get_control_data(ClusterInfo *cluster, bool live_check) fflush(NULL); if ((output = popen(cmd, "r")) == NULL) - pg_fatal("could not get control data using %s: %s", - cmd, strerror(errno)); + pg_fatal("could not get control data using %s: %m", cmd); /* Only in <= 9.2 */ if (GET_MAJOR_VERSION(cluster->major_version) <= 902) diff --git a/src/bin/pg_upgrade/exec.c b/src/bin/pg_upgrade/exec.c index 3552cf00af..058530ab3e 100644 --- a/src/bin/pg_upgrade/exec.c +++ b/src/bin/pg_upgrade/exec.c @@ -44,8 +44,7 @@ get_bin_version(ClusterInfo *cluster) if ((output = popen(cmd, "r")) == NULL || fgets(cmd_output, sizeof(cmd_output), output) == NULL) - pg_fatal("could not get pg_ctl version data using %s: %s", - cmd, strerror(errno)); + pg_fatal("could not get pg_ctl version data using %s: %m", cmd); rc = pclose(output); if (rc != 0) @@ -242,8 +241,7 @@ pid_lock_file_exists(const char *datadir) { /* ENOTDIR means we will throw a more useful error later */ if (errno != ENOENT && errno != ENOTDIR) - pg_fatal("could not open file \"%s\" for reading: %s", - path, strerror(errno)); + pg_fatal("could not open file \"%s\" for reading: %m", path); return false; } @@ -322,8 +320,8 @@ check_single_dir(const char *pg_data, const char *subdir) subdir); if (stat(subDirName, &statBuf) != 0) - report_status(PG_FATAL, "check for \"%s\" failed: %s", - subDirName, strerror(errno)); + report_status(PG_FATAL, "check for \"%s\" failed: %m", + subDirName); else if (!S_ISDIR(statBuf.st_mode)) report_status(PG_FATAL, "\"%s\" is not a directory", subDirName); @@ -388,8 +386,8 @@ check_bin_dir(ClusterInfo *cluster, bool check_versions) /* check bindir */ if (stat(cluster->bindir, &statBuf) != 0) - report_status(PG_FATAL, "check for \"%s\" failed: %s", - cluster->bindir, strerror(errno)); + report_status(PG_FATAL, "check for \"%s\" failed: %m", + cluster->bindir); else if (!S_ISDIR(statBuf.st_mode)) report_status(PG_FATAL, "\"%s\" is not a directory", cluster->bindir); diff --git a/src/bin/pg_upgrade/file.c b/src/bin/pg_upgrade/file.c index beba376f2e..73932504ca 100644 --- a/src/bin/pg_upgrade/file.c +++ b/src/bin/pg_upgrade/file.c @@ -41,20 +41,20 @@ cloneFile(const char *src, const char *dst, { #if defined(HAVE_COPYFILE) && defined(COPYFILE_CLONE_FORCE) if (copyfile(src, dst, NULL, COPYFILE_CLONE_FORCE) < 0) - pg_fatal("error while cloning relation \"%s.%s\" (\"%s\" to \"%s\"): %s", - schemaName, relName, src, dst, strerror(errno)); + pg_fatal("error while cloning relation \"%s.%s\" (\"%s\" to \"%s\"): %m", + schemaName, relName, src, dst); #elif defined(__linux__) && defined(FICLONE) int src_fd; int dest_fd; if ((src_fd = open(src, O_RDONLY | PG_BINARY, 0)) < 0) - pg_fatal("error while cloning relation \"%s.%s\": could not open file \"%s\": %s", - schemaName, relName, src, strerror(errno)); + pg_fatal("error while cloning relation \"%s.%s\": could not open file \"%s\": %m", + schemaName, relName, src); if ((dest_fd = open(dst, O_RDWR | O_CREAT | O_EXCL | PG_BINARY, pg_file_create_mode)) < 0) - pg_fatal("error while cloning relation \"%s.%s\": could not create file \"%s\": %s", - schemaName, relName, dst, strerror(errno)); + pg_fatal("error while cloning relation \"%s.%s\": could not create file \"%s\": %m", + schemaName, relName, dst); if (ioctl(dest_fd, FICLONE, src_fd) < 0) { @@ -88,13 +88,13 @@ copyFile(const char *src, const char *dst, char *buffer; if ((src_fd = open(src, O_RDONLY | PG_BINARY, 0)) < 0) - pg_fatal("error while copying relation \"%s.%s\": could not open file \"%s\": %s", - schemaName, relName, src, strerror(errno)); + pg_fatal("error while copying relation \"%s.%s\": could not open file \"%s\": %m", + schemaName, relName, src); if ((dest_fd = open(dst, O_RDWR | O_CREAT | O_EXCL | PG_BINARY, pg_file_create_mode)) < 0) - pg_fatal("error while copying relation \"%s.%s\": could not create file \"%s\": %s", - schemaName, relName, dst, strerror(errno)); + pg_fatal("error while copying relation \"%s.%s\": could not create file \"%s\": %m", + schemaName, relName, dst); /* copy in fairly large chunks for best efficiency */ #define COPY_BUF_SIZE (50 * BLCKSZ) @@ -107,8 +107,8 @@ copyFile(const char *src, const char *dst, ssize_t nbytes = read(src_fd, buffer, COPY_BUF_SIZE); if (nbytes < 0) - pg_fatal("error while copying relation \"%s.%s\": could not read file \"%s\": %s", - schemaName, relName, src, strerror(errno)); + pg_fatal("error while copying relation \"%s.%s\": could not read file \"%s\": %m", + schemaName, relName, src); if (nbytes == 0) break; @@ -119,8 +119,8 @@ copyFile(const char *src, const char *dst, /* if write didn't set errno, assume problem is no disk space */ if (errno == 0) errno = ENOSPC; - pg_fatal("error while copying relation \"%s.%s\": could not write file \"%s\": %s", - schemaName, relName, dst, strerror(errno)); + pg_fatal("error while copying relation \"%s.%s\": could not write file \"%s\": %m", + schemaName, relName, dst); } } @@ -133,8 +133,8 @@ copyFile(const char *src, const char *dst, if (CopyFile(src, dst, true) == 0) { _dosmaperr(GetLastError()); - pg_fatal("error while copying relation \"%s.%s\" (\"%s\" to \"%s\"): %s", - schemaName, relName, src, dst, strerror(errno)); + pg_fatal("error while copying relation \"%s.%s\" (\"%s\" to \"%s\"): %m", + schemaName, relName, src, dst); } #endif /* WIN32 */ @@ -157,20 +157,20 @@ copyFileByRange(const char *src, const char *dst, ssize_t nbytes; if ((src_fd = open(src, O_RDONLY | PG_BINARY, 0)) < 0) - pg_fatal("error while copying relation \"%s.%s\": could not open file \"%s\": %s", - schemaName, relName, src, strerror(errno)); + pg_fatal("error while copying relation \"%s.%s\": could not open file \"%s\": %m", + schemaName, relName, src); if ((dest_fd = open(dst, O_RDWR | O_CREAT | O_EXCL | PG_BINARY, pg_file_create_mode)) < 0) - pg_fatal("error while copying relation \"%s.%s\": could not create file \"%s\": %s", - schemaName, relName, dst, strerror(errno)); + pg_fatal("error while copying relation \"%s.%s\": could not create file \"%s\": %m", + schemaName, relName, dst); do { nbytes = copy_file_range(src_fd, NULL, dest_fd, NULL, SSIZE_MAX, 0); if (nbytes < 0) - pg_fatal("error while copying relation \"%s.%s\": could not copy file range from \"%s\" to \"%s\": %s", - schemaName, relName, src, dst, strerror(errno)); + pg_fatal("error while copying relation \"%s.%s\": could not copy file range from \"%s\" to \"%s\": %m", + schemaName, relName, src, dst); } while (nbytes > 0); @@ -191,8 +191,8 @@ linkFile(const char *src, const char *dst, const char *schemaName, const char *relName) { if (link(src, dst) < 0) - pg_fatal("error while creating link for relation \"%s.%s\" (\"%s\" to \"%s\"): %s", - schemaName, relName, src, dst, strerror(errno)); + pg_fatal("error while creating link for relation \"%s.%s\" (\"%s\" to \"%s\"): %m", + schemaName, relName, src, dst); } @@ -230,17 +230,17 @@ rewriteVisibilityMap(const char *fromfile, const char *tofile, rewriteVmBytesPerPage = (BLCKSZ - SizeOfPageHeaderData) / 2; if ((src_fd = open(fromfile, O_RDONLY | PG_BINARY, 0)) < 0) - pg_fatal("error while copying relation \"%s.%s\": could not open file \"%s\": %s", - schemaName, relName, fromfile, strerror(errno)); + pg_fatal("error while copying relation \"%s.%s\": could not open file \"%s\": %m", + schemaName, relName, fromfile); if (fstat(src_fd, &statbuf) != 0) - pg_fatal("error while copying relation \"%s.%s\": could not stat file \"%s\": %s", - schemaName, relName, fromfile, strerror(errno)); + pg_fatal("error while copying relation \"%s.%s\": could not stat file \"%s\": %m", + schemaName, relName, fromfile); if ((dst_fd = open(tofile, O_RDWR | O_CREAT | O_EXCL | PG_BINARY, pg_file_create_mode)) < 0) - pg_fatal("error while copying relation \"%s.%s\": could not create file \"%s\": %s", - schemaName, relName, tofile, strerror(errno)); + pg_fatal("error while copying relation \"%s.%s\": could not create file \"%s\": %m", + schemaName, relName, tofile); /* Save old file size */ src_filesize = statbuf.st_size; @@ -263,8 +263,8 @@ rewriteVisibilityMap(const char *fromfile, const char *tofile, if ((bytesRead = read(src_fd, buffer.data, BLCKSZ)) != BLCKSZ) { if (bytesRead < 0) - pg_fatal("error while copying relation \"%s.%s\": could not read file \"%s\": %s", - schemaName, relName, fromfile, strerror(errno)); + pg_fatal("error while copying relation \"%s.%s\": could not read file \"%s\": %m", + schemaName, relName, fromfile); else pg_fatal("error while copying relation \"%s.%s\": partial page found in file \"%s\"", schemaName, relName, fromfile); @@ -341,8 +341,8 @@ rewriteVisibilityMap(const char *fromfile, const char *tofile, /* if write didn't set errno, assume problem is no disk space */ if (errno == 0) errno = ENOSPC; - pg_fatal("error while copying relation \"%s.%s\": could not write file \"%s\": %s", - schemaName, relName, tofile, strerror(errno)); + pg_fatal("error while copying relation \"%s.%s\": could not write file \"%s\": %m", + schemaName, relName, tofile); } /* Advance for next new page */ @@ -368,25 +368,23 @@ check_file_clone(void) #if defined(HAVE_COPYFILE) && defined(COPYFILE_CLONE_FORCE) if (copyfile(existing_file, new_link_file, NULL, COPYFILE_CLONE_FORCE) < 0) - pg_fatal("could not clone file between old and new data directories: %s", - strerror(errno)); + pg_fatal("could not clone file between old and new data directories: %m"); #elif defined(__linux__) && defined(FICLONE) { int src_fd; int dest_fd; if ((src_fd = open(existing_file, O_RDONLY | PG_BINARY, 0)) < 0) - pg_fatal("could not open file \"%s\": %s", - existing_file, strerror(errno)); + pg_fatal("could not open file \"%s\": %m", + existing_file); if ((dest_fd = open(new_link_file, O_RDWR | O_CREAT | O_EXCL | PG_BINARY, pg_file_create_mode)) < 0) - pg_fatal("could not create file \"%s\": %s", - new_link_file, strerror(errno)); + pg_fatal("could not create file \"%s\": %m", + new_link_file); if (ioctl(dest_fd, FICLONE, src_fd) < 0) - pg_fatal("could not clone file between old and new data directories: %s", - strerror(errno)); + pg_fatal("could not clone file between old and new data directories: %m"); close(src_fd); close(dest_fd); @@ -414,17 +412,16 @@ check_copy_file_range(void) int dest_fd; if ((src_fd = open(existing_file, O_RDONLY | PG_BINARY, 0)) < 0) - pg_fatal("could not open file \"%s\": %s", - existing_file, strerror(errno)); + pg_fatal("could not open file \"%s\": %m", + existing_file); if ((dest_fd = open(new_link_file, O_RDWR | O_CREAT | O_EXCL | PG_BINARY, pg_file_create_mode)) < 0) - pg_fatal("could not create file \"%s\": %s", - new_link_file, strerror(errno)); + pg_fatal("could not create file \"%s\": %m", + new_link_file); if (copy_file_range(src_fd, NULL, dest_fd, NULL, SSIZE_MAX, 0) < 0) - pg_fatal("could not copy file range between old and new data directories: %s", - strerror(errno)); + pg_fatal("could not copy file range between old and new data directories: %m"); close(src_fd); close(dest_fd); @@ -447,9 +444,8 @@ check_hard_link(void) unlink(new_link_file); /* might fail */ if (link(existing_file, new_link_file) < 0) - pg_fatal("could not create hard link between old and new data directories: %s\n" - "In link mode the old and new data directories must be on the same file system.", - strerror(errno)); + pg_fatal("could not create hard link between old and new data directories: %m\n" + "In link mode the old and new data directories must be on the same file system."); unlink(new_link_file); } diff --git a/src/bin/pg_upgrade/function.c b/src/bin/pg_upgrade/function.c index d65153de81..7e3abed098 100644 --- a/src/bin/pg_upgrade/function.c +++ b/src/bin/pg_upgrade/function.c @@ -186,8 +186,7 @@ check_loadable_libraries(void) was_load_failure = true; if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL) - pg_fatal("could not open file \"%s\": %s", - output_path, strerror(errno)); + pg_fatal("could not open file \"%s\": %m", output_path); fprintf(script, _("could not load library \"%s\": %s"), lib, PQerrorMessage(conn)); diff --git a/src/bin/pg_upgrade/option.c b/src/bin/pg_upgrade/option.c index 8949c58de8..548ea4e623 100644 --- a/src/bin/pg_upgrade/option.c +++ b/src/bin/pg_upgrade/option.c @@ -445,8 +445,7 @@ adjust_data_dir(ClusterInfo *cluster) if ((output = popen(cmd, "r")) == NULL || fgets(cmd_output, sizeof(cmd_output), output) == NULL) - pg_fatal("could not get data directory using %s: %s", - cmd, strerror(errno)); + pg_fatal("could not get data directory using %s: %m", cmd); rc = pclose(output); if (rc != 0) @@ -491,16 +490,15 @@ get_sock_dir(ClusterInfo *cluster, bool live_check) snprintf(filename, sizeof(filename), "%s/postmaster.pid", cluster->pgdata); if ((fp = fopen(filename, "r")) == NULL) - pg_fatal("could not open file \"%s\": %s", - filename, strerror(errno)); + pg_fatal("could not open file \"%s\": %m", filename); for (lineno = 1; lineno <= Max(LOCK_FILE_LINE_PORT, LOCK_FILE_LINE_SOCKET_DIR); lineno++) { if (fgets(line, sizeof(line), fp) == NULL) - pg_fatal("could not read line %d from file \"%s\": %s", - lineno, filename, strerror(errno)); + pg_fatal("could not read line %d from file \"%s\": %m", + lineno, filename); /* potentially overwrite user-supplied value */ if (lineno == LOCK_FILE_LINE_PORT) diff --git a/src/bin/pg_upgrade/parallel.c b/src/bin/pg_upgrade/parallel.c index ae15457a9d..05313a9b15 100644 --- a/src/bin/pg_upgrade/parallel.c +++ b/src/bin/pg_upgrade/parallel.c @@ -124,7 +124,7 @@ parallel_exec_prog(const char *log_file, const char *opt_log_file, _exit(!exec_prog(log_file, opt_log_file, true, true, "%s", cmd)); else if (child < 0) /* fork failed */ - pg_fatal("could not create worker process: %s", strerror(errno)); + pg_fatal("could not create worker process: %m"); #else /* empty array element are always at the end */ new_arg = exec_thread_args[parallel_jobs - 1]; @@ -140,7 +140,7 @@ parallel_exec_prog(const char *log_file, const char *opt_log_file, child = (HANDLE) _beginthreadex(NULL, 0, (void *) win32_exec_prog, new_arg, 0, NULL); if (child == 0) - pg_fatal("could not create worker thread: %s", strerror(errno)); + pg_fatal("could not create worker thread: %m"); thread_handles[parallel_jobs - 1] = child; #endif @@ -232,7 +232,7 @@ parallel_transfer_all_new_dbs(DbInfoArr *old_db_arr, DbInfoArr *new_db_arr, } else if (child < 0) /* fork failed */ - pg_fatal("could not create worker process: %s", strerror(errno)); + pg_fatal("could not create worker process: %m"); #else /* empty array element are always at the end */ new_arg = transfer_thread_args[parallel_jobs - 1]; @@ -250,7 +250,7 @@ parallel_transfer_all_new_dbs(DbInfoArr *old_db_arr, DbInfoArr *new_db_arr, child = (HANDLE) _beginthreadex(NULL, 0, (void *) win32_transfer_all_new_dbs, new_arg, 0, NULL); if (child == 0) - pg_fatal("could not create worker thread: %s", strerror(errno)); + pg_fatal("could not create worker thread: %m"); thread_handles[parallel_jobs - 1] = child; #endif @@ -291,7 +291,7 @@ reap_child(bool wait_for_child) #ifndef WIN32 child = waitpid(-1, &work_status, wait_for_child ? 0 : WNOHANG); if (child == (pid_t) -1) - pg_fatal("%s() failed: %s", "waitpid", strerror(errno)); + pg_fatal("%s() failed: %m", "waitpid"); if (child == 0) return false; /* no children, or no dead children */ if (work_status != 0) @@ -310,7 +310,7 @@ reap_child(bool wait_for_child) /* get the result */ GetExitCodeThread(thread_handles[thread_num], &res); if (res != 0) - pg_fatal("child worker exited abnormally: %s", strerror(errno)); + pg_fatal("child worker exited abnormally: %m"); /* dispose of handle to stop leaks */ CloseHandle(thread_handles[thread_num]); diff --git a/src/bin/pg_upgrade/pg_upgrade.c b/src/bin/pg_upgrade/pg_upgrade.c index 10c94a6c1f..706a73547b 100644 --- a/src/bin/pg_upgrade/pg_upgrade.c +++ b/src/bin/pg_upgrade/pg_upgrade.c @@ -105,8 +105,8 @@ main(int argc, char **argv) * output directories with correct permissions. */ if (!GetDataDirectoryCreatePerm(new_cluster.pgdata)) - pg_fatal("could not read permissions of directory \"%s\": %s", - new_cluster.pgdata, strerror(errno)); + pg_fatal("could not read permissions of directory \"%s\": %m", + new_cluster.pgdata); umask(pg_mode_mask); diff --git a/src/bin/pg_upgrade/relfilenumber.c b/src/bin/pg_upgrade/relfilenumber.c index a1fc5fec78..1d3054d78b 100644 --- a/src/bin/pg_upgrade/relfilenumber.c +++ b/src/bin/pg_upgrade/relfilenumber.c @@ -218,9 +218,8 @@ transfer_relfile(FileNameMap *map, const char *type_suffix, bool vm_must_add_fro if (errno == ENOENT) return; else - pg_fatal("error while checking for file existence \"%s.%s\" (\"%s\" to \"%s\"): %s", - map->nspname, map->relname, old_file, new_file, - strerror(errno)); + pg_fatal("error while checking for file existence \"%s.%s\" (\"%s\" to \"%s\"): %m", + map->nspname, map->relname, old_file, new_file); } /* If file is empty, just return */ diff --git a/src/bin/pg_upgrade/tablespace.c b/src/bin/pg_upgrade/tablespace.c index 4602873219..043e5e721b 100644 --- a/src/bin/pg_upgrade/tablespace.c +++ b/src/bin/pg_upgrade/tablespace.c @@ -84,8 +84,8 @@ get_tablespace_paths(void) os_info.old_tablespaces[tblnum]); else report_status(PG_FATAL, - "could not stat tablespace directory \"%s\": %s", - os_info.old_tablespaces[tblnum], strerror(errno)); + "could not stat tablespace directory \"%s\": %m", + os_info.old_tablespaces[tblnum]); } if (!S_ISDIR(statBuf.st_mode)) report_status(PG_FATAL, diff --git a/src/bin/pg_upgrade/version.c b/src/bin/pg_upgrade/version.c index 13b2c0f012..9dc1399f36 100644 --- a/src/bin/pg_upgrade/version.c +++ b/src/bin/pg_upgrade/version.c @@ -113,8 +113,7 @@ check_for_data_types_usage(ClusterInfo *cluster, { found = true; if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL) - pg_fatal("could not open file \"%s\": %s", output_path, - strerror(errno)); + pg_fatal("could not open file \"%s\": %m", output_path); if (!db_used) { fprintf(script, "In database: %s\n", active_db->db_name); @@ -289,8 +288,7 @@ old_9_6_invalidate_hash_indexes(ClusterInfo *cluster, bool check_mode) if (!check_mode) { if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL) - pg_fatal("could not open file \"%s\": %s", output_path, - strerror(errno)); + pg_fatal("could not open file \"%s\": %m", output_path); if (!db_used) { PQExpBufferData connectbuf; @@ -423,8 +421,7 @@ report_extension_updates(ClusterInfo *cluster) for (rowno = 0; rowno < ntups; rowno++) { if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL) - pg_fatal("could not open file \"%s\": %s", output_path, - strerror(errno)); + pg_fatal("could not open file \"%s\": %m", output_path); if (!db_used) { PQExpBufferData connectbuf; diff --git a/src/common/psprintf.c b/src/common/psprintf.c index 147a695c86..a063fd26d5 100644 --- a/src/common/psprintf.c +++ b/src/common/psprintf.c @@ -115,8 +115,8 @@ pvsnprintf(char *buf, size_t len, const char *fmt, va_list args) #ifndef FRONTEND elog(ERROR, "vsnprintf failed: %m with format string \"%s\"", fmt); #else - fprintf(stderr, "vsnprintf failed: %s with format string \"%s\"\n", - strerror(errno), fmt); + fprintf(stderr, "vsnprintf failed: %m with format string \"%s\"\n", + fmt); exit(EXIT_FAILURE); #endif } diff --git a/src/interfaces/ecpg/preproc/ecpg.c b/src/interfaces/ecpg/preproc/ecpg.c index e4db21e0c1..93e66fc60f 100644 --- a/src/interfaces/ecpg/preproc/ecpg.c +++ b/src/interfaces/ecpg/preproc/ecpg.c @@ -216,8 +216,8 @@ main(int argc, char *const argv[]) if (base_yyout == NULL) { - fprintf(stderr, _("%s: could not open file \"%s\": %s\n"), - progname, output_filename, strerror(errno)); + fprintf(stderr, _("%s: could not open file \"%s\": %m\n"), + progname, output_filename); output_filename = NULL; } else @@ -331,8 +331,8 @@ main(int argc, char *const argv[]) base_yyout = fopen(output_filename, PG_BINARY_W); if (base_yyout == NULL) { - fprintf(stderr, _("%s: could not open file \"%s\": %s\n"), - progname, output_filename, strerror(errno)); + fprintf(stderr, _("%s: could not open file \"%s\": %m\n"), + progname, output_filename); free(output_filename); output_filename = NULL; free(input_filename); @@ -342,8 +342,8 @@ main(int argc, char *const argv[]) } if (base_yyin == NULL) - fprintf(stderr, _("%s: could not open file \"%s\": %s\n"), - progname, argv[fnr], strerror(errno)); + fprintf(stderr, _("%s: could not open file \"%s\": %m\n"), + progname, argv[fnr]); else { struct cursor *ptr; diff --git a/src/test/isolation/isolationtester.c b/src/test/isolation/isolationtester.c index 0a66235153..ed110f740f 100644 --- a/src/test/isolation/isolationtester.c +++ b/src/test/isolation/isolationtester.c @@ -871,7 +871,7 @@ try_complete_step(TestSpec *testspec, PermutationStep *pstep, int flags) { if (errno == EINTR) continue; - fprintf(stderr, "select failed: %s\n", strerror(errno)); + fprintf(stderr, "select failed: %m\n"); exit(1); } else if (ret == 0) /* select() timeout: check for lock wait */ diff --git a/src/test/modules/libpq_pipeline/libpq_pipeline.c b/src/test/modules/libpq_pipeline/libpq_pipeline.c index 5f43aa40de..297e726d50 100644 --- a/src/test/modules/libpq_pipeline/libpq_pipeline.c +++ b/src/test/modules/libpq_pipeline/libpq_pipeline.c @@ -324,7 +324,7 @@ test_nosync(PGconn *conn) tv.tv_usec = 0; if (select(sock + 1, &input_mask, NULL, NULL, &tv) < 0) { - fprintf(stderr, "select() failed: %s\n", strerror(errno)); + fprintf(stderr, "select() failed: %m\n"); exit_nicely(conn); } if (FD_ISSET(sock, &input_mask) && PQconsumeInput(conn) != 1) @@ -775,7 +775,7 @@ test_pipelined_insert(PGconn *conn, int n_rows) if (select(sock + 1, &input_mask, &output_mask, NULL, NULL) < 0) { - fprintf(stderr, "select() failed: %s\n", strerror(errno)); + fprintf(stderr, "select() failed: %m\n"); exit_nicely(conn); } diff --git a/src/tools/ifaddrs/test_ifaddrs.c b/src/tools/ifaddrs/test_ifaddrs.c index b9a1b7b5e8..a1037e1b57 100644 --- a/src/tools/ifaddrs/test_ifaddrs.c +++ b/src/tools/ifaddrs/test_ifaddrs.c @@ -66,6 +66,6 @@ main(int argc, char *argv[]) #endif if (pg_foreach_ifaddr(callback, NULL) < 0) - fprintf(stderr, "pg_foreach_ifaddr failed: %s\n", strerror(errno)); + fprintf(stderr, "pg_foreach_ifaddr failed: %m\n"); return 0; } -- 2.39.2
pgsql-hackers by date: