Re: [HACKERS] v6.5 release ToDo

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Ole Gjerde <gjerde(at)icebox(dot)org>
Cc: Postgres Hackers List <hackers(at)postgreSQL(dot)org>
Subject: Re: [HACKERS] v6.5 release ToDo
Date: 1999-05-17 05:03:50
Message-ID: 6574.926917430@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Ole Gjerde <gjerde(at)icebox(dot)org> writes:
> gdb of core:
> #0 0x4013a30a in _IO_default_xsputn (f=0xbf8006f4, data=0x81377e0, n=20)
> at genops.c:382
> #1 0x40129980 in _IO_vfprintf (s=0xbf8006f4,
> format=0x81377e0 " COLUMNDEF :colname %s :typename ", ap=0xbf800c08)
> at vfprintf.c:1048
> #2 0x40137d16 in _IO_vsnprintf (string=0xbf8007f8 "", maxlen=1024,
> format=0x81377e0 " COLUMNDEF :colname %s :typename ", args=0xbf800c08)
> at vsnprintf.c:129
> #3 0x809ccfb in appendStringInfo ()
> #4 0x80b637b in _outColumnDef ()
> #5 0x80b8107 in _outNode ()
> #6 0x80b7d79 in _outNode ()
> #7 0x80b7cab in _outConstraint ()
> #8 0x80b84b7 in _outNode ()
> #9 0x80b7d79 in _outNode ()
> #10 0x80b63bb in _outColumnDef ()
> #11 0x80b8107 in _outNode ()
> #12 0x80b7d79 in _outNode ()
> And this keeps going and going and going..

Hmm, that looks like a column constraint has somehow gotten recursively
linked back to its parent column definition node.

I poked around in the code for serial-column constraints, and found that
Lockhart's last patch had a subtle bug --- he wrote more characters in
the constraint text without increasing the space palloc'd for the
string. That could maybe cause such a problem, depending on what
happened to be living next door to the string... But I don't really
think this explains your complaint, because according to the cvs log
that change was made on 5/13, and you reported a problem quite some time
before that. Still, please fetch the current cvs sources or apply this
patch:

*** src/backend/parser/analyze.c.orig Sun May 16 10:29:33 1999
--- src/backend/parser/analyze.c Mon May 17 00:50:07 1999
***************
*** 545,551 ****
constraint = makeNode(Constraint);
constraint->contype = CONSTR_DEFAULT;
constraint->name = sname;
! cstring = palloc(9 + strlen(constraint->name) + 2 + 1);
strcpy(cstring, "nextval('\"");
strcat(cstring, constraint->name);
strcat(cstring, "\"')");
--- 545,551 ----
constraint = makeNode(Constraint);
constraint->contype = CONSTR_DEFAULT;
constraint->name = sname;
! cstring = palloc(10 + strlen(constraint->name) + 3 + 1);
strcpy(cstring, "nextval('\"");
strcat(cstring, constraint->name);
strcat(cstring, "\"')");

and let us know if anything changes...

regards, tom lane

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Ole Gjerde 1999-05-17 05:11:09 Re: [HACKERS] v6.5 release ToDo
Previous Message Bruce Momjian 1999-05-17 04:53:53 Re: [HACKERS] Memory leaks in relcache