Here is a modified version of the vacuum crash I am studying.
Interesting is that if I do a 'vacuum getting' instead of 'select * from
getting;vacuum;', I see a different error message. Rather than a crash
due to an Assert(), psql shows:
NOTICE: AbortTransaction and not in in-progress state
NOTICE: AbortTransaction and not in in-progress state
and the postmaster log file shows:
ERROR: cannot write block -1 of [] blind
AbortCurrentTransaction
NOTICE: AbortTransaction and not in in-progress state
This can be debugged by commenting out the psql command at the end,
running the script, and then running a backend from gdb and doing
'vacuum getting'.
This looks like it may be easier to track down. Vadim, any chance you
can bail me out here, again.
--
Bruce Momjian | http://www.op.net/~candle
maillist@candle.pha.pa.us | (610) 853-3000
+ If your life is a hard drive, | 830 Blythe Avenue
+ Christ can be your backup. | Drexel Hill, Pennsylvania 19026
#!/bin/sh
DBNAME=ptest
destroydb $DBNAME
createdb $DBNAME
psql -e $DBNAME <<EOF
create table header
(
host text not null,
port int not null,
path text not null,
file text not null,
extra text not null,
name text not null,
value text not null
);
create index header_url_idx on header (host, port, path, file, extra);
create unique index header_uniq_idx on header (host, port, path, file, extra, name);
create table reference
(
f_url text not null,
t_url text not null
);
create index reference_from_idx on reference (f_url);
create index reference_to_idx on reference (t_url);
create unique index reference_uniq_idx on reference (f_url, t_url);
create table extension
(
ext text not null,
note text
);
create unique index extension_ext_idx on extension (ext);
create table getting
(
host text not null,
port int not null,
ip text not null,
when datetime not null
);
--create unique index getting_ip_idx on getting (ip);
EOF
#psql -c "delete from getting; vacuum;" $DBNAME
psql -c "vacuum getting;" $DBNAME
# psql -c "select * from getting; vacuum;" $DBNAME
#psql -c "delete from getting;" $DBNAME
#psql -c "select * from getting;" $DBNAME
#psql -c "vacuum;" $DBNAME
#psql -c "vacuum; vacuum;" $DBNAME