From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | tv(at)fuzzy(dot)cz |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: pg_relation_size / could not open relation with OID # |
Date: | 2010-09-20 13:44:02 |
Message-ID: | 8436.1284990242@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
tv(at)fuzzy(dot)cz writes:
> I've run into a strange problem with system catalogs - we're collecting
> database stats periodically (every 10 minutes), and from time to time we
> get the following error:
> --------------------------------------------------
> ERROR: could not open relation with OID 154873708
> --------------------------------------------------
I think you're probably hitting a problem with a table being deleted
while you're scanning pg_class. pg_relation_size() will fail if the
given OID isn't valid "now" --- but the underlying query returns all
OIDs that were valid when the transaction or statement snapshot was
taken. So you have a race condition.
You might consider excluding temp tables from the query, if that's the
most likely source of the problem.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2010-09-20 13:47:46 | Re: where does postgres keep the query result until it is returned? |
Previous Message | Willy-Bas Loos | 2010-09-20 13:37:58 | Re: where does postgres keep the query result until it is returned? |