Re: [sqlsmith] crashes in RestoreSnapshot on hot standby
От | Amit Kapila |
---|---|
Тема | Re: [sqlsmith] crashes in RestoreSnapshot on hot standby |
Дата | |
Msg-id | CAA4eK1KCnzzse4JckkC=xuOcMj3b+1qXREP0fT31U-PxU4=d=g@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: [sqlsmith] crashes in RestoreSnapshot on hot standby (Thomas Munro <thomas.munro@enterprisedb.com>) |
Ответы |
Re: [sqlsmith] crashes in RestoreSnapshot on hot standby
|
Список | pgsql-hackers |
On Fri, Jul 1, 2016 at 9:38 AM, Thomas Munro <thomas.munro@enterprisedb.com> wrote: > On Fri, Jul 1, 2016 at 3:25 PM, Amit Kapila <amit.kapila16@gmail.com> wrote: >> On Fri, Jul 1, 2016 at 8:48 AM, Thomas Munro <thomas.munro@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; > This way it looks better to me. Thanks for the patch. -- With Regards, Amit Kapila. EnterpriseDB: http://www.enterprisedb.com
В списке pgsql-hackers по дате отправления: