mirror of
https://github.com/postgres/postgres.git
synced 2025-04-22 23:02:54 +03:00
Use printf's %m format instead of strerror(errno) in more places
Most callers of strerror() are removed from the backend code. The remaining callers require special handling with a saved errno from a previous system call. The frontend code still needs strerror() where error states need to be handled outside of fprintf. Note that pg_regress is not changed to use %m as the TAP output may clobber errno, since those functions call fprintf() and friends before evaluating the format string. Support for %m in src/port/snprintf.c has been added in d6c55de1f99a, hence all the stable branches currently supported include it. Author: Dagfinn Ilmari Mannsåker Discussion: https://postgr.es/m/87sf13jhuw.fsf@wibble.ilmari.org
This commit is contained in:
parent
3045324214
commit
2c8118ee5d
@ -1375,12 +1375,12 @@ PostmasterMain(int argc, char *argv[])
|
|||||||
|
|
||||||
/* Make PID file world readable */
|
/* Make PID file world readable */
|
||||||
if (chmod(external_pid_file, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH) != 0)
|
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",
|
write_stderr("%s: could not change permissions of external PID file \"%s\": %m\n",
|
||||||
progname, external_pid_file, strerror(errno));
|
progname, external_pid_file);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
write_stderr("%s: could not write external PID file \"%s\": %s\n",
|
write_stderr("%s: could not write external PID file \"%s\": %m\n",
|
||||||
progname, external_pid_file, strerror(errno));
|
progname, external_pid_file);
|
||||||
|
|
||||||
on_proc_exit(unlink_external_pid_file, 0);
|
on_proc_exit(unlink_external_pid_file, 0);
|
||||||
}
|
}
|
||||||
@ -1589,8 +1589,8 @@ checkControlFile(void)
|
|||||||
{
|
{
|
||||||
write_stderr("%s: could not find the database system\n"
|
write_stderr("%s: could not find the database system\n"
|
||||||
"Expected to find it in the directory \"%s\",\n"
|
"Expected to find it in the directory \"%s\",\n"
|
||||||
"but could not open file \"%s\": %s\n",
|
"but could not open file \"%s\": %m\n",
|
||||||
progname, DataDir, path, strerror(errno));
|
progname, DataDir, path);
|
||||||
ExitPostmaster(2);
|
ExitPostmaster(2);
|
||||||
}
|
}
|
||||||
FreeFile(fp);
|
FreeFile(fp);
|
||||||
@ -6277,15 +6277,13 @@ read_backend_variables(char *id, Port **port, BackgroundWorker **worker)
|
|||||||
fp = AllocateFile(id, PG_BINARY_R);
|
fp = AllocateFile(id, PG_BINARY_R);
|
||||||
if (!fp)
|
if (!fp)
|
||||||
{
|
{
|
||||||
write_stderr("could not open backend variables file \"%s\": %s\n",
|
write_stderr("could not open backend variables file \"%s\": %m\n", id);
|
||||||
id, strerror(errno));
|
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fread(¶m, sizeof(param), 1, fp) != 1)
|
if (fread(¶m, sizeof(param), 1, fp) != 1)
|
||||||
{
|
{
|
||||||
write_stderr("could not read from backend variables file \"%s\": %s\n",
|
write_stderr("could not read from backend variables file \"%s\": %m\n", id);
|
||||||
id, strerror(errno));
|
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6293,8 +6291,7 @@ read_backend_variables(char *id, Port **port, BackgroundWorker **worker)
|
|||||||
FreeFile(fp);
|
FreeFile(fp);
|
||||||
if (unlink(id) != 0)
|
if (unlink(id) != 0)
|
||||||
{
|
{
|
||||||
write_stderr("could not remove file \"%s\": %s\n",
|
write_stderr("could not remove file \"%s\": %m\n", id);
|
||||||
id, strerror(errno));
|
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
|
@ -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.
|
* to our input pipe which would result in a different sort of looping.
|
||||||
*/
|
*/
|
||||||
if (rc != count)
|
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
|
#ifdef WIN32
|
||||||
|
@ -1799,10 +1799,9 @@ SelectConfigFiles(const char *userDoption, const char *progname)
|
|||||||
|
|
||||||
if (configdir && stat(configdir, &stat_buf) != 0)
|
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,
|
progname,
|
||||||
configdir,
|
configdir);
|
||||||
strerror(errno));
|
|
||||||
if (errno == ENOENT)
|
if (errno == ENOENT)
|
||||||
write_stderr("Run initdb or pg_basebackup to initialize a PostgreSQL data directory.\n");
|
write_stderr("Run initdb or pg_basebackup to initialize a PostgreSQL data directory.\n");
|
||||||
return false;
|
return false;
|
||||||
@ -1851,8 +1850,8 @@ SelectConfigFiles(const char *userDoption, const char *progname)
|
|||||||
*/
|
*/
|
||||||
if (stat(ConfigFileName, &stat_buf) != 0)
|
if (stat(ConfigFileName, &stat_buf) != 0)
|
||||||
{
|
{
|
||||||
write_stderr("%s: could not access the server configuration file \"%s\": %s\n",
|
write_stderr("%s: could not access the server configuration file \"%s\": %m\n",
|
||||||
progname, ConfigFileName, strerror(errno));
|
progname, ConfigFileName);
|
||||||
free(configdir);
|
free(configdir);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -680,8 +680,8 @@ scan_available_timezones(char *tzdir, char *tzdirsub, struct tztry *tt,
|
|||||||
if (stat(tzdir, &statbuf) != 0)
|
if (stat(tzdir, &statbuf) != 0)
|
||||||
{
|
{
|
||||||
#ifdef DEBUG_IDENTIFY_TIMEZONE
|
#ifdef DEBUG_IDENTIFY_TIMEZONE
|
||||||
fprintf(stderr, "could not stat \"%s\": %s\n",
|
fprintf(stderr, "could not stat \"%s\": %m\n",
|
||||||
tzdir, strerror(errno));
|
tzdir);
|
||||||
#endif
|
#endif
|
||||||
tzdir[tzdir_orig_len] = '\0';
|
tzdir[tzdir_orig_len] = '\0';
|
||||||
continue;
|
continue;
|
||||||
|
@ -254,8 +254,8 @@ get_pgpid(bool is_status_request)
|
|||||||
write_stderr(_("%s: directory \"%s\" does not exist\n"), progname,
|
write_stderr(_("%s: directory \"%s\" does not exist\n"), progname,
|
||||||
pg_data);
|
pg_data);
|
||||||
else
|
else
|
||||||
write_stderr(_("%s: could not access directory \"%s\": %s\n"), progname,
|
write_stderr(_("%s: could not access directory \"%s\": %m\n"), progname,
|
||||||
pg_data, strerror(errno));
|
pg_data);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The Linux Standard Base Core Specification 3.1 says this should
|
* The Linux Standard Base Core Specification 3.1 says this should
|
||||||
@ -280,8 +280,8 @@ get_pgpid(bool is_status_request)
|
|||||||
return 0;
|
return 0;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
write_stderr(_("%s: could not open PID file \"%s\": %s\n"),
|
write_stderr(_("%s: could not open PID file \"%s\": %m\n"),
|
||||||
progname, pid_file, strerror(errno));
|
progname, pid_file);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -454,8 +454,8 @@ start_postmaster(void)
|
|||||||
if (pm_pid < 0)
|
if (pm_pid < 0)
|
||||||
{
|
{
|
||||||
/* fork failed */
|
/* fork failed */
|
||||||
write_stderr(_("%s: could not start server: %s\n"),
|
write_stderr(_("%s: could not start server: %m\n"),
|
||||||
progname, strerror(errno));
|
progname);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
if (pm_pid > 0)
|
if (pm_pid > 0)
|
||||||
@ -474,8 +474,8 @@ start_postmaster(void)
|
|||||||
#ifdef HAVE_SETSID
|
#ifdef HAVE_SETSID
|
||||||
if (setsid() < 0)
|
if (setsid() < 0)
|
||||||
{
|
{
|
||||||
write_stderr(_("%s: could not start server due to setsid() failure: %s\n"),
|
write_stderr(_("%s: could not start server due to setsid() failure: %m\n"),
|
||||||
progname, strerror(errno));
|
progname);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -496,8 +496,8 @@ start_postmaster(void)
|
|||||||
(void) execl("/bin/sh", "/bin/sh", "-c", cmd, (char *) NULL);
|
(void) execl("/bin/sh", "/bin/sh", "-c", cmd, (char *) NULL);
|
||||||
|
|
||||||
/* exec failed */
|
/* exec failed */
|
||||||
write_stderr(_("%s: could not start server: %s\n"),
|
write_stderr(_("%s: could not start server: %m\n"),
|
||||||
progname, strerror(errno));
|
progname);
|
||||||
exit(1);
|
exit(1);
|
||||||
|
|
||||||
return 0; /* keep dumb compilers quiet */
|
return 0; /* keep dumb compilers quiet */
|
||||||
@ -544,8 +544,8 @@ start_postmaster(void)
|
|||||||
*/
|
*/
|
||||||
if (errno != ENOENT)
|
if (errno != ENOENT)
|
||||||
{
|
{
|
||||||
write_stderr(_("%s: could not open log file \"%s\": %s\n"),
|
write_stderr(_("%s: could not open log file \"%s\": %m\n"),
|
||||||
progname, log_file, strerror(errno));
|
progname, log_file);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -851,8 +851,8 @@ trap_sigint_during_startup(SIGNAL_ARGS)
|
|||||||
if (postmasterPID != -1)
|
if (postmasterPID != -1)
|
||||||
{
|
{
|
||||||
if (kill(postmasterPID, SIGINT) != 0)
|
if (kill(postmasterPID, SIGINT) != 0)
|
||||||
write_stderr(_("%s: could not send stop signal (PID: %d): %s\n"),
|
write_stderr(_("%s: could not send stop signal (PID: %d): %m\n"),
|
||||||
progname, (int) postmasterPID, strerror(errno));
|
progname, (int) postmasterPID);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -1035,8 +1035,7 @@ do_stop(void)
|
|||||||
|
|
||||||
if (kill(pid, sig) != 0)
|
if (kill(pid, sig) != 0)
|
||||||
{
|
{
|
||||||
write_stderr(_("%s: could not send stop signal (PID: %d): %s\n"), progname, (int) pid,
|
write_stderr(_("%s: could not send stop signal (PID: %d): %m\n"), progname, (int) pid);
|
||||||
strerror(errno));
|
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1103,8 +1102,7 @@ do_restart(void)
|
|||||||
{
|
{
|
||||||
if (kill(pid, sig) != 0)
|
if (kill(pid, sig) != 0)
|
||||||
{
|
{
|
||||||
write_stderr(_("%s: could not send stop signal (PID: %d): %s\n"), progname, (int) pid,
|
write_stderr(_("%s: could not send stop signal (PID: %d): %m\n"), progname, (int) pid);
|
||||||
strerror(errno));
|
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1159,8 +1157,8 @@ do_reload(void)
|
|||||||
|
|
||||||
if (kill(pid, sig) != 0)
|
if (kill(pid, sig) != 0)
|
||||||
{
|
{
|
||||||
write_stderr(_("%s: could not send reload signal (PID: %d): %s\n"),
|
write_stderr(_("%s: could not send reload signal (PID: %d): %m\n"),
|
||||||
progname, (int) pid, strerror(errno));
|
progname, (int) pid);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1207,25 +1205,25 @@ do_promote(void)
|
|||||||
|
|
||||||
if ((prmfile = fopen(promote_file, "w")) == NULL)
|
if ((prmfile = fopen(promote_file, "w")) == NULL)
|
||||||
{
|
{
|
||||||
write_stderr(_("%s: could not create promote signal file \"%s\": %s\n"),
|
write_stderr(_("%s: could not create promote signal file \"%s\": %m\n"),
|
||||||
progname, promote_file, strerror(errno));
|
progname, promote_file);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
if (fclose(prmfile))
|
if (fclose(prmfile))
|
||||||
{
|
{
|
||||||
write_stderr(_("%s: could not write promote signal file \"%s\": %s\n"),
|
write_stderr(_("%s: could not write promote signal file \"%s\": %m\n"),
|
||||||
progname, promote_file, strerror(errno));
|
progname, promote_file);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
sig = SIGUSR1;
|
sig = SIGUSR1;
|
||||||
if (kill(pid, sig) != 0)
|
if (kill(pid, sig) != 0)
|
||||||
{
|
{
|
||||||
write_stderr(_("%s: could not send promote signal (PID: %d): %s\n"),
|
write_stderr(_("%s: could not send promote signal (PID: %d): %m\n"),
|
||||||
progname, (int) pid, strerror(errno));
|
progname, (int) pid);
|
||||||
if (unlink(promote_file) != 0)
|
if (unlink(promote_file) != 0)
|
||||||
write_stderr(_("%s: could not remove promote signal file \"%s\": %s\n"),
|
write_stderr(_("%s: could not remove promote signal file \"%s\": %m\n"),
|
||||||
progname, promote_file, strerror(errno));
|
progname, promote_file);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1280,25 +1278,25 @@ do_logrotate(void)
|
|||||||
|
|
||||||
if ((logrotatefile = fopen(logrotate_file, "w")) == NULL)
|
if ((logrotatefile = fopen(logrotate_file, "w")) == NULL)
|
||||||
{
|
{
|
||||||
write_stderr(_("%s: could not create log rotation signal file \"%s\": %s\n"),
|
write_stderr(_("%s: could not create log rotation signal file \"%s\": %m\n"),
|
||||||
progname, logrotate_file, strerror(errno));
|
progname, logrotate_file);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
if (fclose(logrotatefile))
|
if (fclose(logrotatefile))
|
||||||
{
|
{
|
||||||
write_stderr(_("%s: could not write log rotation signal file \"%s\": %s\n"),
|
write_stderr(_("%s: could not write log rotation signal file \"%s\": %m\n"),
|
||||||
progname, logrotate_file, strerror(errno));
|
progname, logrotate_file);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
sig = SIGUSR1;
|
sig = SIGUSR1;
|
||||||
if (kill(pid, sig) != 0)
|
if (kill(pid, sig) != 0)
|
||||||
{
|
{
|
||||||
write_stderr(_("%s: could not send log rotation signal (PID: %d): %s\n"),
|
write_stderr(_("%s: could not send log rotation signal (PID: %d): %m\n"),
|
||||||
progname, (int) pid, strerror(errno));
|
progname, (int) pid);
|
||||||
if (unlink(logrotate_file) != 0)
|
if (unlink(logrotate_file) != 0)
|
||||||
write_stderr(_("%s: could not remove log rotation signal file \"%s\": %s\n"),
|
write_stderr(_("%s: could not remove log rotation signal file \"%s\": %m\n"),
|
||||||
progname, logrotate_file, strerror(errno));
|
progname, logrotate_file);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1396,8 +1394,8 @@ do_kill(pid_t pid)
|
|||||||
{
|
{
|
||||||
if (kill(pid, sig) != 0)
|
if (kill(pid, sig) != 0)
|
||||||
{
|
{
|
||||||
write_stderr(_("%s: could not send signal %d (PID: %d): %s\n"),
|
write_stderr(_("%s: could not send signal %d (PID: %d): %m\n"),
|
||||||
progname, sig, (int) pid, strerror(errno));
|
progname, sig, (int) pid);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -292,7 +292,7 @@ Gzip_getc(CompressFileHandle *CFH)
|
|||||||
if (ret == EOF)
|
if (ret == EOF)
|
||||||
{
|
{
|
||||||
if (!gzeof(gzfp))
|
if (!gzeof(gzfp))
|
||||||
pg_fatal("could not read from input file: %s", strerror(errno));
|
pg_fatal("could not read from input file: %m");
|
||||||
else
|
else
|
||||||
pg_fatal("could not read from input file: end of file");
|
pg_fatal("could not read from input file: end of file");
|
||||||
}
|
}
|
||||||
|
@ -94,8 +94,7 @@ read_none(void *ptr, size_t size, size_t *rsize, CompressFileHandle *CFH)
|
|||||||
|
|
||||||
ret = fread(ptr, 1, size, fp);
|
ret = fread(ptr, 1, size, fp);
|
||||||
if (ret != size && !feof(fp))
|
if (ret != size && !feof(fp))
|
||||||
pg_fatal("could not read from input file: %s",
|
pg_fatal("could not read from input file: %m");
|
||||||
strerror(errno));
|
|
||||||
|
|
||||||
if (rsize)
|
if (rsize)
|
||||||
*rsize = ret;
|
*rsize = ret;
|
||||||
@ -137,7 +136,7 @@ getc_none(CompressFileHandle *CFH)
|
|||||||
if (ret == EOF)
|
if (ret == EOF)
|
||||||
{
|
{
|
||||||
if (!feof(fp))
|
if (!feof(fp))
|
||||||
pg_fatal("could not read from input file: %s", strerror(errno));
|
pg_fatal("could not read from input file: %m");
|
||||||
else
|
else
|
||||||
pg_fatal("could not read from input file: end of file");
|
pg_fatal("could not read from input file: end of file");
|
||||||
}
|
}
|
||||||
|
@ -505,8 +505,8 @@ create_script_for_old_cluster_deletion(char **deletion_script_file_name)
|
|||||||
prep_status("Creating script to delete old cluster");
|
prep_status("Creating script to delete old cluster");
|
||||||
|
|
||||||
if ((script = fopen_priv(*deletion_script_file_name, "w")) == NULL)
|
if ((script = fopen_priv(*deletion_script_file_name, "w")) == NULL)
|
||||||
pg_fatal("could not open file \"%s\": %s",
|
pg_fatal("could not open file \"%s\": %m",
|
||||||
*deletion_script_file_name, strerror(errno));
|
*deletion_script_file_name);
|
||||||
|
|
||||||
#ifndef WIN32
|
#ifndef WIN32
|
||||||
/* add shebang header */
|
/* add shebang header */
|
||||||
@ -556,8 +556,8 @@ create_script_for_old_cluster_deletion(char **deletion_script_file_name)
|
|||||||
|
|
||||||
#ifndef WIN32
|
#ifndef WIN32
|
||||||
if (chmod(*deletion_script_file_name, S_IRWXU) != 0)
|
if (chmod(*deletion_script_file_name, S_IRWXU) != 0)
|
||||||
pg_fatal("could not add execute permission to file \"%s\": %s",
|
pg_fatal("could not add execute permission to file \"%s\": %m",
|
||||||
*deletion_script_file_name, strerror(errno));
|
*deletion_script_file_name);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
check_ok();
|
check_ok();
|
||||||
@ -678,8 +678,7 @@ check_proper_datallowconn(ClusterInfo *cluster)
|
|||||||
if (strcmp(datallowconn, "f") == 0)
|
if (strcmp(datallowconn, "f") == 0)
|
||||||
{
|
{
|
||||||
if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL)
|
if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL)
|
||||||
pg_fatal("could not open file \"%s\": %s",
|
pg_fatal("could not open file \"%s\": %m", output_path);
|
||||||
output_path, strerror(errno));
|
|
||||||
|
|
||||||
fprintf(script, "%s\n", datname);
|
fprintf(script, "%s\n", datname);
|
||||||
}
|
}
|
||||||
@ -794,8 +793,7 @@ check_for_isn_and_int8_passing_mismatch(ClusterInfo *cluster)
|
|||||||
for (rowno = 0; rowno < ntups; rowno++)
|
for (rowno = 0; rowno < ntups; rowno++)
|
||||||
{
|
{
|
||||||
if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL)
|
if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL)
|
||||||
pg_fatal("could not open file \"%s\": %s",
|
pg_fatal("could not open file \"%s\": %m", output_path);
|
||||||
output_path, strerror(errno));
|
|
||||||
if (!db_used)
|
if (!db_used)
|
||||||
{
|
{
|
||||||
fprintf(script, "In database: %s\n", active_db->db_name);
|
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 &&
|
if (script == NULL &&
|
||||||
(script = fopen_priv(output_path, "w")) == NULL)
|
(script = fopen_priv(output_path, "w")) == NULL)
|
||||||
pg_fatal("could not open file \"%s\": %s",
|
pg_fatal("could not open file \"%s\": %m", output_path);
|
||||||
output_path, strerror(errno));
|
|
||||||
if (!db_used)
|
if (!db_used)
|
||||||
{
|
{
|
||||||
fprintf(script, "In database: %s\n", active_db->db_name);
|
fprintf(script, "In database: %s\n", active_db->db_name);
|
||||||
@ -1018,8 +1015,7 @@ check_for_incompatible_polymorphics(ClusterInfo *cluster)
|
|||||||
{
|
{
|
||||||
if (script == NULL &&
|
if (script == NULL &&
|
||||||
(script = fopen_priv(output_path, "w")) == NULL)
|
(script = fopen_priv(output_path, "w")) == NULL)
|
||||||
pg_fatal("could not open file \"%s\": %s",
|
pg_fatal("could not open file \"%s\": %m", output_path);
|
||||||
output_path, strerror(errno));
|
|
||||||
if (!db_used)
|
if (!db_used)
|
||||||
{
|
{
|
||||||
fprintf(script, "In database: %s\n", active_db->db_name);
|
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++)
|
for (rowno = 0; rowno < ntups; rowno++)
|
||||||
{
|
{
|
||||||
if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL)
|
if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL)
|
||||||
pg_fatal("could not open file \"%s\": %s",
|
pg_fatal("could not open file \"%s\": %m", output_path);
|
||||||
output_path, strerror(errno));
|
|
||||||
if (!db_used)
|
if (!db_used)
|
||||||
{
|
{
|
||||||
fprintf(script, "In database: %s\n", active_db->db_name);
|
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++)
|
for (int rowno = 0; rowno < ntups; rowno++)
|
||||||
{
|
{
|
||||||
if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL)
|
if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL)
|
||||||
pg_fatal("could not open file \"%s\": %s",
|
pg_fatal("could not open file \"%s\": %m", output_path);
|
||||||
output_path, strerror(errno));
|
|
||||||
fprintf(script, "%s (oid=%s)\n",
|
fprintf(script, "%s (oid=%s)\n",
|
||||||
PQgetvalue(res, rowno, i_rolname),
|
PQgetvalue(res, rowno, i_rolname),
|
||||||
PQgetvalue(res, rowno, i_roloid));
|
PQgetvalue(res, rowno, i_roloid));
|
||||||
@ -1448,8 +1442,7 @@ check_for_user_defined_encoding_conversions(ClusterInfo *cluster)
|
|||||||
{
|
{
|
||||||
if (script == NULL &&
|
if (script == NULL &&
|
||||||
(script = fopen_priv(output_path, "w")) == NULL)
|
(script = fopen_priv(output_path, "w")) == NULL)
|
||||||
pg_fatal("could not open file \"%s\": %s",
|
pg_fatal("could not open file \"%s\": %m", output_path);
|
||||||
output_path, strerror(errno));
|
|
||||||
if (!db_used)
|
if (!db_used)
|
||||||
{
|
{
|
||||||
fprintf(script, "In database: %s\n", active_db->db_name);
|
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 &&
|
if (script == NULL &&
|
||||||
(script = fopen_priv(output_path, "w")) == NULL)
|
(script = fopen_priv(output_path, "w")) == NULL)
|
||||||
pg_fatal("could not open file \"%s\": %s",
|
pg_fatal("could not open file \"%s\": %m", output_path);
|
||||||
output_path, strerror(errno));
|
|
||||||
|
|
||||||
fprintf(script, "The slot \"%s\" is invalid\n",
|
fprintf(script, "The slot \"%s\" is invalid\n",
|
||||||
slot->slotname);
|
slot->slotname);
|
||||||
@ -1651,8 +1643,7 @@ check_old_cluster_for_valid_slots(bool live_check)
|
|||||||
{
|
{
|
||||||
if (script == NULL &&
|
if (script == NULL &&
|
||||||
(script = fopen_priv(output_path, "w")) == NULL)
|
(script = fopen_priv(output_path, "w")) == NULL)
|
||||||
pg_fatal("could not open file \"%s\": %s",
|
pg_fatal("could not open file \"%s\": %m", output_path);
|
||||||
output_path, strerror(errno));
|
|
||||||
|
|
||||||
fprintf(script,
|
fprintf(script,
|
||||||
"The slot \"%s\" has not consumed the WAL yet\n",
|
"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++)
|
for (int i = 0; i < ntup; i++)
|
||||||
{
|
{
|
||||||
if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL)
|
if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL)
|
||||||
pg_fatal("could not open file \"%s\": %s",
|
pg_fatal("could not open file \"%s\": %m", output_path);
|
||||||
output_path, strerror(errno));
|
|
||||||
fprintf(script, "The replication origin is missing for database:\"%s\" subscription:\"%s\"\n",
|
fprintf(script, "The replication origin is missing for database:\"%s\" subscription:\"%s\"\n",
|
||||||
PQgetvalue(res, i, 0),
|
PQgetvalue(res, i, 0),
|
||||||
PQgetvalue(res, i, 1));
|
PQgetvalue(res, i, 1));
|
||||||
@ -1774,8 +1764,7 @@ check_old_cluster_subscription_state(void)
|
|||||||
for (int i = 0; i < ntup; i++)
|
for (int i = 0; i < ntup; i++)
|
||||||
{
|
{
|
||||||
if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL)
|
if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL)
|
||||||
pg_fatal("could not open file \"%s\": %s",
|
pg_fatal("could not open file \"%s\": %m", output_path);
|
||||||
output_path, strerror(errno));
|
|
||||||
|
|
||||||
fprintf(script, "The table sync state \"%s\" is not allowed for database:\"%s\" subscription:\"%s\" schema:\"%s\" relation:\"%s\"\n",
|
fprintf(script, "The table sync state \"%s\" is not allowed for database:\"%s\" subscription:\"%s\" schema:\"%s\" relation:\"%s\"\n",
|
||||||
PQgetvalue(res, i, 0),
|
PQgetvalue(res, i, 0),
|
||||||
|
@ -126,8 +126,7 @@ get_control_data(ClusterInfo *cluster, bool live_check)
|
|||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
|
|
||||||
if ((output = popen(cmd, "r")) == NULL)
|
if ((output = popen(cmd, "r")) == NULL)
|
||||||
pg_fatal("could not get control data using %s: %s",
|
pg_fatal("could not get control data using %s: %m", cmd);
|
||||||
cmd, strerror(errno));
|
|
||||||
|
|
||||||
/* we have the result of cmd in "output". so parse it line by line now */
|
/* we have the result of cmd in "output". so parse it line by line now */
|
||||||
while (fgets(bufin, sizeof(bufin), output))
|
while (fgets(bufin, sizeof(bufin), output))
|
||||||
@ -197,8 +196,7 @@ get_control_data(ClusterInfo *cluster, bool live_check)
|
|||||||
fflush(NULL);
|
fflush(NULL);
|
||||||
|
|
||||||
if ((output = popen(cmd, "r")) == NULL)
|
if ((output = popen(cmd, "r")) == NULL)
|
||||||
pg_fatal("could not get control data using %s: %s",
|
pg_fatal("could not get control data using %s: %m", cmd);
|
||||||
cmd, strerror(errno));
|
|
||||||
|
|
||||||
/* Only in <= 9.2 */
|
/* Only in <= 9.2 */
|
||||||
if (GET_MAJOR_VERSION(cluster->major_version) <= 902)
|
if (GET_MAJOR_VERSION(cluster->major_version) <= 902)
|
||||||
|
@ -44,8 +44,7 @@ get_bin_version(ClusterInfo *cluster)
|
|||||||
|
|
||||||
if ((output = popen(cmd, "r")) == NULL ||
|
if ((output = popen(cmd, "r")) == NULL ||
|
||||||
fgets(cmd_output, sizeof(cmd_output), output) == NULL)
|
fgets(cmd_output, sizeof(cmd_output), output) == NULL)
|
||||||
pg_fatal("could not get pg_ctl version data using %s: %s",
|
pg_fatal("could not get pg_ctl version data using %s: %m", cmd);
|
||||||
cmd, strerror(errno));
|
|
||||||
|
|
||||||
rc = pclose(output);
|
rc = pclose(output);
|
||||||
if (rc != 0)
|
if (rc != 0)
|
||||||
@ -242,8 +241,7 @@ pid_lock_file_exists(const char *datadir)
|
|||||||
{
|
{
|
||||||
/* ENOTDIR means we will throw a more useful error later */
|
/* ENOTDIR means we will throw a more useful error later */
|
||||||
if (errno != ENOENT && errno != ENOTDIR)
|
if (errno != ENOENT && errno != ENOTDIR)
|
||||||
pg_fatal("could not open file \"%s\" for reading: %s",
|
pg_fatal("could not open file \"%s\" for reading: %m", path);
|
||||||
path, strerror(errno));
|
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -322,8 +320,8 @@ check_single_dir(const char *pg_data, const char *subdir)
|
|||||||
subdir);
|
subdir);
|
||||||
|
|
||||||
if (stat(subDirName, &statBuf) != 0)
|
if (stat(subDirName, &statBuf) != 0)
|
||||||
report_status(PG_FATAL, "check for \"%s\" failed: %s",
|
report_status(PG_FATAL, "check for \"%s\" failed: %m",
|
||||||
subDirName, strerror(errno));
|
subDirName);
|
||||||
else if (!S_ISDIR(statBuf.st_mode))
|
else if (!S_ISDIR(statBuf.st_mode))
|
||||||
report_status(PG_FATAL, "\"%s\" is not a directory",
|
report_status(PG_FATAL, "\"%s\" is not a directory",
|
||||||
subDirName);
|
subDirName);
|
||||||
@ -388,8 +386,8 @@ check_bin_dir(ClusterInfo *cluster, bool check_versions)
|
|||||||
|
|
||||||
/* check bindir */
|
/* check bindir */
|
||||||
if (stat(cluster->bindir, &statBuf) != 0)
|
if (stat(cluster->bindir, &statBuf) != 0)
|
||||||
report_status(PG_FATAL, "check for \"%s\" failed: %s",
|
report_status(PG_FATAL, "check for \"%s\" failed: %m",
|
||||||
cluster->bindir, strerror(errno));
|
cluster->bindir);
|
||||||
else if (!S_ISDIR(statBuf.st_mode))
|
else if (!S_ISDIR(statBuf.st_mode))
|
||||||
report_status(PG_FATAL, "\"%s\" is not a directory",
|
report_status(PG_FATAL, "\"%s\" is not a directory",
|
||||||
cluster->bindir);
|
cluster->bindir);
|
||||||
|
@ -41,20 +41,20 @@ cloneFile(const char *src, const char *dst,
|
|||||||
{
|
{
|
||||||
#if defined(HAVE_COPYFILE) && defined(COPYFILE_CLONE_FORCE)
|
#if defined(HAVE_COPYFILE) && defined(COPYFILE_CLONE_FORCE)
|
||||||
if (copyfile(src, dst, NULL, COPYFILE_CLONE_FORCE) < 0)
|
if (copyfile(src, dst, NULL, COPYFILE_CLONE_FORCE) < 0)
|
||||||
pg_fatal("error while cloning relation \"%s.%s\" (\"%s\" to \"%s\"): %s",
|
pg_fatal("error while cloning relation \"%s.%s\" (\"%s\" to \"%s\"): %m",
|
||||||
schemaName, relName, src, dst, strerror(errno));
|
schemaName, relName, src, dst);
|
||||||
#elif defined(__linux__) && defined(FICLONE)
|
#elif defined(__linux__) && defined(FICLONE)
|
||||||
int src_fd;
|
int src_fd;
|
||||||
int dest_fd;
|
int dest_fd;
|
||||||
|
|
||||||
if ((src_fd = open(src, O_RDONLY | PG_BINARY, 0)) < 0)
|
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",
|
pg_fatal("error while cloning relation \"%s.%s\": could not open file \"%s\": %m",
|
||||||
schemaName, relName, src, strerror(errno));
|
schemaName, relName, src);
|
||||||
|
|
||||||
if ((dest_fd = open(dst, O_RDWR | O_CREAT | O_EXCL | PG_BINARY,
|
if ((dest_fd = open(dst, O_RDWR | O_CREAT | O_EXCL | PG_BINARY,
|
||||||
pg_file_create_mode)) < 0)
|
pg_file_create_mode)) < 0)
|
||||||
pg_fatal("error while cloning relation \"%s.%s\": could not create file \"%s\": %s",
|
pg_fatal("error while cloning relation \"%s.%s\": could not create file \"%s\": %m",
|
||||||
schemaName, relName, dst, strerror(errno));
|
schemaName, relName, dst);
|
||||||
|
|
||||||
if (ioctl(dest_fd, FICLONE, src_fd) < 0)
|
if (ioctl(dest_fd, FICLONE, src_fd) < 0)
|
||||||
{
|
{
|
||||||
@ -88,13 +88,13 @@ copyFile(const char *src, const char *dst,
|
|||||||
char *buffer;
|
char *buffer;
|
||||||
|
|
||||||
if ((src_fd = open(src, O_RDONLY | PG_BINARY, 0)) < 0)
|
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",
|
pg_fatal("error while copying relation \"%s.%s\": could not open file \"%s\": %m",
|
||||||
schemaName, relName, src, strerror(errno));
|
schemaName, relName, src);
|
||||||
|
|
||||||
if ((dest_fd = open(dst, O_RDWR | O_CREAT | O_EXCL | PG_BINARY,
|
if ((dest_fd = open(dst, O_RDWR | O_CREAT | O_EXCL | PG_BINARY,
|
||||||
pg_file_create_mode)) < 0)
|
pg_file_create_mode)) < 0)
|
||||||
pg_fatal("error while copying relation \"%s.%s\": could not create file \"%s\": %s",
|
pg_fatal("error while copying relation \"%s.%s\": could not create file \"%s\": %m",
|
||||||
schemaName, relName, dst, strerror(errno));
|
schemaName, relName, dst);
|
||||||
|
|
||||||
/* copy in fairly large chunks for best efficiency */
|
/* copy in fairly large chunks for best efficiency */
|
||||||
#define COPY_BUF_SIZE (50 * BLCKSZ)
|
#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);
|
ssize_t nbytes = read(src_fd, buffer, COPY_BUF_SIZE);
|
||||||
|
|
||||||
if (nbytes < 0)
|
if (nbytes < 0)
|
||||||
pg_fatal("error while copying relation \"%s.%s\": could not read file \"%s\": %s",
|
pg_fatal("error while copying relation \"%s.%s\": could not read file \"%s\": %m",
|
||||||
schemaName, relName, src, strerror(errno));
|
schemaName, relName, src);
|
||||||
|
|
||||||
if (nbytes == 0)
|
if (nbytes == 0)
|
||||||
break;
|
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 write didn't set errno, assume problem is no disk space */
|
||||||
if (errno == 0)
|
if (errno == 0)
|
||||||
errno = ENOSPC;
|
errno = ENOSPC;
|
||||||
pg_fatal("error while copying relation \"%s.%s\": could not write file \"%s\": %s",
|
pg_fatal("error while copying relation \"%s.%s\": could not write file \"%s\": %m",
|
||||||
schemaName, relName, dst, strerror(errno));
|
schemaName, relName, dst);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -133,8 +133,8 @@ copyFile(const char *src, const char *dst,
|
|||||||
if (CopyFile(src, dst, true) == 0)
|
if (CopyFile(src, dst, true) == 0)
|
||||||
{
|
{
|
||||||
_dosmaperr(GetLastError());
|
_dosmaperr(GetLastError());
|
||||||
pg_fatal("error while copying relation \"%s.%s\" (\"%s\" to \"%s\"): %s",
|
pg_fatal("error while copying relation \"%s.%s\" (\"%s\" to \"%s\"): %m",
|
||||||
schemaName, relName, src, dst, strerror(errno));
|
schemaName, relName, src, dst);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* WIN32 */
|
#endif /* WIN32 */
|
||||||
@ -157,20 +157,20 @@ copyFileByRange(const char *src, const char *dst,
|
|||||||
ssize_t nbytes;
|
ssize_t nbytes;
|
||||||
|
|
||||||
if ((src_fd = open(src, O_RDONLY | PG_BINARY, 0)) < 0)
|
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",
|
pg_fatal("error while copying relation \"%s.%s\": could not open file \"%s\": %m",
|
||||||
schemaName, relName, src, strerror(errno));
|
schemaName, relName, src);
|
||||||
|
|
||||||
if ((dest_fd = open(dst, O_RDWR | O_CREAT | O_EXCL | PG_BINARY,
|
if ((dest_fd = open(dst, O_RDWR | O_CREAT | O_EXCL | PG_BINARY,
|
||||||
pg_file_create_mode)) < 0)
|
pg_file_create_mode)) < 0)
|
||||||
pg_fatal("error while copying relation \"%s.%s\": could not create file \"%s\": %s",
|
pg_fatal("error while copying relation \"%s.%s\": could not create file \"%s\": %m",
|
||||||
schemaName, relName, dst, strerror(errno));
|
schemaName, relName, dst);
|
||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
nbytes = copy_file_range(src_fd, NULL, dest_fd, NULL, SSIZE_MAX, 0);
|
nbytes = copy_file_range(src_fd, NULL, dest_fd, NULL, SSIZE_MAX, 0);
|
||||||
if (nbytes < 0)
|
if (nbytes < 0)
|
||||||
pg_fatal("error while copying relation \"%s.%s\": could not copy file range from \"%s\" to \"%s\": %s",
|
pg_fatal("error while copying relation \"%s.%s\": could not copy file range from \"%s\" to \"%s\": %m",
|
||||||
schemaName, relName, src, dst, strerror(errno));
|
schemaName, relName, src, dst);
|
||||||
}
|
}
|
||||||
while (nbytes > 0);
|
while (nbytes > 0);
|
||||||
|
|
||||||
@ -191,8 +191,8 @@ linkFile(const char *src, const char *dst,
|
|||||||
const char *schemaName, const char *relName)
|
const char *schemaName, const char *relName)
|
||||||
{
|
{
|
||||||
if (link(src, dst) < 0)
|
if (link(src, dst) < 0)
|
||||||
pg_fatal("error while creating link for relation \"%s.%s\" (\"%s\" to \"%s\"): %s",
|
pg_fatal("error while creating link for relation \"%s.%s\" (\"%s\" to \"%s\"): %m",
|
||||||
schemaName, relName, src, dst, strerror(errno));
|
schemaName, relName, src, dst);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -230,17 +230,17 @@ rewriteVisibilityMap(const char *fromfile, const char *tofile,
|
|||||||
rewriteVmBytesPerPage = (BLCKSZ - SizeOfPageHeaderData) / 2;
|
rewriteVmBytesPerPage = (BLCKSZ - SizeOfPageHeaderData) / 2;
|
||||||
|
|
||||||
if ((src_fd = open(fromfile, O_RDONLY | PG_BINARY, 0)) < 0)
|
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",
|
pg_fatal("error while copying relation \"%s.%s\": could not open file \"%s\": %m",
|
||||||
schemaName, relName, fromfile, strerror(errno));
|
schemaName, relName, fromfile);
|
||||||
|
|
||||||
if (fstat(src_fd, &statbuf) != 0)
|
if (fstat(src_fd, &statbuf) != 0)
|
||||||
pg_fatal("error while copying relation \"%s.%s\": could not stat file \"%s\": %s",
|
pg_fatal("error while copying relation \"%s.%s\": could not stat file \"%s\": %m",
|
||||||
schemaName, relName, fromfile, strerror(errno));
|
schemaName, relName, fromfile);
|
||||||
|
|
||||||
if ((dst_fd = open(tofile, O_RDWR | O_CREAT | O_EXCL | PG_BINARY,
|
if ((dst_fd = open(tofile, O_RDWR | O_CREAT | O_EXCL | PG_BINARY,
|
||||||
pg_file_create_mode)) < 0)
|
pg_file_create_mode)) < 0)
|
||||||
pg_fatal("error while copying relation \"%s.%s\": could not create file \"%s\": %s",
|
pg_fatal("error while copying relation \"%s.%s\": could not create file \"%s\": %m",
|
||||||
schemaName, relName, tofile, strerror(errno));
|
schemaName, relName, tofile);
|
||||||
|
|
||||||
/* Save old file size */
|
/* Save old file size */
|
||||||
src_filesize = statbuf.st_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 = read(src_fd, buffer.data, BLCKSZ)) != BLCKSZ)
|
||||||
{
|
{
|
||||||
if (bytesRead < 0)
|
if (bytesRead < 0)
|
||||||
pg_fatal("error while copying relation \"%s.%s\": could not read file \"%s\": %s",
|
pg_fatal("error while copying relation \"%s.%s\": could not read file \"%s\": %m",
|
||||||
schemaName, relName, fromfile, strerror(errno));
|
schemaName, relName, fromfile);
|
||||||
else
|
else
|
||||||
pg_fatal("error while copying relation \"%s.%s\": partial page found in file \"%s\"",
|
pg_fatal("error while copying relation \"%s.%s\": partial page found in file \"%s\"",
|
||||||
schemaName, relName, fromfile);
|
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 write didn't set errno, assume problem is no disk space */
|
||||||
if (errno == 0)
|
if (errno == 0)
|
||||||
errno = ENOSPC;
|
errno = ENOSPC;
|
||||||
pg_fatal("error while copying relation \"%s.%s\": could not write file \"%s\": %s",
|
pg_fatal("error while copying relation \"%s.%s\": could not write file \"%s\": %m",
|
||||||
schemaName, relName, tofile, strerror(errno));
|
schemaName, relName, tofile);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Advance for next new page */
|
/* Advance for next new page */
|
||||||
@ -368,25 +368,23 @@ check_file_clone(void)
|
|||||||
|
|
||||||
#if defined(HAVE_COPYFILE) && defined(COPYFILE_CLONE_FORCE)
|
#if defined(HAVE_COPYFILE) && defined(COPYFILE_CLONE_FORCE)
|
||||||
if (copyfile(existing_file, new_link_file, NULL, COPYFILE_CLONE_FORCE) < 0)
|
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",
|
pg_fatal("could not clone file between old and new data directories: %m");
|
||||||
strerror(errno));
|
|
||||||
#elif defined(__linux__) && defined(FICLONE)
|
#elif defined(__linux__) && defined(FICLONE)
|
||||||
{
|
{
|
||||||
int src_fd;
|
int src_fd;
|
||||||
int dest_fd;
|
int dest_fd;
|
||||||
|
|
||||||
if ((src_fd = open(existing_file, O_RDONLY | PG_BINARY, 0)) < 0)
|
if ((src_fd = open(existing_file, O_RDONLY | PG_BINARY, 0)) < 0)
|
||||||
pg_fatal("could not open file \"%s\": %s",
|
pg_fatal("could not open file \"%s\": %m",
|
||||||
existing_file, strerror(errno));
|
existing_file);
|
||||||
|
|
||||||
if ((dest_fd = open(new_link_file, O_RDWR | O_CREAT | O_EXCL | PG_BINARY,
|
if ((dest_fd = open(new_link_file, O_RDWR | O_CREAT | O_EXCL | PG_BINARY,
|
||||||
pg_file_create_mode)) < 0)
|
pg_file_create_mode)) < 0)
|
||||||
pg_fatal("could not create file \"%s\": %s",
|
pg_fatal("could not create file \"%s\": %m",
|
||||||
new_link_file, strerror(errno));
|
new_link_file);
|
||||||
|
|
||||||
if (ioctl(dest_fd, FICLONE, src_fd) < 0)
|
if (ioctl(dest_fd, FICLONE, src_fd) < 0)
|
||||||
pg_fatal("could not clone file between old and new data directories: %s",
|
pg_fatal("could not clone file between old and new data directories: %m");
|
||||||
strerror(errno));
|
|
||||||
|
|
||||||
close(src_fd);
|
close(src_fd);
|
||||||
close(dest_fd);
|
close(dest_fd);
|
||||||
@ -414,17 +412,16 @@ check_copy_file_range(void)
|
|||||||
int dest_fd;
|
int dest_fd;
|
||||||
|
|
||||||
if ((src_fd = open(existing_file, O_RDONLY | PG_BINARY, 0)) < 0)
|
if ((src_fd = open(existing_file, O_RDONLY | PG_BINARY, 0)) < 0)
|
||||||
pg_fatal("could not open file \"%s\": %s",
|
pg_fatal("could not open file \"%s\": %m",
|
||||||
existing_file, strerror(errno));
|
existing_file);
|
||||||
|
|
||||||
if ((dest_fd = open(new_link_file, O_RDWR | O_CREAT | O_EXCL | PG_BINARY,
|
if ((dest_fd = open(new_link_file, O_RDWR | O_CREAT | O_EXCL | PG_BINARY,
|
||||||
pg_file_create_mode)) < 0)
|
pg_file_create_mode)) < 0)
|
||||||
pg_fatal("could not create file \"%s\": %s",
|
pg_fatal("could not create file \"%s\": %m",
|
||||||
new_link_file, strerror(errno));
|
new_link_file);
|
||||||
|
|
||||||
if (copy_file_range(src_fd, NULL, dest_fd, NULL, SSIZE_MAX, 0) < 0)
|
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",
|
pg_fatal("could not copy file range between old and new data directories: %m");
|
||||||
strerror(errno));
|
|
||||||
|
|
||||||
close(src_fd);
|
close(src_fd);
|
||||||
close(dest_fd);
|
close(dest_fd);
|
||||||
@ -447,9 +444,8 @@ check_hard_link(void)
|
|||||||
unlink(new_link_file); /* might fail */
|
unlink(new_link_file); /* might fail */
|
||||||
|
|
||||||
if (link(existing_file, new_link_file) < 0)
|
if (link(existing_file, new_link_file) < 0)
|
||||||
pg_fatal("could not create hard link between old and new data directories: %s\n"
|
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.",
|
"In link mode the old and new data directories must be on the same file system.");
|
||||||
strerror(errno));
|
|
||||||
|
|
||||||
unlink(new_link_file);
|
unlink(new_link_file);
|
||||||
}
|
}
|
||||||
|
@ -186,8 +186,7 @@ check_loadable_libraries(void)
|
|||||||
was_load_failure = true;
|
was_load_failure = true;
|
||||||
|
|
||||||
if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL)
|
if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL)
|
||||||
pg_fatal("could not open file \"%s\": %s",
|
pg_fatal("could not open file \"%s\": %m", output_path);
|
||||||
output_path, strerror(errno));
|
|
||||||
fprintf(script, _("could not load library \"%s\": %s"),
|
fprintf(script, _("could not load library \"%s\": %s"),
|
||||||
lib,
|
lib,
|
||||||
PQerrorMessage(conn));
|
PQerrorMessage(conn));
|
||||||
|
@ -445,8 +445,7 @@ adjust_data_dir(ClusterInfo *cluster)
|
|||||||
|
|
||||||
if ((output = popen(cmd, "r")) == NULL ||
|
if ((output = popen(cmd, "r")) == NULL ||
|
||||||
fgets(cmd_output, sizeof(cmd_output), output) == NULL)
|
fgets(cmd_output, sizeof(cmd_output), output) == NULL)
|
||||||
pg_fatal("could not get data directory using %s: %s",
|
pg_fatal("could not get data directory using %s: %m", cmd);
|
||||||
cmd, strerror(errno));
|
|
||||||
|
|
||||||
rc = pclose(output);
|
rc = pclose(output);
|
||||||
if (rc != 0)
|
if (rc != 0)
|
||||||
@ -491,16 +490,15 @@ get_sock_dir(ClusterInfo *cluster, bool live_check)
|
|||||||
snprintf(filename, sizeof(filename), "%s/postmaster.pid",
|
snprintf(filename, sizeof(filename), "%s/postmaster.pid",
|
||||||
cluster->pgdata);
|
cluster->pgdata);
|
||||||
if ((fp = fopen(filename, "r")) == NULL)
|
if ((fp = fopen(filename, "r")) == NULL)
|
||||||
pg_fatal("could not open file \"%s\": %s",
|
pg_fatal("could not open file \"%s\": %m", filename);
|
||||||
filename, strerror(errno));
|
|
||||||
|
|
||||||
for (lineno = 1;
|
for (lineno = 1;
|
||||||
lineno <= Max(LOCK_FILE_LINE_PORT, LOCK_FILE_LINE_SOCKET_DIR);
|
lineno <= Max(LOCK_FILE_LINE_PORT, LOCK_FILE_LINE_SOCKET_DIR);
|
||||||
lineno++)
|
lineno++)
|
||||||
{
|
{
|
||||||
if (fgets(line, sizeof(line), fp) == NULL)
|
if (fgets(line, sizeof(line), fp) == NULL)
|
||||||
pg_fatal("could not read line %d from file \"%s\": %s",
|
pg_fatal("could not read line %d from file \"%s\": %m",
|
||||||
lineno, filename, strerror(errno));
|
lineno, filename);
|
||||||
|
|
||||||
/* potentially overwrite user-supplied value */
|
/* potentially overwrite user-supplied value */
|
||||||
if (lineno == LOCK_FILE_LINE_PORT)
|
if (lineno == LOCK_FILE_LINE_PORT)
|
||||||
|
@ -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));
|
_exit(!exec_prog(log_file, opt_log_file, true, true, "%s", cmd));
|
||||||
else if (child < 0)
|
else if (child < 0)
|
||||||
/* fork failed */
|
/* fork failed */
|
||||||
pg_fatal("could not create worker process: %s", strerror(errno));
|
pg_fatal("could not create worker process: %m");
|
||||||
#else
|
#else
|
||||||
/* empty array element are always at the end */
|
/* empty array element are always at the end */
|
||||||
new_arg = exec_thread_args[parallel_jobs - 1];
|
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,
|
child = (HANDLE) _beginthreadex(NULL, 0, (void *) win32_exec_prog,
|
||||||
new_arg, 0, NULL);
|
new_arg, 0, NULL);
|
||||||
if (child == 0)
|
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;
|
thread_handles[parallel_jobs - 1] = child;
|
||||||
#endif
|
#endif
|
||||||
@ -232,7 +232,7 @@ parallel_transfer_all_new_dbs(DbInfoArr *old_db_arr, DbInfoArr *new_db_arr,
|
|||||||
}
|
}
|
||||||
else if (child < 0)
|
else if (child < 0)
|
||||||
/* fork failed */
|
/* fork failed */
|
||||||
pg_fatal("could not create worker process: %s", strerror(errno));
|
pg_fatal("could not create worker process: %m");
|
||||||
#else
|
#else
|
||||||
/* empty array element are always at the end */
|
/* empty array element are always at the end */
|
||||||
new_arg = transfer_thread_args[parallel_jobs - 1];
|
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,
|
child = (HANDLE) _beginthreadex(NULL, 0, (void *) win32_transfer_all_new_dbs,
|
||||||
new_arg, 0, NULL);
|
new_arg, 0, NULL);
|
||||||
if (child == 0)
|
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;
|
thread_handles[parallel_jobs - 1] = child;
|
||||||
#endif
|
#endif
|
||||||
@ -291,7 +291,7 @@ reap_child(bool wait_for_child)
|
|||||||
#ifndef WIN32
|
#ifndef WIN32
|
||||||
child = waitpid(-1, &work_status, wait_for_child ? 0 : WNOHANG);
|
child = waitpid(-1, &work_status, wait_for_child ? 0 : WNOHANG);
|
||||||
if (child == (pid_t) -1)
|
if (child == (pid_t) -1)
|
||||||
pg_fatal("%s() failed: %s", "waitpid", strerror(errno));
|
pg_fatal("%s() failed: %m", "waitpid");
|
||||||
if (child == 0)
|
if (child == 0)
|
||||||
return false; /* no children, or no dead children */
|
return false; /* no children, or no dead children */
|
||||||
if (work_status != 0)
|
if (work_status != 0)
|
||||||
@ -310,7 +310,7 @@ reap_child(bool wait_for_child)
|
|||||||
/* get the result */
|
/* get the result */
|
||||||
GetExitCodeThread(thread_handles[thread_num], &res);
|
GetExitCodeThread(thread_handles[thread_num], &res);
|
||||||
if (res != 0)
|
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 */
|
/* dispose of handle to stop leaks */
|
||||||
CloseHandle(thread_handles[thread_num]);
|
CloseHandle(thread_handles[thread_num]);
|
||||||
|
@ -105,8 +105,8 @@ main(int argc, char **argv)
|
|||||||
* output directories with correct permissions.
|
* output directories with correct permissions.
|
||||||
*/
|
*/
|
||||||
if (!GetDataDirectoryCreatePerm(new_cluster.pgdata))
|
if (!GetDataDirectoryCreatePerm(new_cluster.pgdata))
|
||||||
pg_fatal("could not read permissions of directory \"%s\": %s",
|
pg_fatal("could not read permissions of directory \"%s\": %m",
|
||||||
new_cluster.pgdata, strerror(errno));
|
new_cluster.pgdata);
|
||||||
|
|
||||||
umask(pg_mode_mask);
|
umask(pg_mode_mask);
|
||||||
|
|
||||||
|
@ -218,9 +218,8 @@ transfer_relfile(FileNameMap *map, const char *type_suffix, bool vm_must_add_fro
|
|||||||
if (errno == ENOENT)
|
if (errno == ENOENT)
|
||||||
return;
|
return;
|
||||||
else
|
else
|
||||||
pg_fatal("error while checking for file existence \"%s.%s\" (\"%s\" to \"%s\"): %s",
|
pg_fatal("error while checking for file existence \"%s.%s\" (\"%s\" to \"%s\"): %m",
|
||||||
map->nspname, map->relname, old_file, new_file,
|
map->nspname, map->relname, old_file, new_file);
|
||||||
strerror(errno));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If file is empty, just return */
|
/* If file is empty, just return */
|
||||||
|
@ -84,8 +84,8 @@ get_tablespace_paths(void)
|
|||||||
os_info.old_tablespaces[tblnum]);
|
os_info.old_tablespaces[tblnum]);
|
||||||
else
|
else
|
||||||
report_status(PG_FATAL,
|
report_status(PG_FATAL,
|
||||||
"could not stat tablespace directory \"%s\": %s",
|
"could not stat tablespace directory \"%s\": %m",
|
||||||
os_info.old_tablespaces[tblnum], strerror(errno));
|
os_info.old_tablespaces[tblnum]);
|
||||||
}
|
}
|
||||||
if (!S_ISDIR(statBuf.st_mode))
|
if (!S_ISDIR(statBuf.st_mode))
|
||||||
report_status(PG_FATAL,
|
report_status(PG_FATAL,
|
||||||
|
@ -113,8 +113,7 @@ check_for_data_types_usage(ClusterInfo *cluster,
|
|||||||
{
|
{
|
||||||
found = true;
|
found = true;
|
||||||
if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL)
|
if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL)
|
||||||
pg_fatal("could not open file \"%s\": %s", output_path,
|
pg_fatal("could not open file \"%s\": %m", output_path);
|
||||||
strerror(errno));
|
|
||||||
if (!db_used)
|
if (!db_used)
|
||||||
{
|
{
|
||||||
fprintf(script, "In database: %s\n", active_db->db_name);
|
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 (!check_mode)
|
||||||
{
|
{
|
||||||
if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL)
|
if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL)
|
||||||
pg_fatal("could not open file \"%s\": %s", output_path,
|
pg_fatal("could not open file \"%s\": %m", output_path);
|
||||||
strerror(errno));
|
|
||||||
if (!db_used)
|
if (!db_used)
|
||||||
{
|
{
|
||||||
PQExpBufferData connectbuf;
|
PQExpBufferData connectbuf;
|
||||||
@ -423,8 +421,7 @@ report_extension_updates(ClusterInfo *cluster)
|
|||||||
for (rowno = 0; rowno < ntups; rowno++)
|
for (rowno = 0; rowno < ntups; rowno++)
|
||||||
{
|
{
|
||||||
if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL)
|
if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL)
|
||||||
pg_fatal("could not open file \"%s\": %s", output_path,
|
pg_fatal("could not open file \"%s\": %m", output_path);
|
||||||
strerror(errno));
|
|
||||||
if (!db_used)
|
if (!db_used)
|
||||||
{
|
{
|
||||||
PQExpBufferData connectbuf;
|
PQExpBufferData connectbuf;
|
||||||
|
@ -115,8 +115,8 @@ pvsnprintf(char *buf, size_t len, const char *fmt, va_list args)
|
|||||||
#ifndef FRONTEND
|
#ifndef FRONTEND
|
||||||
elog(ERROR, "vsnprintf failed: %m with format string \"%s\"", fmt);
|
elog(ERROR, "vsnprintf failed: %m with format string \"%s\"", fmt);
|
||||||
#else
|
#else
|
||||||
fprintf(stderr, "vsnprintf failed: %s with format string \"%s\"\n",
|
fprintf(stderr, "vsnprintf failed: %m with format string \"%s\"\n",
|
||||||
strerror(errno), fmt);
|
fmt);
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -216,8 +216,8 @@ main(int argc, char *const argv[])
|
|||||||
|
|
||||||
if (base_yyout == NULL)
|
if (base_yyout == NULL)
|
||||||
{
|
{
|
||||||
fprintf(stderr, _("%s: could not open file \"%s\": %s\n"),
|
fprintf(stderr, _("%s: could not open file \"%s\": %m\n"),
|
||||||
progname, output_filename, strerror(errno));
|
progname, output_filename);
|
||||||
output_filename = NULL;
|
output_filename = NULL;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -331,8 +331,8 @@ main(int argc, char *const argv[])
|
|||||||
base_yyout = fopen(output_filename, PG_BINARY_W);
|
base_yyout = fopen(output_filename, PG_BINARY_W);
|
||||||
if (base_yyout == NULL)
|
if (base_yyout == NULL)
|
||||||
{
|
{
|
||||||
fprintf(stderr, _("%s: could not open file \"%s\": %s\n"),
|
fprintf(stderr, _("%s: could not open file \"%s\": %m\n"),
|
||||||
progname, output_filename, strerror(errno));
|
progname, output_filename);
|
||||||
free(output_filename);
|
free(output_filename);
|
||||||
output_filename = NULL;
|
output_filename = NULL;
|
||||||
free(input_filename);
|
free(input_filename);
|
||||||
@ -342,8 +342,8 @@ main(int argc, char *const argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (base_yyin == NULL)
|
if (base_yyin == NULL)
|
||||||
fprintf(stderr, _("%s: could not open file \"%s\": %s\n"),
|
fprintf(stderr, _("%s: could not open file \"%s\": %m\n"),
|
||||||
progname, argv[fnr], strerror(errno));
|
progname, argv[fnr]);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
struct cursor *ptr;
|
struct cursor *ptr;
|
||||||
|
@ -772,8 +772,7 @@ make_absolute_path(const char *path)
|
|||||||
#ifndef FRONTEND
|
#ifndef FRONTEND
|
||||||
elog(ERROR, "could not get current working directory: %m");
|
elog(ERROR, "could not get current working directory: %m");
|
||||||
#else
|
#else
|
||||||
fprintf(stderr, _("could not get current working directory: %s\n"),
|
fprintf(stderr, _("could not get current working directory: %m\n"));
|
||||||
strerror(errno));
|
|
||||||
return NULL;
|
return NULL;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -871,7 +871,7 @@ try_complete_step(TestSpec *testspec, PermutationStep *pstep, int flags)
|
|||||||
{
|
{
|
||||||
if (errno == EINTR)
|
if (errno == EINTR)
|
||||||
continue;
|
continue;
|
||||||
fprintf(stderr, "select failed: %s\n", strerror(errno));
|
fprintf(stderr, "select failed: %m\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
else if (ret == 0) /* select() timeout: check for lock wait */
|
else if (ret == 0) /* select() timeout: check for lock wait */
|
||||||
|
@ -492,7 +492,7 @@ test_nosync(PGconn *conn)
|
|||||||
tv.tv_usec = 0;
|
tv.tv_usec = 0;
|
||||||
if (select(sock + 1, &input_mask, NULL, NULL, &tv) < 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);
|
exit_nicely(conn);
|
||||||
}
|
}
|
||||||
if (FD_ISSET(sock, &input_mask) && PQconsumeInput(conn) != 1)
|
if (FD_ISSET(sock, &input_mask) && PQconsumeInput(conn) != 1)
|
||||||
@ -943,7 +943,7 @@ test_pipelined_insert(PGconn *conn, int n_rows)
|
|||||||
|
|
||||||
if (select(sock + 1, &input_mask, &output_mask, NULL, NULL) < 0)
|
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);
|
exit_nicely(conn);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -66,6 +66,6 @@ main(int argc, char *argv[])
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (pg_foreach_ifaddr(callback, NULL) < 0)
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user