Maxim Boguk <maxim.boguk@gmail.com> writes:
> One of servers under my support 2 days ago produced the next error:
> ERROR: could not read block 135 in file "base/16404/118881486": read only
> 0 of 8192 bytes
> ...
> What I see in file system:
> hh=# SELECT relfilenode from pg_class where relname='agency_statistics_old';
> relfilenode
> -------------
> 118881486
> postgres@db10:~/tmp$ ls -la
> /var/lib/postgresql/9.0/main/base/16404/118881486
> -rw------- 1 postgres postgres 0 2012-02-20 12:04
> /var/lib/postgresql/9.0/main/base/16404/118881486
> So table file size zero bytes (seems autovacuum truncated that table to 0
> bytes).
Hmmm .... something did, but I see no clear evidence that it was
autovacuum.
Do you know why the mod date on the file is 2012-02-20 12:04? That's
more than two days after the error in your logs, so it's not clear to me
that the current state of the file tells us much about what happened on
the 17th. If autovacuum had truncated the table then, and the table
wasn't touched otherwise, the file mod date shouldn't have increased.
regards, tom lane