Search Postgresql Archives

Re: Corrupt database? 8.1/FreeBSD6.0

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Tom Lane wrote:
> Alvaro Herrera <alvherre@xxxxxxxxxxxxxxxxx> writes:
> > Hmm, that would mean an ANALYZE got done on template0, no? ... but
> > AFAICT process_whole_db() always sets analyze=false.
> 
> The thing that's bothering me is that I don't see any certainty that
> template0 is only processed via the process_whole_db() path.  In the
> 8.1 code, the existence of a stats-collector DB entry causes a DB
> to enter the normal round-robin processing path ... and I'm wondering
> whether the mere act of autovac connecting due to process_whole_db()
> doesn't cause such an entry to come into existence.

Hmm, as far as I can tell, the database entry would not be created
merely by a vacuum.  The only way to create a database entry in pgstat
is by calling pgstat_recv_tabstat(); and pgstat_report_tabstat is only
called in postgres.c (not invoked via autovacuum) and in
pgstat_beshutdown_hook (not sure if this one is).

So I agree that there is a risk if the user connects to template0 and
the database pgstat entry gets created -- but that doesn't seem to be
the case here.

Confirmation on which table is causing the trouble would be good.

> 8.2's approach is saner but I think we need some sort of band-aid
> in the 8.1 branch...

Maybe we could forcibly activate the freeze mode on a template database?

-- 
Alvaro Herrera                                http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux