Re: Alignment padding bytes in arrays vs the planner

From: Noah Misch <noah(at)leadboat(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-hackers(at)postgreSQL(dot)org
Subject: Re: Alignment padding bytes in arrays vs the planner
Date: 2011-05-23 05:12:32
Message-ID: 20110523051232.GA9358@tornado.gateway.2wire.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Tue, Apr 26, 2011 at 11:51:35PM -0400, Noah Misch wrote:
> On Tue, Apr 26, 2011 at 07:23:12PM -0400, Tom Lane wrote:
> [input functions aren't the only problematic source of uninitialized datum bytes]
>
> > We've run into other manifestations of this issue before. Awhile ago
> > I made a push to ensure that datatype input functions didn't leave any
> > ill-defined padding bytes in their results, as a result of similar
> > misbehavior for simple constants. But this example shows that we'd
> > really have to enforce the rule of "no ill-defined bytes" for just about
> > every user-callable function's results, which is a pretty ugly prospect.
>
> FWIW, when I was running the test suite under valgrind, these were the functions
> that left uninitialized bytes in datums: array_recv, array_set, array_set_slice,
> array_map, construct_md_array, path_recv. If the test suite covers this well,
> we're not far off. (Actually, I only had the check in PageAddItem ... probably
> needed to be in one or two other places to catch as much as possible.)

Adding a memory definedness check to printtup() turned up one more culprit:
tsquery_and.

Attachment Content-Type Size
QTN2QT_palloc0.patch text/plain 468 bytes

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Vaibhav Kaushal 2011-05-23 10:44:27 Foreign memory context read
Previous Message nil nil 2011-05-23 04:59:04 Fw: Help required regarding patch development