Re: Parallel Index Scan vs BTP_DELETED and BTP_HALF_DEAD - Mailing list pgsql-hackers

From Amit Kapila
Subject Re: Parallel Index Scan vs BTP_DELETED and BTP_HALF_DEAD
Date
Msg-id CAA4eK1KCm96hcz4uyYMfkFFx0HagyuURLh_H9ETyo-hH9FaM0Q@mail.gmail.com
Whole thread Raw
In response to Re: Parallel Index Scan vs BTP_DELETED and BTP_HALF_DEAD  (Thomas Munro <thomas.munro@enterprisedb.com>)
Responses Re: Parallel Index Scan vs BTP_DELETED and BTP_HALF_DEAD
List pgsql-hackers
On Wed, Dec 13, 2017 at 7:02 AM, Thomas Munro
<thomas.munro@enterprisedb.com> wrote:
> Hi,
>
> Here's a reproducer which enabled me to reach this stuck state:
>
>   pid  |  wait_event   |                                    query
> -------+---------------+-----------------------------------------------------------------------------
>  64617 |               | select pid, wait_event, query from
> pg_stat_activity where state = 'active';
>  64619 | BufferPin     | VACUUM jobs
>  64620 | ExecuteGather | SELECT COUNT(*) FROM jobs
>  64621 | ExecuteGather | SELECT COUNT(*) FROM jobs
>  64622 | ExecuteGather | SELECT COUNT(*) FROM jobs
>  64623 | ExecuteGather | SELECT COUNT(*) FROM jobs
>  84167 | BtreePage     | SELECT COUNT(*) FROM jobs
>  84168 | BtreePage     | SELECT COUNT(*) FROM jobs
>  96440 |               | SELECT COUNT(*) FROM jobs
>  96438 |               | SELECT COUNT(*) FROM jobs
>  96439 |               | SELECT COUNT(*) FROM jobs
> (11 rows)
>
> The main thread deletes stuff in the middle of the key range (not sure
> if this is important) and vacuum in a loop, and meanwhile 4 threads
> (probably not important, might as well be 1) run Parallel Index Scans
> over the whole range, in the hope of hitting the interesting case.  In
> the locked-up case I just saw now opaque->btpo_flags had the
> BTP_DELETED bit set, not BTP_HALF_DEAD (I could tell because I added
> logging).
>

Good.  I hope that the patch I have posted above is able to resolve
this problem.  I am asking as you haven't explicitly mentioned that.

>  Clearly pages are periodically being marked half-dead but I
> haven't yet managed to get an index scan to hit one of those.
>

I think Kuntal has already able to hit that case, so maybe that is enough.

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


pgsql-hackers by date:

Previous
From: Amit Kapila
Date:
Subject: Re: explain analyze output with parallel workers - question aboutmeaning of information for explain.depesz.com
Next
From: Etsuro Fujita
Date:
Subject: Re: Incorrect debug info printed in generate_partition_wise_join_paths