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

Поиск
Список
Период
Сортировка
От Raghavendra
Тема Re: Why would queries fail with 'could not stat file' after CLUSTER?
Дата
Msg-id CA+h6AhgRc8wyJ-6jeY9Bubs9cww3SdWSWe=m_PkUhvpvaGk+ew@mail.gmail.com
обсуждение исходный текст
Ответ на Why would queries fail with 'could not stat file' after CLUSTER?  (David Schnur <dnschnur@gmail.com>)
Список pgsql-admin
On Mon, Apr 9, 2012 at 9:42 PM, David Schnur <dnschnur@gmail.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

В списке pgsql-admin по дате отправления:

Предыдущее
От: David Schnur
Дата:
Сообщение: Why would queries fail with 'could not stat file' after CLUSTER?
Следующее
От: Sashbeer Bhandari
Дата:
Сообщение: Re: Why would queries fail with 'could not stat file' after CLUSTER?