AdGuardHome icon indicating copy to clipboard operation
AdGuardHome copied to clipboard

fatal error: concurrent map iteration and map write

Open lovejoy opened this issue 3 years ago • 1 comments

Issue Details

  • Version of AdGuard Home server:
    • v0.107.3
  • How did you install AdGuard Home:
    • docker latest
  • How did you setup DNS configuration:
    • Router
  • CPU architecture:
    • AMD64
  • Operating system and version:
    • docker

Expected Behavior

Actual Behavior

Screenshots

Screenshot:

Additional Information

fatal error: concurrent map iteration and map write

goroutine 1177315 [running]:
runtime.throw(0xe3d95b, 0x26)
	runtime/panic.go:1117 +0x72 fp=0xc000936d70 sp=0xc000936d40 pc=0x4380b2
runtime.mapiternext(0xc000936e90)
	runtime/map.go:858 +0x54c fp=0xc000936df0 sp=0xc000936d70 pc=0x410d2c
github.com/AdguardTeam/AdGuardHome/internal/stats.convertMapToSlice(0xc00146a870, 0x64, 0x30, 0x0, 0x6)
	github.com/AdguardTeam/AdGuardHome/internal/stats/unit.go:349 +0x9c fp=0xc000936f00 sp=0xc000936df0 pc=0xaf5b5c
github.com/AdguardTeam/AdGuardHome/internal/stats.serialize(0xc000803a40, 0x0)
	github.com/AdguardTeam/AdGuardHome/internal/stats/unit.go:383 +0xfc fp=0xc000936f80 sp=0xc000936f00 pc=0xaf5f1c
github.com/AdguardTeam/AdGuardHome/internal/stats.(*statsCtx).loadUnits(0xc000238180, 0x18, 0xc0002830dc, 0x11, 0xc00050d2c0, 0x11)
	github.com/AdguardTeam/AdGuardHome/internal/stats/unit.go:584 +0x22c fp=0xc000937038 sp=0xc000936f80 pc=0xaf75ac
