Обсуждение: BUG #2113: PostgreSQL hangs after running for 2 days
The following bug has been logged online:
Bug reference: 2113
Logged by: Wojciech Sobczuk
Email address: wojtek@brandlay.com
PostgreSQL version: 8.0.3
Operating system: FreeBSD 5.4-RELEASE-p1
Description: PostgreSQL hangs after running for 2 days
Details:
I have a 16GB database which is very busy (100 requests per second). After
running for some time (sometimes 2 days sometimes longer sometimes shorter)
postgres hangs. Last time it happened I got the following error in the
log:
ERROR: could not access status of transaction 0
DETAIL: could not create file "/opt/pgdata/pg_subtrans/6E75": File
exists
STATEMENT: SET DATESTYLE TO 'ISO'
WARNING: StartTransaction while in START state
I'm running postgres on 3 RAID 1 arrays, with various tables scattered over
the arrays (using tablespaces) for more speed. The space usage for those
arrays is less than 16% so it is not a space issue. The machine never
reboots/hangs/etc. so it seems to be a postgres issue. If you have further
questions please let me know.
Regards
""Wojciech Sobczuk"" <wojtek@brandlay.com> wrote > > I have a 16GB database which is very busy (100 requests per second). > After > running for some time (sometimes 2 days sometimes longer sometimes > shorter) > postgres hangs. Can you follow the steps in this thread to find out what's going on of the hanged process (but for sure there is no such problem in 8.x): http://archives.postgresql.org/pgsql-hackers/2005-10/msg00459.php Regards, Qingqing
"Wojciech Sobczuk" <wojtek@brandlay.com> writes:
> I have a 16GB database which is very busy (100 requests per second). After
> running for some time (sometimes 2 days sometimes longer sometimes shorter)
> postgres hangs. Last time it happened I got the following error in the
> log:
> ERROR: could not access status of transaction 0
> DETAIL: could not create file "/opt/pgdata/pg_subtrans/6E75": File
> exists
> STATEMENT: SET DATESTYLE TO 'ISO'
> WARNING: StartTransaction while in START state
Hmmm ... it seems just possible that this is related to a recent fix:
2005-11-02 19:23 tgl
* src/backend/access/transam/slru.c (REL8_0_STABLE): Fix
longstanding race condition in transaction log management: there
was a very narrow window in which SimpleLruReadPage or
SimpleLruWritePage could think that I/O was needed when it wasn't
(and indeed the buffer had already been assigned to another page).
This would result in an Assert failure if Asserts were enabled, and
probably in silent data corruption if not. Reported independently
by Jim Nasby and Robert Creager.
Would you update to 8.0.5 and let us know if you still see the failure?
regards, tom lane
"Wojciech Sobczuk" <wojtek@brandlay.com> writes: > I have a 16GB database which is very busy (100 requests per second). After > running for some time (sometimes 2 days sometimes longer sometimes shorter) > postgres hangs. Last time it happened I got the following error in the > log: > ERROR: could not access status of transaction 0 > DETAIL: could not create file "/opt/pgdata/pg_subtrans/6E75": File > exists > STATEMENT: SET DATESTYLE TO 'ISO' > WARNING: StartTransaction while in START state I think we've identified the reason for this: http://archives.postgresql.org/pgsql-committers/2006-01/msg00287.php regards, tom lane