Repository navigation
chore(deps): upgrade dependencies - #220
Merged
Merged
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
0.9 fixes graceful shutdown cancelling in-progress TLS handshakes. No code changes are needed. TLS 1.2 support was already enabled through aws-smithy-http-client's hyper-rustls features, so the `tls-rustls` feature now also enabling it changes nothing for us. 0.9.2 is inside the 3-day publish cooldown, so it is listed as an exception until it ages out. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Only the text encoder is used. This removes protobuf, protobuf-support, and the duplicate thiserror 1.x from the dependency graph. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
[Medium impact] The PR appears safe to merge; no actionable issues were found. SummaryUpdates dependencies, upgrades
Reviews (1) · Last reviewed commit: "chore(deps): drop prometheus's default p..." · Reviewed by Greptile |
Merged
shikhar
added a commit
that referenced
this pull request
Nov 13, 2026
Uses features from axum-server 0.9 (#220) and simplifies the server setup. Only `src/bin/server.rs` changes. ## Accept errors axum-server drops connection failures silently unless an `accept_error_handler` is set. The handler now logs them: - **Listener failures**, such as running out of file descriptors, log at `warn`. axum-server waits 50 ms between retries, so this is at most about 20 lines a second. - **Connection setup failures**, mainly failed or timed-out TLS handshakes, log at `debug` with the client address. Load-balancer health checks and scanners make these routine. The server's subscriber is built without `env-filter` and only shows `info` and above, so these stay hidden as before. ## TCP keepalive `TcpConfigAcceptor` replaces `NoDelayAcceptor`. It keeps `TCP_NODELAY` from #218 and adds keepalive: probes start after 60s idle, repeat every 10s, and give up after 3 failures. Without it, the server has no idle timeout on HTTP/1.1 or HTTP/2. A client that disappears without closing its connection, because its host died or a NAT or load balancer dropped the flow, leaves it open indefinitely. The connection holds a task and a file descriptor and counts in `cachey_connections`. Long-lived HTTP/2 connections make this more likely. ## Server setup The three TLS modes each repeated the bind, acceptor, handle and serve steps. Now the TLS match only produces an `Option<RustlsConfig>` and the server is configured once. The TLS config also loads before the cache is built, so a bad certificate path fails before cache startup. The startup log now reports the certificate source and the listen address on separate lines. ## Testing Clippy with warnings denied, rustfmt, and `cargo nextest run --locked --all-features` (206 passed, 1 skipped) pass. The integration tests serve through `axum::serve`, so I also ran the binary locally on macOS: - **TLS (`--tls-self`):** HTTPS requests succeed over HTTP/2. Plain HTTP to the TLS port and a bare connect-and-close log nothing at the default level. - **With `ulimit -n 64`:** opening 80 connections logged `failed to accept connection` warnings (`Too many open files`). The server kept serving afterwards. - **Socket options:** `lsof` shows `SO=KEEPALIVE=60000` on an accepted socket, and the TCP flags include `TF_NODELAY`. - **Shutdown:** both TLS and plain HTTP modes exit cleanly on SIGTERM. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
shikhar
pushed a commit
that referenced
this pull request
Nov 13, 2026
## 🤖 New release * `cachey`: 0.13.4 -> 0.13.5 <details><summary><i><b>Changelog</b></i></summary><p> <blockquote> ## [0.13.5](0.13.4...0.13.5) - 2026-11-13 ### Added - *(server)* log accept errors and enable TCP keepalive ([#221](#221)) ### Fixed - *(server)* set TCP_NODELAY on accepted connections ([#218](#218)) ### Other - *(deps)* upgrade dependencies ([#220](#220)) </blockquote> </p></details> --- This PR was generated with [release-plz](https://github.com/release-plz/release-plz/). Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Brings dependencies up to date and removes some duplicate crates from the graph. Each change is a separate commit so it can be dropped on its own.
cargo +nightly update, which respects the 3-day minimum publish age in.cargo/config.toml. It updates 29 packages, all patch or minor releases: AWS SDK and Smithy crates (aws-sdk-s31.158.0,aws-smithy-runtime-api1.21.0),syn,uuid,jiff,flate2, and others.bitflags1.x and thedefmtcrates drop out of the graph.tls-rustlsfeature now enables TLS 1.2, butaws-smithy-http-clientalready enabled that throughhyper-rustls, so the TLS versions the server accepts don't change. 0.9.1 was yanked..github/dependency-cooldown/exceptions.toml. The 0.9.2 crate has no build script and uses#![forbid(unsafe_code)]. The exception can be removed after 2026-11-14.protobuffeature, since only the text encoder is used. This removesprotobuf,protobuf-support, and the duplicatethiserror1.x.disk_block_fits_its_full_pageschecks the encoded metrics text and still passes.cargo denyreports 18 duplicate crates, down from 20. The remaining ones come from crates that are already at their latest release, plus our own choice ofparking_lot0.13 from #215.cargo deny check, clippy with warnings denied, rustfmt, the dependency cooldown check, andcargo nextest run --locked --all-features(206 passed, 1 skipped) all pass.🤖 Generated with Claude Code