apache / apache/iotdb-client-rust
reconnect() holds the pool slot while sleeping between attempts
- Vorherrschende Sprache
- Rust
- Sterne
- 1
- Forks
- 0
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
`Session::reconnect()` sleeps `retry_interval` between passes and walks all endpoints while still holding its pool slot. With defaults (3 endpoints, 3 attempts, 1s interval) the worst case is ~92s, during which concurrent `acquire()` callers get "pool exhausted" — an error that points away from the real cause.
Fix: when the session is handed out from a pool, skip the between-attempt sleeps (the slot is still held, but the hold time drops to the connect+handshake attempts), or shorten them. Standalone sessions keep the current C#-style pacing.
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Beginne mit dem Lesen von Session::reconnect und des Pool-Pfads, der Sessions an acquire-Aufrufer übergibt, und konzentriere dich darauf, wie pooled- und standalone-Sessions identifiziert werden. Überprüfe, dass pooled-Reconnect-Versuche die Pausen zwischen den Versuchen nicht beibehalten, während standalone-Sessions ihr aktuelles Timing beibehalten, und bestätige, dass eine gleichzeitige Pool-Akquisition nicht mehr wegen der Verzögerung fehlschlägt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- rust
- Bereich
- databases
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Aktiv
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 65/100