github.com/AdguardTeam/AdGuardHome/internal/stats.(*statsCtx).getData(0xc000238180, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
	github.com/AdguardTeam/AdGuardHome/internal/stats/unit.go:679 +0x93 fp=0xc0009372f8 sp=0xc000937038 pc=0xaf7d73
github.com/AdguardTeam/AdGuardHome/internal/stats.(*statsCtx).handleStats(0xc000238180, 0x21e8e80, 0xc00042aaf0, 0xc000232900)
	github.com/AdguardTeam/AdGuardHome/internal/stats/http.go:61 +0x43c fp=0xc000937680 sp=0xc0009372f8 pc=0xaf38fc
github.com/AdguardTeam/AdGuardHome/internal/stats.(*statsCtx).handleStats-fm(0x21e8e80, 0xc00042aaf0, 0xc000232900)
	github.com/AdguardTeam/AdGuardHome/internal/stats/http.go:42 +0x51 fp=0xc0009376b0 sp=0xc000937680 pc=0xaf8fb1
github.com/AdguardTeam/AdGuardHome/internal/home.ensure.func1(0x21e8e80, 0xc00042aaf0, 0xc000232900)
	github.com/AdguardTeam/AdGuardHome/internal/home/control.go:219 +0x214 fp=0xc000937758 sp=0xc0009376b0 pc=0xc4cbd4
github.com/AdguardTeam/AdGuardHome/internal/home.(*httpHandler).ServeHTTP(0xc00000e6f0, 0x21e8e80, 0xc00042aaf0, 0xc000232900)
	github.com/AdguardTeam/AdGuardHome/internal/home/control.go:237 +0x47 fp=0xc000937780 sp=0xc000937758 pc=0xc1e2c7
github.com/NYTimes/gziphandler.GzipHandlerWithOpts.func1.1(0x21e8ca0, 0xc0001308c0, 0xc000232900)
	github.com/NYTimes/[email protected]/gzip.go:336 +0x22d fp=0xc000937820 sp=0xc000937780 pc=0xb49aed
net/http.HandlerFunc.ServeHTTP(0xc00020d4d0, 0x21e8ca0, 0xc0001308c0, 0xc000232900)
	net/http/server.go:2050 +0x44 fp=0xc000937848 sp=0xc000937820 pc=0x6ff784
net/http.Handler.ServeHTTP-fm(0x21e8ca0, 0xc0001308c0, 0xc000232900)
	net/http/server.go:87 +0x56 fp=0xc000937878 sp=0xc000937848 pc=0x727cd6
github.com/AdguardTeam/AdGuardHome/internal/home.optionalAuth.func1(0x21e8ca0, 0xc0001308c0, 0xc000232900)
	github.com/AdguardTeam/AdGuardHome/internal/home/auth.go:598 +0xfb fp=0xc000937918 sp=0xc000937878 pc=0xc4b83b
github.com/AdguardTeam/AdGuardHome/internal/home.(*authHandler).ServeHTTP(0xc0001417a0, 0x21e8ca0, 0xc0001308c0, 0xc000232900)
	github.com/AdguardTeam/AdGuardHome/internal/home/auth.go:607 +0xa3 fp=0xc000937950 sp=0xc000937918 pc=0xc11843
net/http.Handler.ServeHTTP-fm(0x21e8ca0, 0xc0001308c0, 0xc000232900)
	net/http/server.go:87 +0x56 fp=0xc000937980 sp=0xc000937950 pc=0x727cd6
github.com/AdguardTeam/AdGuardHome/internal/home.postInstall.func1(0x21e8ca0, 0xc0001308c0, 0xc000232900)
	github.com/AdguardTeam/AdGuardHome/internal/home/control.go:336 +0xbb fp=0xc0009379d8 sp=0xc000937980 pc=0xc4ce9b
github.com/AdguardTeam/AdGuardHome/internal/home.(*postInstallHandlerStruct).ServeHTTP(0xc0001417b0, 0x21e8ca0, 0xc0001308c0, 0xc000232900)
	github.com/AdguardTeam/AdGuardHome/internal/home/control.go:345 +0xa3 fp=0xc000937a10 sp=0xc0009379d8 pc=0xc1eaa3
net/http.(*ServeMux).ServeHTTP(0xc000208040, 0x21e8ca0, 0xc0001308c0, 0xc000232900)
	net/http/server.go:2429 +0x1ad fp=0xc000937a70 sp=0xc000937a10 pc=0x70160d
github.com/AdguardTeam/AdGuardHome/internal/home.limitRequestBody.func1(0x21e8ca0, 0xc0001308c0, 0xc000232800)
	github.com/AdguardTeam/AdGuardHome/internal/home/middlewares.go:75 +0x27f fp=0xc000937b48 sp=0xc000937a70 pc=0xc4e9df
net/http.HandlerFunc.ServeHTTP(0xc00000c3c0, 0x21e8ca0, 0xc0001308c0, 0xc000232800)
	net/http/server.go:2050 +0x44 fp=0xc000937b70 sp=0xc000937b48 pc=0x6ff784
net/http.serverHandler.ServeHTTP(0xc0002fe0e0, 0x21e8ca0, 0xc0001308c0, 0xc000232800)
	net/http/server.go:2868 +0xa3 fp=0xc000937ba0 sp=0xc000937b70 pc=0x702d43
net/http.(*conn).serve(0xc0008359a0, 0x21ebf50, 0xc0007e2840)
	net/http/server.go:1933 +0x8cd fp=0xc000937fc8 sp=0xc000937ba0 pc=0x6fe26d
runtime.goexit()
	runtime/asm_amd64.s:1371 +0x1 fp=0xc000937fd0 sp=0xc000937fc8 pc=0x472481
created by net/http.(*Server).Serve
	net/http/server.go:2994 +0x39b

goroutine 1 [chan receive, 7103 minutes]:
github.com/AdguardTeam/AdGuardHome/internal/home.(*Web).Start(0xc000130380)
	github.com/AdguardTeam/AdGuardHome/internal/home/web.go:186 +0x38b
github.com/AdguardTeam/AdGuardHome/internal/home.run(0x0, 0x7fffea419f1a, 0x26, 0x7fffea419f4f, 0x15, 0xc000039d20, 0x10, 0x10, 0x0, 0x0, ...)
	github.com/AdguardTeam/AdGuardHome/internal/home/home.go:497 +0xf6a
github.com/AdguardTeam/AdGuardHome/internal/home.Main(0x21d9180, 0x21ff1c0)
	github.com/AdguardTeam/AdGuardHome/internal/home/home.go:131 +0x239
main.main()
	github.com/AdguardTeam/AdGuardHome/main.go:17 +0x39

goroutine 7 [syscall, 7124 minutes]:
os/signal.signal_recv(0x0)
	runtime/sigqueue.go:168 +0xa5
os/signal.loop()
	os/signal/signal_unix.go:23 +0x25
created by os/signal.Notify.func1.1
	os/signal/signal.go:151 +0x45

goroutine 17 [chan receive, 7124 minutes]:
github.com/AdguardTeam/AdGuardHome/internal/home.Main.func1()
	github.com/AdguardTeam/AdGuardHome/internal/home/home.go:109 +0x45
created by github.com/AdguardTeam/AdGuardHome/internal/home.Main
	github.com/AdguardTeam/AdGuardHome/internal/home/home.go:107 +0x172

goroutine 18 [chan receive]:
github.com/AdguardTeam/AdGuardHome/internal/home.memoryUsage.func1()
	github.com/AdguardTeam/AdGuardHome/internal/home/memory.go:35 +0x72
created by github.com/AdguardTeam/AdGuardHome/internal/home.memoryUsage
	github.com/AdguardTeam/AdGuardHome/internal/home/memory.go:33 +0xdd

goroutine 19 [syscall, 7124 minutes]:
syscall.Syscall6(0xe8, 0x7, 0xc00030fc2c, 0x7, 0xffffffffffffffff, 0x0, 0x0, 0x0, 0x0, 0x0)
	syscall/asm_linux_amd64.s:43 +0x5
golang.org/x/sys/unix.EpollWait(0x7, 0xc00030fc2c, 0x7, 0x7, 0xffffffffffffffff, 0x0, 0x0, 0x0)
	golang.org/x/[email protected]/unix/zsyscall_linux_amd64.go:56 +0x72
github.com/fsnotify/fsnotify.(*fdPoller).wait(0xc000212320, 0x0, 0x0, 0x0)
	github.com/fsnotify/[email protected]/inotify_poller.go:87 +0x91
github.com/fsnotify/fsnotify.(*Watcher).readEvents(0xc00025e050)
	github.com/fsnotify/[email protected]/inotify.go:193 +0x206
created by github.com/fsnotify/fsnotify.NewWatcher
	github.com/fsnotify/[email protected]/inotify.go:60 +0x1ab

goroutine 20 [chan receive, 7124 minutes]:
github.com/AdguardTeam/AdGuardHome/internal/aghos.(*osWatcher).handleErrors(0xc00020e500)
	github.com/AdguardTeam/AdGuardHome/internal/aghos/fswatcher.go:74 +0x18a
created by github.com/AdguardTeam/AdGuardHome/internal/aghos.NewOSWritesWatcher
	github.com/AdguardTeam/AdGuardHome/internal/aghos/fswatcher.go:63 +0x1ae

goroutine 21 [chan receive, 7124 minutes]:
github.com/AdguardTeam/AdGuardHome/internal/aghos.(*osWatcher).handleEvents(0xc00020e500)
	github.com/AdguardTeam/AdGuardHome/internal/aghos/fswatcher.go:110 +0x133
created by github.com/AdguardTeam/AdGuardHome/internal/aghos.NewOSWritesWatcher
	github.com/AdguardTeam/AdGuardHome/internal/aghos/fswatcher.go:64 +0x1d0

goroutine 22 [select, 7124 minutes]:
github.com/AdguardTeam/AdGuardHome/internal/aghnet.(*HostsContainer).handleEvents(0xc000210500)
	github.com/AdguardTeam/AdGuardHome/internal/aghnet/hostscontainer.go:245 +0x188
created by github.com/AdguardTeam/AdGuardHome/internal/aghnet.NewHostsContainer
	github.com/AdguardTeam/AdGuardHome/internal/aghnet/hostscontainer.go:190 +0x38e

goroutine 23 [chan receive, 7124 minutes]:
github.com/AdguardTeam/AdGuardHome/internal/home.(*clientsContainer).handleHostsUpdates(0x26e9260)
	github.com/AdguardTeam/AdGuardHome/internal/home/clients.go:140 +0x7d
created by github.com/AdguardTeam/AdGuardHome/internal/home.(*clientsContainer).Init
	github.com/AdguardTeam/AdGuardHome/internal/home/clients.go:135 +0x19f

goroutine 8 [sync.Cond.Wait, 7105 minutes]:
sync.runtime_notifyListWait(0xc0001c0090, 0x1)
	runtime/sema.go:513 +0xf8
sync.(*Cond).Wait(0xc0001c0080)
	sync/cond.go:56 +0x99
github.com/AdguardTeam/AdGuardHome/internal/home.(*Web).tlsServerLoop(0xc000130380)
	github.com/AdguardTeam/AdGuardHome/internal/home/web.go:250 +0x47
created by github.com/AdguardTeam/AdGuardHome/internal/home.(*Web).Start
	github.com/AdguardTeam/AdGuardHome/internal/home/web.go:161 +0xa5

goroutine 58 [IO wait]:
internal/poll.runtime_pollWait(0x7fe7d73fc048, 0x72, 0x0)
	runtime/netpoll.go:227 +0x55
internal/poll.(*pollDesc).wait(0xc000210698, 0x72, 0x0, 0x0, 0xe0d072)
	internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Accept(0xc000210680, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
	internal/poll/fd_unix.go:401 +0x212
net.(*netFD).accept(0xc000210680, 0xface222888ba633b, 0x0, 0x0)
	net/fd_unix.go:172 +0x45
net.(*TCPListener).accept(0xc00000c3f0, 0x621a1ffd, 0xc000084dc0, 0x49be86)
	net/tcpsock_posix.go:139 +0x32
net.(*TCPListener).Accept(0xc00000c3f0, 0xc000084e10, 0x18, 0xc0001f8600, 0x70323b)
	net/tcpsock.go:261 +0x65
net/http.(*Server).Serve(0xc0002fe0e0, 0x21e8a90, 0xc00000c3f0, 0x0, 0x0)
	net/http/server.go:2962 +0x285
net/http.(*Server).ListenAndServe(0xc0002fe0e0, 0xc00020e520, 0x300000000000000)
	net/http/server.go:2891 +0xba
github.com/AdguardTeam/AdGuardHome/internal/home.(*Web).Start.func1(0xc00021efc0, 0xc000130380)
	github.com/AdguardTeam/AdGuardHome/internal/home/web.go:181 +0x6b
created by github.com/AdguardTeam/AdGuardHome/internal/home.(*Web).Start
	github.com/AdguardTeam/AdGuardHome/internal/home/web.go:178 +0x33b

goroutine 52 [chan receive, 407 minutes]:
github.com/AdguardTeam/AdGuardHome/internal/filtering.(*DNSFilter).filtersInitializer(0xc000201380)
	github.com/AdguardTeam/AdGuardHome/internal/filtering/filtering.go:338 +0x6f
created by github.com/AdguardTeam/AdGuardHome/internal/filtering.(*DNSFilter).Start
	github.com/AdguardTeam/AdGuardHome/internal/filtering/filtering.go:995 +0x73

goroutine 49 [sleep, 8 minutes]:
time.Sleep(0x8bb2c97000)
	runtime/time.go:193 +0xd2
github.com/AdguardTeam/AdGuardHome/internal/home.(*clientsContainer).periodicUpdate(0x26e9260)
	github.com/AdguardTeam/AdGuardHome/internal/home/clients.go:260 +0x3f
created by github.com/AdguardTeam/AdGuardHome/internal/home.(*clientsContainer).Start
	github.com/AdguardTeam/AdGuardHome/internal/home/clients.go:153 +0x58

goroutine 32 [chan receive, 3 minutes]:
github.com/AdguardTeam/AdGuardHome/internal/home.(*RDNS).workerLoop(0xc0001c0780)
	github.com/AdguardTeam/AdGuardHome/internal/home/rdns.go:122 +0xc5
created by github.com/AdguardTeam/AdGuardHome/internal/home.NewRDNS
	github.com/AdguardTeam/AdGuardHome/internal/home/rdns.go:60 +0x114

goroutine 33 [chan receive, 7105 minutes]:
github.com/AdguardTeam/AdGuardHome/internal/home.(*WHOIS).workerLoop(0xc0001ffb90)
	github.com/AdguardTeam/AdGuardHome/internal/home/whois.go:249 +0x5d
created by github.com/AdguardTeam/AdGuardHome/internal/home.initWHOIS
	github.com/AdguardTeam/AdGuardHome/internal/home/whois.go:57 +0x138

goroutine 53 [sleep, 23 minutes]:
time.Sleep(0x34630b8a000)
	runtime/time.go:193 +0xd2
github.com/AdguardTeam/AdGuardHome/internal/home.(*Filtering).periodicallyRefreshFilters(0x26e92f8)
	github.com/AdguardTeam/AdGuardHome/internal/home/filter.go:263 +0x3d
created by github.com/AdguardTeam/AdGuardHome/internal/home.(*Filtering).Start
	github.com/AdguardTeam/AdGuardHome/internal/home/filter.go:52 +0x4d

goroutine 54 [sleep]:
time.Sleep(0x3b9aca00)
	runtime/time.go:193 +0xd2
github.com/AdguardTeam/AdGuardHome/internal/stats.(*statsCtx).periodicFlush(0xc000238180)
	github.com/AdguardTeam/AdGuardHome/internal/stats/unit.go:305 +0x71
created by github.com/AdguardTeam/AdGuardHome/internal/stats.(*statsCtx).Start
	github.com/AdguardTeam/AdGuardHome/internal/stats/unit.go:183 +0x4d

goroutine 55 [chan receive, 23 minutes]:
github.com/AdguardTeam/AdGuardHome/internal/querylog.(*queryLog).periodicRotate(0xc000030380)
	github.com/AdguardTeam/AdGuardHome/internal/querylog/querylogfile.go:150 +0xec
created by github.com/AdguardTeam/AdGuardHome/internal/querylog.(*queryLog).Start
	github.com/AdguardTeam/AdGuardHome/internal/querylog/qlog.go:105 +0x4a

goroutine 941177 [IO wait]:
internal/poll.runtime_pollWait(0x7fe7d73fc130, 0x72, 0x28)
	runtime/netpoll.go:227 +0x55
internal/poll.(*pollDesc).wait(0xc000256718, 0x72, 0xff00, 0xffff, 0xc00105a480)
	internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).ReadMsg(0xc000256700, 0xc001341f61, 0xffff, 0xffff, 0xc00105a480, 0x28, 0x28, 0x0, 0x0, 0x0, ...)
	internal/poll/fd_unix.go:249 +0x252
net.(*netFD).readMsg(0xc000256700, 0xc001341f61, 0xffff, 0xffff, 0xc00105a480, 0x28, 0x28, 0x450d2c, 0x10, 0xcc8ea0, ...)
	net/fd_posix.go:67 +0x90
net.(*UDPConn).readMsg(0xc00021cb58, 0xc001341f61, 0xffff, 0xffff, 0xc00105a480, 0x28, 0x28, 0x7fe7fe085108, 0x30, 0xc00105a480, ...)
	net/udpsock_posix.go:59 +0x91
net.(*UDPConn).ReadMsgUDP(0xc00021cb58, 0xc001341f61, 0xffff, 0xffff, 0xc00105a480, 0x28, 0x28, 0xc00119bf80, 0x4433ee, 0xc001341e98, ...)
	net/udpsock.go:139 +0x9d
github.com/AdguardTeam/dnsproxy/proxyutil.udpRead(0xc00021cb58, 0xc001341f61, 0xffff, 0xffff, 0x28, 0x2b, 0xc000639480, 0x10, 0x10, 0xc000bab2c0, ...)
	github.com/AdguardTeam/[email protected]/proxyutil/udp_unix.go:68 +0xaa
github.com/AdguardTeam/dnsproxy/proxyutil.UDPRead(...)
	github.com/AdguardTeam/[email protected]/proxyutil/udp.go:25
github.com/AdguardTeam/dnsproxy/proxy.(*Proxy).udpPacketLoop(0xc000134700, 0xc00021cb58, 0x21e1a58, 0xc00021cb50)
	github.com/AdguardTeam/[email protected]/proxy/server_udp.go:67 +0x13e
created by github.com/AdguardTeam/dnsproxy/proxy.(*Proxy).startListeners
	github.com/AdguardTeam/[email protected]/proxy/server.go:46 +0x187

goroutine 1177316 [IO wait]:
internal/poll.runtime_pollWait(0x7fe7d6fd6d70, 0x72, 0xffffffffffffffff)
	runtime/netpoll.go:227 +0x55
internal/poll.(*pollDesc).wait(0xc000256018, 0x72, 0x0, 0x1, 0xffffffffffffffff)
	internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc000256000, 0xc000fa8191, 0x1, 0x1, 0x0, 0x0, 0x0)
	internal/poll/fd_unix.go:166 +0x1d5
