Re: pgsql: Fix unaligned accesses in DecodeUpdate(). - Mailing list pgsql-committers

From Andres Freund
Subject Re: pgsql: Fix unaligned accesses in DecodeUpdate().
Date
Msg-id 20140517202344.GA4484@awork2.anarazel.de
Whole thread Raw
In response to pgsql: Fix unaligned accesses in DecodeUpdate().  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-committers
Hi,

On 2014-05-17 19:54:05 +0000, Tom Lane wrote:
> Fix unaligned accesses in DecodeUpdate().

> The xl_heap_header_len structures in an XLOG_HEAP_UPDATE record aren't
> necessarily aligned adequately.  The regular replay function for these
> records is aware of that, but decode.c didn't get the memo.  I'm not
> sure why the buildfarm failed to catch this; the test_decoding test
> certainly blows up real good on my old HPPA box.

Hm. It's too bad it's hard to see these cases on x86. I wondered before
why valgrind doesn't catch those...

Some mozilla devs seem to have whipped the feature up quickly enough:
https://bugzilla.mozilla.org/show_bug.cgi?id=476122
Too bad it's not been integrated.

> Also, I'm pretty sure that the address arithmetic was wrong for the
> case of XLOG_HEAP_CONTAINS_OLD and not XLOG_HEAP_CONTAINS_NEW_TUPLE,
> though this apparently can't happen when logical decoding is active.

Yes, that's impossible. It'd be a bit pointless to decode an update
where the new value isn't available. Would kinda hurt while
replicability...

Thanks for fixing.

Andres Freund

--
 Andres Freund                       http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services


pgsql-committers by date:

Previous
From: Tom Lane
Date:
Subject: pgsql: Fix unaligned accesses in DecodeUpdate().
Next
From: Tom Lane
Date:
Subject: pgsql: Fix a bunch of functions that were declared static then defined