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

fatal error: concurrent map iteration and map write #4342

Closed
lovejoy opened this issue Feb 28, 2022 · 2 comments
Closed

fatal error: concurrent map iteration and map write #4342

lovejoy opened this issue Feb 28, 2022 · 2 comments
Assignees
Milestone

Comments

@lovejoy
Copy link

lovejoy commented Feb 28, 2022

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/gziphandler@v1.1.1/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/sys@v0.0.0-20211216021012-1d35b9e2eb4e/unix/zsyscall_linux_amd64.go:56 +0x72
github.com/fsnotify/fsnotify.(*fdPoller).wait(0xc000212320, 0x0, 0x0, 0x0)
	github.com/fsnotify/fsnotify@v1.5.1/inotify_poller.go:87 +0x91
github.com/fsnotify/fsnotify.(*Watcher).readEvents(0xc00025e050)
	github.com/fsnotify/fsnotify@v1.5.1/inotify.go:193 +0x206
created by github.com/fsnotify/fsnotify.NewWatcher
	github.com/fsnotify/fsnotify@v1.5.1/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/dnsproxy@v0.40.7-0.20220124144147-a8868e34b0bf/proxyutil/udp_unix.go:68 +0xaa
github.com/AdguardTeam/dnsproxy/proxyutil.UDPRead(...)
	github.com/AdguardTeam/dnsproxy@v0.40.7-0.20220124144147-a8868e34b0bf/proxyutil/udp.go:25
github.com/AdguardTeam/dnsproxy/proxy.(*Proxy).udpPacketLoop(0xc000134700, 0xc00021cb58, 0x21e1a58, 0xc00021cb50)
	github.com/AdguardTeam/dnsproxy@v0.40.7-0.20220124144147-a8868e34b0bf/proxy/server_udp.go:67 +0x13e
created by github.com/AdguardTeam/dnsproxy/proxy.(*Proxy).startListeners
	github.com/AdguardTeam/dnsproxy@v0.40.7-0.20220124144147-a8868e34b0bf/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/dnsproxy@v0.40.7-0.20220124144147-a8868e34b0bf/proxy/server_tcp.go:58 +0x190
created by github.com/AdguardTeam/dnsproxy/proxy.(*Proxy).startListeners
	github.com/AdguardTeam/dnsproxy@v0.40.7-0.20220124144147-a8868e34b0bf/proxy/server.go:50 +0x238

goroutine 1177314 [runnable]:
golang.org/x/crypto/blowfish.encryptBlock(0x1514be87206e0a30, 0xc0007d5300, 0x1514be87206e0a30)
	golang.org/x/crypto@v0.0.0-20211215153901-e495a2d5b3d3/blowfish/block.go:117 +0xb
golang.org/x/crypto/blowfish.ExpandKey(0xc00077a1b0, 0x6, 0x10, 0xc0007d5300)
	golang.org/x/crypto@v0.0.0-20211215153901-e495a2d5b3d3/blowfish/block.go:58 +0x1f2
golang.org/x/crypto/bcrypt.expensiveBlowfishSetup(0xc000081758, 0x5, 0x20, 0xc00000000a, 0xc00050d878, 0x16, 0x18, 0x1f, 0xc0007ae760, 0x3)
	golang.org/x/crypto@v0.0.0-20211215153901-e495a2d5b3d3/bcrypt/bcrypt.go:227 +0x165
golang.org/x/crypto/bcrypt.bcrypt(0xc000081758, 0x5, 0x20, 0xa, 0xc00050d878, 0x16, 0x18, 0x455858, 0xc000511cfc, 0x4, ...)
	golang.org/x/crypto@v0.0.0-20211215153901-e495a2d5b3d3/bcrypt/bcrypt.go:191 +0xcc
golang.org/x/crypto/bcrypt.CompareHashAndPassword(0xc000511cc0, 0x3c, 0x40, 0xc000081758, 0x5, 0x20, 0xc00077a174, 0xb)
	golang.org/x/crypto@v0.0.0-20211215153901-e495a2d5b3d3/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/go-cache@v2.1.0+incompatible/cache.go:1079 +0xa9
created by github.com/patrickmn/go-cache.runJanitor
	github.com/patrickmn/go-cache@v2.1.0+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/bbolt@v1.3.6/cursor.go:249 +0x65
go.etcd.io/bbolt.(*Cursor).seek(0xc00093aeb8, 0xc00093af37, 0x1, 0x1, 0x8, 0x28, 0x7fe7fe085108, 0x30, 0xc000babef0, 0x10, ...)
	go.etcd.io/bbolt@v1.3.6/cursor.go:159 +0x7d
go.etcd.io/bbolt.(*Bucket).Get(0xc000b31b80, 0xc00093af37, 0x1, 0x1, 0xc000b31b80, 0x0, 0x0)
	go.etcd.io/bbolt@v1.3.6/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/gziphandler@v1.1.1/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
@ainar-g ainar-g added this to the v0.107.8 milestone Jun 3, 2022
@ainar-g ainar-g self-assigned this Jun 3, 2022
@ainar-g ainar-g modified the milestones: v0.107.8, v0.107.9 Jul 11, 2022
@ainar-g ainar-g modified the milestones: v0.107.9, v0.107.10 Aug 3, 2022
adguard pushed a commit that referenced this issue Aug 4, 2022
Merge in DNS/adguard-home from 4358-fix-stats to master

Updates #4358.
Updates #4342.

Squashed commit of the following:

commit 5683cb3
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Thu Aug 4 18:20:54 2022 +0300

    stats: rm races test