net.(*netFD).Read(0xc000256000, 0xc000fa8191, 0x1, 0x1, 0xad1a8b, 0xc000134700, 0xc000bd6ae0)
	net/fd_posix.go:55 +0x4f
net.(*conn).Read(0xc000bee060, 0xc000fa8191, 0x1, 0x1, 0x0, 0x0, 0x0)
	net/net.go:183 +0x91
net/http.(*connReader).backgroundRead(0xc000fa8180)
	net/http/server.go:672 +0x58
created by net/http.(*connReader).startBackgroundRead
	net/http/server.go:668 +0xd5

goroutine 1177318 [IO wait]:
internal/poll.runtime_pollWait(0x7fe7d6f325e8, 0x72, 0xffffffffffffffff)
	runtime/netpoll.go:227 +0x55
internal/poll.(*pollDesc).wait(0xc000ae7f98, 0x72, 0x0, 0x1, 0xffffffffffffffff)
	internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc000ae7f80, 0xc000fa83d1, 0x1, 0x1, 0x0, 0x0, 0x0)
	internal/poll/fd_unix.go:166 +0x1d5
net.(*netFD).Read(0xc000ae7f80, 0xc000fa83d1, 0x1, 0x1, 0xad1a8b, 0xc000134700, 0xc00131b620)
	net/fd_posix.go:55 +0x4f
