[Bug] tdl never recoveres from context canceled exception.
Describe the bug
title says it all. --reconnect-timeout 0 doesn't helps recovering from this fatal state.
2025-01-17 09:04:36 DEBUG td.pool pool/pool.go:258 DC Invoke failed {"v": "v0.110.1", "dc_id": 1, "error": "rpcDoRequest: context canceled", "errorVerbose": "rpcDoRequest:\n github.com/gotd/td/mtproto.(*Conn).Invoke\n github.com/gotd/[email protected]/mtproto/rpc.go:44\n - context canceled"} 2025-01-17 09:04:36 DEBUG dl recovery/recovery.go:45 Wait for connection recovery {"error": "recover: retry middleware skip: invoke pool: rpcDoRequest: context canceled", "errorVerbose": "recover:\n github.com/iyear/tdl/core/middlewares/recovery.(*recovery).Handle.func1.1\n github.com/iyear/tdl/[email protected]/middlewares/recovery/recovery.go:37\n - retry middleware skip:\n github.com/iyear/tdl/core/middlewares/retry.(*retry).Handle.retry.Handle.func1\n github.com/iyear/tdl/[email protected]/middlewares/retry/retry.go:42\n - invoke pool:\n github.com/gotd/td/pool.(*DC).Invoke\n github.com/gotd/[email protected]/pool/pool.go:259\n - rpcDoRequest:\n github.com/gotd/td/mtproto.(*Conn).Invoke\n github.com/gotd/[email protected]/mtproto/rpc.go:44\n - context canceled", "duration": "5.770392211s"}
it doesn't actually recovers from this state, stuck forever on context canceled as infinite looping such logs.
To Reproduce
- Get QoS'd from TG server (approx 300kb/s), use --reconnect-timeout 0 for download parameter.
- Wait for context canceled to happen, in my case i was trying to download huge files (300 fragmented 1GB files)
- Watch download state never recovers once it happens.
Expected behavior
Recover the connection.
Version
Version: 0.18.3 Commit: 3cac28d Date: 2024-11-29T08:24:07Z
go1.21.13 windows/amd64
Which OS are you running tdl on?
Windows
Additional context
No response