TcpTransport.reset_input_buffer can spin forever if data keeps arriving -> bound iterations/time.
TcpTransport.read swallows ALL OSError as timeout, so a dead connection is undetectable -> distinguish real errors.
BleTransport leaks the connected client + event-loop thread on connect timeout / close failure; notification buffer grows unbounded -> cleanup on timeout + cap buffer.
From the review. `obdcore/transport.py`:
- `TcpTransport.reset_input_buffer` can spin forever if data keeps arriving -> bound iterations/time.
- `TcpTransport.read` swallows ALL `OSError` as timeout, so a dead connection is undetectable -> distinguish real errors.
- `BleTransport` leaks the connected client + event-loop thread on connect timeout / close failure; notification buffer grows unbounded -> cleanup on timeout + cap buffer.
claude
added the bugP2 labels 2026-07-01 19:22:47 -04:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
From the review.
obdcore/transport.py:TcpTransport.reset_input_buffercan spin forever if data keeps arriving -> bound iterations/time.TcpTransport.readswallows ALLOSErroras timeout, so a dead connection is undetectable -> distinguish real errors.BleTransportleaks the connected client + event-loop thread on connect timeout / close failure; notification buffer grows unbounded -> cleanup on timeout + cap buffer.