Skip to content

XX000: ResourceOwnerForget called for buffer pin after release started during vchordrq scan on halfvec #463

Description

@r-Larch

Extension versions:

  • vchord 1.1.1 (latest)
  • vector (pgvector) 0.8.1
  • PostgreSQL PostgreSQL 18.2 (Debian 18.2-1.pgdg12+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14+deb12u1) 12.2.0, 64-bit

Error:
Npgsql.PostgresException: XX000: ResourceOwnerForget called for buffer pin after release started
at resowner.c:572, Routine: ResourceOwnerForget

Setup:

  • Column type: halfvec(1024)
  • Index: vchordrq (MaxInnerProduct / <#> operator)
  • rerank_in_table = true
CREATE INDEX ix_massima_indexes_embedding
    ON massima_indexes
    USING vchordrq (embedding halfvec_ip_ops)
    WITH (
        epsilon = 0.8,
        probes = '480,960',
        options = $$
residual_quantization = false
rerank_in_table = true
build.pin = true

[build.internal]
lists = [8000, 16000]
spherical_centroids = true
build_threads = 8
$$
    );

Trigger: Occurs transiently under concurrent query load.

Workaround: Retrying the query on a fresh connection succeeds 100% of the time.

Stack trace:

An exception occurred while iterating over the results of a query for context type '"Nomos.Judgments.Data.JudgmentDbContext"'."
""Npgsql.PostgresException (0x80004005): XX000: ResourceOwnerForget called for buffer pin after release started
   at Npgsql.Internal.NpgsqlConnector.ReadMessageLong(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage)
   at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token)
   at Npgsql.NpgsqlDataReader.Read(Boolean async, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Query.Internal.BufferedDataReader.BufferedDataRecord.InitializeAsync(DbDataReader reader, IReadOnlyList`1 columns, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Query.Internal.BufferedDataReader.InitializeAsync(IReadOnlyList`1 columns, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Query.Internal.BufferedDataReader.InitializeAsync(IReadOnlyList`1 columns, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.AsyncEnumerator.InitializeReaderAsync(AsyncEnumerator enumerator, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.ExecutionStrategy.<>c__DisplayClass30_0`2.b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at Microsoft.EntityFrameworkCore.Storage.ExecutionStrategy.ExecuteImplementationAsync[TState,TResult](Func`4 operation, Func`4 verifySucceeded, TState state, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.ExecutionStrategy.ExecuteImplementationAsync[TState,TResult](Func`4 operation, Func`4 verifySucceeded, TState state, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.ExecutionStrategy.ExecuteAsync[TState,TResult](TState state, Func`4 operation, Func`4 verifySucceeded, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.AsyncEnumerator.MoveNextAsync()
  Exception data:
    Severity: ERROR
    SqlState: XX000
    MessageText: ResourceOwnerForget called for buffer pin after release started
    File: resowner.c
    Line: 572
    Routine: ResourceOwnerForget"

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions