Skip to content

Retry SQLite contention through decorated database handles - #1240

Merged
chubes4 merged 1 commit into
mainfrom
fix/1239-decorated-sqlite-retry
Aug 25, 2026
Merged

Retry SQLite contention through decorated database handles#1240
chubes4 merged 1 commit into
mainfrom
fix/1239-decorated-sqlite-retry

Conversation

@chubes4

@chubes4 chubes4 commented Aug 25, 2026

Copy link
Copy Markdown
Member

Closes #1239

Summary

  • classify retry eligibility from the failed operation and wpdb->last_error instead of the outer database class
  • preserve immediate returns for successful writes and non-busy failures
  • retain the existing bounded workspace_sqlite_lock_contention exhaustion contract
  • cover a MySQL-reporting outer decorator backed by a locked SQLite writer

Verification

  • php tests/workspace-lock-sqlite-contention.php
  • php -l inc/Storage/SqliteBusyRetry.php
  • php -l tests/workspace-lock-sqlite-contention.php
  • git diff --check

AI assistance

OpenAI GPT-5.6 Sol via OpenCode reproduced the live managed-worktree failure, traced the decorated database boundary, implemented result-driven contention retry, and added the deterministic decorated-backend regression. Chris Huber directed the repair and remains responsible.

@chubes4
chubes4 merged commit a2107b5 into main Aug 25, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

SQLite busy retry misses decorated wpdb backends during workspace lock acquisition

1 participant