Page MenuHomePhabricator

Prevent double mysqli close() after query timeout
ClosedPublic

Authored by epriestley on Jun 5 2018, 1:03 PM.
Tags
None
Referenced Files
Unknown Object (File)
Jan 31 2025, 12:37 PM
Unknown Object (File)
Jan 30 2025, 2:46 AM
Unknown Object (File)
Jan 29 2025, 5:12 PM
Unknown Object (File)
Jan 22 2025, 10:33 PM
Unknown Object (File)
Jan 21 2025, 11:41 PM
Unknown Object (File)
Jan 21 2025, 3:13 PM
Unknown Object (File)
Jan 21 2025, 11:43 AM
Unknown Object (File)
Jan 14 2025, 8:37 AM
Subscribers
None

Details

Reviewers
amckinley
Maniphest Tasks
Unknown Object (Maniphest Task)
Commits
rPHU4d341cfcc51c: Prevent double mysqli close() after query timeout
Summary

Ref T13149. I ran into this while double checking query timeout behavior for T13149.

After a query times out, we close the connection. We may then try to close the connection again in the destructor. Modern mysqli, at least, doesn't like this very much.

Instead, keep track of whether the connection needs to be closed or not.

Test Plan
  • Ran a SELECT SLEEP(60) with a 3 second query timeout.
  • Before: query timeout exception, then second exception on double-close().
  • After: query timeout exception, then no second exception.

Diff Detail

Event Timeline

epriestley mentioned this in Unknown Object (Maniphest Task).Jun 5 2018, 1:05 PM
This revision is now accepted and ready to land.Jun 5 2018, 10:03 PM
This revision was automatically updated to reflect the committed changes.