pg_basebackup: errors on macOS on directories with ".DS_Store" files

Mark Guertin <markguertin@gmail.com>

From: Mark Guertin <markguertin@gmail.com>
To: pgsql-bugs@lists.postgresql.org
Date: 2023-04-19T15:45:51Z
Lists: pgsql-bugs

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Skip .DS_Store files in server side utils

pg_basebackup: error: backup failed: ERROR:  invalid segment number 0 in file ".DS_Store"

This one is pretty self explanatory.  When running pg_basebackup on macOS it should probably be ignoring any .DS_Store files found inside data directories instead of transferring/processing them.

Steps to reproduce:
- on a macOS based pg server open a directory containing pg data files and set any kind of view options or move an icon
- this can also happen with inheritance, so even if you do not directly set these kinds of options on data folders, for example if a parent folder has a view option set when a new folder is created it can inherit the same view options, or if spotlight search sets up some metadata this .DS_Store may also be created

My workaround was to manually delete all of the .DS_Store files that the OS created and then immediately run pb_basebackup using the following method:

find <dir> -iname .DS_Store  -exec rm {} \;

Some background on .DS_Store files:

https://en.wikipedia.org/wiki/.DS_Store