net.(*conn).Read(0xc000bee050, 0xc000fa83d1, 0x1, 0x1, 0x0, 0x0, 0x0)
	net/net.go:183 +0x91
net/http.(*connReader).backgroundRead(0xc000fa83c0)
	net/http/server.go:672 +0x58
created by net/http.(*connReader).startBackgroundRead
	net/http/server.go:668 +0xd5

goroutine 941178 [IO wait, 154 minutes]:
internal/poll.runtime_pollWait(0x7fe7d73fbf60, 0x72, 0x0)
	runtime/netpoll.go:227 +0x55
internal/poll.(*pollDesc).wait(0xc000256798, 0x72, 0x0, 0x0, 0xe0d072)
	internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Accept(0xc000256780, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
	internal/poll/fd_unix.go:401 +0x212
net.(*netFD).accept(0xc000256780, 0x37e11d600, 0x0, 0xc00027aec0)
	net/fd_unix.go:172 +0x45
net.(*TCPListener).accept(0xc001056fd8, 0xc00027aef8, 0xc00027af00, 0x38)
	net/tcpsock_posix.go:139 +0x32
net.(*TCPListener).Accept(0xc001056fd8, 0x210d608, 0xc000134700, 0x21f5eb0, 0xc000464088)
	net/tcpsock.go:261 +0x65
github.com/AdguardTeam/dnsproxy/proxy.(*Proxy).tcpPacketLoop(0xc000134700, 0x21e8a90, 0xc001056fd8, 0xe09604, 0x3, 0x21e1a58, 0xc00021cb50)
	github.com/AdguardTeam/[email protected]/proxy/server_tcp.go:58 +0x190
created by github.com/AdguardTeam/dnsproxy/proxy.(*Proxy).startListeners
	github.com/AdguardTeam/[email protected]/proxy/server.go:50 +0x238

goroutine 1177314 [runnable]:
golang.org/x/crypto/blowfish.encryptBlock(0x1514be87206e0a30, 0xc0007d5300, 0x1514be87206e0a30)
	golang.org/x/[email protected]/blowfish/block.go:117 +0xb
golang.org/x/crypto/blowfish.ExpandKey(0xc00077a1b0, 0x6, 0x10, 0xc0007d5300)
	golang.org/x/[email protected]/blowfish/block.go:58 +0x1f2
golang.org/x/crypto/bcrypt.expensiveBlowfishSetup(0xc000081758, 0x5, 0x20, 0xc00000000a, 0xc00050d878, 0x16, 0x18, 0x1f, 0xc0007ae760, 0x3)
	golang.org/x/[email protected]/bcrypt/bcrypt.go:227 +0x165
golang.org/x/crypto/bcrypt.bcrypt(0xc000081758, 0x5, 0x20, 0xa, 0xc00050d878, 0x16, 0x18, 0x455858, 0xc000511cfc, 0x4, ...)
	golang.org/x/[email protected]/bcrypt/bcrypt.go:191 +0xcc
golang.org/x/crypto/bcrypt.CompareHashAndPassword(0xc000511cc0, 0x3c, 0x40, 0xc000081758, 0x5, 0x20, 0xc00077a174, 0xb)
	golang.org/x/[email protected]/bcrypt/bcrypt.go:105 +0xc9
github.com/AdguardTeam/AdGuardHome/internal/home.(*Auth).UserFind(0xc000209200, 0xc00077a190, 0x5, 0xc00077a196, 0x5, 0x0, 0x0, 0x0, 0x0)
	github.com/AdguardTeam/AdGuardHome/internal/home/auth.go:640 +0x29b
github.com/AdguardTeam/AdGuardHome/internal/home.optionalAuthThird(0x21e8ca0, 0xc000130a80, 0xc000232d00, 0x0)
	github.com/AdguardTeam/AdGuardHome/internal/home/auth.go:544 +0x3a5
github.com/AdguardTeam/AdGuardHome/internal/home.optionalAuth.func1(0x21e8ca0, 0xc000130a80, 0xc000232d00)
	github.com/AdguardTeam/AdGuardHome/internal/home/auth.go:593 +0x385
github.com/AdguardTeam/AdGuardHome/internal/home.(*authHandler).ServeHTTP(0xc0001417a0, 0x21e8ca0, 0xc000130a80, 0xc000232d00)
	github.com/AdguardTeam/AdGuardHome/internal/home/auth.go:607 +0xa3
github.com/AdguardTeam/AdGuardHome/internal/home.postInstall.func1(0x21e8ca0, 0xc000130a80, 0xc000232d00)
	github.com/AdguardTeam/AdGuardHome/internal/home/control.go:336 +0xbb
github.com/AdguardTeam/AdGuardHome/internal/home.(*postInstallHandlerStruct).ServeHTTP(0xc0001417b0, 0x21e8ca0, 0xc000130a80, 0xc000232d00)
	github.com/AdguardTeam/AdGuardHome/internal/home/control.go:345 +0xa3
net/http.(*ServeMux).ServeHTTP(0xc000208040, 0x21e8ca0, 0xc000130a80, 0xc000232d00)
	net/http/server.go:2429 +0x1ad
github.com/AdguardTeam/AdGuardHome/internal/home.limitRequestBody.func1(0x21e8ca0, 0xc000130a80, 0xc000232c00)
	github.com/AdguardTeam/AdGuardHome/internal/home/middlewares.go:75 +0x27f
net/http.HandlerFunc.ServeHTTP(0xc00000c3c0, 0x21e8ca0, 0xc000130a80, 0xc000232c00)
	net/http/server.go:2050 +0x44
net/http.serverHandler.ServeHTTP(0xc0002fe0e0, 0x21e8ca0, 0xc000130a80, 0xc000232c00)
	net/http/server.go:2868 +0xa3
net/http.(*conn).serve(0xc000835900, 0x21ebf50, 0xc0007e3140)
	net/http/server.go:1933 +0x8cd
created by net/http.(*Server).Serve
	net/http/server.go:2994 +0x39b

goroutine 1177317 [IO wait]:
internal/poll.runtime_pollWait(0x7fe7d6f086c8, 0x72, 0xffffffffffffffff)
	runtime/netpoll.go:227 +0x55
internal/poll.(*pollDesc).wait(0xc000ae7f18, 0x72, 0x0, 0x1, 0xffffffffffffffff)
	internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc000ae7f00, 0xc000fa82b1, 0x1, 0x1, 0x0, 0x0, 0x0)
	internal/poll/fd_unix.go:166 +0x1d5
