Thread: Permission denied errors

Permission denied errors

From
zeki@mokhtarzada.com
Date:
Hello all, I woke up this morning and found my installation of Postgres
(7.3.2) spewing the following error message:

ERROR:  cannot count blocks for ev_log -- open failed: Permission denied
ERROR:  cannot count blocks for ev_log -- open failed: Permission denied
ERROR:  cannot count blocks for ev_log -- open failed: Permission denied
ERROR:  cannot count blocks for ev_log -- open failed: Permission denied

Now it seems as though the database is somehow diseased.  I can select and
insert data in all of the other tables in the database but I can not
create tables:

#  create table test_tab (idfield int);
ERROR:  cannot create test_tab: Permission denied

I also can not dump data out of ev_log:

pg_dump: ERROR:  cannot count blocks for ev_log -- open failed: Permission
denied
pg_dump: lost synchronization with server, resetting connection
pg_dump: SQL command to dump the contents of table "ev_log" failed:
PQendcopy() failed.
pg_dump: Error message from server: pg_dump: The command was: COPY
public.ev_log (logid, eventtype, username, ipaddress, eventdata, ts) TO
stdout;

Any ideas?

I'm willing to dump and reload, but I'd like to get the data out of the
log table if possible.

-Zeki

Re: Permission denied errors

From
Tom Lane
Date:
zeki@mokhtarzada.com writes:
> Hello all, I woke up this morning and found my installation of Postgres
> (7.3.2) spewing the following error message:

> ERROR:  cannot count blocks for ev_log -- open failed: Permission denied
> ERROR:  cannot count blocks for ev_log -- open failed: Permission denied
> ERROR:  cannot count blocks for ev_log -- open failed: Permission denied
> ERROR:  cannot count blocks for ev_log -- open failed: Permission denied

Look around in the database directory.  It kinda looks like one or more
files or directories had had its ownership or permissions changed so
that the server can't read it anymore.

Postgres itself would not do such a thing, so the culprit is either
administrator error or flaky disk hardware.  After you fix the problem
by hand, you'll want to try to figure out which.

            regards, tom lane

Re: Permission denied errors

From
Zeki Mokhtarzada
Date:
Very interesting...  We recently changed the location of the data files
using a symbolic link.  Although all of the files had the correct ownership,
the new parent directory was not owned by postgres.  The strange thing
is that we have been running like this for over a week, and even now,
only the log table was effected  (the log table is the only table that
has a large number of data changing, most of the other tables are
relatively static).  Changing the owner of the parent directory to
postgres fixed the problem.

Thanks!

-Zeki

Tom Lane wrote:

>zeki@mokhtarzada.com writes:
>
>
>>Hello all, I woke up this morning and found my installation of Postgres
>>(7.3.2) spewing the following error message:
>>
>>
>
>
>
>>ERROR:  cannot count blocks for ev_log -- open failed: Permission denied
>>ERROR:  cannot count blocks for ev_log -- open failed: Permission denied
>>ERROR:  cannot count blocks for ev_log -- open failed: Permission denied
>>ERROR:  cannot count blocks for ev_log -- open failed: Permission denied
>>
>>
>
>Look around in the database directory.  It kinda looks like one or more
>files or directories had had its ownership or permissions changed so
>that the server can't read it anymore.
>
>Postgres itself would not do such a thing, so the culprit is either
>administrator error or flaky disk hardware.  After you fix the problem
>by hand, you'll want to try to figure out which.
>
>            regards, tom lane
>
>

Re: Permission denied errors

From
Alvaro Herrera
Date:
On Tue, Aug 23, 2005 at 11:06:44AM -0400, Zeki Mokhtarzada wrote:
> Very interesting...  We recently changed the location of the data files
> using a symbolic link.  Although all of the files had the correct ownership,
> the new parent directory was not owned by postgres.  The strange thing
> is that we have been running like this for over a week, and even now,
> only the log table was effected  (the log table is the only table that
> has a large number of data changing, most of the other tables are
> relatively static).  Changing the owner of the parent directory to
> postgres fixed the problem.

Probably, this is because on other tables you do not need to create new
segments, while the ev_log table is big enough to need some.

--
Alvaro Herrera (<alvherre[a]alvh.no-ip.org>)
"People get annoyed when you try to debug them."  (Larry Wall)