Another assert failure from no-palloc-in-critical-sections

Lists: pgsql-hackers
From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Heikki Linnakangas <hlinnakangas(at)vmware(dot)com>
Cc: pgsql-hackers(at)postgreSQL(dot)org
Subject: Another assert failure from no-palloc-in-critical-sections
Date: 2014-04-05 17:08:34
Message-ID: 3484.1396717714@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

I tried the test case given in
http://www.postgresql.org/message-id/dafad644f268ce1503e1b8b682aae38a.squirrel@webmail.xs4all.nl
on HEAD. It asserted here:

#2 0x000000000077b419 in ExceptionalCondition (
conditionName=<value optimized out>, errorType=<value optimized out>,
fileName=<value optimized out>, lineNumber=<value optimized out>)
at assert.c:54
#3 0x000000000079be76 in palloc (size=384) at mcxt.c:670
#4 0x0000000000479408 in ginCompressPostingList (ipd=0x7f13343bb048,
nipd=272428, maxsize=384, nwritten=0x7fff1d832eec) at ginpostinglist.c:191
#5 0x000000000046b92b in createPostingTree (index=0x7f1348ae31e0,
items=0x7f13343bb048, nitems=272428, buildStats=0x7fff1d835670)
at gindatapage.c:1739
#6 0x0000000000465206 in buildFreshLeafTuple (ginstate=0x7fff1d8330b0,
attnum=1, key=2105441, category=0 '\000', items=0x7f13343bb048,
nitem=272428, buildStats=0x7fff1d835670) at gininsert.c:158
#7 ginEntryInsert (ginstate=0x7fff1d8330b0, attnum=1, key=2105441,
category=0 '\000', items=0x7f13343bb048, nitem=272428,
buildStats=0x7fff1d835670) at gininsert.c:228
#8 0x0000000000465863 in ginbuild (fcinfo=<value optimized out>)
at gininsert.c:408
#9 0x0000000000784654 in OidFunctionCall3Coll (
functionId=<value optimized out>, collation=0, arg1=139720800461152,
arg2=139720800481760, arg3=31056056) at fmgr.c:1650
#10 0x00000000004f18ba in index_build (heapRelation=0x7f1348ade160,
indexRelation=0x7f1348ae31e0, indexInfo=0x1d9e0b8, isprimary=0 '\000',
isreindex=0 '\000') at index.c:1962

regards, tom lane


From: Heikki Linnakangas <hlinnakangas(at)vmware(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-hackers(at)postgreSQL(dot)org
Subject: Re: Another assert failure from no-palloc-in-critical-sections
Date: 2014-04-05 19:19:02
Message-ID: 53405726.90409@vmware.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

On 04/05/2014 08:08 PM, Tom Lane wrote:
> I tried the test case given in
> http://www.postgresql.org/message-id/dafad644f268ce1503e1b8b682aae38a.squirrel@webmail.xs4all.nl
> on HEAD. It asserted here:
>...
> #5 0x000000000046b92b in createPostingTree (index=0x7f1348ae31e0,
> items=0x7f13343bb048, nitems=272428, buildStats=0x7fff1d835670)
> at gindatapage.c:1739

Yep, that's a clear violation of the no-pallocs-in-critical-section
rule. Thanks, fixed.

I'm surprised none of the existing regression tests caught that.
Apparently none of them create a GIN index with enough duplicate keys
that it would create a posting tree. I added one.

- Heikki


From: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
To: Heikki Linnakangas <hlinnakangas(at)vmware(dot)com>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-hackers(at)postgreSQL(dot)org
Subject: Re: Another assert failure from no-palloc-in-critical-sections
Date: 2014-04-06 00:22:40
Message-ID: 20140406002240.GE5822@eldon.alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

Heikki Linnakangas wrote:

> I'm surprised none of the existing regression tests caught that.
> Apparently none of them create a GIN index with enough duplicate
> keys that it would create a posting tree. I added one.

Perhaps the --enable-coverage option to configure, and related make
targets, could prove insightful.

--
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services