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

使用通知推送的话多请求几次http的时候会崩溃 #32

Closed
Conanjun opened this issue Jun 24, 2021 · 4 comments
Closed

使用通知推送的话多请求几次http的时候会崩溃 #32

Conanjun opened this issue Jun 24, 2021 · 4 comments
Labels
bug Something isn't working

Comments

@Conanjun
Copy link

Environments
ubuntu 18

Screenshots
image

@Li4n0
Copy link
Owner

Li4n0 commented Jun 24, 2021

@Conanjun 麻烦提供完整的报错信息,方便定位问题。图片里的看起来只是 panic 时一个 goroutine 的堆栈。

@Conanjun
Copy link
Author

做了对比实验的了,不开notice的时候随便打http/dns记录都不会崩溃,一开notice多打几次就崩溃,应该是notice的问题的

runtime stack:
runtime.throw(0x100f6f7, 0x2a)
        runtime/panic.go:1117 +0x72
runtime.sigpanic()
        runtime/signal_unix.go:718 +0x2e5

goroutine 44 [syscall]:
runtime.cgocall(0xc9c1c0, 0xc00004ddc0, 0xc000302568)
        runtime/cgocall.go:154 +0x5b fp=0xc00004dd90 sp=0xc00004dd58 pc=0x40599b
net._C2func_getaddrinfo(0xc0004f3aa0, 0x0, 0xc0004c4510, 0xc000302568, 0x0, 0x0, 0x0)
        _cgo_gotypes.go:90 +0x50 fp=0xc00004ddc0 sp=0xc00004dd90 pc=0x5d7d50
net.cgoLookupIPCNAME.func1(0xc0004f3aa0, 0xf, 0xf, 0xc0004c4510, 0xc000302568, 0x4e069c, 0xc00037ed80, 0xc00004dec8)
        net/cgo_unix.go:161 +0xc5 fp=0xc00004de08 sp=0xc00004ddc0 pc=0x5dc585
net.cgoLookupIPCNAME(0xfe4b1a, 0x3, 0xc0002c1050, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        net/cgo_unix.go:161 +0x16b fp=0xc00004df18 sp=0xc00004de08 pc=0x5d8d4b
net.cgoIPLookup(0xc0002ef980, 0xfe4b1a, 0x3, 0xc0002c1050, 0xe)
        net/cgo_unix.go:218 +0x67 fp=0xc00004dfb8 sp=0xc00004df18 pc=0x5d9487
runtime.goexit()
        runtime/asm_amd64.s:1371 +0x1 fp=0xc00004dfc0 sp=0xc00004dfb8 pc=0x46f361
created by net.cgoLookupIP
        net/cgo_unix.go:228 +0xc7

goroutine 1 [IO wait]:
internal/poll.runtime_pollWait(0x7faf186156d8, 0x72, 0x0)
        runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc00037e318, 0x72, 0x0, 0x0, 0xfeaadb)
        internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
        internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Accept(0xc00037e300, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
        internal/poll/fd_unix.go:401 +0x212
net.(*netFD).accept(0xc00037e300, 0x48edc3e413c36d7d, 0x0, 0x0)
        net/fd_unix.go:172 +0x45
net.(*TCPListener).accept(0xc0002c4660, 0x60d48a1a, 0xc0001539f0, 0x4ceaa6)
        net/tcpsock_posix.go:139 +0x32
net.(*TCPListener).Accept(0xc0002c4660, 0xc000153a40, 0x18, 0xc000000300, 0x6dac3b)
        net/tcpsock.go:261 +0x65
net/http.(*Server).Serve(0xc0000cc070, 0x13a3c58, 0xc0002c4660, 0x0, 0x0)
        net/http/server.go:2981 +0x285
net/http.(*Server).ListenAndServe(0xc0000cc070, 0xc0000cc070, 0x0)
        net/http/server.go:2910 +0xba
github.com/li4n0/revsuit/pkg/rhttp.(*Server).startHttpServer(0xc0000cc000)
        github.com/li4n0/revsuit/pkg/rhttp/http.go:99 +0x186
github.com/li4n0/revsuit/pkg/rhttp.(*Server).Run(0xc0000cc000)
        github.com/li4n0/revsuit/pkg/rhttp/http.go:123 +0x4c
github.com/li4n0/revsuit/pkg/server.(*Revsuit).Run(0xc000146070)
        github.com/li4n0/revsuit/pkg/server/server.go:252 +0xc7
github.com/li4n0/revsuit/internal/cli.Start.func1(0xc0002afb40, 0x0, 0xa)
        github.com/li4n0/revsuit/internal/cli/cli.go:83 +0x613
github.com/urfave/cli/v2.(*App).RunContext(0xc00037da00, 0x13a7300, 0xc00003a0f8, 0xc000032210, 0x1, 0x1, 0x0, 0x0)
        github.com/urfave/cli/v2@v2.3.0/app.go:322 +0x6fe
github.com/urfave/cli/v2.(*App).Run(...)
        github.com/urfave/cli/v2@v2.3.0/app.go:224
github.com/li4n0/revsuit/internal/cli.Start()
        github.com/li4n0/revsuit/internal/cli/cli.go:91 +0x46f
main.main()
        command-line-arguments/revsuit.go:6 +0x25

goroutine 7 [select]:                                                                                                                                                                                                  [246/1891]
github.com/patrickmn/go-cache.(*janitor).Run(0xc000346f90, 0xc0002aeb80)
        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 8 [select]:
github.com/patrickmn/go-cache.(*janitor).Run(0xc0003472a0, 0xc0002aec00)
        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 10 [chan receive]:
github.com/golang/glog.(*loggingT).flushDaemon(0x1a07920)
        github.com/golang/glog@v0.0.0-20160126235308-23def4e6c14b/glog.go:882 +0x8b
created by github.com/golang/glog.init.0
        github.com/golang/glog@v0.0.0-20160126235308-23def4e6c14b/glog.go:410 +0x274

goroutine 19 [select]:
unknwon.dev/clog/v2.New.func1(0xc00031e150, 0x13a72c8, 0xc0000fb680)
        unknwon.dev/clog/v2@v2.2.0/logger.go:202 +0x10e
created by unknwon.dev/clog/v2.New
        unknwon.dev/clog/v2@v2.2.0/logger.go:199 +0x597

goroutine 13 [select]:
database/sql.(*DB).connectionOpener(0xc0003e2340, 0x13a72c8, 0xc000132940)
        database/sql/sql.go:1133 +0xb5
created by database/sql.OpenDB
        database/sql/sql.go:740 +0x12a

goroutine 22 [chan receive]:
github.com/li4n0/revsuit/pkg/server.(*Revsuit).Run.func1(0xc000146070)
        github.com/li4n0/revsuit/pkg/server/server.go:241 +0x1d0
created by github.com/li4n0/revsuit/pkg/server.(*Revsuit).Run
        github.com/li4n0/revsuit/pkg/server/server.go:240 +0xb5

goroutine 21 [IO wait]:
internal/poll.runtime_pollWait(0x7faf18615508, 0x72, 0x0)
        runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc00037ea98, 0x72, 0x0, 0x0, 0xfeaadb)
        internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
        internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Accept(0xc00037ea80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
        internal/poll/fd_unix.go:401 +0x212
net.(*netFD).accept(0xc00037ea80, 0xc000155f00, 0x13a7300, 0xc00003a0f8)
        net/fd_unix.go:172 +0x45
net.(*TCPListener).accept(0xc0002c4840, 0xc000155f28, 0xc000155f30, 0x18)
        net/tcpsock_posix.go:139 +0x32
net.(*TCPListener).Accept(0xc0002c4840, 0x12b1738, 0xc000316000, 0x13a3c58, 0xc0002c4840)
        net/tcpsock.go:261 +0x65
github.com/li4n0/revsuit/pkg/rmi.(*Server).Run(0xc000316000)
        github.com/li4n0/revsuit/pkg/rmi/rmi.go:194 +0x1fa
created by github.com/li4n0/revsuit/pkg/server.(*Revsuit).Run
        github.com/li4n0/revsuit/pkg/server/server.go:232 +0x145

goroutine 20 [select]:
github.com/li4n0/revsuit/internal/newdns.Run(0xc0004f27d4, 0x3, 0x1393cc0, 0xc0004b8180, 0xc0003147c0, 0xc0000887e0, 0x467e60, 0xc000151ef0)
        github.com/li4n0/revsuit/internal/newdns/run.go:57 +0x225
github.com/li4n0/revsuit/internal/newdns.(*Server).Run(0xc0003160f0, 0xc0004f27d4, 0x3, 0xc0003160f0, 0x2c)
        github.com/li4n0/revsuit/internal/newdns/server.go:85 +0x125                                                                                                                                                   [186/1891]
github.com/li4n0/revsuit/pkg/dns.(*Server).Run(0xc0001460e0)
        github.com/li4n0/revsuit/pkg/dns/dns.go:255 +0x271
created by github.com/li4n0/revsuit/pkg/server.(*Revsuit).Run
        github.com/li4n0/revsuit/pkg/server/server.go:229 +0x16c

goroutine 23 [semacquire]:
sync.runtime_SemacquireMutex(0xc00014614c, 0x408600, 0x1)
        runtime/sema.go:71 +0x47
sync.(*Mutex).lockSlow(0xc000146148)
        sync/mutex.go:138 +0x105
sync.(*Mutex).Lock(...)
        sync/mutex.go:81
github.com/li4n0/revsuit/pkg/dns.(*Server).Run.func3(0xc0001460e0, 0xc0003160f0)
        github.com/li4n0/revsuit/pkg/dns/dns.go:249 +0x65
created by github.com/li4n0/revsuit/pkg/dns.(*Server).Run
        github.com/li4n0/revsuit/pkg/dns/dns.go:248 +0x249

goroutine 24 [IO wait]:
internal/poll.runtime_pollWait(0x7faf18615420, 0x72, 0x28)
        runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc00037eb18, 0x72, 0x200, 0x200, 0xc000039050)
        internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
        internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).ReadMsg(0xc00037eb00, 0xc0004b6200, 0x200, 0x200, 0xc000039050, 0x28, 0x28, 0x0, 0x0, 0x0, ...)
        internal/poll/fd_unix.go:249 +0x252
