BUG #10542: infinite loop in index.c when trying to reindex system tables (probably corrupted db state)

From: hannes(dot)janetzek(at)gmail(dot)com
To: pgsql-bugs(at)postgresql(dot)org
Subject: BUG #10542: infinite loop in index.c when trying to reindex system tables (probably corrupted db state)
Date: 2014-06-05 23:00:56
Message-ID: 20140605230056.3066.26092@wrigleys.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

The following bug has been logged on the website:

Bug reference: 10542
Logged by: Hannes Janetzek
Email address: hannes(dot)janetzek(at)gmail(dot)com
PostgreSQL version: 9.3.4
Operating system: Linux, Ubuntu 12.04
Description:

While trying to get our database working again after a forced shutdown the
reindexing of the system tables in single user mode went into an infinite
loop. I can just roughly guess that between the lines:
https://github.com/postgres/postgres/blob/REL9_3_STABLE/src/backend/catalog/index.c#L2260-
L2385
the function is assuming that another process tries to delete a tuple that
is about to be indexed (even though in single user mode this should probably
not be possible)

I found these lines by attaching gdb and stepping through. The command to
reindex was:

sudo -u postgres /usr/lib/postgresql/9.3/bin/postgres --single -D
/etc/postgresql/9.3/main -d 5 osm
backend> REINDEX SYSTEM osm;

2014-06-05 23:36:27 CEST STATEMENT: REINDEX SYSTEM osm;

2014-06-05 23:36:27 CEST DEBUG: ProcessUtility
2014-06-05 23:36:27 CEST DEBUG: CommitTransaction
2014-06-05 23:36:27 CEST DEBUG: name: unnamed; blockState: STARTED;
state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
2014-06-05 23:36:27 CEST DEBUG: StartTransaction
2014-06-05 23:36:27 CEST DEBUG: name: unnamed; blockState: DEFAULT;
state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
2014-06-05 23:36:27 CEST DEBUG: building index "pg_class_oid_index" on
table "pg_class"
2014-06-05 23:36:27 CEST DEBUG: building index "pg_class_relname_nsp_index"
on table "pg_class"
2014-06-05 23:36:27 CEST NOTICE: table "pg_catalog.pg_class" was reindexed
2014-06-05 23:36:27 CEST DEBUG: CommitTransaction
2014-06-05 23:36:27 CEST DEBUG: name: unnamed; blockState: STARTED;
state: INPROGR, xid/subid/cid: 196462163/1/4, nestlvl: 1, children:
2014-06-05 23:36:27 CEST DEBUG: StartTransaction
2014-06-05 23:36:27 CEST DEBUG: name: unnamed; blockState: DEFAULT;
state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
2014-06-05 23:36:27 CEST DEBUG: building index
"pg_statistic_relid_att_inh_index" on table "pg_statistic"

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Alvaro Herrera 2014-06-06 01:39:43 Re: BUG #8673: Could not open file "pg_multixact/members/xxxx" on slave during hot_standby
Previous Message Andres Freund 2014-06-05 21:34:36 Re: BUG #10533: 9.4 beta1 assertion failure in autovacuum process