Re: BUG #15144: *** glibc detected *** postgres: postgres smsconsole [local] SELECT: double free or corruption (!pre

From: Peter Geoghegan <pg(at)bowt(dot)ie>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>, Andres Freund <andres(at)anarazel(dot)de>, "Vitaly V(dot) Voronov" <wizard_1024(at)tut(dot)by>, PostgreSQL mailing lists <pgsql-bugs(at)lists(dot)postgresql(dot)org>
Subject: Re: BUG #15144: *** glibc detected *** postgres: postgres smsconsole [local] SELECT: double free or corruption (!pre
Date: 2018-04-16 22:46:03
Message-ID: CAH2-Wz=V08u=GN6JEzLawNQJbDog+ce69W5EFzMpG2k45yxTxw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On Mon, Apr 16, 2018 at 3:21 PM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> Yeah, I should have thought to question that too. tuplestore was
> originally built by stripping down tuplesort, and at least in the
> beginning, I'm pretty sure that all these semantic API details were
> the same. We should likely have made more effort to keep them in
> sync. (Still, until we've proven that there *is* a bug here,
> let's not kick ourselves too hard.)

FWIW, I think that tuplesort remains a good example for tuplestore to
follow, since the enhancements that prevented the tuplesort crash on
v10+ make just as much sense for tuplestore (and could even have been
justified purely on robustness grounds). Many small palloc() calls are
certainly something that we should try to avoid.

Actually, I once looked into writing such a patch for tuplestore
myself, but IIRC tuplestore_clear() and interXact support made it more
painful than initially thought.

--
Peter Geoghegan

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message Andrew Gierth 2018-04-17 03:48:14 Re: BUG #15144: *** glibc detected *** postgres: postgres smsconsole [local] SELECT: double free or corruption (!pre
Previous Message Tom Lane 2018-04-16 22:21:06 Re: BUG #15144: *** glibc detected *** postgres: postgres smsconsole [local] SELECT: double free or corruption (!pre