On Fri, Jul 1, 2016 at 3:25 PM, Amit Kapila <amit.kapil...@gmail.com> wrote: > On Fri, Jul 1, 2016 at 8:48 AM, Thomas Munro <thomas.mu...@enterprisedb.com> > wrote: >> If serialized_snapshot->xcnt == 0, then snapshot->xip never gets >> initialized to a non-NULL value. Then if serialized_snapshot->subxcnt >> > 0, we set snapshot->subxip = snapshot->xip + >> serialized_snapshot->xcnt (so that's NULL too). Then in line the line >> you show we call memcpy(snapshot->subxip, ...). The fix might be >> something like the attached. > > I was just typing the mail, when I see this mail. I also reached to the > conclusion that this is the reason of crash. You can see how CopySnapshot > calculates the subxipoff, may be writing code that way will be more > consistent.
Or maybe just like this? - snapshot->subxip = snapshot->xip + serialized_snapshot->xcnt; + snapshot->subxip = ((TransactionId *) (snapshot + 1)) + + serialized_snapshot->xcnt; -- Thomas Munro http://www.enterprisedb.com
fix-subxip-v2.patch
Description: Binary data
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers