Re: BUG #8632: file "pg_subtrans/CEC0" doesn't exist, reading as zeroes - Mailing list pgsql-bugs

From Andres Freund
Subject Re: BUG #8632: file "pg_subtrans/CEC0" doesn't exist, reading as zeroes
Date
Msg-id 20131128101155.GP31748@awork2.anarazel.de
Whole thread Raw
In response to Re: BUG #8632: file "pg_subtrans/CEC0" doesn't exist, reading as zeroes  (Alvaro Herrera <alvherre@2ndquadrant.com>)
List pgsql-bugs
On 2013-11-27 23:56:54 -0300, Alvaro Herrera wrote:
> strahinjak@nordeus.com wrote:
>
> Uh, this is a bit funny.  It failed to find the file for a long time and
> didn't think to error out, instead choosing to read the requested page
> as zeroes:
>
> > 2013-11-26 12:24:54 CET [6393]: [7-1]LOG:  file "pg_subtrans/CEC0" doesn't
> > exist, reading as zeroes
> > 2013-11-26 12:24:54 CET [6393]: [8-1]CONTEXT:  xlog redo xid assignment xtop
> > 3468737450: subxacts: 3468738448 3468738450 3468738453 3468738455 3468738457
> > 3468738459 3468738461 3468738463 3468738465 3468738467 3468738469 3468738471
> > 3468738473 3468738475 3468738477 3468738479 3468738481 3468738483 3468738485
> > 3468738487 3468738489 3468738491 3468738493 3468738495 3468738497 3468738499
> > 3468738501 3468738503 3468738505 3468738507 3468738530 3468738532 3468738534
> > 3468738536 3468738538 3468738540 3468738542 3468738544 3468738546 3468738548
> > 3468738550 3468738552 3468738554 3468738556 3468738558 3468738560 3468738562
> > 3468738564 3468738566 3468738568 3468738570 3468738572 3468738574 3468738576
> > 3468738578 3468738580 3468738582 3468738584 3468738586 3468738588 3468738590
> > 3468738592 3468738595 3468738597
>
> But as soon as the pg_subtrans file existed, any other error (seek or
> read failure) is fatal:
>
> > 2013-11-26 12:24:57 CET [6393]: [103-1]FATAL:  could not access status of
> > transaction 3468818432
> > 2013-11-26 12:24:57 CET [6393]: [104-1]DETAIL:  Could not read from file
> > "pg_subtrans/CEC1" at offset 253952: Success.
>
> Both these things happen in SlruPhysicalReadPage().  I think those hard
> failures are a mistake.  In other words, we should do something like
> this, which matches what happens if ENOENT:

Hm. I actually would rather remove the "reading as zeroes" paths
alltogether. Imo its more than likely they are actually hiding bugs -
like this case - than anything else.

Heikki suggested WAL-logging subtrans extensions/truncations. That would
remove the need for that set of hacks altogether. It should already
never be required when you're in HS (modulo bugs).

Greetings,

Andres Freund

--
 Andres Freund                       http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services

pgsql-bugs by date:

Previous
From: Andres Freund
Date:
Subject: Re: BUG #8632: file "pg_subtrans/CEC0" doesn't exist, reading as zeroes
Next
From: Strahinja Kustudić
Date:
Subject: Re: BUG #8632: file "pg_subtrans/CEC0" doesn't exist, reading as zeroes