net.(*netFD).readMsg(0xc00037eb00, 0xc0004b6200, 0x200, 0x200, 0xc000039050, 0x28, 0x28, 0xc000063b08, 0x442112, 0xc000063b48, ...)
        net/fd_posix.go:67 +0x90
net.(*UDPConn).readMsg(0xc0003023d8, 0xc0004b6200, 0x200, 0x200, 0xc000039050, 0x28, 0x28, 0x7faf402e6108, 0x30, 0xc000039050, ...)
        net/udpsock_posix.go:59 +0x91
net.(*UDPConn).ReadMsgUDP(0xc0003023d8, 0xc0004b6200, 0x200, 0x200, 0xc000039050, 0x28, 0x28, 0x487cc5, 0x0, 0xc000063cd0, ...)
        net/udpsock.go:139 +0x9d
github.com/miekg/dns.ReadFromSessionUDP(0xc0003023d8, 0xc0004b6200, 0x200, 0x200, 0x0, 0x0, 0x1a078a0, 0xc000316550)
        github.com/miekg/dns@v1.1.38/udp.go:42 +0xb0
github.com/miekg/dns.(*Server).readUDP(0xc000220120, 0xc0003023d8, 0x77359400, 0x1a43720, 0x1393f01, 0x1a43720, 0x7faf12557318, 0x1a43720, 0x7faf12557201)
        github.com/miekg/dns@v1.1.38/server.go:686 +0xd9
github.com/miekg/dns.defaultReader.ReadUDP(0xc000220120, 0xc0003023d8, 0x77359400, 0x7faf125572e8, 0xc000316550, 0x1, 0x0, 0x1394120, 0xc000316550)
        github.com/miekg/dns@v1.1.38/server.go:174 +0x45
github.com/miekg/dns.(*Server).serveUDP(0xc000220120, 0x13ad718, 0xc0003023d8, 0x0, 0x0)
        github.com/miekg/dns@v1.1.38/server.go:500 +0x217
github.com/miekg/dns.(*Server).ListenAndServe(0xc000220120, 0x0, 0x0)
        github.com/miekg/dns@v1.1.38/server.go:329 +0x395
github.com/li4n0/revsuit/internal/newdns.Run.func1(0xc0002ee480, 0xc000220120)
        github.com/li4n0/revsuit/internal/newdns/run.go:47 +0x2b
created by github.com/li4n0/revsuit/internal/newdns.Run
        github.com/li4n0/revsuit/internal/newdns/run.go:46 +0x186

goroutine 25 [IO wait]:
internal/poll.runtime_pollWait(0x7faf186155f0, 0x72, 0x0)
        runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc00037e718, 0x72, 0x0, 0x0, 0xfeaadb)
        internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
        internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Accept(0xc00037e700, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
        internal/poll/fd_unix.go:401 +0x212
net.(*netFD).accept(0xc00037e700, 0xc, 0x7faf402e6108, 0x10)
        net/fd_unix.go:172 +0x45
net.(*TCPListener).accept(0xc0002c47e0, 0x410278, 0xc, 0xf23e80)
        net/tcpsock_posix.go:139 +0x32
net.(*TCPListener).Accept(0xc0002c47e0, 0xc0004f2e01, 0xc000061e88, 0x4877fa, 0xc0004f2e34)
net.(*TCPListener).Accept(0xc0002c47e0, 0xc0004f2e01, 0xc000061e88, 0x4877fa, 0xc0004f2e34)                                                                                                                            [125/1891]
        net/tcpsock.go:261 +0x65
github.com/miekg/dns.(*Server).serveTCP(0xc000221560, 0x13a3c58, 0xc0002c47e0, 0x0, 0x0)
        github.com/miekg/dns@v1.1.38/server.go:444 +0x118
github.com/miekg/dns.(*Server).ListenAndServe(0xc000221560, 0x0, 0x0)
        github.com/miekg/dns@v1.1.38/server.go:302 +0x1fb
github.com/li4n0/revsuit/internal/newdns.Run.func2(0xc0002ee480, 0xc000221560)
        github.com/li4n0/revsuit/internal/newdns/run.go:52 +0x2b
created by github.com/li4n0/revsuit/internal/newdns.Run
        github.com/li4n0/revsuit/internal/newdns/run.go:51 +0x1b2

goroutine 26 [semacquire]:
sync.runtime_SemacquireMutex(0xc00031604c, 0x0, 0x1)
        runtime/sema.go:71 +0x47
sync.(*Mutex).lockSlow(0xc000316048)
        sync/mutex.go:138 +0x105
sync.(*Mutex).Lock(...)
        sync/mutex.go:81
github.com/li4n0/revsuit/pkg/rmi.(*Server).Run.func2(0xc000316000, 0x13a3c58, 0xc0002c4840)
        github.com/li4n0/revsuit/pkg/rmi/rmi.go:187 +0x67
created by github.com/li4n0/revsuit/pkg/rmi.(*Server).Run
        github.com/li4n0/revsuit/pkg/rmi/rmi.go:186 +0x1d3

goroutine 27 [IO wait]:
internal/poll.runtime_pollWait(0x7faf18615338, 0x72, 0xffffffffffffffff)
        runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc00037ed98, 0x72, 0x1000, 0x1000, 0xffffffffffffffff)
        internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
        internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc00037ed80, 0xc00021e000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
        internal/poll/fd_unix.go:166 +0x1d5
net.(*netFD).Read(0xc00037ed80, 0xc00021e000, 0x1000, 0x1000, 0xc0000a80f0, 0xc0002c4918, 0xff2155)
        net/fd_posix.go:55 +0x4f
