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
- Create a database with memory engine at commit 87555fa3ac1d571f1ee286d988605364bfeb9194
- Use PR 67 to load roughly 200k wikipedia articles into a table that has a BM25 index
- 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.
- 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
Bug Description
BM25 indexes created with v1.0.0 caused updates to hang forever and were unkillable.
Environment
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
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