net.(*netFD).Read(0xc000ae7f00, 0xc000fa82b1, 0x1, 0x1, 0xad1a8b, 0xc000134700, 0xc000c485d0)
	net/fd_posix.go:55 +0x4f
net.(*conn).Read(0xc000bee048, 0xc000fa82b1, 0x1, 0x1, 0x0, 0x0, 0x0)
	net/net.go:183 +0x91
net/http.(*connReader).backgroundRead(0xc000fa82a0)
	net/http/server.go:672 +0x58
created by net/http.(*connReader).startBackgroundRead
	net/http/server.go:668 +0xd5

goroutine 941184 [select, 26 minutes]:
github.com/patrickmn/go-cache.(*janitor).Run(0xc000536590, 0xc000d181c0)
	github.com/patrickmn/[email protected]+incompatible/cache.go:1079 +0xa9
created by github.com/patrickmn/go-cache.runJanitor
	github.com/patrickmn/[email protected]+incompatible/cache.go:1099 +0xa9

goroutine 1177290 [IO wait]:
internal/poll.runtime_pollWait(0x7fe7d6f0a028, 0x72, 0xffffffffffffffff)
	runtime/netpoll.go:227 +0x55
internal/poll.(*pollDesc).wait(0xc000210498, 0x72, 0x0, 0x1, 0xffffffffffffffff)
	internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc000210480, 0xc00146b031, 0x1, 0x1, 0x0, 0x0, 0x0)
	internal/poll/fd_unix.go:166 +0x1d5
