Re: Error in DROP TABLESPACE - Mailing list pgsql-general

From Laurenz Albe
Subject Re: Error in DROP TABLESPACE
Date
Msg-id 4c4246e7824aeec46e76afc95745fa1e28ac11b4.camel@cybertec.at
Whole thread Raw
In response to Error in DROP TABLESPACE  ("Fagnani Gabriele G (GDS I&TS)" <gabriele.fagnani@enel.com>)
List pgsql-general
On Wed, 2025-05-07 at 08:16 +0000, Fagnani Gabriele G (GDS I&TS) wrote:
> INTERNAL

?

> I've run into an odd problem - I have what seems to be a "zombie" tablespace
> that PostgreSQL won't let me drop, but nothing inside it is active.
>  
> drop tablespace ts_idx_wb2;
> ERROR:  tablespace "ts_idx_wb2" is not empty
>  
> postgres=# \db+ ts_idx_wb2
>                                                List of tablespaces
>     Name    |  Owner   |             Location             |  Access privileges  | Options |  Size  | Description
> ------------+----------+----------------------------------+---------------------+---------+--------+-------------
> ts_idx_wb2 | postgres | /pgsql/postgres/tsdata1/ts_idx_wb2 | postgres=C/postgres+|         | 250 GB |
>             |          |                                  | mydatabase=C/postgres |         |        |
> (1 row)
>  
> Check on filesystem location.
> On the filesystem there are files related only to fileref 515555188:
>  
> postgres@myserver:/pgsql/postgres/tsdata1/ts_idx_wb2/PG_12_201909212/16419> ls -la
> total 261854080
> drwx------ 2 postgres postgres      69632 Apr 22 17:45 .
> drwx------ 3 postgres postgres       4096 Oct 31  2024 ..
> -rw------- 1 postgres postgres 1073741824 Oct 31  2024 515555188
> -rw------- 1 postgres postgres 1073741824 Oct 31  2024 515555188.1
> -rw------- 1 postgres postgres 1073741824 Oct 31  2024 515555188.10
> -rw------- 1 postgres postgres 1073741824 Oct 31  2024 515555188.100
> -rw------- 1 postgres postgres 1073741824 Oct 31  2024 515555188.101
> -rw------- 1 postgres postgres 1073741824 Oct 31  2024 515555188.102
> -rw------- 1 postgres postgres 1073741824 Oct 31  2024 515555188.103
> -rw------- 1 postgres postgres 1073741824 Oct 31  2024 515555188.104
> ...
> ...
> -rw------- 1 postgres postgres 1073741824 Oct 31  2024 515555188.97
> -rw------- 1 postgres postgres 1073741824 Oct 31  2024 515555188.98
> -rw------- 1 postgres postgres 1073741824 Oct 31  2024 515555188.99
>  
> SELECT pg_tablespace_databases((SELECT oid FROM pg_tablespace WHERE spcname = 'ts_idx_wb2'));
> pg_tablespace_databases
> -------------------------
>                    16419
>  
>  
> SELECT oid, datname FROM pg_database WHERE oid = 16419;
> oid  |  datname
> -------+-----------
> 16419 | mydatabase    <----------------
>  
>  
> Connected to database mydatabase:
>  
> select cl.relfilenode, nsp.nspname as schema_name, cl.relname, cl.relkind
> from pg_class cl
>   join pg_namespace nsp on cl.relnamespace = nsp.oid and cl.relfilenode=515555188 ;
> relfilenode | schema_name | relname | relkind
> -------------+-------------+---------+---------
> (0 rows)
>  
> To be sure I run the same query on the other databases with the same result (0 rows)
>  
> So there are no actual references to these files, yet the relationship
> persists sufficiently for the DROP TABLESPACE to error out.
> My guess is that the files belong to an index being moved on Oct 31 to ts_idx_wb2 tablespace, and during the move the
> postgres instance crashed due space shortage on wal filesystem, and this crash left this "zombie" files on the
filesystem.
>  
> In order to drop the tablespace, is it safe to shut  that postmaster down and manually remove the contents of this
> directory?

Your diagnosis seems to be right, and I agree with your proposed remedy.

Yours,
Laurenz Albe



pgsql-general by date:

Previous
From: "Fagnani Gabriele G (GDS I&TS)"
Date:
Subject: Error in DROP TABLESPACE
Next
From: Luca Ferrari
Date:
Subject: pg_rewind problem: cannot find WAL