commit 63dd676
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Thu Aug 4 17:13:36 2022 +0300

    stats: try to imp test

commit 59a0f24
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Thu Aug 4 16:38:57 2022 +0300

    stats: fix nil ptr deref

commit 7fc3ff1
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Thu Apr 7 16:02:51 2022 +0300

    stats: fix races finally, imp tests

commit c63f5f4
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Thu Aug 4 00:56:49 2022 +0300

    aghhttp: add register func

commit 61adc7f
Merge: edbdb2d 9b3adac
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Thu Aug 4 00:36:01 2022 +0300

    Merge branch 'master' into 4358-fix-stats

commit edbdb2d
Merge: a91e4d7 a481ff4
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Wed Aug 3 21:00:42 2022 +0300

    Merge branch 'master' into 4358-fix-stats

commit a91e4d7
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Wed Aug 3 18:46:19 2022 +0300

    stats: imp code, docs

commit c5f3814
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Wed Aug 3 18:16:13 2022 +0300

    all: log changes

commit 5e6caaf
Merge: 091ba75 eb8e816
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Wed Aug 3 18:09:10 2022 +0300

    Merge branch 'master' into 4358-fix-stats

commit 091ba75
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Wed Aug 3 18:07:39 2022 +0300

    stats: imp docs, code

commit f2b2de7
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Tue Aug 2 17:09:30 2022 +0300

    all: refactor stats & add mutexes

commit b3f11c4
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Wed Apr 27 15:30:09 2022 +0300

    WIP
@EugeneOne1
Copy link
Member

@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?

@ainar-g ainar-g modified the milestones: v0.107.10, v0.107.11 Aug 17, 2022
adguard pushed a commit that referenced this issue Aug 17, 2022
Merge in DNS/adguard-home from 4358-fix-stats to master

Updates #4358.
Updates #4342.

Squashed commit of the following:

commit 5683cb3
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Thu Aug 4 18:20:54 2022 +0300

    stats: rm races test

commit 63dd676
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Thu Aug 4 17:13:36 2022 +0300

    stats: try to imp test

commit 59a0f24
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Thu Aug 4 16:38:57 2022 +0300

    stats: fix nil ptr deref

commit 7fc3ff1
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Thu Apr 7 16:02:51 2022 +0300

    stats: fix races finally, imp tests

commit c63f5f4
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Thu Aug 4 00:56:49 2022 +0300

    aghhttp: add register func

commit 61adc7f
Merge: edbdb2d 9b3adac
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Thu Aug 4 00:36:01 2022 +0300

    Merge branch 'master' into 4358-fix-stats

commit edbdb2d
Merge: a91e4d7 a481ff4
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Wed Aug 3 21:00:42 2022 +0300

    Merge branch 'master' into 4358-fix-stats

commit a91e4d7
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Wed Aug 3 18:46:19 2022 +0300

    stats: imp code, docs

commit c5f3814
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Wed Aug 3 18:16:13 2022 +0300

    all: log changes

commit 5e6caaf
Merge: 091ba75 eb8e816
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Wed Aug 3 18:09:10 2022 +0300

    Merge branch 'master' into 4358-fix-stats

commit 091ba75
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Wed Aug 3 18:07:39 2022 +0300

    stats: imp docs, code

commit f2b2de7
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Tue Aug 2 17:09:30 2022 +0300

    all: refactor stats & add mutexes

commit b3f11c4
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Wed Apr 27 15:30:09 2022 +0300

    WIP
@ainar-g ainar-g modified the milestones: v0.107.11, v0.107.10 Aug 19, 2022
@ainar-g
Copy link
Contributor

ainar-g commented Aug 19, 2022

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

@ainar-g ainar-g closed this as completed Aug 19, 2022
heyxkhoa pushed a commit to heyxkhoa/AdGuardHome that referenced this issue Mar 20, 2023
Merge in DNS/adguard-home from 4358-fix-stats to master

Updates AdguardTeam#4358.
Updates AdguardTeam#4342.

Squashed commit of the following:

commit 5683cb3
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Thu Aug 4 18:20:54 2022 +0300

    stats: rm races test

commit 63dd676
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Thu Aug 4 17:13:36 2022 +0300

    stats: try to imp test

commit 59a0f24
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Thu Aug 4 16:38:57 2022 +0300

    stats: fix nil ptr deref

commit 7fc3ff1
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Thu Apr 7 16:02:51 2022 +0300

    stats: fix races finally, imp tests

commit c63f5f4
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Thu Aug 4 00:56:49 2022 +0300

    aghhttp: add register func

commit 61adc7f
Merge: edbdb2d 9b3adac
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Thu Aug 4 00:36:01 2022 +0300

    Merge branch 'master' into 4358-fix-stats

commit edbdb2d
Merge: a91e4d7 a481ff4
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Wed Aug 3 21:00:42 2022 +0300

    Merge branch 'master' into 4358-fix-stats

commit a91e4d7
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Wed Aug 3 18:46:19 2022 +0300

    stats: imp code, docs

commit c5f3814
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Wed Aug 3 18:16:13 2022 +0300

    all: log changes

commit 5e6caaf
Merge: 091ba75 eb8e816
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Wed Aug 3 18:09:10 2022 +0300

    Merge branch 'master' into 4358-fix-stats

commit 091ba75
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Wed Aug 3 18:07:39 2022 +0300

    stats: imp docs, code

commit f2b2de7
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Tue Aug 2 17:09:30 2022 +0300

    all: refactor stats & add mutexes

commit b3f11c4
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Wed Apr 27 15:30:09 2022 +0300

    WIP
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants