vacuum analyze problem

Started by Oleg Bartunovover 26 years ago2 messages
#1Oleg Bartunov
oleg@sai.msu.su

Today I got familiar problem with vacuum analyze

discovery=> select version();
version
------------------------------------------------------------------------
PostgreSQL 6.5.1 on i686-pc-linux-gnulibc1, compiled by gcc egcs-2.91.66
(1 row)

discovery=> vacuum analyze;
NOTICE: AbortTransaction and not in in-progress state
pqReadData() -- backend closed the channel unexpectedly.
This probably means the backend terminated abnormally
before or while processing the request.
We have lost the connection to the backend, so further processing is impossible. Terminating.

This is the last cvs (REL6_5_PATCHES).
It's interesting, that I can do vacuum analyze for all tables in this
database without any problem !
I dump my database and reload it. After that vacuum analyze worked fine.
But after intensive testing of my Web-server I got the same problem.
I accumulate documents hits in my database using persistent connection
and this is the only update/insert operation.

I use function to workaround update/insert dilemma -
I can't just use update. This is modified function suggested by
Philip Warner. I'm sure problem somehow connects with this,
because I had no problem when I didn't accumulate statistics but just
insert every hits using simple sql.

Regards,

Oleg

create table hits (
msg_id int4 not null primary key,
count int4 not null
);

CREATE FUNCTION "acc_hits" (int4) RETURNS int4 AS '
Declare
keyval Alias For $1;
cnt int4;
Begin
Select count into cnt from hits where msg_id = keyval;
if Not Found then
cnt := 1;
Insert Into hits (msg_id,count) values (keyval, cnt);
else
cnt := cnt + 1;
Update hits set count = cnt where msg_id = keyval;
End If;
return cnt;
End;
' LANGUAGE 'plpgsql';

_____________________________________________________________
Oleg Bartunov, sci.researcher, hostmaster of AstroNet,
Sternberg Astronomical Institute, Moscow University (Russia)
Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/
phone: +007(095)939-16-83, +007(095)939-23-83

#2Vadim Mikheev
vadim@krs.ru
In reply to: Oleg Bartunov (#1)
Re: [HACKERS] vacuum analyze problem

Oleg Bartunov wrote:

Today I got familiar problem with vacuum analyze

discovery=> select version();
version
------------------------------------------------------------------------
PostgreSQL 6.5.1 on i686-pc-linux-gnulibc1, compiled by gcc egcs-2.91.66
(1 row)

discovery=> vacuum analyze;
NOTICE: AbortTransaction and not in in-progress state
pqReadData() -- backend closed the channel unexpectedly.
This probably means the backend terminated abnormally
before or while processing the request.
We have lost the connection to the backend, so further processing is impossible. Terminating.

We need in gdb output for this...

Vadim