Skip to content

[Bug] tdl never recoveres from context canceled exception. #854

@tdlbugreport

Description

@tdlbugreport

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/td@v0.110.1/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/core@v0.18.3/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/core@v0.18.3/middlewares/retry/retry.go:42\n - invoke pool:\n github.com/gotd/td/pool.(*DC).Invoke\n github.com/gotd/td@v0.110.1/pool/pool.go:259\n - rpcDoRequest:\n github.com/gotd/td/mtproto.(*Conn).Invoke\n github.com/gotd/td@v0.110.1/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

  1. Get QoS'd from TG server (approx 300kb/s), use --reconnect-timeout 0 for download parameter.
  2. Wait for context canceled to happen, in my case i was trying to download huge files (300 fragmented 1GB files)
  3. 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

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions