You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
`dcutr/server` is the only protocol handler outside tests / examples
that raises exceptions. The only caller of this handler is defined in
`MultStreamSelect.handle`, which has a surrounding `except` block that
catches `CatchableError`.
When the handler raises a non-`CancelledError` the flow is:
1. `await protocolHolder.protocol.handler(conn, ms)`
2. The `finally` block after it
3. The `return`, both in successful and in exception case
4. The outer `except CatchableError as exc:`, it logs and discards `exc`
5. The outer `finally`: `await conn.close()`
6. `Stopped multistream handler` log, both in successful and exc case.
By changing `dcutr/server` to only log but not also raise, difference
is that the outer `except CatchableError` in step (4) is skipped.
As that is a redundant log anyway (`dcutr/server` already logs), it
should be fine to not raise. That's in line with all the other protocol
handlers (besides tests / examples) and opens up limiting `{.raises.}`
annotation for handlers to just `[CancelledError]`.
0 commit comments