BUG #7573: data loss in corner case using delete_old_cluster.sh (pg_upgrade) - Mailing list pgsql-bugs

From maxim.boguk@gmail.com
Subject BUG #7573: data loss in corner case using delete_old_cluster.sh (pg_upgrade)
Date
Msg-id E1THPDm-00018c-KT@wrigleys.postgresql.org
Whole thread Raw
Responses Re: BUG #7573: data loss in corner case using delete_old_cluster.sh (pg_upgrade)  (Bruce Momjian <bruce@momjian.us>)
List pgsql-bugs
The following bug has been logged on the website:

Bug reference:      7573
Logged by:          Maxim Boguk
Email address:      maxim.boguk@gmail.com
PostgreSQL version: 9.2.0
Operating system:   Linux
Description:        =


Hi,

today while performing migration of test database (with no critical data...
and that was good thing).
I found very nasty corner case with using delete_old_cluster.sh after
pg_upgrade.

Test database have a bit unusual tablespace layout:
main tablespace partition was mounted inside data directory of the old
cluster...
E.g.:
data directory - /var/lib/postgresql/9.2/main
main tablespace (another partition mount point) -
/var/lib/postgresql/9.2/main/largedb

Now funny part: migration was successful but after few days I decided to
clear old cluster data...
I echecked content of delete_old_cluster.sh but found nothing suspicious...
just one string...
rm -rf /var/lib/postgresql/9.2/main

Well I know I should be more careful, but in result that command deleted
whole tablespace data on another partition including 9.2 version
tablespace.

It was surprise...

May be it is good idea to add:
       --one-file-system
              when removing a hierarchy recursively, skip any directory that
is on a file system different from that of the corresponding command line
argument

to rm call into that script.

However, it is Linux only feature.

PS: Yes I know that keeping any foreign data inside PostgreSQL data
directory is bad idea.

pgsql-bugs by date:

Previous
From: Simon Riggs
Date:
Subject: Re: BUG #7572: virtualxid lock held by bgwriter on promoted slaves
Next
From: Alvaro Herrera
Date:
Subject: Re: BUG #7545: Unresponsive server with error log reporting: "poll() failed: Invalid argument"