Re: [HACKERS] segfault in hot standby for hash indexes
От | Amit Kapila |
---|---|
Тема | Re: [HACKERS] segfault in hot standby for hash indexes |
Дата | |
Msg-id | CAA4eK1JM2dynAoOU_G_zTi7wWeBpQ_7ZJCLUGbB8Tz4vAc8uwg@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: [HACKERS] segfault in hot standby for hash indexes (Amit Kapila <amit.kapila16@gmail.com>) |
Ответы |
Re: [HACKERS] segfault in hot standby for hash indexes
|
Список | pgsql-hackers |
On Thu, Mar 23, 2017 at 8:43 AM, Amit Kapila <amit.kapila16@gmail.com> wrote: > On Wed, Mar 22, 2017 at 3:39 PM, Ashutosh Sharma <ashu.coek88@gmail.com> wrote: >> Hi, >> >> On Wed, Mar 22, 2017 at 8:41 AM, Amit Kapila <amit.kapila16@gmail.com> wrote: >> >> To fix this, I think we should pass 'REGBUF_KEEP_DATA' while >> registering the buffer. Something like this, >> >> - XLogRegisterBuffer(0, buf, REGBUF_STANDARD); >> + XLogRegisterBuffer(0, buf, REGBUF_STANDARD | >> REGBUF_KEEP_DATA); >> >> Attached is the patch that fixes this issue. >> > > I think this will work, but not sure if there is a merit to deviate > from what btree does to handle this case. One thing I find slightly > awkward in hash_xlog_vacuum_get_latestRemovedXid() is that you are > using a number of tuples registered as part of fixed data > (xl_hash_vacuum_one_page) to traverse the data registered as buf data. > I think it will be better if we register offsets also in fixed part of > data as we are doing btree case. > > Also another small point in this regard, do we need two separate variables to track number of deleted items in below code? I think one variable is sufficient. _hash_vacuum_one_page() { .. deletable[ndeletable++] = offnum; tuples_removed += 1; .. } -- With Regards, Amit Kapila. EnterpriseDB: http://www.enterprisedb.com
В списке pgsql-hackers по дате отправления: