Re: Breakage with VACUUM ANALYSE + partitions

From: Andres Freund <andres(at)anarazel(dot)de>
To: Robert Haas <robertmhaas(at)gmail(dot)com>
Cc: Michael Paquier <michael(dot)paquier(at)gmail(dot)com>, Haribabu Kommi <kommi(dot)haribabu(at)gmail(dot)com>, Thom Brown <thom(at)linux(dot)com>, pgsql-bugs <pgsql-bugs(at)postgresql(dot)org>, Fabien COELHO <coelho(at)cri(dot)ensmp(dot)fr>
Subject: Re: Breakage with VACUUM ANALYSE + partitions
Date: 2016-03-26 12:39:42
Message-ID: 20160326123942.qnuwqg3yg2y7ae4p@alap3.anarazel.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs pgsql-hackers

On 2016-03-25 12:02:05 -0400, Robert Haas wrote:
> Gosh, that's surprising. I wonder if that just revealed an underlying
> issue rather than creating it.

I think that's the case; it's just somewhat unlikely to hit in other
cases.

If SMgrRelation->md_fd[n] is an empty relation, and mdread() or another
routine is asking for a block in the second segment - which will error
out. But even if the first segment is zero bytes, _mdfd_getseg() will
dutifully try to open the second segment. Which will succeed in the case
of a truncated relation, because we leave the truncated segment in
place.

ISTM that _mdfd_getseg better check the length of the last segment
before opening the next one?

Regards,

Andres

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Jeff Janes 2016-03-26 21:52:33 Re: BUG #14032: trigram index is not used for '=' operator
Previous Message Thomas Munro 2016-03-25 20:15:25 Re: Missing rows with index scan when collation is not "C" (PostgreSQL 9.5);

Browse pgsql-hackers by date

  From Date Subject
Next Message Victor Wagner 2016-03-26 12:43:21 Building PL/Perl with ActiveState Perl 5.22 and MSVC
Previous Message Andrew Dunstan 2016-03-26 12:37:19 Re: Alter or rename enum value