Re: [HACKERS] Postgres dies when using an intarray operator
Fixed in cvs for 7.4-8.2 releases. Michael Fuhr wrote: On Sat, Apr 01, 2006 at 03:40:19PM +0200, jeroen van iddekinge wrote: When using intarray operator in a query, postgres dies and restart itself when executing the following query: select r1.bet_sentence r2.bet_sentence from related r1,related r2 where r1.bet_sentence r2.bet_sentence Here's a complete test case: CREATE TABLE foo (a integer[]); INSERT INTO foo (a) SELECT array[random() * 10, random() * 10, random() * 10] FROM generate_series(1, 24); CREATE INDEX foo_a_idx ON foo USING gist (a gist__int_ops); SET enable_seqscan TO off; SELECT f1.a f2.a FROM foo f1, foo f2 WHERE f1.a f2.a; This crashes for me in 8.1.3 on FreeBSD 6.1-PRERELEASE and Solaris 9. An assert-enabled 8.1.3 logs the following: TRAP: BadArgument(!(((header-context) != ((void *)0) (Node*)((header-context)))-type) == T_AllocSetContext, File: mcxt.c, Line: 612) -- Teodor Sigaev E-mail: [EMAIL PROTECTED] WWW: http://www.sigaev.ru/ ---(end of broadcast)--- TIP 3: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faq
[HACKERS] Postgres dies when using an intarray operator
Hi all, When using intarray operator in a query, postgres dies and restart itself when executing the following query: select r1.bet_sentence r2.bet_sentence from related r1,related r2 where r1.bet_sentence r2.bet_sentence the log file contains the following: LOG: server process (PID 14283) was terminated by signal 11 LOG: terminating any other active server processes LOG: all server processes terminated; reinitializing LOG: database system was interrupted at 2006-04-01 15:07:04 CEST LOG: checkpoint record is at 1/E9178B1C This is the only information I can find 'related' has the following definition: Column| Type | Modifiers --++--- id | integer| not null id_line | integer| id_linegroup | integer| id_word_1| integer| id_word_2| integer| rtype| character varying(100) | bet_sentence | integer[] | there are about 100 000 records in this table. The crash only happends when I create the gist index on bet_sentence: create index ind_related_7 on related using gist ( bet_sentence gist__int_ops); Using unbuntu 5.1 ,postgres version 8.1.3,compiled from source and intarray installed Can someone explain this crash? Thanks Jeroen ---(end of broadcast)--- TIP 6: explain analyze is your friend
Re: [HACKERS] Postgres dies when using an intarray operator
On Sat, Apr 01, 2006 at 03:40:19PM +0200, jeroen van iddekinge wrote: When using intarray operator in a query, postgres dies and restart itself when executing the following query: select r1.bet_sentence r2.bet_sentence from related r1,related r2 where r1.bet_sentence r2.bet_sentence Here's a complete test case: CREATE TABLE foo (a integer[]); INSERT INTO foo (a) SELECT array[random() * 10, random() * 10, random() * 10] FROM generate_series(1, 24); CREATE INDEX foo_a_idx ON foo USING gist (a gist__int_ops); SET enable_seqscan TO off; SELECT f1.a f2.a FROM foo f1, foo f2 WHERE f1.a f2.a; This crashes for me in 8.1.3 on FreeBSD 6.1-PRERELEASE and Solaris 9. An assert-enabled 8.1.3 logs the following: TRAP: BadArgument(!(((header-context) != ((void *)0) (Node*)((header-context)))-type) == T_AllocSetContext, File: mcxt.c, Line: 612) -- Michael Fuhr ---(end of broadcast)--- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match
Re: [HACKERS] Postgres dies when using an intarray operator
[Please copy the mailing list on replies.] On Sat, Apr 01, 2006 at 07:20:57PM +0200, jeroen van iddekinge wrote: TRAP: BadArgument(!(((header-context) != ((void *)0) (Node*)((header-context)))-type) == T_AllocSetContext, File: mcxt.c, Line: 612) I started the postmaster with -d 5 but I didn't get something like above, only a signal 11 message. How can I get more information from a crash? The above error would be logged only if the server was built with assertions enabled. See the documentation for the --enable-cassert configure option: http://www.postgresql.org/docs/8.1/interactive/install-procedure.html If the server was built with debugging symbols (--enable-debug) then you could obtain useful information from a core dump by using a debugger like gdb to display a stack trace. To see examples search the archives for words like gdb and stack trace -- Michael Fuhr ---(end of broadcast)--- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match
Re: [HACKERS] Postgres dies when using an intarray operator
Michael Fuhr [EMAIL PROTECTED] writes: Here's a complete test case: CREATE TABLE foo (a integer[]); INSERT INTO foo (a) SELECT array[random() * 10, random() * 10, random() * 10] FROM generate_series(1, 24); CREATE INDEX foo_a_idx ON foo USING gist (a gist__int_ops); SET enable_seqscan TO off; SELECT f1.a f2.a FROM foo f1, foo f2 WHERE f1.a f2.a; This seems to bear out the concern expressed at _int_gist.c line 44: /* XXX are we sure it's safe to scribble on the query object here? */ regards, tom lane ---(end of broadcast)--- TIP 5: don't forget to increase your free space map settings