From 077dec8b6c19152fb3f200610a89c5f71e4045ee Mon Sep 17 00:00:00 2001 From: Daniel Gustafsson Date: Tue, 13 Feb 2024 14:09:24 +0100 Subject: [PATCH] Revert "Skip .DS_Store files in server side utils" This reverts commit d3fdfdcd1c7f1b714a9a85b893d2c5afc60bea91. 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 449b1bc8d5..a22c8520c0 100644 --- a/doc/src/sgml/protocol.sgml +++ b/doc/src/sgml/protocol.sgml @@ -2835,7 +2835,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 a583ead1cd..c5cfa87d35 100644 --- a/doc/src/sgml/ref/pg_basebackup.sgml +++ b/doc/src/sgml/ref/pg_basebackup.sgml @@ -832,8 +832,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 be8b304512..cdfacf7088 100644 --- a/doc/src/sgml/ref/pg_rewind.sgml +++ b/doc/src/sgml/ref/pg_rewind.sgml @@ -374,9 +374,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 as well as any file or directory + postmaster.opts, and + postmaster.pid, as well as any file or directory beginning with pgsql_tmp, are omitted. diff --git a/src/backend/replication/basebackup.c b/src/backend/replication/basebackup.c index 203a1387d4..dcdbc1cd99 100644 --- a/src/backend/replication/basebackup.c +++ b/src/backend/replication/basebackup.c @@ -1262,10 +1262,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 013cf8ce46..09c540060a 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. @@ -151,12 +141,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 9a15b339b7..52e873159d 100644 --- a/src/bin/pg_checksums/pg_checksums.c +++ b/src/bin/pg_checksums/pg_checksums.c @@ -338,10 +338,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 c018a0facd..29a1a2a9cb 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 f818afa3ed..fbb97b5cf1 100644 --- a/src/bin/pg_rewind/filemap.c +++ b/src/bin/pg_rewind/filemap.c @@ -749,10 +749,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 42c2b672b5..aa4472750a 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 => 5; @@ -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",