Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Connection pool follow-ups (#67): async min_idle is inert; hooks/timeouts untested

Aperta
#177 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
38/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
rust
Ambito
backend, database

Direzione di ricerca

Start in hyperdb-api/src/pool.rs, especially PoolConfig::min_idle, the async Manager::recycle path, and the sync should_evict implementation. Compare the async and sync pool behavior, then review deadpool's lifecycle hooks and timeouts. Done means choosing how async min_idle should behave or removing it, and adding coverage for hooks, timeout firing, and async contention.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Summary

Follow-ups from the connection-pool work for #67. The feature is functional and additive, but two areas are intentionally noted as not-yet-complete so they aren't mistaken for finished:

  1. PoolConfig::min_idle is inert on the async pool. The field is stored and has a builder (hyperdb-api/src/pool.rs:223, :371), but the async eviction path — deadpool's per-connection Manager::recycle — only consults max_lifetime and idle_timeout; it never reads min_idle. A per-connection recycle callback has no view of the pool-wide idle/live count, so it cannot enforce a warm-connection floor. min_idle is honored only by the sync pool's should_evict (hyperdb-api/src/pool.rs:837-838). So an async caller setting min_idle currently gets a no-op knob.

    Options: either implement a pool-wide min_idle floor for the async pool (likely needs a pool-level hook rather than the per-connection recycle callback), or drop min_idle from the async PoolConfig so the surface matches behavior.

  2. Untested surfaces. A few public paths have no integration-test coverage yet:

    • after_connect / before_acquire lifecycle hooks (only RecycleStrategy::Custom, the recycle probe, is exercised).
    • create_timeout and recycle_timeout firing — they are plumbed into deadpool's Timeouts, but only wait_timeout firing is proven by a test.
    • The async pool has no concurrency/contention test (the sync pool does).
Why file this

These were surfaced by an adversarial fact-check of the feature's PR description and are documented as known limitations there. Filing so they're tracked rather than silently assumed complete. Neither blocks the additive feature from landing.

Notes

Line references are against the #67 feature branch; they may shift if the branch is rebased before merge.

Lingua principale
Rust
Stelle
2
Fork
2
Merge medio
12h 2m
PR unite (30g)
60

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di tableau/hyper-api-rust

Tutte le issue di tableau/hyper-api-rust

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.