net.(*conn).Read(0xc0003023f0, 0xc00021e000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
        net/net.go:183 +0x91
net/http.(*connReader).Read(0xc00031eb70, 0xc00021e000, 0x1000, 0x1000, 0x482236, 0xc0002c244b, 0x19)
        net/http/server.go:800 +0x1b9
bufio.(*Reader).fill(0xc0002ee840)
        bufio/bufio.go:101 +0x108
bufio.(*Reader).ReadSlice(0xc0002ee840, 0xc00001780a, 0x6d28e7, 0xc0000fa940, 0x18cacdc, 0x2, 0x2)
        bufio/bufio.go:360 +0x3d
bufio.(*Reader).ReadLine(0xc0002ee840, 0x203000, 0x203000, 0x0, 0x0, 0xc000017a78, 0x6d3345)
        bufio/bufio.go:389 +0x34
net/textproto.(*Reader).readLineSlice(0xc00031ebd0, 0xc0000aaa00, 0xc0000179e8, 0x4e1633, 0xc00037ed80, 0x43c0bc)
        net/textproto/reader.go:57 +0xd6
net/textproto.(*Reader).ReadLine(...)
        net/textproto/reader.go:38
net/http.readRequest(0xc0002ee840, 0x0, 0xc0000aaa00, 0x0, 0x0)
        net/http/request.go:1027 +0xaa
net/http.(*conn).readRequest(0xc000168a00, 0x13a72c8, 0xc0000fa900, 0x0, 0x0, 0x0)
        net/http/server.go:986 +0x19d
net/http.(*conn).serve(0xc000168a00, 0x13a7370, 0xc0000fa900)
        net/http/server.go:1878 +0x705
created by net/http.(*Server).Serve
        net/http/server.go:3013 +0x39b

goroutine 34 [IO wait]:
internal/poll.runtime_pollWait(0x7faf18615168, 0x72, 0xffffffffffffffff)
        runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc00037f298, 0x72, 0x1000, 0x1000, 0xffffffffffffffff) 
       internal/poll/fd_poll_runtime.go:87 +0x45                                                                                                                                                                       [64/1891]
internal/poll.(*pollDesc).waitRead(...)
        internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc00037f280, 0xc00011e000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
        internal/poll/fd_unix.go:166 +0x1d5
net.(*netFD).Read(0xc00037f280, 0xc00011e000, 0x1000, 0x1000, 0x1, 0xc0000fad40, 0xc0000656a0)
        net/fd_posix.go:55 +0x4f
