Обсуждение: Re: ERROR: could not read block

Поиск
Список
Период
Сортировка

Re: ERROR: could not read block

От
"Kevin Grittner"
Дата:
The table has about 23.3 million rows, of which about 200,000 will
be affected by this update.  Run time is about an hour.  During the
first run, the table was the target of about 45,000 inserts.  This rerun
was done as the only task.  A third run (also by itself) gave this:

ERROR:  could not read block 1482762 of relation 1663/16385/16483:
Invalid argument

So the block number is increasing each time.  I'm inclined to think
that this is the result of the scan passing over rows added by itself.

-Kevin


>>> Qingqing Zhou <zhouqq@cs.toronto.edu>  >>>

> I reran the query.  Same error, same relation, different block.
>
> dtr=> UPDATE
> dtr->     "DbTranRepository"
> dtr-> SET "userId" = UPPER("userId")
> dtr-> WHERE (
> dtr(>     ("userId" <> UPPER("userId")) AND
> dtr(>     ("timestampValue" BETWEEN '2005-10-28' AND '2005-11-15'));
> ERROR:  could not read block 1118215 of relation 1663/16385/16483:
> Invalid argument
>

So this is a big query? Somebody reported this error when IO is
intensive.
To conclude the reports we have received:

(1) If IO is intensive (no matter you have anti-virus software or not),
you may encounter "invalud argument" error;

(2) In some cases, anti-virus software could cause "invalid argument"
error;

(3) You may encounter "permission denied" problem (no matter you have
anti-virus software or not) in some unknown condition;

Unfortunately we haven't found out the cause of this problem ... I am
thinking an urgent need is let PG print the GetLastError() for Windows
version as well.

Regards,
Qingqing


Re: ERROR: could not read block

От
Tom Lane
Дата:
"Kevin Grittner" <Kevin.Grittner@wicourts.gov> writes:
> ERROR:  could not read block 1482762 of relation 1663/16385/16483:
> Invalid argument

> So the block number is increasing each time.  I'm inclined to think
> that this is the result of the scan passing over rows added by itself.

It's just about impossible to believe that you would get an error at the
block I/O level due to a higher-level issue like "scan passing over rows
added by itself".

What I *could* believe, on the other hand, is that there's some problem
with reading blocks recently added to the file.  As I said before, we
really really need to find out what the Windows-level error code is
--- "Invalid argument" isn't telling us anything useful here.

            regards, tom lane