Re: Why would queries fail with 'could not stat file' after CLUSTER?

From: Raghavendra <raghavendra(dot)rao(at)enterprisedb(dot)com>
To: David Schnur <dnschnur(at)gmail(dot)com>
Cc: pgsql-admin(at)postgresql(dot)org
Subject: Re: Why would queries fail with 'could not stat file' after CLUSTER?
Date: 2012-04-09 17:06:08
Message-ID: CA+h6AhgRc8wyJ-6jeY9Bubs9cww3SdWSWe=m_PkUhvpvaGk+ew@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

On Mon, Apr 9, 2012 at 9:42 PM, David Schnur <dnschnur(at)gmail(dot)com> wrote:

> The software I develop bundles a Postgres 8.3.15 database for storage.
> Several users are reporting errors like this:
>
> ProgrammingError: could not stat file "base/16384/52212305.1": Permission
> denied
>
> I'm unable to reproduce this myself, but it's clearly a real issue. The
> response to all previous reports of this that I can find was 'check your
> permissions'. I had the user who reported this most recently do that, and
> can't see any permissions issue. There is no AV, backup or indexing task
> that should be accessing the cluster. The problem appears exclusively on
> Windows, though that might be a coincidence, since most of our users are on
> Windows. A directory listing a few hours after the error shows no file
> with that name.
>
>
On windows, you face permission issues, I have given a try to reproduce
similar issue. I have taken out complete permission (right click on file
and take security tab and removing permissions) on the test table oid file
from $PGDATA/base/11913. So I got below error.

postgres=# select count(*) from test;
ERROR: could not open file "base/11913/16393": Permission denied

postgres=# cluster test using itest;
ERROR: could not open file "base/11913/16393": Permission denied

Virtually all instances of the problem happen during our weekly maintenance
> task. It CLUSTERs about 10-15 tables, then runs various queries, including
> selecting pg_database_size and selecting reltuples from pg_class, to assess
> the database's contents. The errors happen when running these queries; the
> CLUSTERs themselves always succeed. Those same queries are run
> successfully at other times during the week, without the preceding CLUSTERs.
>
> CLUSTER in Postgres will create a new relfilenode for each table. I
believe, at the time of new file creation, there might be the permission
issue, which is causing this. Check below, after cluster my test table
relfilenode from 16393 to it has changed to 16401.

postgres=# cluster test using itest;
CLUSTER
postgres=# select relfilenode,relname from pg_class where relname='test';
relfilenode | relname
-------------+---------
16401 | test
(1 row)

> Is this a bug? How might I collect more information without shipping the
> user a new build? The Postgres log, at least at notice level, doesn't
> appear to show anything more useful than the error message.
>
>
Bug ? Am not sure... You need to wait for other respected community member
suggestions and proceed accordingly.

---
Regards,
Raghavendra
EnterpriseDB Corporation
Blog: http://raghavt.blogspot.com/

In response to

Browse pgsql-admin by date

  From Date Subject
Next Message Sashbeer Bhandari 2012-04-10 04:30:24 Re: Why would queries fail with 'could not stat file' after CLUSTER?
Previous Message David Schnur 2012-04-09 16:12:05 Why would queries fail with 'could not stat file' after CLUSTER?