net.(*netFD).Read(0xc000210480, 0xc00146b031, 0x1, 0x1, 0xad1a8b, 0xc000134700, 0xc000c48690)
	net/fd_posix.go:55 +0x4f
net.(*conn).Read(0xc000ac0078, 0xc00146b031, 0x1, 0x1, 0x0, 0x0, 0x0)
	net/net.go:183 +0x91
net/http.(*connReader).backgroundRead(0xc00146b020)
	net/http/server.go:672 +0x58
created by net/http.(*connReader).startBackgroundRead
	net/http/server.go:668 +0xd5

goroutine 1174071 [runnable]:
go.etcd.io/bbolt.(*Cursor).search(0xc00093aeb8, 0xc00093af37, 0x1, 0x1, 0x13)
	go.etcd.io/[email protected]/cursor.go:249 +0x65
go.etcd.io/bbolt.(*Cursor).seek(0xc00093aeb8, 0xc00093af37, 0x1, 0x1, 0x8, 0x28, 0x7fe7fe085108, 0x30, 0xc000babef0, 0x10, ...)
	go.etcd.io/[email protected]/cursor.go:159 +0x7d
go.etcd.io/bbolt.(*Bucket).Get(0xc000b31b80, 0xc00093af37, 0x1, 0x1, 0xc000b31b80, 0x0, 0x0)
	go.etcd.io/[email protected]/bucket.go:262 +0xbb
