You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
ext-mysql2: connection from pool.getConnection() throws 'Invalid connection handle' on beginTransaction/execute #8746
Actual: thrown value is the plain string "Invalid connection handle" (see also the separate errors-as-strings issue). Methods on the checked-out connection (beginTransaction, execute) don't see a valid underlying handle.
Expected: the mysql2 PoolConnection API — getConnection() → beginTransaction() → execute("SELECT … FOR UPDATE") → commit()/rollback() → release().
Impact: this is the canonical row-lock transaction pattern (SELECT … FOR UPDATE), i.e. the serialization backbone for anything auction/ledger-shaped; there is currently no way to run an explicit transaction from a pool under Perry. createConnection()-based transactions could not be verified either (session cut short by the param-binding race, filed separately).
Closed by #8765, landed on main via #8778 (squash 1f5c3bb80).
That PR was landed through a batch wrapper PR rather than merged directly, so GitHub's close keyword never fired at merge time — its mergedAt is null even though the work is on main. Verified before closing: changelog.d/8765-mysql2-request-scoped-statements.md is present and perry-ext-mysql2 --lib passes 10/10 on the merged result.
Activity
proggeramlug commentedon Aug 24, 2026
Closed by #8765, landed on
mainvia #8778 (squash1f5c3bb80).That PR was landed through a batch wrapper PR rather than merged directly, so GitHub's close keyword never fired at merge time — its
mergedAtis null even though the work is onmain. Verified before closing:changelog.d/8765-mysql2-request-scoped-statements.mdis present andperry-ext-mysql2 --libpasses 10/10 on the merged result.