7.0.2 dies when connection dropped mid-transaction

From: Alfred Perlstein <bright(at)wintelcom(dot)net>
To: pgsql-hackers(at)postgresql(dot)org
Subject: 7.0.2 dies when connection dropped mid-transaction
Date: 2000-11-10 01:04:30
Message-ID: 20001109170429.C11449@fw.wintelcom.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

I have a program that does a:
DECLARE getsitescursor CURSOR FOR select...

I ^C'd it and it didn't properly shut down the channel to
postgresql and I got this crash:

#0 0x4828ffc8 in kill () from /usr/lib/libc.so.4
#1 0x482cbbf2 in abort () from /usr/lib/libc.so.4
#2 0x814442f in ExcAbort () at excabort.c:27
#3 0x81443ae in ExcUnCaught (excP=0x81a6070, detail=0, data=0x0,
message=0x819a860 "!(AllocSetContains(set, pointer))") at exc.c:170
#4 0x81443f5 in ExcRaise (excP=0x81a6070, detail=0, data=0x0,
message=0x819a860 "!(AllocSetContains(set, pointer))") at exc.c:187
#5 0x8143ae4 in ExceptionalCondition (
conditionName=0x819a860 "!(AllocSetContains(set, pointer))",
exceptionP=0x81a6070, detail=0x0, fileName=0x819a720 "aset.c",
lineNumber=392) at assert.c:73
#6 0x8147897 in AllocSetFree (set=0x8465134,
pointer=0x84e0018 "<hashtable 1>") at aset.c:392
#7 0x8148394 in PortalVariableMemoryFree (this=0x846512c,
pointer=0x84e0018 "<hashtable 1>") at portalmem.c:204
#8 0x8147e99 in MemoryContextFree (context=0x846512c,
pointer=0x84e0018 "<hashtable 1>") at mcxt.c:245
#9 0x81490e5 in PortalDrop (portalP=0x8467944) at portalmem.c:802
#10 0x8148715 in CollectNamedPortals (portalP=0x0, destroy=1)
at portalmem.c:442
#11 0x814880f in AtEOXact_portals () at portalmem.c:472
#12 0x80870ad in AbortTransaction () at xact.c:1053
#13 0x80872ec in AbortOutOfAnyTransaction () at xact.c:1552
#14 0x810b3d0 in PostgresMain (argc=9, argv=0xbfbff0e0, real_argc=10,
real_argv=0xbfbffb40) at postgres.c:1643
#15 0x80f0736 in DoBackend (port=0x8464000) at postmaster.c:2009
#16 0x80f02c9 in BackendStartup (port=0x8464000) at postmaster.c:1776
#17 0x80ef4ed in ServerLoop () at postmaster.c:1037
#18 0x80eeed2 in PostmasterMain (argc=10, argv=0xbfbffb40) at postmaster.c:725
#19 0x80bf3df in main (argc=10, argv=0xbfbffb40) at main.c:93
#20 0x8063495 in _start ()

things go to pot here:
387 {
388 AllocChunk chunk;
389
390 /* AssertArg(AllocSetIsValid(set)); */
391 /* AssertArg(AllocPointerIsValid(pointer)); */
392 AssertArg(AllocSetContains(set, pointer));
393
394 chunk = AllocPointerGetChunk(pointer);
395
396 #ifdef CLOBBER_FREED_MEMORY
(gdb) print *set
$2 = {blocks = 0x0, freelist = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
(gdb) print pointer
$3 = 0x84e0018 "<hashtable 1>"

These sources are the current CVS sources with the exception of
some removed files by Marc.

Is there any more information I can provide?

--
-Alfred Perlstein - [bright(at)wintelcom(dot)net|alfred(at)freebsd(dot)org]
"I have the heart of a child; I keep it in a jar on my desk."

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Alfred Perlstein 2000-11-10 01:17:35 Re: 7.0.2 dies when connection dropped mid-transaction
Previous Message Tom Lane 2000-11-10 01:04:11 Re: Recursive use of syscaches (was: relation ### modified while in use)