Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug] panic: unaligned 64-bit atomic operation on 32-bit machine #694

Closed
YELLOWENTOURAGE opened this issue Aug 7, 2024 · 4 comments
Closed
Assignees
Labels
bug Something isn't working

Comments

@YELLOWENTOURAGE
Copy link

YELLOWENTOURAGE commented Aug 7, 2024

Describe the bug

panic: unaligned 64-bit atomic operation on 32-bit machine on download since v0.17.3

Probably a gotd upstream bug introduced here since v0.103.0:
https:/gotd/td/blame/8b6a924ac78c277b58d22f32f4b7f3897d068299/telegram/client.go#L92

Not the first time breaking - see also:
#14

To Reproduce

  1. tdl download ... on 32-bit machine (e.g. armv7)
  2. Panic

Expected behavior

Proceed with download

Version

Version: 0.17.3
Commit: 6c382b8
Date: 2024-07-07T10:59:56Z

go1.21.11 linux/arm

Which OS are you running tdl on?

Linux

Additional context

Log from v0.17.3 on linux/armv7

panic: unaligned 64-bit atomic operation

goroutine 12 [running]:
runtime/internal/atomic.panicUnaligned()
	runtime/internal/atomic/unaligned.go:8 +0x24
runtime/internal/atomic.Xadd64(0x3102a84, 0x1)
	runtime/internal/atomic/atomic_arm.s:258 +0x14
go.uber.org/atomic.(*Int64).Add(...)
	go.uber.org/[email protected]/int64.go:50
go.uber.org/atomic.(*Int64).Inc(...)
	go.uber.org/[email protected]/int64.go:60
github.com/gotd/td/telegram.(*Client).Pool.func1()
	github.com/gotd/[email protected]/telegram/pool.go:47 +0x3c
github.com/gotd/td/pool.(*DC).createConnection(0x31a84e0, 0x1)
	github.com/gotd/[email protected]/pool/pool.go:72 +0x20
github.com/gotd/td/pool.(*DC).acquire(0x31a84e0, {0x16806f0, 0x31aeb28})
	github.com/gotd/[email protected]/pool/pool.go:181 +0x1f4
github.com/gotd/td/pool.(*DC).Invoke(0x31a84e0, {0x16806f0, 0x31aeb28}, {0x167be3c, 0x31fa530}, {0x1679024, 0x31e83a8})
	github.com/gotd/[email protected]/pool/pool.go:246 +0x74
github.com/gotd/contrib/middleware/floodwait.(*SimpleWaiter).Handle.func1({0x16806f0, 0x31aeb28}, {0x167be3c, 0x31fa530}, {0x1679024, 0x31e83a8})
	github.com/gotd/[email protected]/middleware/floodwait/simple_waiter.go:77 +0x98
github.com/gotd/td/telegram.InvokeFunc.Invoke(0x31fa440, {0x16806f0, 0x31aeb28}, {0x167be3c, 0x31fa530}, {0x1679024, 0x31e83a8})
	github.com/gotd/[email protected]/telegram/middleware.go:15 +0x4c
github.com/iyear/tdl/core/middlewares/retry.(*retry).Handle.retry.Handle.func1({0x16806f0, 0x31aeb28}, {0x167be3c, 0x31fa530}, {0x1679024, 0x31e83a8})
	github.com/iyear/tdl/[email protected]/middlewares/retry/retry.go:36 +0xe8
github.com/gotd/td/telegram.InvokeFunc.Invoke(0x3187d60, {0x16806f0, 0x31aeb28}, {0x167be3c, 0x31fa530}, {0x1679024, 0x31e83a8})
	github.com/gotd/[email protected]/telegram/middleware.go:15 +0x4c
github.com/iyear/tdl/core/middlewares/recovery.(*recovery).Handle.func1.1()
	github.com/iyear/tdl/[email protected]/middlewares/recovery/recovery.go:35 +0x5c
github.com/cenkalti/backoff/v4.RetryNotifyWithTimer.Operation.withEmptyData.func1()
	github.com/cenkalti/backoff/[email protected]/retry.go:18 +0x1c
github.com/cenkalti/backoff/v4.doRetryNotify[...](0x310d664, {0x167e528, 0x31a8480}, 0x310d69c, {0x0, 0x0})
	github.com/cenkalti/backoff/[email protected]/retry.go:88 +0xe8
github.com/cenkalti/backoff/v4.RetryNotifyWithTimer(0x310d6a4, {0x167e528, 0x31a8480}, 0x310d69c, {0x0, 0x0})
	github.com/cenkalti/backoff/[email protected]/retry.go:61 +0x6c
github.com/cenkalti/backoff/v4.RetryNotify(...)
	github.com/cenkalti/backoff/[email protected]/retry.go:49
github.com/iyear/tdl/core/middlewares/recovery.(*recovery).Handle.func1({0x16806f0, 0x31aeb28}, {0x167be3c, 0x31fa530}, {0x1679024, 0x31e83a8})
	github.com/iyear/tdl/[email protected]/middlewares/recovery/recovery.go:34 +0xec
github.com/gotd/td/telegram.InvokeFunc.Invoke(0x31fa450, {0x16806f0, 0x31aeb28}, {0x167be3c, 0x31fa530}, {0x1679024, 0x31e83a8})
	github.com/gotd/[email protected]/telegram/middleware.go:15 +0x4c
github.com/gotd/td/tg.(*Client).ChannelsGetChannels(0x31e82e8, {0x16806f0, 0x31aeb28}, {0x31e83a0, 0x1, 0x1})
	github.com/gotd/[email protected]/tg/tl_channels_get_channels_gen.go:211 +0xc0
github.com/gotd/td/telegram/peers.(*Manager).updateChannel(0x3226300, {0x16806f0, 0x31aeb28}, {0x168b030, 0x323a020})
	github.com/gotd/[email protected]/telegram/peers/query.go:162 +0x80
github.com/gotd/td/telegram/peers.(*Manager).getChannel(0x3226300, {0x16806f0, 0x31aeb28}, {0x168b030, 0x323a020})
	github.com/gotd/[email protected]/telegram/peers/query.go:157 +0x284
github.com/gotd/td/telegram/peers.(*Manager).GetChannel(0x3226300, {0x16806f0, 0x31aeb28}, {0x168b030, 0x323a020})
	github.com/gotd/[email protected]/telegram/peers/channel.go:29 +0x3c
github.com/gotd/td/telegram/peers.(*Manager).ResolveChannelID(0x3226300, {0x16806f0, 0x31aeb28}, 0x64a4b417)
	github.com/gotd/[email protected]/telegram/peers/id.go:64 +0xd4
github.com/iyear/tdl/core/util/tutil.GetInputPeer({0x16806f0, 0x31aeb28}, 0x3226300, {0x3163f70, 0xa})
	github.com/iyear/tdl/[email protected]/util/tutil/tutil.go:104 +0xfc
github.com/iyear/tdl/pkg/tmessage.getChatInfo({0x16806f0, 0x31aeb28}, 0x31e82e8, {0x167f9b0, 0x300d960}, {0x1677d84, 0x31e82f0})
	github.com/iyear/tdl/pkg/tmessage/files.go:146 +0x23c
github.com/iyear/tdl/pkg/tmessage.parseFile({0x16806f0, 0x31aeb28}, 0x31e82e8, {0x167f9b0, 0x300d960}, {0x315ab40, 0x27}, 0x1)
	github.com/iyear/tdl/pkg/tmessage/files.go:68 +0xec
github.com/iyear/tdl/app/dl.Run.FromFile.func3()
	github.com/iyear/tdl/pkg/tmessage/files.go:44 +0x138
github.com/iyear/tdl/pkg/tmessage.Parse(...)
	github.com/iyear/tdl/pkg/tmessage/tmessage.go:15
github.com/iyear/tdl/app/dl.collectDialogs({0x310dc6c, 0x2, 0x2})
	github.com/iyear/tdl/app/dl/dl.go:132 +0x7c
github.com/iyear/tdl/app/dl.Run({0x16806f0, 0x31aeb28}, 0x3102840, {0x167f9b0, 0x300d960}, {{0xbe803dd4, 0xe}, 0x0, 0x1, {0xbe803d78, ...}, ...})
	github.com/iyear/tdl/app/dl/dl.go:65 +0x3a4
github.com/iyear/tdl/cmd.NewDownload.func1.1({0x1680710, 0x30f0e40}, 0x3102840, {0x167f9b0, 0x300d960})
	github.com/iyear/tdl/cmd/dl.go:33 +0x74
github.com/iyear/tdl/cmd.tRun.func1({0x1680710, 0x30f0e40})
	github.com/iyear/tdl/cmd/root.go:163 +0x48
github.com/iyear/tdl/cmd.tRun.RunWithAuth.func2({0x1680710, 0x30f0e40})
	github.com/iyear/tdl/[email protected]/tclient/tclient.go:120 +0x78
github.com/gotd/td/telegram.(*Client).Run.func3({0x1680710, 0x30f0e40})
	github.com/gotd/[email protected]/telegram/connect.go:150 +0xd0
github.com/gotd/td/telegram.(*Client).Run.(*CancellableGroup).Go.func6()
	github.com/gotd/[email protected]/tdsync/cancel_group.go:48 +0x34
golang.org/x/sync/errgroup.(*Group).Go.func1()
	golang.org/x/[email protected]/errgroup/errgroup.go:78 +0x60
created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 1
	golang.org/x/[email protected]/errgroup/errgroup.go:75 +0xa0
@YELLOWENTOURAGE YELLOWENTOURAGE added the bug Something isn't working label Aug 7, 2024
@facundobianco
Copy link

I got the same error on the Odroid-XU4 (ARM7) with DietPi (Raspbian-like).

I downgraded to the previous version (0.17.2), and it works like a charm!

@iyear
Copy link
Owner

iyear commented Sep 17, 2024

I submitted gotd/td#1442 to try to fix this issue.

@ernado
Copy link
Contributor

ernado commented Sep 17, 2024

I've tagged gotd v0.110.1 with fix from submitted PR, thank you

@iyear
Copy link
Owner

iyear commented Oct 3, 2024

Try v0.17.5

@iyear iyear closed this as completed Oct 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

4 participants