mirror of
https://github.com/devgianlu/go-librespot.git
synced 2026-04-27 05:45:49 +03:00
[GH-ISSUE #196] did not receive last pong from dealer when using PULSE #128
Labels
No labels
bug
enhancement
pull-request
spotify-side
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/go-librespot#128
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @JaragonCR on GitHub (Aug 20, 2025).
Original GitHub issue: https://github.com/devgianlu/go-librespot/issues/196
When using native pulse the pongs keep failing, moved to ALSA with an ALSA bridge and it works fine.
Alsa Bridge
RUN curl -skL https://raw.githubusercontent.com/balena-io-experimental/audio/master/scripts/alsa-bridge/alpine-setup.sh | sh
Generated config:
log_level: info
device_name: Pergola-test
device_type: speaker
audio_backend: pulseaudio
bitrate: 320
normalisation_disabled: true
credentials:
type: "zeroconf"
INFO[0000] running go-librespot
b39e5e50INFO[0000] zeroconf server listening on port 51377
INFO[0021] authenticated AP username="22pq"
INFO[0021] authenticated Login5 username="22pq"
INFO[0021] accepted zeroconf from Jorge's S24 Ultra username="22*********************pq"
ERRO[0112] did not receive last pong from dealer, 60s passed
ERRO[0142] did not receive last pong from dealer, 90s passed
SIGABRT: abort
PC=0x408d40 m=0 sigcode=0
goroutine 0 gp=0x10d1f20 m=0 mp=0x10d2560 [idle]:
runtime/internal/syscall.Syscall6(0x16, 0x4, 0x7fefb61e98, 0x80, 0xc79, 0x0, 0x0)
/usr/local/go/src/runtime/internal/syscall/asm_linux_arm64.s:17 +0x20 fp=0x7fefb61dd0 sp=0x7fefb61dd0 pc=0x408d40
runtime/internal/syscall.EpollWait(0x0?, {0x7fefb61e98?, 0x7fefb61e78?, 0x43b5a0?}, 0x0?, 0x0?)
/usr/local/go/src/runtime/internal/syscall/syscall_linux.go:55 +0x58 fp=0x7fefb61e40 sp=0x7fefb61dd0 pc=0x408c78
runtime.netpoll(0xbe604640)
/usr/local/go/src/runtime/netpoll_epoll.go:118 +0xf4 fp=0x7fefb626d0 sp=0x7fefb61e40 pc=0x43b414
runtime.findRunnable()
/usr/local/go/src/runtime/proc.go:3470 +0x9ec fp=0x7fefb62840 sp=0x7fefb626d0 pc=0x447ecc
runtime.schedule()
/usr/local/go/src/runtime/proc.go:3868 +0x98 fp=0x7fefb62880 sp=0x7fefb62840 pc=0x4498f8
runtime.park_m(0x40003b41c0)
/usr/local/go/src/runtime/proc.go:4036 +0x240 fp=0x7fefb628e0 sp=0x7fefb62880 pc=0x449f90
runtime.mcall()
/usr/local/go/src/runtime/asm_arm64.s:192 +0x54 fp=0x7fefb628f0 sp=0x7fefb628e0 pc=0x472cd4
goroutine 1 gp=0x40000021c0 m=nil [select, 2 minutes]:
runtime.gopark(0x4000047cb0?, 0x2?, 0x48?, 0x7b?, 0x4000047c4c?)
/usr/local/go/src/runtime/proc.go:402 +0xc8 fp=0x4000249ae0 sp=0x4000249ac0 pc=0x4418a8
runtime.selectgo(0x4000249cb0, 0x4000047c48, 0x40003aa1e0?, 0x0, 0x1d8?, 0x1)
/usr/local/go/src/runtime/select.go:327 +0x614 fp=0x4000249bf0 sp=0x4000249ae0 pc=0x454294
github.com/devgianlu/go-librespot/zeroconf.(*Zeroconf).Serve(0x4000579e00, 0x4000249dc8)
/go-librespot/zeroconf/zeroconf.go:283 +0x1f4 fp=0x4000249d40 sp=0x4000249bf0 pc=0x8c6af4
main.(*App).withAppPlayer(0x400033a000, {0xc11378, 0x11387e0}, 0x4000338130)
/go-librespot/cmd/daemon/main.go:321 +0x450 fp=0x4000249e50 sp=0x4000249d40 pc=0x94db10
main.(*App).Zeroconf(...)
/go-librespot/cmd/daemon/main.go:170
main.main()
/go-librespot/cmd/daemon/main.go:548 +0x410 fp=0x4000249f40 sp=0x4000249e50 pc=0x94f660
runtime.main()
/usr/local/go/src/runtime/proc.go:271 +0x28c fp=0x4000249fd0 sp=0x4000249f40 pc=0x44147c
runtime.goexit({})
/usr/local/go/src/runtime/asm_arm64.s:1222 +0x4 fp=0x4000249fd0 sp=0x4000249fd0 pc=0x475214
goroutine 2 gp=0x4000002c40 m=nil [force gc (idle), 2 minutes]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
/usr/local/go/src/runtime/proc.go:402 +0xc8 fp=0x4000060f90 sp=0x4000060f70 pc=0x4418a8
runtime.goparkunlock(...)
/usr/local/go/src/runtime/proc.go:408
runtime.forcegchelper()
/usr/local/go/src/runtime/proc.go:326 +0xb8 fp=0x4000060fd0 sp=0x4000060f90 pc=0x441738
runtime.goexit({})
/usr/local/go/src/runtime/asm_arm64.s:1222 +0x4 fp=0x4000060fd0 sp=0x4000060fd0 pc=0x475214
created by runtime.init.6 in goroutine 1
/usr/local/go/src/runtime/proc.go:314 +0x24
goroutine 18 gp=0x4000102380 m=nil [GC sweep wait]:
runtime.gopark(0x1?, 0x0?, 0x0?, 0x0?, 0x0?)
/usr/local/go/src/runtime/proc.go:402 +0xc8 fp=0x400005c760 sp=0x400005c740 pc=0x4418a8
runtime.goparkunlock(...)
/usr/local/go/src/runtime/proc.go:408
runtime.bgsweep(0x400010e000)
/usr/local/go/src/runtime/mgcsweep.go:318 +0x108 fp=0x400005c7b0 sp=0x400005c760 pc=0x42cda8
runtime.gcenable.gowrap1()
/usr/local/go/src/runtime/mgc.go:203 +0x28 fp=0x400005c7d0 sp=0x400005c7b0 pc=0x420f58
runtime.goexit({})
/usr/local/go/src/runtime/asm_arm64.s:1222 +0x4 fp=0x400005c7d0 sp=0x400005c7d0 pc=0x475214
created by runtime.gcenable in goroutine 1
/usr/local/go/src/runtime/mgc.go:203 +0x6c
goroutine 19 gp=0x4000102540 m=nil [GC scavenge wait]:
runtime.gopark(0x88da1f?, 0x12aa861c?, 0x0?, 0x0?, 0x0?)
/usr/local/go/src/runtime/proc.go:402 +0xc8 fp=0x400005cf60 sp=0x400005cf40 pc=0x4418a8
runtime.goparkunlock(...)
/usr/local/go/src/runtime/proc.go:408
runtime.(*scavengerState).park(0x10d1a00)
/usr/local/go/src/runtime/mgcscavenge.go:425 +0x5c fp=0x400005cf90 sp=0x400005cf60 pc=0x42a73c
runtime.bgscavenge(0x400010e000)
/usr/local/go/src/runtime/mgcscavenge.go:658 +0xac fp=0x400005cfb0 sp=0x400005cf90 pc=0x42acec
runtime.gcenable.gowrap2()
/usr/local/go/src/runtime/mgc.go:204 +0x28 fp=0x400005cfd0 sp=0x400005cfb0 pc=0x420ef8
runtime.goexit({})
/usr/local/go/src/runtime/asm_arm64.s:1222 +0x4 fp=0x400005cfd0 sp=0x400005cfd0 pc=0x475214
created by runtime.gcenable in goroutine 1
/usr/local/go/src/runtime/mgc.go:204 +0xac
goroutine 20 gp=0x4000102a80 m=nil [finalizer wait]:
runtime.gopark(0x0?, 0x4002310a30?, 0x70?, 0x60?, 0x1000000010?)
/usr/local/go/src/runtime/proc.go:402 +0xc8 fp=0x4000436d80 sp=0x4000436d60 pc=0x4418a8
runtime.runfinq()
/usr/local/go/src/runtime/mfinal.go:194 +0x108 fp=0x4000436fd0 sp=0x4000436d80 pc=0x420028
runtime.goexit({})
/usr/local/go/src/runtime/asm_arm64.s:1222 +0x4 fp=0x4000436fd0 sp=0x4000436fd0 pc=0x475214
created by runtime.createfing in goroutine 1
/usr/local/go/src/runtime/mfinal.go:164 +0x80
goroutine 100 gp=0x400028f340 m=nil [select]:
runtime.gopark(0x400033f788?, 0x2?, 0x58?, 0xf6?, 0x400033f754?)
/usr/local/go/src/runtime/proc.go:402 +0xc8 fp=0x400033f600 sp=0x400033f5e0 pc=0x4418a8
runtime.selectgo(0x400033f788, 0x400033f750, 0x10d1860?, 0x0, 0x0?, 0x1)
/usr/local/go/src/runtime/select.go:327 +0x614 fp=0x400033f710 sp=0x400033f600 pc=0x454294
github.com/devgianlu/go-librespot/ap.(*Accesspoint).pongAckTicker(0x400045c000)
/go-librespot/ap/ap.go:355 +0x74 fp=0x400033f7b0 sp=0x400033f710 pc=0x7d4634
github.com/devgianlu/go-librespot/ap.(*Accesspoint).startReceiving.func1.gowrap2()
/go-librespot/ap/ap.go:264 +0x28 fp=0x400033f7d0 sp=0x400033f7b0 pc=0x7d3ce8
runtime.goexit({})
/usr/local/go/src/runtime/asm_arm64.s:1222 +0x4 fp=0x400033f7d0 sp=0x400033f7d0 pc=0x475214
created by github.com/devgianlu/go-librespot/ap.(*Accesspoint).startReceiving.func1 in goroutine 66
/go-librespot/ap/ap.go:264 +0x108
goroutine 3 gp=0x400028f880 m=nil [GC worker (idle)]:
runtime.gopark(0x38a718243bf8?, 0x3?, 0xa9?, 0x65?, 0x0?)
/usr/local/go/src/runtime/proc.go:402 +0xc8 fp=0x4000340f30 sp=0x4000340f10 pc=0x4418a8
runtime.gcBgMarkWorker()
/usr/local/go/src/runtime/mgc.go:1310 +0xd8 fp=0x4000340fd0 sp=0x4000340f30 pc=0x423058
runtime.goexit({})
/usr/local/go/src/runtime/asm_arm64.s:1222 +0x4 fp=0x4000340fd0 sp=0x4000340fd0 pc=0x475214
created by runtime.gcBgMarkStartWorkers in goroutine 40
/usr/local/go/src/runtime/mgc.go:1234 +0x28
goroutine 42 gp=0x40003b5340 m=nil [GC worker (idle)]:
runtime.gopark(0x38a7183004a4?, 0x1?, 0x6?, 0x18?, 0x0?)
/usr/local/go/src/runtime/proc.go:402 +0xc8 fp=0x4000341730 sp=0x4000341710 pc=0x4418a8
runtime.gcBgMarkWorker()
/usr/local/go/src/runtime/mgc.go:1310 +0xd8 fp=0x40003417d0 sp=0x4000341730 pc=0x423058
runtime.goexit({})
/usr/local/go/src/runtime/asm_arm64.s:1222 +0x4 fp=0x40003417d0 sp=0x40003417d0 pc=0x475214
created by runtime.gcBgMarkStartWorkers in goroutine 40
/usr/local/go/src/runtime/mgc.go:1234 +0x28
goroutine 43 gp=0x40003b5500 m=nil [GC worker (idle), 1 minutes]:
runtime.gopark(0x38a718240f1f?, 0x3?, 0x1c?, 0x6e?, 0x0?)
/usr/local/go/src/runtime/proc.go:402 +0xc8 fp=0x4000341f30 sp=0x4000341f10 pc=0x4418a8
runtime.gcBgMarkWorker()
/usr/local/go/src/runtime/mgc.go:1310 +0xd8 fp=0x4000341fd0 sp=0x4000341f30 pc=0x423058
runtime.goexit({})
/usr/local/go/src/runtime/asm_arm64.s:1222 +0x4 fp=0x4000341fd0 sp=0x4000341fd0 pc=0x475214
created by runtime.gcBgMarkStartWorkers in goroutine 40
/usr/local/go/src/runtime/mgc.go:1234 +0x28
goroutine 4 gp=0x4000003500 m=nil [GC worker (idle)]:
runtime.gopark(0x38a7182403d6?, 0x3?, 0x91?, 0x5e?, 0x40003049a0?)
/usr/local/go/src/runtime/proc.go:402 +0xc8 fp=0x4000340730 sp=0x4000340710 pc=0x4418a8
runtime.gcBgMarkWorker()
/usr/local/go/src/runtime/mgc.go:1310 +0xd8 fp=0x40003407d0 sp=0x4000340730 pc=0x423058
runtime.goexit({})
/usr/local/go/src/runtime/asm_arm64.s:1222 +0x4 fp=0x40003407d0 sp=0x40003407d0 pc=0x475214
created by runtime.gcBgMarkStartWorkers in goroutine 40
/usr/local/go/src/runtime/mgc.go:1234 +0x28
goroutine 26 gp=0x40001db6c0 m=nil [chan receive, 2 minutes]:
runtime.gopark(0x60?, 0x7f9e317f18?, 0x60?, 0x0?, 0x4000067808?)
/usr/local/go/src/runtime/proc.go:402 +0xc8 fp=0x4000063670 sp=0x4000063650 pc=0x4418a8
runtime.chanrecv(0x40001180c0, 0x4000063790, 0x1)
/usr/local/go/src/runtime/chan.go:583 +0x404 fp=0x40000636f0 sp=0x4000063670 pc=0x40d234
runtime.chanrecv2(0x0?, 0x0?)
/usr/local/go/src/runtime/chan.go:447 +0x14 fp=0x4000063720 sp=0x40000636f0 pc=0x40ce14
main.(*App).withAppPlayer.func1()
/go-librespot/cmd/daemon/main.go:268 +0x60 fp=0x40000637d0 sp=0x4000063720 pc=0x94e510
runtime.goexit({})
/usr/local/go/src/runtime/asm_arm64.s:1222 +0x4 fp=0x40000637d0 sp=0x40000637d0 pc=0x475214
created by main.(*App).withAppPlayer in goroutine 1
/go-librespot/cmd/daemon/main.go:265 +0x36c
goroutine 27 gp=0x40001dbc00 m=nil [chan receive, 2 minutes]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
/usr/local/go/src/runtime/proc.go:402 +0xc8 fp=0x4000063e60 sp=0x4000063e40 pc=0x4418a8
runtime.chanrecv(0x40003241e0, 0x4000063fb0, 0x1)
/usr/local/go/src/runtime/chan.go:583 +0x404 fp=0x4000063ee0 sp=0x4000063e60 pc=0x40d234
runtime.chanrecv2(0x0?, 0x0?)
/usr/local/go/src/runtime/chan.go:447 +0x14 fp=0x4000063f10 sp=0x4000063ee0 pc=0x40ce14
main.(*App).withAppPlayer.func2()
/go-librespot/cmd/daemon/main.go:284 +0x6c fp=0x4000063fd0 sp=0x4000063f10 pc=0x94e19c
runtime.goexit({})
/usr/local/go/src/runtime/asm_arm64.s:1222 +0x4 fp=0x4000063fd0 sp=0x4000063fd0 pc=0x475214
created by main.(*App).withAppPlayer in goroutine 1
/go-librespot/cmd/daemon/main.go:281 +0x404
goroutine 28 gp=0x40001dbdc0 m=nil [IO wait]:
runtime.gopark(0x4000071be8?, 0x4e5f70?, 0x0?, 0x0?, 0x400004e008?)
/usr/local/go/src/runtime/proc.go:402 +0xc8 fp=0x4000071ba0 sp=0x4000071b80 pc=0x4418a8
runtime.netpollblock(0x4000071c38?, 0x4e3f84?, 0x0?)
/usr/local/go/src/runtime/netpoll.go:573 +0x158 fp=0x4000071be0 sp=0x4000071ba0 pc=0x43a8e8
internal/poll.runtime_pollWait(0x7f57859e40, 0x72)
/usr/local/go/src/runtime/netpoll.go:345 +0xa0 fp=0x4000071c10 sp=0x4000071be0 pc=0x46f990
internal/poll.(*pollDesc).wait(0x8?, 0x8?, 0x0)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:84 +0x28 fp=0x4000071c40 sp=0x4000071c10 pc=0x4df5e8
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Accept(0x40002de180)
/usr/local/go/src/internal/poll/fd_unix.go:611 +0x250 fp=0x4000071cf0 sp=0x4000071c40 pc=0x4e4070
net.(*netFD).accept(0x40002de180)
/usr/local/go/src/net/fd_unix.go:172 +0x28 fp=0x4000071db0 sp=0x4000071cf0 pc=0x547bd8
net.(*TCPListener).accept(0x40005448c0)
/usr/local/go/src/net/tcpsock_posix.go:159 +0x28 fp=0x4000071de0 sp=0x4000071db0 pc=0x55d968
net.(*TCPListener).Accept(0x40005448c0)
/usr/local/go/src/net/tcpsock.go:327 +0x2c fp=0x4000071e20 sp=0x4000071de0 pc=0x55cb7c
net/http.(*onceCloseListener).Accept(0x40004901b0?)
:1 +0x30 fp=0x4000071e40 sp=0x4000071e20 pc=0x6d13d0
net/http.(*Server).Serve(0x4000092000, {0xc10220, 0x40005448c0})
/usr/local/go/src/net/http/server.go:3260 +0x2a8 fp=0x4000071f70 sp=0x4000071e40 pc=0x6af978
net/http.Serve(...)
/usr/local/go/src/net/http/server.go:2799
github.com/devgianlu/go-librespot/zeroconf.(*Zeroconf).Serve.func2()
/go-librespot/zeroconf/zeroconf.go:280 +0x84 fp=0x4000071fd0 sp=0x4000071f70 pc=0x8c6be4
runtime.goexit({})
/usr/local/go/src/runtime/asm_arm64.s:1222 +0x4 fp=0x4000071fd0 sp=0x4000071fd0 pc=0x475214
created by github.com/devgianlu/go-librespot/zeroconf.(*Zeroconf).Serve in goroutine 1
/go-librespot/zeroconf/zeroconf.go:280 +0x138
goroutine 44 gp=0x40003b4000 m=nil [IO wait]:
runtime.gopark(0x50?, 0x4001d67638?, 0x58?, 0xad?, 0x413f30?)
/usr/local/go/src/runtime/proc.go:402 +0xc8 fp=0x40001aace0 sp=0x40001aacc0 pc=0x4418a8
runtime.netpollblock(0xb0434b?, 0x3?, 0x0?)
/usr/local/go/src/runtime/netpoll.go:573 +0x158 fp=0x40001aad20 sp=0x40001aace0 pc=0x43a8e8
internal/poll.runtime_pollWait(0x7f57859c50, 0x72)
/usr/local/go/src/runtime/netpoll.go:345 +0xa0 fp=0x40001aad50 sp=0x40001aad20 pc=0x46f990
internal/poll.(*pollDesc).wait(0x40002df000?, 0x413a08?, 0x0)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:84 +0x28 fp=0x40001aad80 sp=0x40001aad50 pc=0x4df5e8
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).RawRead(0x40002df000, 0x4000bff720)
/usr/local/go/src/internal/poll/fd_unix.go:708 +0x130 fp=0x40001aade0 sp=0x40001aad80 pc=0x4e4d40
net.(*rawConn).Read(0x4000122070, 0x0?)
/usr/local/go/src/net/rawconn.go:44 +0x30 fp=0x40001aae20 sp=0x40001aade0 pc=0x558910
golang.org/x/net/internal/socket.(*Conn).recvMsg(0x4000544c40, 0x4001d8a6c0, 0x0)
/go/pkg/mod/golang.org/x/net@v0.26.0/internal/socket/rawconn_msg.go:27 +0x138 fp=0x40001aae80 sp=0x40001aae20 pc=0x86b208
golang.org/x/net/internal/socket.(*Conn).RecvMsg(...)
/go/pkg/mod/golang.org/x/net@v0.26.0/internal/socket/socket.go:247
golang.org/x/net/ipv4.(*payloadHandler).ReadFrom(0x40005775a0, {0x400034e000, 0x10000, 0x10000})
/go/pkg/mod/golang.org/x/net@v0.26.0/ipv4/payload_cmsg.go:31 +0x468 fp=0x40001aaf30 sp=0x40001aae80 pc=0x86f028
github.com/grandcat/zeroconf.(*Server).recv4(0x400055dce0, 0x4000577590)
/go/pkg/mod/github.com/grandcat/zeroconf@v1.0.0/server.go:254 +0xc4 fp=0x40001aafb0 sp=0x40001aaf30 pc=0x8c2464
github.com/grandcat/zeroconf.(*Server).mainloop.gowrap1()
/go/pkg/mod/github.com/grandcat/zeroconf@v1.0.0/server.go:188 +0x2c fp=0x40001aafd0 sp=0x40001aafb0 pc=0x8c20ac
runtime.goexit({})
/usr/local/go/src/runtime/asm_arm64.s:1222 +0x4 fp=0x40001aafd0 sp=0x40001aafd0 pc=0x475214
created by github.com/grandcat/zeroconf.(*Server).mainloop in goroutine 24
/go/pkg/mod/github.com/grandcat/zeroconf@v1.0.0/server.go:188 +0x78
goroutine 45 gp=0x40003b41c0 m=nil [IO wait]:
runtime.gopark(0x50?, 0x4001d67680?, 0x8?, 0x6d?, 0x413f30?)
/usr/local/go/src/runtime/proc.go:402 +0xc8 fp=0x40001a6c90 sp=0x40001a6c70 pc=0x4418a8
runtime.netpollblock(0xb0434b?, 0x3?, 0x0?)
/usr/local/go/src/runtime/netpoll.go:573 +0x158 fp=0x40001a6cd0 sp=0x40001a6c90 pc=0x43a8e8
internal/poll.runtime_pollWait(0x7f57859b58, 0x72)
/usr/local/go/src/runtime/netpoll.go:345 +0xa0 fp=0x40001a6d00 sp=0x40001a6cd0 pc=0x46f990
internal/poll.(*pollDesc).wait(0x40002df080?, 0x413a08?, 0x0)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:84 +0x28 fp=0x40001a6d30 sp=0x40001a6d00 pc=0x4df5e8
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).RawRead(0x40002df080, 0x4000bff770)
/usr/local/go/src/internal/poll/fd_unix.go:708 +0x130 fp=0x40001a6d90 sp=0x40001a6d30 pc=0x4e4d40
net.(*rawConn).Read(0x4000122080, 0x0?)
/usr/local/go/src/net/rawconn.go:44 +0x30 fp=0x40001a6dd0 sp=0x40001a6d90 pc=0x558910
golang.org/x/net/internal/socket.(*Conn).recvMsg(0x4000544c60, 0x4001d8a720, 0x0)
/go/pkg/mod/golang.org/x/net@v0.26.0/internal/socket/rawconn_msg.go:27 +0x138 fp=0x40001a6e30 sp=0x40001a6dd0 pc=0x86b208
golang.org/x/net/internal/socket.(*Conn).RecvMsg(...)
/go/pkg/mod/golang.org/x/net@v0.26.0/internal/socket/socket.go:247
golang.org/x/net/ipv6.(*payloadHandler).ReadFrom(0x40005775f0, {0x4000232000, 0x10000, 0x10000})
/go/pkg/mod/golang.org/x/net@v0.26.0/ipv6/payload_cmsg.go:31 +0x344 fp=0x40001a6f30 sp=0x40001a6e30 pc=0x8725a4
github.com/grandcat/zeroconf.(*Server).recv6(0x400055dce0, 0x40005775e0)
/go/pkg/mod/github.com/grandcat/zeroconf@v1.0.0/server.go:282 +0xc4 fp=0x40001a6fb0 sp=0x40001a6f30 pc=0x8c2624
github.com/grandcat/zeroconf.(*Server).mainloop.gowrap2()
/go/pkg/mod/github.com/grandcat/zeroconf@v1.0.0/server.go:191 +0x2c fp=0x40001a6fd0 sp=0x40001a6fb0 pc=0x8c204c
runtime.goexit({})
/usr/local/go/src/runtime/asm_arm64.s:1222 +0x4 fp=0x40001a6fd0 sp=0x40001a6fd0 pc=0x475214
created by github.com/grandcat/zeroconf.(*Server).mainloop in goroutine 24
/go/pkg/mod/github.com/grandcat/zeroconf@v1.0.0/server.go:191 +0xd8
goroutine 194 gp=0x4000003dc0 m=nil [IO wait]:
runtime.gopark(0x4000402300?, 0x40003b7950?, 0x0?, 0xe7?, 0x95ab3a?)
/usr/local/go/src/runtime/proc.go:402 +0xc8 fp=0x40001a5be0 sp=0x40001a5bc0 pc=0x4418a8
runtime.netpollblock(0x0?, 0xffffffff?, 0xff?)
/usr/local/go/src/runtime/netpoll.go:573 +0x158 fp=0x40001a5c20 sp=0x40001a5be0 pc=0x43a8e8
internal/poll.runtime_pollWait(0x7f5750af08, 0x72)
/usr/local/go/src/runtime/netpoll.go:345 +0xa0 fp=0x40001a5c50 sp=0x40001a5c20 pc=0x46f990
internal/poll.(*pollDesc).wait(0x40005f0700?, 0x4000498000?, 0x0)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:84 +0x28 fp=0x40001a5c80 sp=0x40001a5c50 pc=0x4df5e8
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Read(0x40005f0700, {0x4000498000, 0x1000, 0x1000})
/usr/local/go/src/internal/poll/fd_unix.go:164 +0x200 fp=0x40001a5d20 sp=0x40001a5c80 pc=0x4e0930
net.(*netFD).Read(0x40005f0700, {0x4000498000?, 0x400040c000?, 0x4000460070?})
/usr/local/go/src/net/fd_posix.go:55 +0x28 fp=0x40001a5d70 sp=0x40001a5d20 pc=0x545ff8
net.(*conn).Read(0x40002f40b8, {0x4000498000?, 0x0?, 0x5?})
/usr/local/go/src/net/net.go:185 +0x34 fp=0x40001a5dc0 sp=0x40001a5d70 pc=0x5549f4
net.(*TCPConn).Read(0xc1ba88?, {0x4000498000?, 0x0?, 0x4000492748?})
:1 +0x2c fp=0x40001a5df0 sp=0x40001a5dc0 pc=0x56605c
bufio.(*Reader).Read(0x4000402300, {0x40003b7950, 0x4, 0x4000492748?})
/usr/local/go/src/bufio/bufio.go:241 +0x1b4 fp=0x40001a5e30 sp=0x40001a5df0 pc=0x638af4
io.ReadAtLeast({0xc09580, 0x4000402300}, {0x40003b7950, 0x4, 0x8}, 0x4)
/usr/local/go/src/io/io.go:335 +0xa0 fp=0x40001a5e80 sp=0x40001a5e30 pc=0x4d9a60
io.ReadFull(...)
/usr/local/go/src/io/io.go:354
github.com/jfreymuth/pulse/proto.(*ProtocolReader).uint32(0x40003b7930)
/go/pkg/mod/github.com/jfreymuth/pulse@v0.1.2-0.20241102120944-4ffb35054b53/proto/reader.go:42 +0x3c fp=0x40001a5ec0 sp=0x40001a5e80 pc=0x7df0bc
github.com/jfreymuth/pulse/proto.(*Client).readLoop(0x40003b7930)
/go/pkg/mod/github.com/jfreymuth/pulse@v0.1.2-0.20241102120944-4ffb35054b53/proto/client.go:123 +0x28 fp=0x40001a5fb0 sp=0x40001a5ec0 pc=0x7dcdd8
github.com/jfreymuth/pulse/proto.(*Client).Open.gowrap1()
/go/pkg/mod/github.com/jfreymuth/pulse@v0.1.2-0.20241102120944-4ffb35054b53/proto/client.go:55 +0x28 fp=0x40001a5fd0 sp=0x40001a5fb0 pc=0x7dc638
runtime.goexit({})
/usr/local/go/src/runtime/asm_arm64.s:1222 +0x4 fp=0x40001a5fd0 sp=0x40001a5fd0 pc=0x475214
created by github.com/jfreymuth/pulse/proto.(*Client).Open in goroutine 16
/go/pkg/mod/github.com/jfreymuth/pulse@v0.1.2-0.20241102120944-4ffb35054b53/proto/client.go:55 +0x228
goroutine 99 gp=0x40003b4700 m=nil [IO wait]:
runtime.gopark(0x40001a7aa8?, 0x41c65c?, 0xd8?, 0x7a?, 0x9?)
/usr/local/go/src/runtime/proc.go:402 +0xc8 fp=0x40001a7a60 sp=0x40001a7a40 pc=0x4418a8
runtime.netpollblock(0x0?, 0xffffffff?, 0xff?)
/usr/local/go/src/runtime/netpoll.go:573 +0x158 fp=0x40001a7aa0 sp=0x40001a7a60 pc=0x43a8e8
internal/poll.runtime_pollWait(0x7f57859778, 0x72)
/usr/local/go/src/runtime/netpoll.go:345 +0xa0 fp=0x40001a7ad0 sp=0x40001a7aa0 pc=0x46f990
internal/poll.(*pollDesc).wait(0x4000168580?, 0x4001d358ac?, 0x0)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:84 +0x28 fp=0x40001a7b00 sp=0x40001a7ad0 pc=0x4df5e8
internal/poll.(*pollDesc).waitRead(...)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Read(0x4000168580, {0x4001d358ac, 0x3, 0x3})
/usr/local/go/src/internal/poll/fd_unix.go:164 +0x200 fp=0x40001a7ba0 sp=0x40001a7b00 pc=0x4e0930
net.(*netFD).Read(0x4000168580, {0x4001d358ac?, 0x1000000?, 0x10d2560?})
/usr/local/go/src/net/fd_posix.go:55 +0x28 fp=0x40001a7bf0 sp=0x40001a7ba0 pc=0x545ff8
net.(*conn).Read(0x4000122048, {0x4001d358ac?, 0x40001a7c88?, 0x10d2560?})
/usr/local/go/src/net/net.go:185 +0x34 fp=0x40001a7c40 sp=0x40001a7bf0 pc=0x5549f4
net.(*TCPConn).Read(0x0?, {0x4001d358ac?, 0x40001a7cb8?, 0x7d7074?})
:1 +0x2c fp=0x40001a7c70 sp=0x40001a7c40 pc=0x56605c
io.ReadAtLeast({0xc09220, 0x4000122048}, {0x4001d358ac, 0x3, 0x3}, 0x3)
/usr/local/go/src/io/io.go:335 +0xa0 fp=0x40001a7cc0 sp=0x40001a7c70 pc=0x4d9a60
io.ReadFull(...)
/usr/local/go/src/io/io.go:354
github.com/devgianlu/go-librespot/ap.(*shannonConn).receivePacket(0x40000cb140, {0xc11378, 0x11387e0})
/go-librespot/ap/shannon.go:124 +0x334 fp=0x40001a7e10 sp=0x40001a7cc0 pc=0x7d7094
github.com/devgianlu/go-librespot/ap.(*Accesspoint).recvLoop(0x400045c000)
/go-librespot/ap/ap.go:276 +0x60 fp=0x40001a7fb0 sp=0x40001a7e10 pc=0x7d3de0
github.com/devgianlu/go-librespot/ap.(*Accesspoint).startReceiving.func1.gowrap1()
/go-librespot/ap/ap.go:260 +0x28 fp=0x40001a7fd0 sp=0x40001a7fb0 pc=0x7d3d48
runtime.goexit({})
/usr/local/go/src/runtime/asm_arm64.s:1222 +0x4 fp=0x40001a7fd0 sp=0x40001a7fd0 pc=0x475214
created by github.com/devgianlu/go-librespot/ap.(*Accesspoint).startReceiving.func1 in goroutine 66
/go-librespot/ap/ap.go:260 +0x88
goroutine 16 gp=0x40003b4c40 m=nil [chan receive, 2 minutes]:
runtime.gopark(0x400048f380?, 0x40003ae400?, 0x0?, 0x4?, 0x400?)
/usr/local/go/src/runtime/proc.go:402 +0xc8 fp=0x400152ad30 sp=0x400152ad10 pc=0x4418a8
runtime.chanrecv(0x400003e2a0, 0x0, 0x1)
/usr/local/go/src/runtime/chan.go:583 +0x404 fp=0x400152adb0 sp=0x400152ad30 pc=0x40d234
runtime.chanrecv1(0x40003b7930?, 0xc0c640?)
/usr/local/go/src/runtime/chan.go:442 +0x14 fp=0x400152ade0 sp=0x400152adb0 pc=0x40cdf4
github.com/jfreymuth/pulse.(*PlaybackStream).Start(0x400026e700)
/go/pkg/mod/github.com/jfreymuth/pulse@v0.1.2-0.20241102120944-4ffb35054b53/playback.go:196 +0x100 fp=0x400152ae20 sp=0x400152ade0 pc=0x7e4c30
github.com/devgianlu/go-librespot/output.(*pulseAudioOutput).Drop(0x400055c120)
/go-librespot/output/driver-pulseaudio.go:169 +0xcc fp=0x400152ae70 sp=0x400152ae20 pc=0x7e828c
github.com/devgianlu/go-librespot/player.(*Player).manageLoop(0x40005f0680)
/go-librespot/player/player.go:240 +0x3ac fp=0x400152afb0 sp=0x400152ae70 pc=0x83d34c
github.com/devgianlu/go-librespot/player.NewPlayer.gowrap1()
/go-librespot/player/player.go:183 +0x28 fp=0x400152afd0 sp=0x400152afb0 pc=0x83cd88
runtime.goexit({})
/usr/local/go/src/runtime/asm_arm64.s:1222 +0x4 fp=0x400152afd0 sp=0x400152afd0 pc=0x475214
created by github.com/devgianlu/go-librespot/player.NewPlayer in goroutine 1
/go-librespot/player/player.go:183 +0x1ec
goroutine 66 gp=0x40003b4e00 m=nil [chan receive, 2 minutes]:
runtime.gopark(0x40000ee998?, 0x40c0c8?, 0x0?, 0x1?, 0x4000320720?)
/usr/local/go/src/runtime/proc.go:402 +0xc8 fp=0x40000ee920 sp=0x40000ee900 pc=0x4418a8
runtime.chanrecv(0x40003246c0, 0x40000eec88, 0x1)
/usr/local/go/src/runtime/chan.go:583 +0x404 fp=0x40000ee9a0 sp=0x40000ee920 pc=0x40d234
runtime.chanrecv1(0xa80a00?, 0x40000eed10?)
/usr/local/go/src/runtime/chan.go:442 +0x14 fp=0x40000ee9d0 sp=0x40000ee9a0 pc=0x40cdf4
github.com/devgianlu/go-librespot/player.(*Player).SetPrimaryStream(...)
/go-librespot/player/player.go:415
main.(*AppPlayer).loadCurrentTrack(0x40000aa000, {0xc11378, 0x11387e0}, 0x0, 0x1)
/go-librespot/cmd/daemon/controls.go:293 +0x6dc fp=0x40000eedf0 sp=0x40000ee9d0 pc=0x948aac
main.(*AppPlayer).handlePlayerCommand(, {, }, {0x2411955a, {0x40000370b0, 0x28}, {{0x400049bdc0, 0x8}, {0x0, 0x0}, ...}})
/go-librespot/cmd/daemon/player.go:250 +0x17c8 fp=0x40000ef000 sp=0x40000eedf0 pc=0x951cc8
main.(*AppPlayer).handleDealerRequest(, {_, _}, {0x400003e300, {0x4000036390, 0x24}, {0x2411955a, {0x40000370b0, 0x28}, {{0x400049bdc0, ...}, ...}}})
/go-librespot/cmd/daemon/player.go:368 +0x118 fp=0x40000ef250 sp=0x40000ef000 pc=0x9521a8
main.(*AppPlayer).Run(0x40000aa000, {0xc11378, 0x11387e0}, 0x400003f080)
/go-librespot/cmd/daemon/player.go:596 +0x4e0 fp=0x40000effa0 sp=0x40000ef250 pc=0x953db0
main.(*App).withAppPlayer.func3.gowrap1()
/go-librespot/cmd/daemon/main.go:358 +0x34 fp=0x40000effd0 sp=0x40000effa0 pc=0x94e0f4
runtime.goexit({})
/usr/local/go/src/runtime/asm_arm64.s:1222 +0x4 fp=0x40000effd0 sp=0x40000effd0 pc=0x475214
created by main.(*App).withAppPlayer.func3 in goroutine 1
/go-librespot/cmd/daemon/main.go:358 +0x468
goroutine 101 gp=0x40001db500 m=nil [chan receive, 2 minutes]:
runtime.gopark(0x40004c5b58?, 0x40c0c8?, 0x60?, 0xc?, 0x7f9e3206a8?)
/usr/local/go/src/runtime/proc.go:402 +0xc8 fp=0x4000247ae0 sp=0x4000247ac0 pc=0x4418a8
runtime.chanrecv(0x400003e300, 0x40004c5bd7, 0x1)
/usr/local/go/src/runtime/chan.go:583 +0x404 fp=0x4000247b60 sp=0x4000247ae0 pc=0x40d234
runtime.chanrecv1(0x40000a2000?, 0x0?)
/usr/local/go/src/runtime/chan.go:442 +0x14 fp=0x4000247b90 sp=0x4000247b60 pc=0x40cdf4
github.com/devgianlu/go-librespot/dealer.(*Dealer).handleRequest(0x400041e7e0, 0x4000490240)
/go-librespot/dealer/recv.go:237 +0x234 fp=0x4000247e70 sp=0x4000247b90 pc=0x859eb4
github.com/devgianlu/go-librespot/dealer.(*Dealer).recvLoop(0x400041e7e0)
/go-librespot/dealer/dealer.go:213 +0x3b4 fp=0x4000247fb0 sp=0x4000247e70 pc=0x858764
github.com/devgianlu/go-librespot/dealer.(*Dealer).startReceiving.func1.gowrap1()
/go-librespot/dealer/dealer.go:125 +0x28 fp=0x4000247fd0 sp=0x4000247fb0 pc=0x857f38
runtime.goexit({})
/usr/local/go/src/runtime/asm_arm64.s:1222 +0x4 fp=0x4000247fd0 sp=0x4000247fd0 pc=0x475214
created by github.com/devgianlu/go-librespot/dealer.(*Dealer).startReceiving.func1 in goroutine 66
/go-librespot/dealer/dealer.go:125 +0x88
goroutine 102 gp=0x40001db880 m=nil [select]:
runtime.gopark(0x4000243f88?, 0x2?, 0x0?, 0x0?, 0x4000243f2c?)
/usr/local/go/src/runtime/proc.go:402 +0xc8 fp=0x4000243dd0 sp=0x4000243db0 pc=0x4418a8
runtime.selectgo(0x4000243f88, 0x4000243f28, 0x0?, 0x0, 0x40003cb960?, 0x1)
/usr/local/go/src/runtime/select.go:327 +0x614 fp=0x4000243ee0 sp=0x4000243dd0 pc=0x454294
github.com/devgianlu/go-librespot/dealer.(*Dealer).pingTicker(0x400041e7e0)
/go-librespot/dealer/dealer.go:138 +0x74 fp=0x4000243fb0 sp=0x4000243ee0 pc=0x857fe4
github.com/devgianlu/go-librespot/dealer.(*Dealer).startReceiving.func1.gowrap2()
/go-librespot/dealer/dealer.go:129 +0x28 fp=0x4000243fd0 sp=0x4000243fb0 pc=0x857ed8
runtime.goexit({})
/usr/local/go/src/runtime/asm_arm64.s:1222 +0x4 fp=0x4000243fd0 sp=0x4000243fd0 pc=0x475214
created by github.com/devgianlu/go-librespot/dealer.(*Dealer).startReceiving.func1 in goroutine 66
/go-librespot/dealer/dealer.go:129 +0x108
goroutine 122 gp=0x40003e76c0 m=nil [select, 2 minutes]:
runtime.gopark(0x4000070c38?, 0x3?, 0x38?, 0xa?, 0x4000070b3a?)
/usr/local/go/src/runtime/proc.go:402 +0xc8 fp=0x40000709d0 sp=0x40000709b0 pc=0x4418a8
runtime.selectgo(0x4000070c38, 0x4000070b34, 0x0?, 0x0, 0x99cb60?, 0x1)
/usr/local/go/src/runtime/select.go:327 +0x614 fp=0x4000070ae0 sp=0x40000709d0 pc=0x454294
github.com/devgianlu/go-librespot/audio.(*KeyProvider).recvLoop(0x400028dc00)
/go-librespot/audio/provider.go:63 +0x114 fp=0x4000070fb0 sp=0x4000070ae0 pc=0x7dae14
github.com/devgianlu/go-librespot/audio.(*KeyProvider).startReceiving.func1.gowrap1()
/go-librespot/audio/provider.go:53 +0x28 fp=0x4000070fd0 sp=0x4000070fb0 pc=0x7dacc8
runtime.goexit({})
/usr/local/go/src/runtime/asm_arm64.s:1222 +0x4 fp=0x4000070fd0 sp=0x4000070fd0 pc=0x475214
created by github.com/devgianlu/go-librespot/audio.(*KeyProvider).startReceiving.func1 in goroutine 66
/go-librespot/audio/provider.go:53 +0x60
goroutine 166 gp=0x4000536e00 m=nil [chan receive, 2 minutes]:
runtime.gopark(0x40000be660?, 0x10d1860?, 0x28?, 0x1f?, 0x1000000005479b0?)
/usr/local/go/src/runtime/proc.go:402 +0xc8 fp=0x40005b1ea0 sp=0x40005b1e80 pc=0x4418a8
runtime.chanrecv(0x400055c240, 0x40005b1fb0, 0x1)
/usr/local/go/src/runtime/chan.go:583 +0x404 fp=0x40005b1f20 sp=0x40005b1ea0 pc=0x40d234
runtime.chanrecv2(0x77?, 0x1?)
/usr/local/go/src/runtime/chan.go:447 +0x14 fp=0x40005b1f50 sp=0x40005b1f20 pc=0x40ce14
github.com/devgianlu/go-librespot/output.newPulseAudioOutput.func1()
/go-librespot/output/driver-pulseaudio.go:92 +0x48 fp=0x40005b1fd0 sp=0x40005b1f50 pc=0x7e7b68
runtime.goexit({})
/usr/local/go/src/runtime/asm_arm64.s:1222 +0x4 fp=0x40005b1fd0 sp=0x40005b1fd0 pc=0x475214
created by github.com/devgianlu/go-librespot/output.newPulseAudioOutput in goroutine 16
/go-librespot/output/driver-pulseaudio.go:91 +0x5f0
goroutine 153 gp=0x4000537a40 m=nil [chan receive]:
runtime.gopark(0x40000bed20?, 0x400058c800?, 0xd8?, 0x8e?, 0x7e3f64?)
/usr/local/go/src/runtime/proc.go:402 +0xc8 fp=0x4000438e90 sp=0x4000438e70 pc=0x4418a8
runtime.chanrecv(0x400003e120, 0x4000438f90, 0x1)
/usr/local/go/src/runtime/chan.go:583 +0x404 fp=0x4000438f10 sp=0x4000438e90 pc=0x40d234
runtime.chanrecv2(0x40003b7930?, 0x4000000000?)
/usr/local/go/src/runtime/chan.go:447 +0x14 fp=0x4000438f40 sp=0x4000438f10 pc=0x40ce14
github.com/jfreymuth/pulse.(*PlaybackStream).run(0x400026e700)
/go/pkg/mod/github.com/jfreymuth/pulse@v0.1.2-0.20241102120944-4ffb35054b53/playback.go:97 +0x38 fp=0x4000438fb0 sp=0x4000438f40 pc=0x7e46f8
github.com/jfreymuth/pulse.(*Client).NewPlayback.gowrap2()
/go/pkg/mod/github.com/jfreymuth/pulse@v0.1.2-0.20241102120944-4ffb35054b53/playback.go:92 +0x28 fp=0x4000438fd0 sp=0x4000438fb0 pc=0x7e4628
runtime.goexit({})
/usr/local/go/src/runtime/asm_arm64.s:1222 +0x4 fp=0x4000438fd0 sp=0x4000438fd0 pc=0x475214
created by github.com/jfreymuth/pulse.(*Client).NewPlayback in goroutine 16
/go/pkg/mod/github.com/jfreymuth/pulse@v0.1.2-0.20241102120944-4ffb35054b53/playback.go:92 +0x508
goroutine 212 gp=0x4000537c00 m=nil [chan receive, 2 minutes]:
runtime.gopark(0x4000075ef8?, 0x40d734?, 0x0?, 0x4?, 0x40000be660?)
/usr/local/go/src/runtime/proc.go:402 +0xc8 fp=0x4000075e80 sp=0x4000075e60 pc=0x4418a8
runtime.chanrecv(0x40003245a0, 0x4000075f60, 0x1)
/usr/local/go/src/runtime/chan.go:583 +0x404 fp=0x4000075f00 sp=0x4000075e80 pc=0x40d234
runtime.chanrecv2(0x0?, 0xc0c5e0?)
/usr/local/go/src/runtime/chan.go:447 +0x14 fp=0x4000075f30 sp=0x4000075f00 pc=0x40ce14
github.com/jfreymuth/pulse.(*PlaybackStream).handleEvents(0x400026e700, 0x40003245a0)
/go/pkg/mod/github.com/jfreymuth/pulse@v0.1.2-0.20241102120944-4ffb35054b53/playback.go:130 +0x48 fp=0x4000075fb0 sp=0x4000075f30 pc=0x7e4968
github.com/jfreymuth/pulse.(*Client).NewPlayback.gowrap1()
/go/pkg/mod/github.com/jfreymuth/pulse@v0.1.2-0.20241102120944-4ffb35054b53/playback.go:77 +0x2c fp=0x4000075fd0 sp=0x4000075fb0 pc=0x7e468c
runtime.goexit({})
/usr/local/go/src/runtime/asm_arm64.s:1222 +0x4 fp=0x4000075fd0 sp=0x4000075fd0 pc=0x475214
created by github.com/jfreymuth/pulse.(*Client).NewPlayback in goroutine 16
/go/pkg/mod/github.com/jfreymuth/pulse@v0.1.2-0.20241102120944-4ffb35054b53/playback.go:77 +0x28c
r0 0xfffffffffffffffc
r1 0x7fefb61e98
r2 0x80
r3 0xc79
r4 0x0
r5 0x0
r6 0xc79
r7 0x7fefb62688
r8 0x16
r9 0x1
r10 0x0
r11 0x4
r12 0x0
r13 0x1
r14 0xb
r15 0xc
r16 0x7fefb43bf0
r17 0x7fefb61ec0
r18 0xe0
r19 0xfffffffffffffffb
r20 0x7fefb61e40
r21 0x10d2560
r22 0x1
r23 0x11392c8
r24 0x0
r25 0x4000053cc0
r26 0xb6d490
r27 0x109a000
r28 0x10d1f20
r29 0x7fefb61dc8
lr 0x408c78
sp 0x7fefb61dd0
pc 0x408d40
fault 0x0
devgianlu
devgianlu commented last week
devgianlu
last week
Owner
@JaragonCR I am unable to reproduce the issue. Could you try with the alsa backend?
JaragonCR
JaragonCR commented last week
JaragonCR
last week
@devgianlu not with how iotsound is designed. I could try to add the alsa bridge to the container to emulate alsa but it would take a me a while.
JaragonCR
JaragonCR commented last week
JaragonCR
last week · edited by devgianlu
@devgianlu cannot reproduce with ALSA, works perfectly, you are onto something.
Here's my Docker build, needs cleanup, don't judge , it works :P
FROM golang:1.22-alpine
RUN apk add --no-cache
git
build-base
pkgconf
alsa-lib-dev
libogg-dev
libvorbis-dev
libpulse
avahi
libgcc
gcompat
alsa-lib
curl
RUN git clone https://github.com/devgianlu/go-librespot.git /go-librespot
WORKDIR /go-librespot
RUN go mod download
RUN go build -v ./cmd/daemon
ENV PULSE_SERVER=tcp:localhost:4317
RUN curl -skL https://raw.githubusercontent.com/balena-io-experimental/audio/master/scripts/alsa-bridge/alpine-setup.sh | sh
COPY start.sh /usr/src/
CMD [ "/bin/sh", "/usr/src/start.sh" ]
Generated config:
librespot log_level: info
librespot device_name: Pergola-test
librespot device_type: speaker
librespot bitrate: 320
librespot normalisation_disabled: true
librespot credentials:
librespot type: "zeroconf"
@devgianlu commented on GitHub (Aug 30, 2025):
Could you try running it with pulse outside docker? It seems to work fine for me, maybe the problem is docker or your specific setup.
@JaragonCR commented on GitHub (Sep 5, 2025):
@devgianlu digging into the balena audio block it uses pulse 15. Are you testing with 16.2 or 17? I'm looking into how much work rebuilding their audio is. AFAIK it's working great with the ALSA & ALSA-->Pulse script
@devgianlu commented on GitHub (Sep 10, 2025):
I did test this on Fedora 42, which doesn't actually use PulseAudio, but rather PipeWire 1.4.7.