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
This commit was created on GitHub.com and signed with GitHub’s verified signature.
SQL Anywhere 0.6.1 — three real bugs found behind flaky tests
A patch release with no API changes and no file-format changes. What it carries
is three production bugs, none of which ever presented as a test failure. All
three were sitting in test output nobody read, because the tests around them
were usually green.
- Every embedded-replica connection was closed twice. SqlanywhereConnection's
Drop called disconnect(), then the Connection it called it on was dropped and
called it again, so both closed the same handle. sqlite3_close_v2 on a freed
handle is undefined behaviour.
- Server::start called std::process::exit on a failed shutdown. That is wrong
for a library: it took the host process down and destroyed the diagnostics
with it. It now returns an error, and the sqld binary still exits non-zero.
- Graceful shutdown waited for in-flight connections with no deadline, so a
client holding one open blocked shutdown until shutdown_timeout, and then it
failed. Each HTTP service now drains for a bounded window and drops what is
left. This drops in-flight requests where it previously waited.
Also in this release: extension-keygen no longer defaults the private signing
key into the repository, and two flaky server tests are fixed.