Skip to content

Concurrent updates hang forever (v1.0.0) #370

@jgpruitt

Description

@jgpruitt

Bug Description

BM25 indexes created with v1.0.0 caused updates to hang forever and were unkillable.

Environment

  • PostgreSQL version: 18.3
  • pg_textsearch version: 1.0.0
  • Operating system:

PostgreSQL 18.3 (Ubuntu 18.3-1.pgdg22.04+1) on aarch64-unknown-linux-gnu, compiled by gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0, 64-bit

Steps to Reproduce

  1. Create a database with memory engine at commit 87555fa3ac1d571f1ee286d988605364bfeb9194
  2. Use PR 67 to load roughly 200k wikipedia articles into a table that has a BM25 index
  3. The memory engine's async embedding worker will start issuing updates to set the embeddings on the rows. These updates hang forever, and pg_terminate_backend will not kill them. The only way to stop them is to bounce the database.
  4. Upgrading pg_textsearch v1.1.0 AND rebuilding the BM25 indexes seems to fix the issue. Upgrading to v1.1.0 alone does not fix it.

Expected Behavior

I expected concurrent updates to a table with a BM25 index to complete in a reasonable amount of time rather than hanging forever. I expected pg_terminate_backend to kill the updates. It also seemed like statement_timeout and transaction_timeout were not honored.

Actual Behavior

Updates hung forever, even after the database client disconnected, and could not be killed without bouncing the database.

Additional Context

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No fields configured for Bug.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions