Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: postgres/postgres
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
...
head repository: alvherre/postgres
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 1 commit
  • 2 files changed
  • 1 contributor

Commits on Jan 28, 2026

  1. Fix duplicate arbiter detection during REINDEX CONCURRENTLY on partit…

    …ions
    
    Commit 90eae92 fixed ON CONFLICT handling during REINDEX CONCURRENTLY
    on partitioned tables by treating unparented indexes as potential
    arbiters.  However, there's a remaining race condition: when pg_inherits
    records are swapped between consecutive calls to get_partition_ancestors(),
    two different child indexes can appear to have the same parent, causing
    duplicate entries in the arbiter list and triggering "invalid arbiter
    index list" errors.
    
    Note that this is not a new problem introduced by 90eae92.  The same
    error could occur before that commit in a slightly different scenario:
    an index is selected during planning, then index_concurrently_swap()
    commits, and a subsequent call to get_partition_ancestors() uses a new
    catalog snapshot that sees zero ancestors for that index.
    
    Fix by tracking which parent indexes have already been processed.  If a
    subsequent call to get_partition_ancestors() returns a parent we've
    already seen, treat that index as unparented instead, allowing it to be
    matched via IsIndexCompatibleAsArbiter() like other concurrent reindex
    scenarios.
    
    Author: Mihail Nikalayeu <[email protected]>
    Reported-by: Alexander Lakhin <[email protected]>
    Reviewed-by: Álvaro Herrera <[email protected]>
    Discussion: https://postgr.es/m/[email protected]
    alvherre committed Jan 28, 2026
    Configuration menu
    Copy the full SHA
    2644451 View commit details
    Browse the repository at this point in the history
Loading