goroutine profile: total 22 3 @ 0x479f2e 0x456fd7 0x8c84d7 0x481161 # 0x8c84d6 github.com/0xERR0R/blocky/config.(*SourceLoading).periodically+0xf6 /home/runner/work/blocky/blocky/config/config.go:382 2 @ 0x479f2e 0x456fd7 0xeb898f 0x481161 # 0xeb898e github.com/0xERR0R/blocky/cache/expirationcache.periodicCleanup[...]+0xee /home/runner/work/blocky/blocky/cache/expirationcache/expiration_cache.go:104 2 @ 0x479f2e 0x456fd7 0xeb95cf 0x481161 # 0xeb95ce github.com/0xERR0R/blocky/cache/expirationcache.periodicCleanup[...]+0xee /home/runner/work/blocky/blocky/cache/expirationcache/expiration_cache.go:104 1 @ 0x417309 0x47be49 0x8d6753 0x481161 # 0x47be48 os/signal.signal_recv+0x28 /opt/hostedtoolcache/go/1.24.0/x64/src/runtime/sigqueue.go:152 # 0x8d6752 os/signal.loop+0x12 /opt/hostedtoolcache/go/1.24.0/x64/src/os/signal/signal_unix.go:23 1 @ 0x439a91 0x478d3d 0xed6d51 0xed6b85 0xed39ab 0xeeceaf 0x83b202 0x6f77a9 0xef3e6d 0x6f77a9 0x838c8f 0x83a61b 0x6f77a9 0x83b202 0x6f77a9 0x838c8f 0x83a61b 0x6f77a9 0x83b202 0x6f77a9 0x912bfe 0x6f77a9 0xef8552 0x6f77a9 0x838c4e 0x7181ce 0x6f5ca5 0x481161 # 0xed6d50 runtime/pprof.writeRuntimeProfile+0xb0 /opt/hostedtoolcache/go/1.24.0/x64/src/runtime/pprof/pprof.go:796 # 0xed6b84 runtime/pprof.writeGoroutine+0x44 /opt/hostedtoolcache/go/1.24.0/x64/src/runtime/pprof/pprof.go:755 # 0xed39aa runtime/pprof.(*Profile).WriteTo+0x14a /opt/hostedtoolcache/go/1.24.0/x64/src/runtime/pprof/pprof.go:377 # 0xeeceae net/http/pprof.handler.ServeHTTP+0x52e /opt/hostedtoolcache/go/1.24.0/x64/src/net/http/pprof/pprof.go:272 # 0x83b201 github.com/go-chi/chi/v5.(*Mux).routeHTTP+0x2e1 /home/runner/go/pkg/mod/github.com/go-chi/chi/v5@v5.2.1/mux.go:480 # 0x6f77a8 net/http.HandlerFunc.ServeHTTP+0x28 /opt/hostedtoolcache/go/1.24.0/x64/src/net/http/server.go:2294 # 0xef3e6c github.com/go-chi/chi/v5/middleware.NoCache.func1+0x28c /home/runner/go/pkg/mod/github.com/go-chi/chi/v5@v5.2.1/middleware/nocache.go:55 # 0x6f77a8 net/http.HandlerFunc.ServeHTTP+0x28 /opt/hostedtoolcache/go/1.24.0/x64/src/net/http/server.go:2294 # 0x838c8e github.com/go-chi/chi/v5.(*Mux).ServeHTTP+0x32e /home/runner/go/pkg/mod/github.com/go-chi/chi/v5@v5.2.1/mux.go:73 # 0x83a61a github.com/go-chi/chi/v5.(*Mux).Mount.func1+0x1ba /home/runner/go/pkg/mod/github.com/go-chi/chi/v5@v5.2.1/mux.go:327 # 0x6f77a8 net/http.HandlerFunc.ServeHTTP+0x28 /opt/hostedtoolcache/go/1.24.0/x64/src/net/http/server.go:2294 # 0x83b201 github.com/go-chi/chi/v5.(*Mux).routeHTTP+0x2e1 /home/runner/go/pkg/mod/github.com/go-chi/chi/v5@v5.2.1/mux.go:480 # 0x6f77a8 net/http.HandlerFunc.ServeHTTP+0x28 /opt/hostedtoolcache/go/1.24.0/x64/src/net/http/server.go:2294 # 0x838c8e github.com/go-chi/chi/v5.(*Mux).ServeHTTP+0x32e /home/runner/go/pkg/mod/github.com/go-chi/chi/v5@v5.2.1/mux.go:73 # 0x83a61a github.com/go-chi/chi/v5.(*Mux).Mount.func1+0x1ba /home/runner/go/pkg/mod/github.com/go-chi/chi/v5@v5.2.1/mux.go:327 # 0x6f77a8 net/http.HandlerFunc.ServeHTTP+0x28 /opt/hostedtoolcache/go/1.24.0/x64/src/net/http/server.go:2294 # 0x83b201 github.com/go-chi/chi/v5.(*Mux).routeHTTP+0x2e1 /home/runner/go/pkg/mod/github.com/go-chi/chi/v5@v5.2.1/mux.go:480 # 0x6f77a8 net/http.HandlerFunc.ServeHTTP+0x28 /opt/hostedtoolcache/go/1.24.0/x64/src/net/http/server.go:2294 # 0x912bfd github.com/go-chi/cors.(*Cors).Handler-fm.(*Cors).Handler.func1+0x17d /home/runner/go/pkg/mod/github.com/go-chi/cors@v1.2.1/cors.go:228 # 0x6f77a8 net/http.HandlerFunc.ServeHTTP+0x28 /opt/hostedtoolcache/go/1.24.0/x64/src/net/http/server.go:2294 # 0xef8551 github.com/0xERR0R/blocky/server.secureHeadersMiddleware.func1+0x311 /home/runner/work/blocky/blocky/server/http.go:79 # 0x6f77a8 net/http.HandlerFunc.ServeHTTP+0x28 /opt/hostedtoolcache/go/1.24.0/x64/src/net/http/server.go:2294 # 0x838c4d github.com/go-chi/chi/v5.(*Mux).ServeHTTP+0x2ed /home/runner/go/pkg/mod/github.com/go-chi/chi/v5@v5.2.1/mux.go:90 # 0x7181cd net/http.serverHandler.ServeHTTP+0x8d /opt/hostedtoolcache/go/1.24.0/x64/src/net/http/server.go:3301 # 0x6f5ca4 net/http.(*conn).serve+0x624 /opt/hostedtoolcache/go/1.24.0/x64/src/net/http/server.go:2102 1 @ 0x479f2e 0x411d25 0x4118b2 0xef7f6c 0x481161 # 0xef7f6b github.com/0xERR0R/blocky/server.(*httpServer).Serve.func1+0x2b /home/runner/work/blocky/blocky/server/http.go:45 1 @ 0x479f2e 0x411d25 0x4118b2 0xf0286b 0xf03286 0x892494 0x892d8c 0xf02398 0xf0238f 0xf04813 0x44480b 0x481161 # 0xf0286a github.com/0xERR0R/blocky/cmd.startServer+0x36a /home/runner/work/blocky/blocky/cmd/serve.go:79 # 0xf03285 github.com/0xERR0R/blocky/cmd.NewRootCommand.func1+0xc5 /home/runner/work/blocky/blocky/cmd/root.go:42 # 0x892493 github.com/spf13/cobra.(*Command).execute+0xa93 /home/runner/go/pkg/mod/github.com/spf13/cobra@v1.9.1/command.go:1015 # 0x892d8b github.com/spf13/cobra.(*Command).ExecuteC+0x40b /home/runner/go/pkg/mod/github.com/spf13/cobra@v1.9.1/command.go:1148 # 0xf02397 github.com/spf13/cobra.(*Command).Execute+0x17 /home/runner/go/pkg/mod/github.com/spf13/cobra@v1.9.1/command.go:1071 # 0xf0238e github.com/0xERR0R/blocky/cmd.Execute+0xe /home/runner/work/blocky/blocky/cmd/root.go:112 # 0xf04812 main.main+0x12 /home/runner/work/blocky/blocky/main.go:10 # 0x44480a runtime.main+0x28a /opt/hostedtoolcache/go/1.24.0/x64/src/runtime/proc.go:283 1 @ 0x479f2e 0x43d317 0x479145 0x4bde07 0x4bf0fa 0x4bf0e8 0x5a8445 0x5b8325 0x6212fb 0x51bdf8 0x6214de 0x61e5ef 0x624dc5 0x624dc6 0x66e697 0x4b3551 0x6b2225 0x6b21f3 0x6b295d 0x6d787a 0x6d6c99 0x481161 # 0x479144 internal/poll.runtime_pollWait+0x84 /opt/hostedtoolcache/go/1.24.0/x64/src/runtime/netpoll.go:351 # 0x4bde06 internal/poll.(*pollDesc).wait+0x26 /opt/hostedtoolcache/go/1.24.0/x64/src/internal/poll/fd_poll_runtime.go:84 # 0x4bf0f9 internal/poll.(*pollDesc).waitRead+0x279 /opt/hostedtoolcache/go/1.24.0/x64/src/internal/poll/fd_poll_runtime.go:89 # 0x4bf0e7 internal/poll.(*FD).Read+0x267 /opt/hostedtoolcache/go/1.24.0/x64/src/internal/poll/fd_unix.go:165 # 0x5a8444 net.(*netFD).Read+0x24 /opt/hostedtoolcache/go/1.24.0/x64/src/net/fd_posix.go:55 # 0x5b8324 net.(*conn).Read+0x44 /opt/hostedtoolcache/go/1.24.0/x64/src/net/net.go:194 # 0x6212fa crypto/tls.(*atLeastReader).Read+0x3a /opt/hostedtoolcache/go/1.24.0/x64/src/crypto/tls/conn.go:809 # 0x51bdf7 bytes.(*Buffer).ReadFrom+0x97 /opt/hostedtoolcache/go/1.24.0/x64/src/bytes/buffer.go:211 # 0x6214dd crypto/tls.(*Conn).readFromUntil+0xdd /opt/hostedtoolcache/go/1.24.0/x64/src/crypto/tls/conn.go:831 # 0x61e5ee crypto/tls.(*Conn).readRecordOrCCS+0x3ce /opt/hostedtoolcache/go/1.24.0/x64/src/crypto/tls/conn.go:629 # 0x624dc4 crypto/tls.(*Conn).readRecord+0x144 /opt/hostedtoolcache/go/1.24.0/x64/src/crypto/tls/conn.go:591 # 0x624dc5 crypto/tls.(*Conn).Read+0x145 /opt/hostedtoolcache/go/1.24.0/x64/src/crypto/tls/conn.go:1385 # 0x66e696 bufio.(*Reader).Read+0x196 /opt/hostedtoolcache/go/1.24.0/x64/src/bufio/bufio.go:245 # 0x4b3550 io.ReadAtLeast+0x90 /opt/hostedtoolcache/go/1.24.0/x64/src/io/io.go:335 # 0x6b2224 io.ReadFull+0x64 /opt/hostedtoolcache/go/1.24.0/x64/src/io/io.go:354 # 0x6b21f2 net/http.http2readFrameHeader+0x32 /opt/hostedtoolcache/go/1.24.0/x64/src/net/http/h2_bundle.go:1805 # 0x6b295c net/http.(*http2Framer).ReadFrame+0x7c /opt/hostedtoolcache/go/1.24.0/x64/src/net/http/h2_bundle.go:2072 # 0x6d7879 net/http.(*http2clientConnReadLoop).run+0xd9 /opt/hostedtoolcache/go/1.24.0/x64/src/net/http/h2_bundle.go:9933 # 0x6d6c98 net/http.(*http2ClientConn).readLoop+0x78 /opt/hostedtoolcache/go/1.24.0/x64/src/net/http/h2_bundle.go:9812 1 @ 0x479f2e 0x43d317 0x479145 0x4bde07 0x4c0cb0 0x4c0c9a 0x5a8b11 0x5c4070 0x5c289e 0x5c27a5 0x810e45 0x7ff15d 0x7fc273 0x7fdde5 0x7fc919 0xefbfc9 0x481161 # 0x479144 internal/poll.runtime_pollWait+0x84 /opt/hostedtoolcache/go/1.24.0/x64/src/runtime/netpoll.go:351 # 0x4bde06 internal/poll.(*pollDesc).wait+0x26 /opt/hostedtoolcache/go/1.24.0/x64/src/internal/poll/fd_poll_runtime.go:84 # 0x4c0caf internal/poll.(*pollDesc).waitRead+0x32f /opt/hostedtoolcache/go/1.24.0/x64/src/internal/poll/fd_poll_runtime.go:89 # 0x4c0c99 internal/poll.(*FD).ReadMsgInet6+0x319 /opt/hostedtoolcache/go/1.24.0/x64/src/internal/poll/fd_unix.go:356 # 0x5a8b10 net.(*netFD).readMsgInet6+0x30 /opt/hostedtoolcache/go/1.24.0/x64/src/net/fd_posix.go:90 # 0x5c406f net.(*UDPConn).readMsg+0x8f /opt/hostedtoolcache/go/1.24.0/x64/src/net/udpsock_posix.go:106 # 0x5c289d net.(*UDPConn).ReadMsgUDPAddrPort+0x3d /opt/hostedtoolcache/go/1.24.0/x64/src/net/udpsock.go:203 # 0x5c27a4 net.(*UDPConn).ReadMsgUDP+0x24 /opt/hostedtoolcache/go/1.24.0/x64/src/net/udpsock.go:191 # 0x810e44 github.com/miekg/dns.ReadFromSessionUDP+0x84 /home/runner/go/pkg/mod/github.com/miekg/dns@v1.1.66/udp.go:43 # 0x7ff15c github.com/miekg/dns.(*Server).readUDP+0xfc /home/runner/go/pkg/mod/github.com/miekg/dns@v1.1.66/server.go:717 # 0x7fc272 github.com/miekg/dns.defaultReader.ReadUDP+0x12 /home/runner/go/pkg/mod/github.com/miekg/dns@v1.1.66/server.go:174 # 0x7fdde4 github.com/miekg/dns.(*Server).serveUDP+0x244 /home/runner/go/pkg/mod/github.com/miekg/dns@v1.1.66/server.go:531 # 0x7fc918 github.com/miekg/dns.(*Server).ListenAndServe+0x558 /home/runner/go/pkg/mod/github.com/miekg/dns@v1.1.66/server.go:360 # 0xefbfc8 github.com/0xERR0R/blocky/server.(*Server).Start.func1+0x28 /home/runner/work/blocky/blocky/server/server.go:398 1 @ 0x479f2e 0x43d317 0x479145 0x4bde07 0x4c31d5 0x4c31c3 0x5aa3e9 0x5c123b 0x5c0430 0x666a24 0x7fd7a7 0x7fcbd8 0xefbfc9 0x481161 # 0x479144 internal/poll.runtime_pollWait+0x84 /opt/hostedtoolcache/go/1.24.0/x64/src/runtime/netpoll.go:351 # 0x4bde06 internal/poll.(*pollDesc).wait+0x26 /opt/hostedtoolcache/go/1.24.0/x64/src/internal/poll/fd_poll_runtime.go:84 # 0x4c31d4 internal/poll.(*pollDesc).waitRead+0x294 /opt/hostedtoolcache/go/1.24.0/x64/src/internal/poll/fd_poll_runtime.go:89 # 0x4c31c2 internal/poll.(*FD).Accept+0x282 /opt/hostedtoolcache/go/1.24.0/x64/src/internal/poll/fd_unix.go:620 # 0x5aa3e8 net.(*netFD).accept+0x28 /opt/hostedtoolcache/go/1.24.0/x64/src/net/fd_unix.go:172 # 0x5c123a net.(*TCPListener).accept+0x1a /opt/hostedtoolcache/go/1.24.0/x64/src/net/tcpsock_posix.go:159 # 0x5c042f net.(*TCPListener).Accept+0x2f /opt/hostedtoolcache/go/1.24.0/x64/src/net/tcpsock.go:380 # 0x666a23 crypto/tls.(*listener).Accept+0x23 /opt/hostedtoolcache/go/1.24.0/x64/src/crypto/tls/tls.go:67 # 0x7fd7a6 github.com/miekg/dns.(*Server).serveTCP+0x106 /home/runner/go/pkg/mod/github.com/miekg/dns@v1.1.66/server.go:475 # 0x7fcbd7 github.com/miekg/dns.(*Server).ListenAndServe+0x817 /home/runner/go/pkg/mod/github.com/miekg/dns@v1.1.66/server.go:346 # 0xefbfc8 github.com/0xERR0R/blocky/server.(*Server).Start.func1+0x28 /home/runner/work/blocky/blocky/server/server.go:398 1 @ 0x479f2e 0x43d317 0x479145 0x4bde07 0x4c31d5 0x4c31c3 0x5aa3e9 0x5c123b 0x5c0430 0x6fb18c 0xef7efb 0xefbe90 0x481161 # 0x479144 internal/poll.runtime_pollWait+0x84 /opt/hostedtoolcache/go/1.24.0/x64/src/runtime/netpoll.go:351 # 0x4bde06 internal/poll.(*pollDesc).wait+0x26 /opt/hostedtoolcache/go/1.24.0/x64/src/internal/poll/fd_poll_runtime.go:84 # 0x4c31d4 internal/poll.(*pollDesc).waitRead+0x294 /opt/hostedtoolcache/go/1.24.0/x64/src/internal/poll/fd_poll_runtime.go:89 # 0x4c31c2 internal/poll.(*FD).Accept+0x282 /opt/hostedtoolcache/go/1.24.0/x64/src/internal/poll/fd_unix.go:620 # 0x5aa3e8 net.(*netFD).accept+0x28 /opt/hostedtoolcache/go/1.24.0/x64/src/net/fd_unix.go:172 # 0x5c123a net.(*TCPListener).accept+0x1a /opt/hostedtoolcache/go/1.24.0/x64/src/net/tcpsock_posix.go:159 # 0x5c042f net.(*TCPListener).Accept+0x2f /opt/hostedtoolcache/go/1.24.0/x64/src/net/tcpsock.go:380 # 0x6fb18b net/http.(*Server).Serve+0x30b /opt/hostedtoolcache/go/1.24.0/x64/src/net/http/server.go:3424 # 0xef7efa github.com/0xERR0R/blocky/server.(*httpServer).Serve+0x9a /home/runner/work/blocky/blocky/server/http.go:50 # 0xefbe8f github.com/0xERR0R/blocky/server.(*Server).Start.func2+0x12f /home/runner/work/blocky/blocky/server/server.go:410 1 @ 0x479f2e 0x43d317 0x479145 0x4bde07 0x4c31d5 0x4c31c3 0x5aa3e9 0x5c123b 0x5c0430 0x7fd7a7 0x7fc79e 0xefbfc9 0x481161 # 0x479144 internal/poll.runtime_pollWait+0x84 /opt/hostedtoolcache/go/1.24.0/x64/src/runtime/netpoll.go:351 # 0x4bde06 internal/poll.(*pollDesc).wait+0x26 /opt/hostedtoolcache/go/1.24.0/x64/src/internal/poll/fd_poll_runtime.go:84 # 0x4c31d4 internal/poll.(*pollDesc).waitRead+0x294 /opt/hostedtoolcache/go/1.24.0/x64/src/internal/poll/fd_poll_runtime.go:89 # 0x4c31c2 internal/poll.(*FD).Accept+0x282 /opt/hostedtoolcache/go/1.24.0/x64/src/internal/poll/fd_unix.go:620 # 0x5aa3e8 net.(*netFD).accept+0x28 /opt/hostedtoolcache/go/1.24.0/x64/src/net/fd_unix.go:172 # 0x5c123a net.(*TCPListener).accept+0x1a /opt/hostedtoolcache/go/1.24.0/x64/src/net/tcpsock_posix.go:159 # 0x5c042f net.(*TCPListener).Accept+0x2f /opt/hostedtoolcache/go/1.24.0/x64/src/net/tcpsock.go:380 # 0x7fd7a6 github.com/miekg/dns.(*Server).serveTCP+0x106 /home/runner/go/pkg/mod/github.com/miekg/dns@v1.1.66/server.go:475 # 0x7fc79d github.com/miekg/dns.(*Server).ListenAndServe+0x3dd /home/runner/go/pkg/mod/github.com/miekg/dns@v1.1.66/server.go:332 # 0xefbfc8 github.com/0xERR0R/blocky/server.(*Server).Start.func1+0x28 /home/runner/work/blocky/blocky/server/server.go:398 1 @ 0x479f2e 0x456fd7 0xeaa66a 0x481161 # 0xeaa669 github.com/0xERR0R/blocky/resolver.(*QueryLoggingResolver).writeLog+0xe9 /home/runner/work/blocky/blocky/resolver/query_logging_resolver.go:223 1 @ 0x479f2e 0x456fd7 0xeb620f 0x481161 # 0xeb620e github.com/0xERR0R/blocky/cache/expirationcache.periodicCleanup[...]+0xee /home/runner/work/blocky/blocky/cache/expirationcache/expiration_cache.go:104 1 @ 0x479f2e 0x456fd7 0xebacaf 0x481161 # 0xebacae github.com/0xERR0R/blocky/cache/expirationcache.periodicCleanup[...]+0xee /home/runner/work/blocky/blocky/cache/expirationcache/expiration_cache.go:104 1 @ 0x479f2e 0x456fd7 0xefda4e 0x481161 # 0xefda4d github.com/0xERR0R/blocky/server.registerPrintConfigurationTrigger.func1+0x8d /home/runner/work/blocky/blocky/server/server_config_trigger.go:19 1 @ 0x479f2e 0x456fd7 0xf02976 0x481161 # 0xf02975 github.com/0xERR0R/blocky/cmd.startServer.func1+0x95 /home/runner/work/blocky/blocky/cmd/serve.go:65 1 @ 0x49a285 0x4987f8 0x4bf12e 0x4bf116 0x4befb1 0x5a8445 0x5b8325 0x6efb77 0x481161 # 0x49a284 syscall.Syscall+0x24 /opt/hostedtoolcache/go/1.24.0/x64/src/syscall/syscall_linux.go:73 # 0x4987f7 syscall.read+0x37 /opt/hostedtoolcache/go/1.24.0/x64/src/syscall/zsyscall_linux_amd64.go:736 # 0x4bf12d syscall.Read+0x2ad /opt/hostedtoolcache/go/1.24.0/x64/src/syscall/syscall_unix.go:183 # 0x4bf115 internal/poll.ignoringEINTRIO+0x295 /opt/hostedtoolcache/go/1.24.0/x64/src/internal/poll/fd_unix.go:745 # 0x4befb0 internal/poll.(*FD).Read+0x130 /opt/hostedtoolcache/go/1.24.0/x64/src/internal/poll/fd_unix.go:161 # 0x5a8444 net.(*netFD).Read+0x24 /opt/hostedtoolcache/go/1.24.0/x64/src/net/fd_posix.go:55 # 0x5b8324 net.(*conn).Read+0x44 /opt/hostedtoolcache/go/1.24.0/x64/src/net/net.go:194 # 0x6efb76 net/http.(*connReader).backgroundRead+0x36 /opt/hostedtoolcache/go/1.24.0/x64/src/net/http/server.go:690