Re: BUG #15039: some question about hash index code

From: Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>
To: zoulx1982(at)163(dot)com, pgsql-bugs(at)lists(dot)postgresql(dot)org
Subject: Re: BUG #15039: some question about hash index code
Date: 2018-01-31 12:06:22
Message-ID: CAA4eK1+TskOwUH093E8coMMKDJT-mMXh=-K_XP5Kke1REf2bFA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs pgsql-hackers

On Wed, Jan 31, 2018 at 5:04 PM, PG Bug reporting form
<noreply(at)postgresql(dot)org> wrote:
> The following bug has been logged on the website:
>
> Bug reference: 15039
> Logged by: lixian zou
> Email address: zoulx1982(at)163(dot)com
> PostgreSQL version: 10.0
> Operating system: source code
> Description:
>
> hi,
> i read hash index code , and found in _hash_addovflpage function, there is
> such code :
> if (metap->hashm_firstfree == orig_firstfree)
> {
> metap->hashm_firstfree = bit + 1;
> MarkBufferDirty(metabuf);
> }
>
> i found no any chang for metap,metap->hashm_firstfree,and initial the two
> variable is equal, so maybe the if statement is redundant?
>

The hashm_firstfree can be changed by a concurrent session as we
release and reacquire the lock on a metapage while trying to get the
bitmap page. See, below code:

_hash_addovflpage
{
..
..

for (;;)
{
..
/* Release exclusive lock on metapage while reading bitmap page */
LockBuffer(metabuf, BUFFER_LOCK_UNLOCK);
..

/* Reacquire exclusive lock on the meta page */
LockBuffer(metabuf, BUFFER_LOCK_EXCLUSIVE);
}
..

if (metap->hashm_firstfree == orig_firstfree)
{
metap->hashm_firstfree = bit + 1;
MarkBufferDirty(metabuf);
}
..
}

I think pgsql-hackers is the better place to get clarifications related to code.

--
With Regards,
Amit Kapila.
EnterpriseDB: http://www.enterprisedb.com

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message 自己 2018-01-31 12:27:26 Re:Re: BUG #15039: some question about hash index code
Previous Message PG Bug reporting form 2018-01-31 11:34:46 BUG #15039: some question about hash index code

Browse pgsql-hackers by date

  From Date Subject
Next Message 自己 2018-01-31 12:27:26 Re:Re: BUG #15039: some question about hash index code
Previous Message Daniel Verite 2018-01-31 11:39:53 Re: csv format for psql