net.(*conn).Read(0xc000302420, 0xc00011e000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
        net/net.go:183 +0x91
net/http.(*connReader).Read(0xc00031f020, 0xc00011e000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
        net/http/server.go:800 +0x1b9
bufio.(*Reader).fill(0xc0002ef080)
        bufio/bufio.go:101 +0x108
bufio.(*Reader).ReadSlice(0xc0002ef080, 0xa, 0x0, 0x0, 0x8, 0x0, 0x0)
        bufio/bufio.go:360 +0x3d
bufio.(*Reader).ReadLine(0xc0002ef080, 0x203000, 0x203000, 0xc0000658d0, 0x40fb1b, 0xc00031f050, 0x30)
        bufio/bufio.go:389 +0x34
net/textproto.(*Reader).readLineSlice(0xc00031f050, 0xc0000aa700, 0x64, 0x7faf18626588, 0x7faf18626830, 0x5)
        net/textproto/reader.go:57 +0xd6
net/textproto.(*Reader).ReadLine(...)
        net/textproto/reader.go:38
net/http.readRequest(0xc0002ef080, 0x0, 0xc0000aa700, 0x0, 0x0)
        net/http/request.go:1027 +0xaa
net/http.(*conn).readRequest(0xc000169040, 0x13a72c8, 0xc0000fac80, 0x0, 0x0, 0x0)
        net/http/server.go:986 +0x19d
net/http.(*conn).serve(0xc000169040, 0x13a7370, 0xc0000fac80)
        net/http/server.go:1878 +0x705
created by net/http.(*Server).Serve
        net/http/server.go:3013 +0x39b

goroutine 41 [select]:
net/http.(*Transport).getConn(0x1899420, 0xc0000fb500, 0x0, 0xc000088780, 0x5, 0xc0002c1050, 0x12, 0x0, 0x0, 0x0, ...)
        net/http/transport.go:1368 +0x589
net/http.(*Transport).roundTrip(0x1899420, 0xc0000aab00, 0xc0000cdce0, 0x160, 0x150)
        net/http/transport.go:579 +0x7eb
net/http.(*Transport).RoundTrip(0x1899420, 0xc0000aab00, 0x1899420, 0x0, 0x0)
        net/http/roundtrip.go:17 +0x35
net/http.send(0xc0000aab00, 0x1394220, 0x1899420, 0x0, 0x0, 0x0, 0xc000302540, 0x203000, 0x1, 0x0)
        net/http/client.go:251 +0x454
net/http.(*Client).send(0x1a07280, 0xc0000aab00, 0x0, 0x0, 0x0, 0xc000302540, 0x0, 0x1, 0xc00031fdd0)
        net/http/client.go:175 +0xff
net/http.(*Client).do(0x1a07280, 0xc0000aab00, 0x0, 0x0, 0x0)
        net/http/client.go:717 +0x45f
net/http.(*Client).Do(...)
        net/http/client.go:585
net/http.(*Client).Post(0x1a07280, 0xc000088780, 0x51, 0xff6785, 0x10, 0x1394640, 0xc0004b8520, 0x40fb1b, 0x0, 0x203000)
        net/http/client.go:845 +0x198
net/http.Post(...)
        net/http/client.go:825
github.com/li4n0/revsuit/internal/notice.(*Lark).notice(0xc000314010, 0x13a5008, 0xc0000cda20, 0x0, 0x0)
        github.com/li4n0/revsuit/internal/notice/lark.go:77 +0x11b
github.com/li4n0/revsuit/internal/notice.Notice(0x13a5008, 0xc0000cda20)
        github.com/li4n0/revsuit/internal/notice/announcer.go:45 +0xa2
github.com/li4n0/revsuit/pkg/rhttp.Record.Notice(...)
        github.com/li4n0/revsuit/pkg/rhttp/record.go:28
github.com/li4n0/revsuit/pkg/rhttp.(*Server).Receive.func1(0xc0000cd600, 0x0, 0x0)
        github.com/li4n0/revsuit/pkg/rhttp/http.go:207 +0xe8
created by github.com/li4n0/revsuit/pkg/rhttp.(*Server).Receive
        github.com/li4n0/revsuit/pkg/rhttp/http.go:206 +0x88c

goroutine 33 [IO wait]:
        internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
        internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc00037f200, 0xc00010e000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
        internal/poll/fd_unix.go:166 +0x1d5
net.(*netFD).Read(0xc00037f200, 0xc00010e000, 0x1000, 0x1000, 0x1, 0xc0000fac40, 0xc0002f66a0)
        net/fd_posix.go:55 +0x4f
net.(*conn).Read(0xc000302418, 0xc00010e000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
        net/net.go:183 +0x91
net/http.(*connReader).Read(0xc00031ef30, 0xc00010e000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
        net/http/server.go:800 +0x1b9
bufio.(*Reader).fill(0xc0002ef020)
        bufio/bufio.go:101 +0x108
bufio.(*Reader).ReadSlice(0xc0002ef020, 0xa, 0x0, 0x0, 0x8, 0x0, 0x0)
        bufio/bufio.go:360 +0x3d
bufio.(*Reader).ReadLine(0xc0002ef020, 0x203000, 0x203000, 0xc0002f68d0, 0x40fb1b, 0xc00031ef60, 0x30)
        bufio/bufio.go:389 +0x34
net/textproto.(*Reader).readLineSlice(0xc00031ef60, 0xc0000aa600, 0x64, 0x7faf18626830, 0x7faf18626610, 0x5)
        net/textproto/reader.go:57 +0xd6
net/textproto.(*Reader).ReadLine(...)
        net/textproto/reader.go:38
net/http.readRequest(0xc0002ef020, 0x0, 0xc0000aa600, 0x0, 0x0)
        net/http/request.go:1027 +0xaa
net/http.(*conn).readRequest(0xc000168f00, 0x13a72c8, 0xc0000fab80, 0x0, 0x0, 0x0)
        net/http/server.go:986 +0x19d
net/http.(*conn).serve(0xc000168f00, 0x13a7370, 0xc0000fab80)
        net/http/server.go:1878 +0x705
created by net/http.(*Server).Serve
        net/http/server.go:3013 +0x39b

goroutine 42 [select]:
net.(*Resolver).lookupIPAddr(0x1a06240, 0x13a7338, 0xc0002ef800, 0xfe4b1a, 0x3, 0xc0002c1050, 0xe, 0x1bb, 0x0, 0x0, ...)
        net/lookup.go:299 +0x65b
net.(*Resolver).internetAddrList(0x1a06240, 0x13a7338, 0xc0002ef800, 0xfe4b1a, 0x3, 0xc0002c1050, 0x12, 0x0, 0x0, 0x0, ...)
        net/ipsock.go:280 +0x4d4
net.(*Resolver).resolveAddrList(0x1a06240, 0x13a7338, 0xc0002ef800, 0xfe5587, 0x4, 0xfe4b1a, 0x3, 0xc0002c1050, 0x12, 0x0, ...)
        net/dial.go:221 +0x47d
net.(*Dialer).DialContext(0xc000074240, 0x13a7338, 0xc0002ef800, 0xfe4b1a, 0x3, 0xc0002c1050, 0x12, 0x0, 0x0, 0x0, ...)
        net/dial.go:403 +0x22b
net/http.(*Transport).dial(0x1899420, 0x13a7300, 0xc00003a0f8, 0xfe4b1a, 0x3, 0xc0002c1050, 0x12, 0x0, 0x0, 0x0, ...)
        net/http/transport.go:1162 +0x1ff
net/http.(*Transport).dialConn(0x1899420, 0x13a7300, 0xc00003a0f8, 0x0, 0xc000088780, 0x5, 0xc0002c1050, 0x12, 0x0, 0xc0004246c0, ...)
        net/http/transport.go:1600 +0x1b85
net/http.(*Transport).dialConnFor(0x1899420, 0xc000465760)
        net/http/transport.go:1442 +0xc6
created by net/http.(*Transport).queueForDial
        net/http/transport.go:1411 +0x40f

goroutine 43 [select]:
net.cgoLookupIP(0x13a72c8, 0xc0000fb5c0, 0xfe4b1a, 0x3, 0xc0002c1050, 0xe, 0x12, 0xfe3d24, 0x2, 0xffffffffffffffff, ...)
        net/cgo_unix.go:229 +0x173
net.(*Resolver).lookupIP(0x1a06240, 0x13a72c8, 0xc0000fb5c0, 0xfe4b1a, 0x3, 0xc0002c1050, 0xe, 0x0, 0x0, 0x0, ...)
        net/lookup_unix.go:96 +0x187
net.glob..func1(0x13a72c8, 0xc0000fb5c0, 0xc0003151a0, 0xfe4b1a, 0x3, 0xc0002c1050, 0xe, 0xc00003a0f8, 0x0, 0xc000088780, ...)
        net/hook.go:23 +0x72
net.(*Resolver).lookupIPAddr.func1(0x0, 0x0, 0x0, 0x0)
        net/lookup.go:293 +0xba
internal/singleflight.(*Group).doCall(0x1a06250, 0xc0003166e0, 0xc0002c1068, 0x12, 0xc0000fb600)
        internal/singleflight/singleflight.go:95 +0x2e
created by internal/singleflight.(*Group).DoChan
        internal/singleflight/singleflight.go:88 +0x2cc

@Conanjun
Copy link
Author

测试了飞书和钉钉,开通知多大几次就会挂,上面的是飞书,这个是钉钉,所以初步判断是notice routeline 的问题应该

fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1 addr=0x15 pc=0x7fe7e6dd9448]

runtime stack:
runtime.throw(0x100f6f7, 0x2a)
	runtime/panic.go:1117 +0x72
runtime.sigpanic()
	runtime/signal_unix.go:718 +0x2e5

goroutine 90 [syscall]:
runtime.cgocall(0xc9c1c0, 0xc00004fdc0, 0xc0001577a0)
	runtime/cgocall.go:154 +0x5b fp=0xc00004fd90 sp=0xc00004fd58 pc=0x40599b
net._C2func_getaddrinfo(0xc00013d3b0, 0x0, 0xc00024d350, 0xc0001577a0, 0x0, 0x0, 0x0)
	_cgo_gotypes.go:90 +0x50 fp=0xc00004fdc0 sp=0xc00004fd90 pc=0x5d7d50
net.cgoLookupIPCNAME.func1(0xc00013d3b0, 0x12, 0x12, 0xc00024d350, 0xc0001577a0, 0x0, 0xc00004fea0, 0x5d9b32)
	net/cgo_unix.go:161 +0xc5 fp=0xc00004fe08 sp=0xc00004fdc0 pc=0x5dc585
net.cgoLookupIPCNAME(0xfe4b1a, 0x3, 0xc00013d308, 0x11, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
	net/cgo_unix.go:161 +0x16b fp=0xc00004ff18 sp=0xc00004fe08 pc=0x5d8d4b
net.cgoIPLookup(0xc000077260, 0xfe4b1a, 0x3, 0xc00013d308, 0x11)
	net/cgo_unix.go:218 +0x67 fp=0xc00004ffb8 sp=0xc00004ff18 pc=0x5d9487
runtime.goexit()
	runtime/asm_amd64.s:1371 +0x1 fp=0xc00004ffc0 sp=0xc00004ffb8 pc=0x46f361
created by net.cgoLookupIP
	net/cgo_unix.go:228 +0xc7

goroutine 1 [IO wait]:
internal/poll.runtime_pollWait(0x7fe7f45a9e88, 0x72, 0x0)
	runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc00037c318, 0x72, 0x0, 0x0, 0xfeaadb)
	internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Accept(0xc00037c300, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
	internal/poll/fd_unix.go:401 +0x212
net.(*netFD).accept(0xc00037c300, 0x323145a2212f71c8, 0x0, 0x0)
	net/fd_unix.go:172 +0x45
net.(*TCPListener).accept(0xc0002c4660, 0x60d57ffb, 0xc0002d99f0, 0x4ceaa6)
	net/tcpsock_posix.go:139 +0x32
net.(*TCPListener).Accept(0xc0002c4660, 0xc0002d9a40, 0x18, 0xc000000180, 0x6dac3b)
	net/tcpsock.go:261 +0x65
net/http.(*Server).Serve(0xc000034330, 0x13a3c58, 0xc0002c4660, 0x0, 0x0)
	net/http/server.go:2981 +0x285
net/http.(*Server).ListenAndServe(0xc000034330, 0x1, 0x0)
	net/http/server.go:2910 +0xba
github.com/li4n0/revsuit/pkg/rhttp.(*Server).startHttpServer(0xc0000342c0)
	github.com/li4n0/revsuit/pkg/rhttp/http.go:99 +0x186
github.com/li4n0/revsuit/pkg/rhttp.(*Server).Run(0xc0000342c0)
	github.com/li4n0/revsuit/pkg/rhttp/http.go:123 +0x4c
github.com/li4n0/revsuit/pkg/server.(*Revsuit).Run(0xc000146070)
	github.com/li4n0/revsuit/pkg/server/server.go:252 +0xc7
github.com/li4n0/revsuit/internal/cli.Start.func1(0xc0002afb40, 0x0, 0xa)
	github.com/li4n0/revsuit/internal/cli/cli.go:83 +0x613
github.com/urfave/cli/v2.(*App).RunContext(0xc00038dba0, 0x13a7300, 0xc00003c0c8, 0xc000032210, 0x1, 0x1, 0x0, 0x0)
	github.com/urfave/cli/v2@v2.3.0/app.go:322 +0x6fe
github.com/urfave/cli/v2.(*App).Run(...)
	github.com/urfave/cli/v2@v2.3.0/app.go:224
github.com/li4n0/revsuit/internal/cli.Start()
	github.com/li4n0/revsuit/internal/cli/cli.go:91 +0x46f
main.main()
	command-line-arguments/revsuit.go:6 +0x25

goroutine 7 [select]:
github.com/patrickmn/go-cache.(*janitor).Run(0xc000346f90, 0xc0002aeb80)
	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 8 [select]:
github.com/patrickmn/go-cache.(*janitor).Run(0xc0003472a0, 0xc0002aec00)
	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 10 [chan receive]:
github.com/golang/glog.(*loggingT).flushDaemon(0x1a07920)
	github.com/golang/glog@v0.0.0-20160126235308-23def4e6c14b/glog.go:882 +0x8b
created by github.com/golang/glog.init.0
	github.com/golang/glog@v0.0.0-20160126235308-23def4e6c14b/glog.go:410 +0x274

goroutine 19 [select]:
unknwon.dev/clog/v2.New.func1(0xc00031a150, 0x13a72c8, 0xc0000fb680)
	unknwon.dev/clog/v2@v2.2.0/logger.go:202 +0x10e
created by unknwon.dev/clog/v2.New
	unknwon.dev/clog/v2@v2.2.0/logger.go:199 +0x597

goroutine 13 [select]:
database/sql.(*DB).connectionOpener(0xc0004a6750, 0x13a72c8, 0xc000132940)
	database/sql/sql.go:1133 +0xb5
created by database/sql.OpenDB
	database/sql/sql.go:740 +0x12a

goroutine 20 [select]:
github.com/li4n0/revsuit/internal/newdns.Run(0xc0004f47a4, 0x3, 0x1393cc0, 0xc0004ba180, 0xc00030e7c0, 0xc00008a720, 0x467e60, 0xc000153ef0)
	github.com/li4n0/revsuit/internal/newdns/run.go:57 +0x225
github.com/li4n0/revsuit/internal/newdns.(*Server).Run(0xc0003120f0, 0xc0004f47a4, 0x3, 0xc0003120f0, 0x2c)
	github.com/li4n0/revsuit/internal/newdns/server.go:85 +0x125
github.com/li4n0/revsuit/pkg/dns.(*Server).Run(0xc0001460e0)
	github.com/li4n0/revsuit/pkg/dns/dns.go:255 +0x271
created by github.com/li4n0/revsuit/pkg/server.(*Revsuit).Run
	github.com/li4n0/revsuit/pkg/server/server.go:229 +0x16c

goroutine 21 [IO wait]:
internal/poll.runtime_pollWait(0x7fe7f45a9cb8, 0x72, 0x0)
	runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc00037ca98, 0x72, 0x0, 0x0, 0xfeaadb)
	internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Accept(0xc00037ca80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
	internal/poll/fd_unix.go:401 +0x212
net.(*netFD).accept(0xc00037ca80, 0xc000151f00, 0x13a7300, 0xc00003c0c8)
	net/fd_unix.go:172 +0x45
net.(*TCPListener).accept(0xc0002c4840, 0xc000151f28, 0xc000151f30, 0x18)
	net/tcpsock_posix.go:139 +0x32
net.(*TCPListener).Accept(0xc0002c4840, 0x12b1738, 0xc000312000, 0x13a3c58, 0xc0002c4840)
	net/tcpsock.go:261 +0x65
github.com/li4n0/revsuit/pkg/rmi.(*Server).Run(0xc000312000)
	github.com/li4n0/revsuit/pkg/rmi/rmi.go:194 +0x1fa
created by github.com/li4n0/revsuit/pkg/server.(*Revsuit).Run
	github.com/li4n0/revsuit/pkg/server/server.go:232 +0x145

goroutine 22 [chan receive]:
github.com/li4n0/revsuit/pkg/server.(*Revsuit).Run.func1(0xc000146070)
	github.com/li4n0/revsuit/pkg/server/server.go:241 +0x1d0
created by github.com/li4n0/revsuit/pkg/server.(*Revsuit).Run
	github.com/li4n0/revsuit/pkg/server/server.go:240 +0xb5

goroutine 23 [semacquire]:
sync.runtime_SemacquireMutex(0xc00014614c, 0x408600, 0x1)
	runtime/sema.go:71 +0x47
sync.(*Mutex).lockSlow(0xc000146148)
	sync/mutex.go:138 +0x105
sync.(*Mutex).Lock(...)
	sync/mutex.go:81
github.com/li4n0/revsuit/pkg/dns.(*Server).Run.func3(0xc0001460e0, 0xc0003120f0)
	github.com/li4n0/revsuit/pkg/dns/dns.go:249 +0x65
created by github.com/li4n0/revsuit/pkg/dns.(*Server).Run
	github.com/li4n0/revsuit/pkg/dns/dns.go:248 +0x249

goroutine 24 [IO wait]:
internal/poll.runtime_pollWait(0x7fe7f45a9bd0, 0x72, 0x28)
	runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc00037cb18, 0x72, 0x200, 0x200, 0xc00034dcb0)
	internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).ReadMsg(0xc00037cb00, 0xc0004b8400, 0x200, 0x200, 0xc00034dcb0, 0x28, 0x28, 0x0, 0x0, 0x0, ...)
	internal/poll/fd_unix.go:249 +0x252
net.(*netFD).readMsg(0xc00037cb00, 0xc0004b8400, 0x200, 0x200, 0xc00034dcb0, 0x28, 0x28, 0xc000066b08, 0x442112, 0xc000066b48, ...)
	net/fd_posix.go:67 +0x90
net.(*UDPConn).readMsg(0xc0003003d8, 0xc0004b8400, 0x200, 0x200, 0xc00034dcb0, 0x28, 0x28, 0x7fe81ca7d108, 0x30, 0xc00034dcb0, ...)
	net/udpsock_posix.go:59 +0x91
net.(*UDPConn).ReadMsgUDP(0xc0003003d8, 0xc0004b8400, 0x200, 0x200, 0xc00034dcb0, 0x28, 0x28, 0x487cc5, 0x0, 0xc000066cd0, ...)
	net/udpsock.go:139 +0x9d
github.com/miekg/dns.ReadFromSessionUDP(0xc0003003d8, 0xc0004b8400, 0x200, 0x200, 0x0, 0x0, 0x1a078a0, 0xc000313b80)
	github.com/miekg/dns@v1.1.38/udp.go:42 +0xb0
github.com/miekg/dns.(*Server).readUDP(0xc0002730e0, 0xc0003003d8, 0x77359400, 0x1a43720, 0x1393f01, 0x1a43720, 0x7fe7e6ce73a0, 0x1a43720, 0x7fe7e6ce7301)
	github.com/miekg/dns@v1.1.38/server.go:686 +0xd9
github.com/miekg/dns.defaultReader.ReadUDP(0xc0002730e0, 0xc0003003d8, 0x77359400, 0x7fe7e6ce7370, 0xc000313b80, 0x1, 0x0, 0x1394120, 0xc000313b80)
	github.com/miekg/dns@v1.1.38/server.go:174 +0x45
github.com/miekg/dns.(*Server).serveUDP(0xc0002730e0, 0x13ad718, 0xc0003003d8, 0x0, 0x0)
	github.com/miekg/dns@v1.1.38/server.go:500 +0x217
github.com/miekg/dns.(*Server).ListenAndServe(0xc0002730e0, 0x0, 0x0)
	github.com/miekg/dns@v1.1.38/server.go:329 +0x395
github.com/li4n0/revsuit/internal/newdns.Run.func1(0xc0002d0480, 0xc0002730e0)
	github.com/li4n0/revsuit/internal/newdns/run.go:47 +0x2b
created by github.com/li4n0/revsuit/internal/newdns.Run
	github.com/li4n0/revsuit/internal/newdns/run.go:46 +0x186

goroutine 25 [IO wait]:
internal/poll.runtime_pollWait(0x7fe7f45a9da0, 0x72, 0x0)
	runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc00037c718, 0x72, 0x0, 0x0, 0xfeaadb)
	internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Accept(0xc00037c700, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
	internal/poll/fd_unix.go:401 +0x212
net.(*netFD).accept(0xc00037c700, 0xc, 0x7fe81ca7d108, 0x10)
	net/fd_unix.go:172 +0x45
net.(*TCPListener).accept(0xc0002c47e0, 0x410278, 0xc, 0xf23e80)
	net/tcpsock_posix.go:139 +0x32
net.(*TCPListener).Accept(0xc0002c47e0, 0xc0004f4e01, 0xc000063e88, 0x4877fa, 0xc0004f4e14)
	net/tcpsock.go:261 +0x65
github.com/miekg/dns.(*Server).serveTCP(0xc000273200, 0x13a3c58, 0xc0002c47e0, 0x0, 0x0)
	github.com/miekg/dns@v1.1.38/server.go:444 +0x118
github.com/miekg/dns.(*Server).ListenAndServe(0xc000273200, 0x0, 0x0)
	github.com/miekg/dns@v1.1.38/server.go:302 +0x1fb
github.com/li4n0/revsuit/internal/newdns.Run.func2(0xc0002d0480, 0xc000273200)
	github.com/li4n0/revsuit/internal/newdns/run.go:52 +0x2b
created by github.com/li4n0/revsuit/internal/newdns.Run
	github.com/li4n0/revsuit/internal/newdns/run.go:51 +0x1b2

goroutine 26 [semacquire]:
sync.runtime_SemacquireMutex(0xc00031204c, 0x0, 0x1)
	runtime/sema.go:71 +0x47
sync.(*Mutex).lockSlow(0xc000312048)
	sync/mutex.go:138 +0x105
sync.(*Mutex).Lock(...)
	sync/mutex.go:81
github.com/li4n0/revsuit/pkg/rmi.(*Server).Run.func2(0xc000312000, 0x13a3c58, 0xc0002c4840)
	github.com/li4n0/revsuit/pkg/rmi/rmi.go:187 +0x67
created by github.com/li4n0/revsuit/pkg/rmi.(*Server).Run
	github.com/li4n0/revsuit/pkg/rmi/rmi.go:186 +0x1d3

goroutine 33 [IO wait]:
internal/poll.runtime_pollWait(0x7fe7f45a9ae8, 0x72, 0xffffffffffffffff)
	runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc00037d418, 0x72, 0x1000, 0x1000, 0xffffffffffffffff)
	internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc00037d400, 0xc00021e000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	internal/poll/fd_unix.go:166 +0x1d5
net.(*netFD).Read(0xc00037d400, 0xc00021e000, 0x1000, 0x1000, 0x16, 0x1001ea3, 0x13a9f38)
	net/fd_posix.go:55 +0x4f
net.(*conn).Read(0xc0003003f0, 0xc00021e000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	net/net.go:183 +0x91
net/http.(*connReader).Read(0xc00031b380, 0xc00021e000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	net/http/server.go:800 +0x1b9
bufio.(*Reader).fill(0xc0002d0a20)
	bufio/bufio.go:101 +0x108
bufio.(*Reader).ReadSlice(0xc0002d0a20, 0x13bd40a, 0xc000019818, 0x694e5c, 0x7fe7e6ce74a0, 0xc00001a000, 0xc0000ab200)
	bufio/bufio.go:360 +0x3d
bufio.(*Reader).ReadLine(0xc0002d0a20, 0x203000, 0x203000, 0x13a9f38, 0xc000019880, 0x24, 0x0)
	bufio/bufio.go:389 +0x34
net/textproto.(*Reader).readLineSlice(0xc00053b0e0, 0xc00023f700, 0x756ea19562a65f, 0xf5e5977d33c83ec2, 0xc00031a060, 0x43c0bc)
	net/textproto/reader.go:57 +0xd6
net/textproto.(*Reader).ReadLine(...)
	net/textproto/reader.go:38
net/http.readRequest(0xc0002d0a20, 0x0, 0xc00023f700, 0x0, 0x0)
	net/http/request.go:1027 +0xaa
net/http.(*conn).readRequest(0xc000167180, 0x13a72c8, 0xc0000fb2c0, 0x0, 0x0, 0x0)
	net/http/server.go:986 +0x19d
net/http.(*conn).serve(0xc000167180, 0x13a7370, 0xc0000fb2c0)
	net/http/server.go:1878 +0x705
created by net/http.(*Server).Serve
	net/http/server.go:3013 +0x39b

goroutine 35 [IO wait]:
internal/poll.runtime_pollWait(0x7fe7f45a9a00, 0x72, 0xffffffffffffffff)
	runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc00037dd18, 0x72, 0x1000, 0x1000, 0xffffffffffffffff)
	internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc00037dd00, 0xc00001d000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	internal/poll/fd_unix.go:166 +0x1d5
net.(*netFD).Read(0xc00037dd00, 0xc00001d000, 0x1000, 0x1000, 0x7fe81ca7d108, 0x900, 0xc0000b5600)
	net/fd_posix.go:55 +0x4f
net.(*conn).Read(0xc000156488, 0xc00001d000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	net/net.go:183 +0x91
net/http.(*connReader).Read(0xc00053a390, 0xc00001d000, 0x1000, 0x1000, 0xc00031c7e0, 0xc0000b5600, 0x829)
	net/http/server.go:800 +0x1b9
bufio.(*Reader).fill(0xc0002d0c00)
	bufio/bufio.go:101 +0x108
bufio.(*Reader).ReadSlice(0xc0002d0c00, 0xc00042180a, 0xaeaea5, 0x7fe7e6ce74a0, 0xc00001a1e0, 0xefeac0, 0xc00024c030)
	bufio/bufio.go:360 +0x3d
bufio.(*Reader).ReadLine(0xc0002d0c00, 0x203000, 0x203000, 0xb07325, 0xc00001a1e0, 0xc8, 0x139d848)
	bufio/bufio.go:389 +0x34
net/textproto.(*Reader).readLineSlice(0xc00053a3c0, 0xc0002f5b00, 0xc0004219e8, 0x4e1633, 0xc00037dd00, 0xc000234000)
	net/textproto/reader.go:57 +0xd6
net/textproto.(*Reader).ReadLine(...)
	net/textproto/reader.go:38
net/http.readRequest(0xc0002d0c00, 0x0, 0xc0002f5b00, 0x0, 0x0)
	net/http/request.go:1027 +0xaa
net/http.(*conn).readRequest(0xc000167540, 0x13a72c8, 0xc0002ae380, 0x0, 0x0, 0x0)
	net/http/server.go:986 +0x19d
net/http.(*conn).serve(0xc000167540, 0x13a7370, 0xc0002ae380)
	net/http/server.go:1878 +0x705
created by net/http.(*Server).Serve
	net/http/server.go:3013 +0x39b

goroutine 45 [IO wait]:
internal/poll.runtime_pollWait(0x7fe7f45a9830, 0x72, 0xffffffffffffffff)
	runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc000520798, 0x72, 0x1000, 0x1000, 0xffffffffffffffff)
	internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc000520780, 0xc000235000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	internal/poll/fd_unix.go:166 +0x1d5
net.(*netFD).Read(0xc000520780, 0xc000235000, 0x1000, 0x1000, 0x15, 0x1000109, 0x13a9f38)
	net/fd_posix.go:55 +0x4f
net.(*conn).Read(0xc0001564c8, 0xc000235000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	net/net.go:183 +0x91
net/http.(*connReader).Read(0xc00053ae10, 0xc000235000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	net/http/server.go:800 +0x1b9
bufio.(*Reader).fill(0xc0002d0c60)
	bufio/bufio.go:101 +0x108
bufio.(*Reader).ReadSlice(0xc0002d0c60, 0x13bd60a, 0xc00014f818, 0x694e5c, 0x7fe7e6ce74a0, 0xc00001a1e0, 0xc0002f4c00)
	bufio/bufio.go:360 +0x3d
bufio.(*Reader).ReadLine(0xc0002d0c60, 0x203000, 0x203000, 0x13a9f38, 0xc00014f880, 0x23, 0x0)
	bufio/bufio.go:389 +0x34
net/textproto.(*Reader).readLineSlice(0xc00053aa50, 0xc0002f4d00, 0x756ea1db3deb0b, 0xb51ef37721a4ede9, 0xc00031a060, 0xc00014f9a0)
	net/textproto/reader.go:57 +0xd6
net/textproto.(*Reader).ReadLine(...)
	net/textproto/reader.go:38
net/http.readRequest(0xc0002d0c60, 0x0, 0xc0002f4d00, 0x0, 0x0)
	net/http/request.go:1027 +0xaa
net/http.(*conn).readRequest(0xc000167b80, 0x13a72c8, 0xc0002af540, 0x0, 0x0, 0x0)
	net/http/server.go:986 +0x19d
net/http.(*conn).serve(0xc000167b80, 0x13a7370, 0xc0002af540)
	net/http/server.go:1878 +0x705
created by net/http.(*Server).Serve
	net/http/server.go:3013 +0x39b

goroutine 88 [select]:
net.(*Resolver).lookupIPAddr(0x1a06240, 0x13a7338, 0xc0000770e0, 0xfe4b1a, 0x3, 0xc00013d308, 0x11, 0x1bb, 0x0, 0x0, ...)
	net/lookup.go:299 +0x65b
net.(*Resolver).internetAddrList(0x1a06240, 0x13a7338, 0xc0000770e0, 0xfe4b1a, 0x3, 0xc00013d308, 0x15, 0x0, 0x0, 0x0, ...)
	net/ipsock.go:280 +0x4d4
net.(*Resolver).resolveAddrList(0x1a06240, 0x13a7338, 0xc0000770e0, 0xfe5587, 0x4, 0xfe4b1a, 0x3, 0xc00013d308, 0x15, 0x0, ...)
	net/dial.go:221 +0x47d
net.(*Dialer).DialContext(0xc0000762a0, 0x13a7338, 0xc0000770e0, 0xfe4b1a, 0x3, 0xc00013d308, 0x15, 0x0, 0x0, 0x0, ...)
	net/dial.go:403 +0x22b
net/http.(*Transport).dial(0x1899420, 0x13a7300, 0xc00003c0c8, 0xfe4b1a, 0x3, 0xc00013d308, 0x15, 0x0, 0xc0001b0100, 0x0, ...)
	net/http/transport.go:1162 +0x1ff
net/http.(*Transport).dialConn(0x1899420, 0x13a7300, 0xc00003c0c8, 0x0, 0xc000043180, 0x5, 0xc00013d308, 0x15, 0x0, 0xc000483e60, ...)
	net/http/transport.go:1600 +0x1b85
net/http.(*Transport).dialConnFor(0x1899420, 0xc000463e40)
	net/http/transport.go:1442 +0xc6
created by net/http.(*Transport).queueForDial
	net/http/transport.go:1411 +0x40f

goroutine 41 [IO wait]:
internal/poll.runtime_pollWait(0x7fe7f45a9748, 0x72, 0xffffffffffffffff)
	runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc000520198, 0x72, 0x1000, 0x1000, 0xffffffffffffffff)
	internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc000520180, 0xc00026f000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	internal/poll/fd_unix.go:166 +0x1d5
net.(*netFD).Read(0xc000520180, 0xc00026f000, 0x1000, 0x1000, 0x15, 0x1000109, 0x13a9f38)
	net/fd_posix.go:55 +0x4f
net.(*conn).Read(0xc0001564c0, 0xc00026f000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	net/net.go:183 +0x91
net/http.(*connReader).Read(0xc00053aa20, 0xc00026f000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	net/http/server.go:800 +0x1b9
bufio.(*Reader).fill(0xc0002d0d20)
	bufio/bufio.go:101 +0x108
bufio.(*Reader).ReadSlice(0xc0002d0d20, 0x13bd60a, 0xc000015818, 0x694e5c, 0x7fe7e6ce74a0, 0xc00001a1e0, 0xc0002f4f00)
	bufio/bufio.go:360 +0x3d
bufio.(*Reader).ReadLine(0xc0002d0d20, 0x203000, 0x203000, 0x13a9f38, 0xc000015880, 0x23, 0x0)
	bufio/bufio.go:389 +0x34
net/textproto.(*Reader).readLineSlice(0xc00031b3e0, 0xc0002f5000, 0x756ea100e19b16, 0xa5a770a0326c91df, 0xc00031a060, 0xc0000159a0)
	net/textproto/reader.go:57 +0xd6
net/textproto.(*Reader).ReadLine(...)
	net/textproto/reader.go:38
net/http.readRequest(0xc0002d0d20, 0x0, 0xc0002f5000, 0x0, 0x0)
	net/http/request.go:1027 +0xaa
net/http.(*conn).readRequest(0xc000167a40, 0x13a72c8, 0xc0002aea40, 0x0, 0x0, 0x0)
	net/http/server.go:986 +0x19d
net/http.(*conn).serve(0xc000167a40, 0x13a7370, 0xc0002aea40)
	net/http/server.go:1878 +0x705
created by net/http.(*Server).Serve
	net/http/server.go:3013 +0x39b

goroutine 46 [IO wait]:
internal/poll.runtime_pollWait(0x7fe7f45a9918, 0x72, 0xffffffffffffffff)
	runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc000520818, 0x72, 0x1000, 0x1000, 0xffffffffffffffff)
	internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc000520800, 0xc00024f000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	internal/poll/fd_unix.go:166 +0x1d5
net.(*netFD).Read(0xc000520800, 0xc00024f000, 0x1000, 0x1000, 0xc00037dc80, 0xc000525668, 0xff2155)
	net/fd_posix.go:55 +0x4f
net.(*conn).Read(0xc0001564d0, 0xc00024f000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	net/net.go:183 +0x91
net/http.(*connReader).Read(0xc00053aed0, 0xc00024f000, 0x1000, 0x1000, 0x482236, 0xc00031c1ab, 0x1f)
	net/http/server.go:800 +0x1b9
bufio.(*Reader).fill(0xc0002d0cc0)
	bufio/bufio.go:101 +0x108
bufio.(*Reader).ReadSlice(0xc0002d0cc0, 0xc00001780a, 0x6d28e7, 0xc0002ae740, 0x18cacdc, 0x2, 0x2)
	bufio/bufio.go:360 +0x3d
bufio.(*Reader).ReadLine(0xc0002d0cc0, 0x203000, 0x203000, 0x0, 0x0, 0xc000017a78, 0x6d3345)
	bufio/bufio.go:389 +0x34
net/textproto.(*Reader).readLineSlice(0xc00015eae0, 0xc0002f5300, 0xc0000179e8, 0x4e1633, 0xc000520800, 0xc00026e000)
	net/textproto/reader.go:57 +0xd6
net/textproto.(*Reader).ReadLine(...)
	net/textproto/reader.go:38
net/http.readRequest(0xc0002d0cc0, 0x0, 0xc0002f5300, 0x0, 0x0)
	net/http/request.go:1027 +0xaa
net/http.(*conn).readRequest(0xc000167cc0, 0x13a72c8, 0xc0002af5c0, 0x0, 0x0, 0x0)
	net/http/server.go:986 +0x19d
net/http.(*conn).serve(0xc000167cc0, 0x13a7370, 0xc0002af5c0)
	net/http/server.go:1878 +0x705
created by net/http.(*Server).Serve
	net/http/server.go:3013 +0x39b

goroutine 48 [IO wait]:
internal/poll.runtime_pollWait(0x7fe7f45a9660, 0x72, 0xffffffffffffffff)
	runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc000520898, 0x72, 0x1000, 0x1000, 0xffffffffffffffff)
	internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc000520880, 0xc0002c9000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	internal/poll/fd_unix.go:166 +0x1d5
net.(*netFD).Read(0xc000520880, 0xc0002c9000, 0x1000, 0x1000, 0x15, 0x10000d7, 0x13a9f38)
	net/fd_posix.go:55 +0x4f
net.(*conn).Read(0xc0001564d8, 0xc0002c9000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	net/net.go:183 +0x91
net/http.(*connReader).Read(0xc00053b0b0, 0xc0002c9000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	net/http/server.go:800 +0x1b9
bufio.(*Reader).fill(0xc0002d0d80)
	bufio/bufio.go:101 +0x108
bufio.(*Reader).ReadSlice(0xc0002d0d80, 0x13bd60a, 0xc0003eb818, 0x694e5c, 0x7fe7e6ce74a0, 0xc00001a1e0, 0xc0002f4a00)
	bufio/bufio.go:360 +0x3d
bufio.(*Reader).ReadLine(0xc0002d0d80, 0x203000, 0x203000, 0x13a9f38, 0xc0003eb880, 0x23, 0x0)
	bufio/bufio.go:389 +0x34
net/textproto.(*Reader).readLineSlice(0xc00053af00, 0xc0002f4b00, 0x756ea19bce25ba, 0x2115c0cddcdf4be6, 0xc00031a060, 0xc0003eb9a0)
	net/textproto/reader.go:57 +0xd6
net/textproto.(*Reader).ReadLine(...)
	net/textproto/reader.go:38
net/http.readRequest(0xc0002d0d80, 0x0, 0xc0002f4b00, 0x0, 0x0)
	net/http/request.go:1027 +0xaa
net/http.(*conn).readRequest(0xc000167e00, 0x13a72c8, 0xc0002af6c0, 0x0, 0x0, 0x0)
	net/http/server.go:986 +0x19d
net/http.(*conn).serve(0xc000167e00, 0x13a7370, 0xc0002af6c0)
	net/http/server.go:1878 +0x705
created by net/http.(*Server).Serve
	net/http/server.go:3013 +0x39b

goroutine 80 [IO wait]:
internal/poll.runtime_pollWait(0x7fe7f45a9578, 0x72, 0xffffffffffffffff)
	runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc000521f18, 0x72, 0x1000, 0x1000, 0xffffffffffffffff)
	internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc000521f00, 0xc0003b5000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	internal/poll/fd_unix.go:166 +0x1d5
net.(*netFD).Read(0xc000521f00, 0xc0003b5000, 0x1000, 0x1000, 0xc00037dc80, 0xc000525668, 0xff2155)
	net/fd_posix.go:55 +0x4f
net.(*conn).Read(0xc000157668, 0xc0003b5000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	net/net.go:183 +0x91
net/http.(*connReader).Read(0xc00024c240, 0xc0003b5000, 0x1000, 0x1000, 0x482236, 0xc00031c98b, 0x19)
	net/http/server.go:800 +0x1b9
bufio.(*Reader).fill(0xc000076540)
	bufio/bufio.go:101 +0x108
bufio.(*Reader).ReadSlice(0xc000076540, 0xc00041d80a, 0x6d28e7, 0xc0001febc0, 0x18cacdc, 0x2, 0x2)
	bufio/bufio.go:360 +0x3d
bufio.(*Reader).ReadLine(0xc000076540, 0x203000, 0x203000, 0x0, 0x0, 0xc00041da78, 0x6d3345)
	bufio/bufio.go:389 +0x34
net/textproto.(*Reader).readLineSlice(0xc00024c270, 0xc0002f5f00, 0xc00041d9e8, 0x4e1633, 0xc000521f00, 0x43c0bc)
	net/textproto/reader.go:57 +0xd6
net/textproto.(*Reader).ReadLine(...)
	net/textproto/reader.go:38
net/http.readRequest(0xc000076540, 0x0, 0xc0002f5f00, 0x0, 0x0)
	net/http/request.go:1027 +0xaa
net/http.(*conn).readRequest(0xc000167f40, 0x13a72c8, 0xc0001feb80, 0x0, 0x0, 0x0)
	net/http/server.go:986 +0x19d
net/http.(*conn).serve(0xc000167f40, 0x13a7370, 0xc0001feb80)
	net/http/server.go:1878 +0x705
created by net/http.(*Server).Serve
	net/http/server.go:3013 +0x39b

goroutine 89 [select]:
net.cgoLookupIP(0x13a72c8, 0xc0001ff580, 0xfe4b1a, 0x3, 0xc00013d308, 0x11, 0x12, 0xfe3d24, 0x2, 0xffffffffffffffff, ...)
	net/cgo_unix.go:229 +0x173
net.(*Resolver).lookupIP(0x1a06240, 0x13a72c8, 0xc0001ff580, 0xfe4b1a, 0x3, 0xc00013d308, 0x11, 0x0, 0x0, 0x0, ...)
	net/lookup_unix.go:96 +0x187
net.glob..func1(0x13a72c8, 0xc0001ff580, 0xc000496660, 0xfe4b1a, 0x3, 0xc00013d308, 0x11, 0xc00008b798, 0x0, 0xc00024c450, ...)
	net/hook.go:23 +0x72
net.(*Resolver).lookupIPAddr.func1(0x0, 0x0, 0x0, 0x0)
	net/lookup.go:293 +0xba
internal/singleflight.(*Group).doCall(0x1a06250, 0xc000313d10, 0xc00013d320, 0x15, 0xc0001ff5c0)
	internal/singleflight/singleflight.go:95 +0x2e
created by internal/singleflight.(*Group).DoChan
	internal/singleflight/singleflight.go:88 +0x2cc

goroutine 87 [select]:
net/http.(*Transport).getConn(0x1899420, 0xc0001ff4c0, 0x0, 0xc000043180, 0x5, 0xc00013d308, 0x15, 0x0, 0x0, 0x0, ...)
	net/http/transport.go:1368 +0x589
net/http.(*Transport).roundTrip(0x1899420, 0xc0004f6000, 0xc0004f8000, 0x160, 0x150)
	net/http/transport.go:579 +0x7eb
net/http.(*Transport).RoundTrip(0x1899420, 0xc0004f6000, 0x1899420, 0x0, 0x0)
	net/http/roundtrip.go:17 +0x35
net/http.send(0xc0004f6000, 0x1394220, 0x1899420, 0x0, 0x0, 0x0, 0xc000157778, 0x41a7d7, 0x1, 0x0)
	net/http/client.go:251 +0x454
net/http.(*Client).send(0x1a07280, 0xc0004f6000, 0x0, 0x0, 0x0, 0xc000157778, 0x0, 0x1, 0xc00024cea0)
	net/http/client.go:175 +0xff
net/http.(*Client).do(0x1a07280, 0xc0004f6000, 0x0, 0x0, 0x0)
	net/http/client.go:717 +0x45f
net/http.(*Client).Do(...)
	net/http/client.go:585
net/http.(*Client).Post(0x1a07280, 0xc000043180, 0x72, 0xff6785, 0x10, 0x1394640, 0xc0001b1900, 0x40fb1b, 0x0, 0x203000)
	net/http/client.go:845 +0x198
net/http.Post(...)
	net/http/client.go:825
github.com/li4n0/revsuit/internal/notice.(*DingTalk).notice(0xc00030e010, 0x13a5008, 0xc00046bce0, 0x0, 0x0)
	github.com/li4n0/revsuit/internal/notice/ding.go:62 +0x11b
github.com/li4n0/revsuit/internal/notice.Notice(0x13a5008, 0xc00046bce0)
	github.com/li4n0/revsuit/internal/notice/announcer.go:45 +0xa2
github.com/li4n0/revsuit/pkg/rhttp.Record.Notice(...)
	github.com/li4n0/revsuit/pkg/rhttp/record.go:28
github.com/li4n0/revsuit/pkg/rhttp.(*Server).Receive.func1(0xc00046b8c0, 0x0, 0x0)
	github.com/li4n0/revsuit/pkg/rhttp/http.go:207 +0xe8
created by github.com/li4n0/revsuit/pkg/rhttp.(*Server).Receive
	github.com/li4n0/revsuit/pkg/rhttp/http.go:206 +0x88c

@Li4n0 Li4n0 pinned this issue Jun 25, 2021
@Li4n0 Li4n0 added the bug Something isn't working label Jun 25, 2021
@Li4n0
Copy link
Owner

Li4n0 commented Jun 25, 2021

@Conanjun 已经确认问题是由于在Linux平台下开启CGO并静态编译会触发glibc的bug导致的。参考golang/go#30310 。目前的修复方法是在编译Linux平台版本的时候使用-tags netgo选项。
感谢反馈!将会在这两天内修复并发布新版。

@Li4n0 Li4n0 closed this as completed in be73431 Jun 25, 2021
@Li4n0 Li4n0 unpinned this issue Jun 25, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants