The GitHub Actions job "CI" on 
iotdb-client-rust.git/fix/pool-timeouts-and-lifecycle has failed.
Run started by GitHub user CritasWang (triggered by CritasWang).

Head commit for run:
13c8e1d0e3af14646517c0ab27c53d5d36bdcf29 / CritasWang <[email protected]>
Fix socket timeouts, connection lifecycle and session pool accounting

- Bound every blocking socket read/write after the TCP handshake with a
  new socket_timeout (SO_RCVTIMEO/SO_SNDTIMEO via socket2), applied
  before the TLS handshake: RPC reads, drop-time closeSession and the
  TLS handshake can no longer block forever; SO_KEEPALIVE is enabled.
  connect_timeout is now one total budget per endpoint across all
  resolved addresses.
- Fail over at the handshake level in Session::open (connect +
  openSession + requestStatementId), mirroring reconnect().
- Mark a connection broken on transport-level failures so is_open()
  stops lying; pools discard the session instead of handing it out
  again, and fetch_results (which cannot be retried) also marks it.
- SessionPool: spend the acquire_timeout budget on growth/hand-out
  failures instead of failing instantly, decrement live under the state
  lock (no lost Condvar wakeups), wake waiters from close() before the
  blocking closeSession calls, and treat acquire_timeout=Duration::MAX
  as "wait without deadline" instead of panicking.
- Skip the reconnect pacing sleeps for pooled sessions so a pool slot
  is not held for the full reconnect walk.
- Redirect: normalize endpoint matching (case/brackets/loopback),
  prefer the newest hint when idle sessions hold conflicting hints
  (process-wide insertion seq), make cache TTL/capacity configurable,
  and expose TableSessionPool::acquire_for_device.
- Add regression tests using silent/fake listeners for every fix above.

Closes #4, closes #5, closes #6, closes #7, closes #8, closes #9, closes #10.

Report URL: https://github.com/apache/iotdb-client-rust/actions/runs/32833924359

With regards,
GitHub Actions via GitBox

Reply via email to