Re: BRIN indexes - TRAP: BadArgument
Erik Rijkers <er@xs4all.nl>
From: "Erik Rijkers" <er@xs4all.nl>
To: "Alvaro Herrera" <alvherre@2ndquadrant.com>
Cc: "Heikki Linnakangas" <hlinnakangas@vmware.com>,
"Simon Riggs" <simon@2ndquadrant.com>,
"Robert Haas" <robertmhaas@gmail.com>,
"Nicolas Barbier" <nicolas.barbier@gmail.com>,
"Claudio Freire" <klaussfreire@gmail.com>,
"Josh Berkus" <josh@agliodbs.com>,
"Andres Freund" <andres@2ndquadrant.com>,
"Pg Hackers" <pgsql-hackers@postgresql.org>
Date: 2014-09-08T18:03:49Z
Lists: pgsql-hackers
On Mon, September 8, 2014 18:02, Alvaro Herrera wrote:
> Here's version 18. I have renamed it: These are now BRIN indexes.
>
I get into a BadArgument after:
$ cat crash.sql
-- drop table if exists t_100_000_000 cascade;
create table t_100_000_000 as select cast(i as integer) from generate_series(1, 100000000) as f(i) ;
-- drop index if exists t_100_000_000_i_brin_idx;
create index t_100_000_000_i_brin_idx on t_100_000_000 using brin(i); select
pg_size_pretty(pg_relation_size('t_100_000_000_i_brin_idx'));
select i from t_100_000_000 where i between 10000 and 1009999; -- ( + 999999 )
Log file says:
TRAP: BadArgument("!(((context) != ((void *)0) && (((((const Node*)((context)))->type) == T_AllocSetContext))))", File:
"mcxt.c", Line: 752)
2014-09-08 19:54:46.071 CEST 30151 LOG: server process (PID 30336) was terminated by signal 6: Aborted
2014-09-08 19:54:46.071 CEST 30151 DETAIL: Failed process was running: select i from t_100_000_000 where i between 10000
and 1009999;
The crash is caused by the last select statement; the table and index create are OK.
it only happens with a largish table; small tables are OK.
Linux / Centos / 32 GB.
PostgreSQL 9.5devel_minmax_20140908_1809_0640c1bfc091 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.9.1, 64-bit
setting | current_setting
--------------------------+--------------------------------------------
autovacuum | off
port | 6444
shared_buffers | 100MB
effective_cache_size | 4GB
work_mem | 10MB
maintenance_work_mem | 1GB
checkpoint_segments | 20
data_checksums | on
server_version | 9.5devel_minmax_20140908_1809_0640c1bfc091
pg_postmaster_start_time | 2014-09-08 19:53 (uptime: 0d 0h 6m 54s)
'--prefix=/var/data1/pg_stuff/pg_installations/pgsql.minmax' '--with-pgport=6444'
'--bindir=/var/data1/pg_stuff/pg_installations/pgsql.minmax/bin'
'--libdir=/var/data1/pg_stuff/pg_installations/pgsql.minmax/lib' '--enable-depend' '--enable-cassert' '--enable-debug'
'--with-perl' '--with-openssl' '--with-libxml' '--with-extra-version=_minmax_20140908_1809_0640c1bfc091'
pgpatches/0095/minmax/20140908/minmax-18.patch
thanks,
Erik Rijkers
Commits
-
Refactor per-page logic common to all redo routines to a new function.
- f8f4227976a2 9.5.0 cited
-
Reduce use of heavyweight locking inside hash AM.
- 76837c1507cb 9.3.0 cited
-
Scan the buffer pool just once, not once per fork, during relation drop.
- ece01aae4792 9.2.0 cited
-
Major patch from Thomas Lockhart <Thomas.G.Lockhart@jpl.nasa.gov>
- 9e2a87b62db8 7.1.1 cited