github.com/AdguardTeam/AdGuardHome/internal/stats.(*statsCtx).loadUnitFromDB(0xc000238180, 0xc0002fe700, 0x6f9e3, 0xc000857ce0)
	github.com/AdguardTeam/AdGuardHome/internal/stats/unit.go:442 +0xdc
github.com/AdguardTeam/AdGuardHome/internal/stats.(*statsCtx).loadUnits(0xc000238180, 0x18, 0xc000211f80, 0x203000, 0x203000, 0xc0003c70a8)
	github.com/AdguardTeam/AdGuardHome/internal/stats/unit.go:574 +0xfa
github.com/AdguardTeam/AdGuardHome/internal/stats.(*statsCtx).getData(0xc000238180, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
	github.com/AdguardTeam/AdGuardHome/internal/stats/unit.go:679 +0x93
github.com/AdguardTeam/AdGuardHome/internal/stats.(*statsCtx).handleStats(0xc000238180, 0x21e8e80, 0xc0009fcee0, 0xc000600e00)
	github.com/AdguardTeam/AdGuardHome/internal/stats/http.go:61 +0x43c
github.com/AdguardTeam/AdGuardHome/internal/home.ensure.func1(0x21e8e80, 0xc0009fcee0, 0xc000600e00)
	github.com/AdguardTeam/AdGuardHome/internal/home/control.go:219 +0x214
github.com/AdguardTeam/AdGuardHome/internal/home.(*httpHandler).ServeHTTP(0xc00000e6f0, 0x21e8e80, 0xc0009fcee0, 0xc000600e00)
	github.com/AdguardTeam/AdGuardHome/internal/home/control.go:237 +0x47
github.com/NYTimes/gziphandler.GzipHandlerWithOpts.func1.1(0x21e8ca0, 0xc0002fe620, 0xc000600e00)
	github.com/NYTimes/[email protected]/gzip.go:336 +0x22d
net/http.HandlerFunc.ServeHTTP(0xc00020d4d0, 0x21e8ca0, 0xc0002fe620, 0xc000600e00)
	net/http/server.go:2050 +0x44
github.com/AdguardTeam/AdGuardHome/internal/home.optionalAuth.func1(0x21e8ca0, 0xc0002fe620, 0xc000600e00)
	github.com/AdguardTeam/AdGuardHome/internal/home/auth.go:598 +0xfb
github.com/AdguardTeam/AdGuardHome/internal/home.(*authHandler).ServeHTTP(0xc0001417a0, 0x21e8ca0, 0xc0002fe620, 0xc000600e00)
	github.com/AdguardTeam/AdGuardHome/internal/home/auth.go:607 +0xa3
github.com/AdguardTeam/AdGuardHome/internal/home.postInstall.func1(0x21e8ca0, 0xc0002fe620, 0xc000600e00)
	github.com/AdguardTeam/AdGuardHome/internal/home/control.go:336 +0xbb
github.com/AdguardTeam/AdGuardHome/internal/home.(*postInstallHandlerStruct).ServeHTTP(0xc0001417b0, 0x21e8ca0, 0xc0002fe620, 0xc000600e00)
	github.com/AdguardTeam/AdGuardHome/internal/home/control.go:345 +0xa3
net/http.(*ServeMux).ServeHTTP(0xc000208040, 0x21e8ca0, 0xc0002fe620, 0xc000600e00)
	net/http/server.go:2429 +0x1ad
github.com/AdguardTeam/AdGuardHome/internal/home.limitRequestBody.func1(0x21e8ca0, 0xc0002fe620, 0xc000600d00)
	github.com/AdguardTeam/AdGuardHome/internal/home/middlewares.go:75 +0x27f
net/http.HandlerFunc.ServeHTTP(0xc00000c3c0, 0x21e8ca0, 0xc0002fe620, 0xc000600d00)
	net/http/server.go:2050 +0x44
net/http.serverHandler.ServeHTTP(0xc0002fe0e0, 0x21e8ca0, 0xc0002fe620, 0xc000600d00)
	net/http/server.go:2868 +0xa3
net/http.(*conn).serve(0xc0008af400, 0x21ebf50, 0xc0009b4c40)
	net/http/server.go:1933 +0x8cd
created by net/http.(*Server).Serve
	net/http/server.go:2994 +0x39b

goroutine 1177313 [semacquire]:
sync.runtime_SemacquireMutex(0xc000209234, 0xc000087700, 0x1)
	runtime/sema.go:71 +0x47
sync.(*Mutex).lockSlow(0xc000209230)
	sync/mutex.go:138 +0x105
sync.(*Mutex).Lock(...)
	sync/mutex.go:81
github.com/AdguardTeam/AdGuardHome/internal/home.(*Auth).UserFind(0xc000209200, 0xc000638890, 0x5, 0xc000638896, 0x5, 0x0, 0x0, 0x0, 0x0)
	github.com/AdguardTeam/AdGuardHome/internal/home/auth.go:636 +0x2f6
github.com/AdguardTeam/AdGuardHome/internal/home.optionalAuthThird(0x21e8ca0, 0xc0001309a0, 0xc000232b00, 0x0)
	github.com/AdguardTeam/AdGuardHome/internal/home/auth.go:544 +0x3a5
github.com/AdguardTeam/AdGuardHome/internal/home.optionalAuth.func1(0x21e8ca0, 0xc0001309a0, 0xc000232b00)
	github.com/AdguardTeam/AdGuardHome/internal/home/auth.go:593 +0x385
github.com/AdguardTeam/AdGuardHome/internal/home.(*authHandler).ServeHTTP(0xc0001417a0, 0x21e8ca0, 0xc0001309a0, 0xc000232b00)
	github.com/AdguardTeam/AdGuardHome/internal/home/auth.go:607 +0xa3
github.com/AdguardTeam/AdGuardHome/internal/home.postInstall.func1(0x21e8ca0, 0xc0001309a0, 0xc000232b00)
	github.com/AdguardTeam/AdGuardHome/internal/home/control.go:336 +0xbb
github.com/AdguardTeam/AdGuardHome/internal/home.(*postInstallHandlerStruct).ServeHTTP(0xc0001417b0, 0x21e8ca0, 0xc0001309a0, 0xc000232b00)
	github.com/AdguardTeam/AdGuardHome/internal/home/control.go:345 +0xa3
net/http.(*ServeMux).ServeHTTP(0xc000208040, 0x21e8ca0, 0xc0001309a0, 0xc000232b00)
	net/http/server.go:2429 +0x1ad
github.com/AdguardTeam/AdGuardHome/internal/home.limitRequestBody.func1(0x21e8ca0, 0xc0001309a0, 0xc000232a00)
	github.com/AdguardTeam/AdGuardHome/internal/home/middlewares.go:75 +0x27f
net/http.HandlerFunc.ServeHTTP(0xc00000c3c0, 0x21e8ca0, 0xc0001309a0, 0xc000232a00)
	net/http/server.go:2050 +0x44
net/http.serverHandler.ServeHTTP(0xc0002fe0e0, 0x21e8ca0, 0xc0001309a0, 0xc000232a00)
	net/http/server.go:2868 +0xa3
net/http.(*conn).serve(0xc000835860, 0x21ebf50, 0xc0007e2c40)
	net/http/server.go:1933 +0x8cd
created by net/http.(*Server).Serve
	net/http/server.go:2994 +0x39b

lovejoy avatar Feb 28 '22 10:02 lovejoy

@lovejoy, hello. We've pushed the build that should fix a couple of concurrency issues to the edge channel. Could you please check, if it still panics?

EugeneOne1 avatar Aug 04 '22 16:08 EugeneOne1

We'll close this issue for now. Please feel free to reopen if the issue is still not fixed.

ainar-g avatar Aug 19 '22 13:08 ainar-g