From 588f370b163db25ae38504088b17610123dcb315 Mon Sep 17 00:00:00 2001 From: Daniel Gustafsson Date: Tue, 13 Feb 2024 14:08:56 +0100 Subject: [PATCH] Revert "Skip .DS_Store files in server side utils" This reverts commit 76bb6dd2e56c14e947196e638f86982424c51254. Per failure reports from the buildfarm. --- doc/src/sgml/protocol.sgml | 2 +- doc/src/sgml/ref/pg_basebackup.sgml | 3 +-- doc/src/sgml/ref/pg_rewind.sgml | 5 ++--- src/backend/replication/basebackup.c | 4 ---- src/bin/pg_basebackup/t/010_pg_basebackup.pl | 16 ---------------- src/bin/pg_checksums/pg_checksums.c | 4 ---- src/bin/pg_checksums/t/002_actions.pl | 7 ------- src/bin/pg_rewind/filemap.c | 4 ---- src/bin/pg_rewind/t/003_extrafiles.pl | 5 ----- 9 files changed, 4 insertions(+), 46 deletions(-) diff --git a/doc/src/sgml/protocol.sgml b/doc/src/sgml/protocol.sgml index 5ac937f5b67..5482f1b7929 100644 --- a/doc/src/sgml/protocol.sgml +++ b/doc/src/sgml/protocol.sgml @@ -2795,7 +2795,7 @@ The commands accepted in replication mode are: Files other than regular files and directories, such as symbolic links (other than for the directories listed above) and special - device and operating system files, are skipped. (Symbolic links + device files, are skipped. (Symbolic links in pg_tblspc are maintained.) diff --git a/doc/src/sgml/ref/pg_basebackup.sgml b/doc/src/sgml/ref/pg_basebackup.sgml index bab8c9e4806..4e2db60b836 100644 --- a/doc/src/sgml/ref/pg_basebackup.sgml +++ b/doc/src/sgml/ref/pg_basebackup.sgml @@ -726,8 +726,7 @@ PostgreSQL documentation The backup will include all files in the data directory and tablespaces, including the configuration files and any additional files placed in the directory by third parties, except certain temporary files managed by - PostgreSQL and operating system files. But only regular files and - directories are copied, except that + PostgreSQL. But only regular files and directories are copied, except that symbolic links used for tablespaces are preserved. Symbolic links pointing to certain directories known to PostgreSQL are copied as empty directories. Other symbolic links and special device files are skipped. diff --git a/doc/src/sgml/ref/pg_rewind.sgml b/doc/src/sgml/ref/pg_rewind.sgml index 53bd04772ad..272bd113b9a 100644 --- a/doc/src/sgml/ref/pg_rewind.sgml +++ b/doc/src/sgml/ref/pg_rewind.sgml @@ -311,9 +311,8 @@ GRANT EXECUTE ON function pg_catalog.pg_read_binary_file(text, bigint, bigint, b backup_label, tablespace_map, pg_internal.init, - postmaster.opts, - postmaster.pid and. - .DS_Store. + postmaster.opts and + postmaster.pid. diff --git a/src/backend/replication/basebackup.c b/src/backend/replication/basebackup.c index e53e7cda879..9e54e61441d 100644 --- a/src/backend/replication/basebackup.c +++ b/src/backend/replication/basebackup.c @@ -1096,10 +1096,6 @@ sendDir(const char *path, int basepathlen, bool sizeonly, List *tablespaces, strlen(PG_TEMP_FILE_PREFIX)) == 0) continue; - /* Skip macOS system files */ - if (strcmp(de->d_name, ".DS_Store") == 0) - continue; - /* * Check if the postmaster has signaled us to exit, and abort with an * error in that case. The error handler further up will call diff --git a/src/bin/pg_basebackup/t/010_pg_basebackup.pl b/src/bin/pg_basebackup/t/010_pg_basebackup.pl index c29ede4ca8a..d0ba2ebf9b7 100644 --- a/src/bin/pg_basebackup/t/010_pg_basebackup.pl +++ b/src/bin/pg_basebackup/t/010_pg_basebackup.pl @@ -73,16 +73,6 @@ foreach my $filename ( close $file; } -# Test that macOS system files are skipped. Only test on non-macOS systems -# however since creating incorrect .DS_Store files on a macOS system may have -# unintended side effects. -if ($Config{osname} ne 'darwin') -{ - open my $file, '>>', "$pgdata/.DS_Store"; - print $file "DONOTCOPY"; - close $file; -} - # Connect to a database to create global/pg_internal.init. If this is removed # the test to ensure global/pg_internal.init is not copied will return a false # positive. @@ -150,12 +140,6 @@ foreach my $filename ( ok(!-f "$tempdir/backup/$filename", "$filename not copied"); } -# We only test .DS_Store files being skipped on non-macOS systems -if ($Config{osname} ne 'darwin') -{ - ok(!-f "$tempdir/backup/.DS_Store", ".DS_Store not copied"); -} - # Unlogged relation forks other than init should not be copied ok(-f "$tempdir/backup/${baseUnloggedPath}_init", 'unlogged init fork in backup'); diff --git a/src/bin/pg_checksums/pg_checksums.c b/src/bin/pg_checksums/pg_checksums.c index 9ed53ff10e2..2a749266adb 100644 --- a/src/bin/pg_checksums/pg_checksums.c +++ b/src/bin/pg_checksums/pg_checksums.c @@ -337,10 +337,6 @@ scan_directory(const char *basedir, const char *subdir, bool sizeonly) strlen(PG_TEMP_FILES_DIR)) == 0) continue; - /* Skip macOS system files */ - if (strcmp(de->d_name, ".DS_Store") == 0) - continue; - snprintf(fn, sizeof(fn), "%s/%s", path, de->d_name); if (lstat(fn, &st) < 0) { diff --git a/src/bin/pg_checksums/t/002_actions.pl b/src/bin/pg_checksums/t/002_actions.pl index 3bac93f51fb..29a1a2a9cb6 100644 --- a/src/bin/pg_checksums/t/002_actions.pl +++ b/src/bin/pg_checksums/t/002_actions.pl @@ -3,7 +3,6 @@ use strict; use warnings; -use Config use PostgresNode; use TestLib; use Test::More tests => 63; @@ -111,12 +110,6 @@ append_to_file "$pgdata/global/pgsql_tmp/1.1", "foo"; append_to_file "$pgdata/global/pg_internal.init", "foo"; append_to_file "$pgdata/global/pg_internal.init.123", "foo"; -# These are non-postgres macOS files, which should be ignored by the scan. -# Only perform this test on non-macOS systems though as creating incorrect -# system files may have side effects on macOS. -append_to_file "$pgdata/global/.DS_Store", "foo" - unless ($Config{osname} eq 'darwin'); - # Enable checksums. command_ok([ 'pg_checksums', '--enable', '--no-sync', '-D', $pgdata ], "checksums successfully enabled in cluster"); diff --git a/src/bin/pg_rewind/filemap.c b/src/bin/pg_rewind/filemap.c index fe9d417c69a..72299f00ea6 100644 --- a/src/bin/pg_rewind/filemap.c +++ b/src/bin/pg_rewind/filemap.c @@ -742,10 +742,6 @@ isRelDataFile(const char *path) } } - /* Skip macOS system files */ - if (strstr(path, ".DS_Store") != NULL) - return FILE_ACTION_NONE; - /* * The sscanf tests above can match files that have extra characters at * the end. To eliminate such cases, cross-check that GetRelationPath diff --git a/src/bin/pg_rewind/t/003_extrafiles.pl b/src/bin/pg_rewind/t/003_extrafiles.pl index 8ca1b248a73..5dc442f28ec 100644 --- a/src/bin/pg_rewind/t/003_extrafiles.pl +++ b/src/bin/pg_rewind/t/003_extrafiles.pl @@ -2,7 +2,6 @@ use strict; use warnings; -use Config; use TestLib; use Test::More tests => 4; @@ -45,10 +44,6 @@ sub run_test append_to_file "$test_standby_datadir/tst_standby_dir/standby_subdir/standby_file3", "in standby3"; - # Skip testing .DS_Store files on macOS to avoid risk of side effects - append_to_file - "$test_standby_datadir/tst_standby_dir/.DS_Store", - "macOS system file" unless ($Config{osname} eq 'darwin'); mkdir "$test_master_datadir/tst_master_dir"; append_to_file "$test_master_datadir/tst_master_dir/master_file1", -- 2.39.5