ysrc / yulong-hids-archived

[archived] 一款实验性质的主机入侵检测系统
Other
2.16k stars 581 forks source link

server端总异常崩溃 #40

Open zntim opened 6 years ago

zntim commented 6 years ago

部署三台agent 两个server端 ES、m都是单台部署的 按说客户端不多日志量应该不至于导致崩溃吧

我查到有其它go程序存在类似问题https://github.com/golang/go/issues/18137

以下为报错日志 fatal error: concurrent map iteration and map write

goroutine 16 [running]: runtime.throw(0x9bde28, 0x26) /usr/local/go/src/runtime/panic.go:619 +0x81 fp=0xc420285480 sp=0xc420285460 pc=0x42b2a1 runtime.mapiternext(0xc4200ca300) /usr/local/go/src/runtime/hashmap.go:747 +0x55c fp=0xc420285510 sp=0xc420285480 pc=0x40a48c runtime.mapiterinit(0x903420, 0xc42028e0f0, 0xc4200ca300) /usr/local/go/src/runtime/hashmap.go:737 +0x1f1 fp=0xc420285538 sp=0xc420285510 pc=0x409e41 reflect.mapiterinit(0x903420, 0xc42028e0f0, 0x95) /usr/local/go/src/runtime/hashmap.go:1217 +0x54 fp=0xc420285568 sp=0xc420285538 pc=0x40b564 reflect.Value.MapKeys(0x903420, 0xc42026c0d0, 0x95, 0x0, 0xc4202856f0, 0x68b1eb) /usr/local/go/src/reflect/value.go:1114 +0xdd fp=0xc420285610 sp=0xc420285568 pc=0x4abe2d encoding/json.(mapEncoder).encode(0xc42000e280, 0xc4201a00b0, 0x903420, 0xc42026c0d0, 0x95, 0x100) /usr/local/go/src/encoding/json/encode.go:668 +0xad fp=0xc420285770 sp=0xc420285610 pc=0x5f690d encoding/json.(mapEncoder).(encoding/json.encode)-fm(0xc4201a00b0, 0x903420, 0xc42026c0d0, 0x95, 0x100) /usr/local/go/src/encoding/json/encode.go:700 +0x64 fp=0xc4202857b0 sp=0xc420285770 pc=0x6007d4 encoding/json.(structEncoder).encode(0xc42028e5a0, 0xc4201a00b0, 0x93ac80, 0xc42026c0c0, 0x99, 0x930100) /usr/local/go/src/encoding/json/encode.go:639 +0x255 fp=0xc420285910 sp=0xc4202857b0 pc=0x5f64d5 encoding/json.(structEncoder).(encoding/json.encode)-fm(0xc4201a00b0, 0x93ac80, 0xc42026c0c0, 0x99, 0xc420260100) /usr/local/go/src/encoding/json/encode.go:653 +0x64 fp=0xc420285950 sp=0xc420285910 pc=0x600754 encoding/json.(encodeState).reflectValue(0xc4201a00b0, 0x93ac80, 0xc42026c0c0, 0x99, 0x100) /usr/local/go/src/encoding/json/encode.go:325 +0x82 fp=0xc420285988 sp=0xc420285950 pc=0x5f4332 encoding/json.(encodeState).marshal(0xc4201a00b0, 0x93ac80, 0xc42026c0c0, 0x9b0100, 0x0, 0x0) /usr/local/go/src/encoding/json/encode.go:298 +0xa5 fp=0xc4202859c0 sp=0xc420285988 pc=0x5f4025 encoding/json.Marshal(0x93ac80, 0xc42026c0c0, 0xc42026c1e0, 0x9b1df7, 0xc, 0x9b3795, 0x10) /usr/local/go/src/encoding/json/encode.go:161 +0x5f fp=0xc420285a08 sp=0xc4202859c0 pc=0x5f3cbf yulong-hids/server/vendor/github.com/olivere/elastic.(Request).setBodyJson(0xc420526000, 0x93ac80, 0xc42026c0c0, 0xc420526000, 0x0) /usr/local/go/src/yulong-hids/server/vendor/github.com/olivere/elastic/request.go:58 +0x39 fp=0xc420285a68 sp=0xc420285a08 pc=0x788e89 yulong-hids/server/vendor/github.com/olivere/elastic.(Request).SetBody(0xc420526000, 0x93ac80, 0xc42026c0c0, 0x0, 0xc420526000, 0x0) /usr/local/go/src/yulong-hids/server/vendor/github.com/olivere/elastic/request.go:51 +0x153 fp=0xc420285ab0 sp=0xc420285a68 pc=0x788df3 yulong-hids/server/vendor/github.com/olivere/elastic.(Client).PerformRequest(0xc4201b2000, 0xa0d780, 0xc42009a010, 0x9af7b0, 0x4, 0xc420022240, 0x1b, 0xc42026c1b0, 0x93ac80, 0xc42026c0c0, ...) /usr/local/go/src/yulong-hids/server/vendor/github.com/olivere/elastic/client.go:1257 +0xe76 fp=0xc420285cb8 sp=0xc420285ab0 pc=0x73bc46 yulong-hids/server/vendor/github.com/olivere/elastic.(IndexService).Do(0xc420285ec0, 0xa0d780, 0xc42009a010, 0xc42026c0c0, 0x0, 0x0) /usr/local/go/src/yulong-hids/server/vendor/github.com/olivere/elastic/index.go:267 +0x155 fp=0xc420285df0 sp=0xc420285cb8 pc=0x75b005 yulong-hids/server/models.InsertThread() /usr/local/go/src/yulong-hids/server/models/es.go:240 +0x192 fp=0xc420285fe0 sp=0xc420285df0 pc=0x802ec2 runtime.goexit() /usr/local/go/src/runtime/asm_amd64.s:2361 +0x1 fp=0xc420285fe8 sp=0xc420285fe0 pc=0x457311 created by main.init.0 /usr/local/go/src/yulong-hids/server/server.go:74 +0x1d5

goroutine 1 [IO wait]: internal/poll.runtime_pollWait(0x7f9d98c1fd60, 0x72, 0x0) /usr/local/go/src/runtime/netpoll.go:173 +0x57 internal/poll.(pollDesc).wait(0xc4201ae918, 0x72, 0xc420072100, 0x0, 0x0) /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0x9b internal/poll.(pollDesc).waitRead(0xc4201ae918, 0xffffffffffffff00, 0x0, 0x0) /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d internal/poll.(FD).Accept(0xc4201ae900, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0) /usr/local/go/src/internal/poll/fd_unix.go:372 +0x1a8 net.(netFD).accept(0xc4201ae900, 0x10, 0x0, 0x0) /usr/local/go/src/net/fd_unix.go:238 +0x42 net.(TCPListener).accept(0xc42000e218, 0xc4201b41c8, 0xc420287d50, 0x9a8aa0) /usr/local/go/src/net/tcpsock_posix.go:136 +0x2e net.(TCPListener).Accept(0xc42000e218, 0x434544, 0xc420287c98, 0x453d70, 0xc420287cd8) /usr/local/go/src/net/tcpsock.go:259 +0x49 crypto/tls.(listener).Accept(0xc42024e640, 0x9cc900, 0xc4201a0160, 0xa0eb40, 0xc4200d4a80) /usr/local/go/src/crypto/tls/tls.go:52 +0x37 yulong-hids/server/vendor/github.com/smallnest/rpcx/server.(Server).serveListener(0xc4201a0160, 0xa0ce40, 0xc42024e640, 0x9afdb1, 0x6) /usr/local/go/src/yulong-hids/server/vendor/github.com/smallnest/rpcx/server/server.go:148 +0xca yulong-hids/server/vendor/github.com/smallnest/rpcx/server.(*Server).Serve(0xc4201a0160, 0x9af651, 0x3, 0x9afdb1, 0x6, 0x0, 0x0) /usr/local/go/src/yulong-hids/server/vendor/github.com/smallnest/rpcx/server/server.go:127 +0xa5 main.main() /usr/local/go/src/yulong-hids/server/server.go:87 +0x2c1

goroutine 19 [select]: yulong-hids/server/vendor/gopkg.in/mgo%2ev2.(*mongoCluster).syncServersLoop(0xc420140000) /usr/local/go/src/yulong-hids/server/vendor/gopkg.in/mgo.v2/cluster.go:394 +0x31a created by yulong-hids/server/vendor/gopkg.in/mgo%2ev2.newCluster /usr/local/go/src/yulong-hids/server/vendor/gopkg.in/mgo.v2/cluster.go:78 +0x181

goroutine 54626 [select, 349 minutes]: net/http.(persistConn).writeLoop(0xc420390480) /usr/local/go/src/net/http/transport.go:1822 +0x14b created by net/http.(Transport).dialConn /usr/local/go/src/net/http/transport.go:1238 +0x97f

goroutine 21 [sleep]: time.Sleep(0x37e11d600) /usr/local/go/src/runtime/time.go:102 +0x166 yulong-hids/server/vendor/gopkg.in/mgo%2ev2.(*mongoServer).pinger(0xc4201440e0, 0xc42009c401) /usr/local/go/src/yulong-hids/server/vendor/gopkg.in/mgo.v2/server.go:301 +0x4b6 created by yulong-hids/server/vendor/gopkg.in/mgo%2ev2.newServer /usr/local/go/src/yulong-hids/server/vendor/gopkg.in/mgo.v2/server.go:89 +0x12d

goroutine 5 [IO wait]: internal/poll.runtime_pollWait(0x7f9d98c1ff00, 0x72, 0xc4201d7d18) /usr/local/go/src/runtime/netpoll.go:173 +0x57 internal/poll.(pollDesc).wait(0xc4200ce198, 0x72, 0xffffffffffffff00, 0xa0a6c0, 0xc965d8) /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0x9b internal/poll.(pollDesc).waitRead(0xc4200ce198, 0xc42002c000, 0x24, 0x24) /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d internal/poll.(FD).Read(0xc4200ce180, 0xc42002c030, 0x24, 0x24, 0x0, 0x0, 0x0) /usr/local/go/src/internal/poll/fd_unix.go:157 +0x17d net.(netFD).Read(0xc4200ce180, 0xc42002c030, 0x24, 0x24, 0x0, 0x0, 0x0) /usr/local/go/src/net/fd_unix.go:202 +0x4f net.(conn).Read(0xc42000e018, 0xc42002c030, 0x24, 0x24, 0x0, 0x0, 0x0) /usr/local/go/src/net/net.go:176 +0x6a yulong-hids/server/vendor/gopkg.in/mgo%2ev2.fill(0xa0ec00, 0xc42000e018, 0xc42002c030, 0x24, 0x24, 0x0, 0xda) /usr/local/go/src/yulong-hids/server/vendor/gopkg.in/mgo.v2/socket.go:535 +0x53 yulong-hids/server/vendor/gopkg.in/mgo%2ev2.(mongoSocket).readLoop(0xc420162000) /usr/local/go/src/yulong-hids/server/vendor/gopkg.in/mgo.v2/socket.go:551 +0x602 created by yulong-hids/server/vendor/gopkg.in/mgo%2ev2.newSocket /usr/local/go/src/yulong-hids/server/vendor/gopkg.in/mgo.v2/socket.go:194 +0x1f5

goroutine 6 [chan receive, 28 minutes]: yulong-hids/server/models.esCheckThread() /usr/local/go/src/yulong-hids/server/models/es.go:254 +0xa2 created by yulong-hids/server/models.init.0 /usr/local/go/src/yulong-hids/server/models/common.go:137 +0x2f3

goroutine 10 [select, 13 minutes]: yulong-hids/server/vendor/github.com/olivere/elastic.(*Client).sniffer(0xc4201b2000) /usr/local/go/src/yulong-hids/server/vendor/github.com/olivere/elastic/client.go:813 +0x17c created by yulong-hids/server/vendor/github.com/olivere/elastic.NewClient /usr/local/go/src/yulong-hids/server/vendor/github.com/olivere/elastic/client.go:282 +0x7c6

goroutine 11 [select]: yulong-hids/server/vendor/github.com/olivere/elastic.(*Client).healthchecker(0xc4201b2000) /usr/local/go/src/yulong-hids/server/vendor/github.com/olivere/elastic/client.go:1000 +0x181 created by yulong-hids/server/vendor/github.com/olivere/elastic.NewClient /usr/local/go/src/yulong-hids/server/vendor/github.com/olivere/elastic/client.go:285 +0x7a2

goroutine 12 [sleep]: time.Sleep(0x6fc23ac00) /usr/local/go/src/runtime/time.go:102 +0x166 yulong-hids/server/models.Heartbeat() /usr/local/go/src/yulong-hids/server/models/common.go:196 +0x84 created by main.init.0 /usr/local/go/src/yulong-hids/server/server.go:66 +0x175

goroutine 13 [sleep]: time.Sleep(0x2540be400) /usr/local/go/src/runtime/time.go:102 +0x166 yulong-hids/server/action.TaskThread() /usr/local/go/src/yulong-hids/server/action/task.go:45 +0x22c created by main.init.0 /usr/local/go/src/yulong-hids/server/server.go:68 +0x18d

goroutine 14 [chan receive]: yulong-hids/server/safecheck.ScanMonitorThread() /usr/local/go/src/yulong-hids/server/safecheck/check.go:292 +0x28d created by main.init.0 /usr/local/go/src/yulong-hids/server/server.go:70 +0x1a5

goroutine 15 [chan receive]: yulong-hids/server/safecheck.firewallCheckThread() /usr/local/go/src/yulong-hids/server/safecheck/health.go:108 +0x800 yulong-hids/server/safecheck.HealthCheckThread() /usr/local/go/src/yulong-hids/server/safecheck/health.go:19 +0x96 created by main.init.0 /usr/local/go/src/yulong-hids/server/server.go:72 +0x1bd

goroutine 28 [chan receive]: yulong-hids/server/safecheck.ScanMonitorThread.func1() /usr/local/go/src/yulong-hids/server/safecheck/check.go:287 +0x6c created by yulong-hids/server/safecheck.ScanMonitorThread /usr/local/go/src/yulong-hids/server/safecheck/check.go:285 +0x254

goroutine 29 [sleep]: time.Sleep(0x6fc23ac00) /usr/local/go/src/runtime/time.go:102 +0x166 yulong-hids/server/safecheck.offlineCheckThread() /usr/local/go/src/yulong-hids/server/safecheck/health.go:98 +0xc2a created by yulong-hids/server/safecheck.HealthCheckThread /usr/local/go/src/yulong-hids/server/safecheck/health.go:17 +0x79

goroutine 30 [sleep]: time.Sleep(0xdf8475800) /usr/local/go/src/runtime/time.go:102 +0x166 yulong-hids/server/safecheck.cleanThread() /usr/local/go/src/yulong-hids/server/safecheck/health.go:42 +0x39f created by yulong-hids/server/safecheck.HealthCheckThread /usr/local/go/src/yulong-hids/server/safecheck/health.go:18 +0x91

goroutine 31 [chan receive, 448 minutes]: yulong-hids/server/safecheck.offlineCheckThread.func1(0xc42012ad60) /usr/local/go/src/yulong-hids/server/safecheck/health.go:55 +0x6c created by yulong-hids/server/safecheck.offlineCheckThread /usr/local/go/src/yulong-hids/server/safecheck/health.go:53 +0x154

goroutine 34 [IO wait]: internal/poll.runtime_pollWait(0x7f9d98c1fc90, 0x72, 0xc42050d860) /usr/local/go/src/runtime/netpoll.go:173 +0x57 internal/poll.(pollDesc).wait(0xc4201ae998, 0x72, 0xffffffffffffff00, 0xa0a6c0, 0xc965d8) /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0x9b internal/poll.(pollDesc).waitRead(0xc4201ae998, 0xc42042e000, 0x2000, 0x2000) /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d internal/poll.(FD).Read(0xc4201ae980, 0xc42042e000, 0x2000, 0x2000, 0x0, 0x0, 0x0) /usr/local/go/src/internal/poll/fd_unix.go:157 +0x17d net.(netFD).Read(0xc4201ae980, 0xc42042e000, 0x2000, 0x2000, 0x8, 0x8, 0x1ff3) /usr/local/go/src/net/fd_unix.go:202 +0x4f net.(conn).Read(0xc42000e220, 0xc42042e000, 0x2000, 0x2000, 0x0, 0x0, 0x0) /usr/local/go/src/net/net.go:176 +0x6a crypto/tls.(block).readFromUntil(0xc420161da0, 0x7f9d9807e3a0, 0xc42000e220, 0x5, 0xc42000e220, 0x0) /usr/local/go/src/crypto/tls/conn.go:493 +0x96 crypto/tls.(Conn).readRecord(0xc420186a80, 0x9cbf17, 0xc420186ba0, 0x0) /usr/local/go/src/crypto/tls/conn.go:595 +0xe0 crypto/tls.(Conn).Read(0xc420186a80, 0xc420237000, 0x400, 0x400, 0x0, 0x0, 0x0) /usr/local/go/src/crypto/tls/conn.go:1156 +0x100 bufio.(Reader).Read(0xc4200753e0, 0xc42027c084, 0xc, 0xc, 0xc42050dcc8, 0x813507, 0x903420) /usr/local/go/src/bufio/bufio.go:216 +0x238 io.ReadAtLeast(0xa09100, 0xc4200753e0, 0xc42027c084, 0xc, 0xc, 0xc, 0xc42012c47e, 0x6, 0xbd) /usr/local/go/src/io/io.go:309 +0x86 io.ReadFull(0xa09100, 0xc4200753e0, 0xc42027c084, 0xc, 0xc, 0x0, 0x46d172, 0x1) /usr/local/go/src/io/io.go:327 +0x58 yulong-hids/server/vendor/github.com/smallnest/rpcx/protocol.(Message).Decode(0xc4202d0060, 0xa09100, 0xc4200753e0, 0x0, 0x0) /usr/local/go/src/yulong-hids/server/vendor/github.com/smallnest/rpcx/protocol/message.go:359 +0x71 yulong-hids/server/vendor/github.com/smallnest/rpcx/server.(Server).readRequest(0xc4201a0160, 0xa0d800, 0xc420161fb0, 0xa09100, 0xc4200753e0, 0xa0d800, 0xc420161fb0, 0xc4201a0160) /usr/local/go/src/yulong-hids/server/vendor/github.com/smallnest/rpcx/server/server.go:335 +0x7f yulong-hids/server/vendor/github.com/smallnest/rpcx/server.(Server).serveConn(0xc4201a0160, 0xa0eb40, 0xc420186a80) /usr/local/go/src/yulong-hids/server/vendor/github.com/smallnest/rpcx/server/server.go:258 +0x248 created by yulong-hids/server/vendor/github.com/smallnest/rpcx/server.(*Server).serveListener /usr/local/go/src/yulong-hids/server/vendor/github.com/smallnest/rpcx/server/server.go:189 +0x1de

goroutine 160819 [select, 169 minutes]: net/http.(persistConn).writeLoop(0xc4202ff8c0) /usr/local/go/src/net/http/transport.go:1822 +0x14b created by net/http.(Transport).dialConn /usr/local/go/src/net/http/transport.go:1238 +0x97f

goroutine 88802 [select, 289 minutes]: net/http.(persistConn).readLoop(0xc420390240) /usr/local/go/src/net/http/transport.go:1717 +0x743 created by net/http.(Transport).dialConn /usr/local/go/src/net/http/transport.go:1237 +0x95a

goroutine 73 [IO wait]: internal/poll.runtime_pollWait(0x7f9d98c1faf0, 0x72, 0xc420253d18) /usr/local/go/src/runtime/netpoll.go:173 +0x57 internal/poll.(pollDesc).wait(0xc4200ce918, 0x72, 0xffffffffffffff00, 0xa0a6c0, 0xc965d8) /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0x9b internal/poll.(pollDesc).waitRead(0xc4200ce918, 0xc42002c200, 0x24, 0x24) /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d internal/poll.(FD).Read(0xc4200ce900, 0xc42002c2a0, 0x24, 0x24, 0x0, 0x0, 0x0) /usr/local/go/src/internal/poll/fd_unix.go:157 +0x17d net.(netFD).Read(0xc4200ce900, 0xc42002c2a0, 0x24, 0x24, 0x0, 0x0, 0x0) /usr/local/go/src/net/fd_unix.go:202 +0x4f net.(conn).Read(0xc42000e0f8, 0xc42002c2a0, 0x24, 0x24, 0x0, 0x0, 0x0) /usr/local/go/src/net/net.go:176 +0x6a yulong-hids/server/vendor/gopkg.in/mgo%2ev2.fill(0xa0ec00, 0xc42000e0f8, 0xc42002c2a0, 0x24, 0x24, 0x0, 0x11) /usr/local/go/src/yulong-hids/server/vendor/gopkg.in/mgo.v2/socket.go:535 +0x53 yulong-hids/server/vendor/gopkg.in/mgo%2ev2.(mongoSocket).readLoop(0xc420144460) /usr/local/go/src/yulong-hids/server/vendor/gopkg.in/mgo.v2/socket.go:551 +0x602 created by yulong-hids/server/vendor/gopkg.in/mgo%2ev2.newSocket /usr/local/go/src/yulong-hids/server/vendor/gopkg.in/mgo.v2/socket.go:194 +0x1f5

goroutine 160735 [select, 169 minutes]: net/http.(persistConn).readLoop(0xc42024b560) /usr/local/go/src/net/http/transport.go:1717 +0x743 created by net/http.(Transport).dialConn /usr/local/go/src/net/http/transport.go:1237 +0x95a

goroutine 160821 [select, 169 minutes]: net/http.(persistConn).writeLoop(0xc4202ffb00) /usr/local/go/src/net/http/transport.go:1822 +0x14b created by net/http.(Transport).dialConn /usr/local/go/src/net/http/transport.go:1238 +0x97f

goroutine 88833 [select, 289 minutes]: net/http.(persistConn).writeLoop(0xc4202ff560) /usr/local/go/src/net/http/transport.go:1822 +0x14b created by net/http.(Transport).dialConn /usr/local/go/src/net/http/transport.go:1238 +0x97f

goroutine 160785 [select, 169 minutes]: net/http.(persistConn).readLoop(0xc4200b5560) /usr/local/go/src/net/http/transport.go:1717 +0x743 created by net/http.(Transport).dialConn /usr/local/go/src/net/http/transport.go:1237 +0x95a

goroutine 473 [IO wait]: internal/poll.runtime_pollWait(0x7f9d98c1fa20, 0x72, 0xc420062860) /usr/local/go/src/runtime/netpoll.go:173 +0x57 internal/poll.(pollDesc).wait(0xc4201afb98, 0x72, 0xffffffffffffff00, 0xa0a6c0, 0xc965d8) /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0x9b internal/poll.(pollDesc).waitRead(0xc4201afb98, 0xc4201f8000, 0x8000, 0x8000) /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d internal/poll.(FD).Read(0xc4201afb80, 0xc4201f8000, 0x8000, 0x8000, 0x0, 0x0, 0x0) /usr/local/go/src/internal/poll/fd_unix.go:157 +0x17d net.(netFD).Read(0xc4201afb80, 0xc4201f8000, 0x8000, 0x8000, 0x8, 0x8, 0x7ff3) /usr/local/go/src/net/fd_unix.go:202 +0x4f net.(conn).Read(0xc42009e450, 0xc4201f8000, 0x8000, 0x8000, 0x0, 0x0, 0x0) /usr/local/go/src/net/net.go:176 +0x6a crypto/tls.(block).readFromUntil(0xc42040dcb0, 0x7f9d9807e3a0, 0xc42009e450, 0x5, 0xc42009e450, 0x0) /usr/local/go/src/crypto/tls/conn.go:493 +0x96 crypto/tls.(Conn).readRecord(0xc4200d4380, 0x9cbf17, 0xc4200d44a0, 0x0) /usr/local/go/src/crypto/tls/conn.go:595 +0xe0 crypto/tls.(Conn).Read(0xc4200d4380, 0xc4200f9000, 0x400, 0x400, 0x0, 0x0, 0x0) /usr/local/go/src/crypto/tls/conn.go:1156 +0x100 bufio.(Reader).Read(0xc42048fc80, 0xc42027cad0, 0xc, 0xc, 0xc420062cc8, 0x813507, 0x903420) /usr/local/go/src/bufio/bufio.go:216 +0x238 io.ReadAtLeast(0xa09100, 0xc42048fc80, 0xc42027cad0, 0xc, 0xc, 0xc, 0xc42012c55e, 0x6, 0xbe) /usr/local/go/src/io/io.go:309 +0x86 io.ReadFull(0xa09100, 0xc42048fc80, 0xc42027cad0, 0xc, 0xc, 0x0, 0x46d172, 0x1) /usr/local/go/src/io/io.go:327 +0x58 yulong-hids/server/vendor/github.com/smallnest/rpcx/protocol.(Message).Decode(0xc4202a2a20, 0xa09100, 0xc42048fc80, 0x0, 0x0) /usr/local/go/src/yulong-hids/server/vendor/github.com/smallnest/rpcx/protocol/message.go:359 +0x71 yulong-hids/server/vendor/github.com/smallnest/rpcx/server.(Server).readRequest(0xc4201a0160, 0xa0d800, 0xc42040de00, 0xa09100, 0xc42048fc80, 0xa0d800, 0xc42040de00, 0xc4201a0160) /usr/local/go/src/yulong-hids/server/vendor/github.com/smallnest/rpcx/server/server.go:335 +0x7f yulong-hids/server/vendor/github.com/smallnest/rpcx/server.(Server).serveConn(0xc4201a0160, 0xa0eb40, 0xc4200d4380) /usr/local/go/src/yulong-hids/server/vendor/github.com/smallnest/rpcx/server/server.go:258 +0x248 created by yulong-hids/server/vendor/github.com/smallnest/rpcx/server.(*Server).serveListener /usr/local/go/src/yulong-hids/server/vendor/github.com/smallnest/rpcx/server/server.go:189 +0x1de

goroutine 160760 [select, 169 minutes]: net/http.(persistConn).readLoop(0xc420176240) /usr/local/go/src/net/http/transport.go:1717 +0x743 created by net/http.(Transport).dialConn /usr/local/go/src/net/http/transport.go:1237 +0x95a

goroutine 160761 [select, 169 minutes]: net/http.(persistConn).writeLoop(0xc420176240) /usr/local/go/src/net/http/transport.go:1822 +0x14b created by net/http.(Transport).dialConn /usr/local/go/src/net/http/transport.go:1238 +0x97f

goroutine 160686 [select, 169 minutes]: net/http.(persistConn).readLoop(0xc420390c60) /usr/local/go/src/net/http/transport.go:1717 +0x743 created by net/http.(Transport).dialConn /usr/local/go/src/net/http/transport.go:1237 +0x95a

goroutine 160736 [select, 169 minutes]: net/http.(persistConn).writeLoop(0xc42024b560) /usr/local/go/src/net/http/transport.go:1822 +0x14b created by net/http.(Transport).dialConn /usr/local/go/src/net/http/transport.go:1238 +0x97f

goroutine 54593 [select, 349 minutes]: net/http.(persistConn).readLoop(0xc420390480) /usr/local/go/src/net/http/transport.go:1717 +0x743 created by net/http.(Transport).dialConn /usr/local/go/src/net/http/transport.go:1237 +0x95a

goroutine 160818 [select, 169 minutes]: net/http.(persistConn).readLoop(0xc4202ff8c0) /usr/local/go/src/net/http/transport.go:1717 +0x743 created by net/http.(Transport).dialConn /usr/local/go/src/net/http/transport.go:1237 +0x95a

goroutine 88803 [select, 289 minutes]: net/http.(persistConn).writeLoop(0xc420390240) /usr/local/go/src/net/http/transport.go:1822 +0x14b created by net/http.(Transport).dialConn /usr/local/go/src/net/http/transport.go:1238 +0x97f

goroutine 260141 [IO wait]: internal/poll.runtime_pollWait(0x7f9d98c1f7b0, 0x72, 0xc4201d9860) /usr/local/go/src/runtime/netpoll.go:173 +0x57 internal/poll.(pollDesc).wait(0xc4201af918, 0x72, 0xffffffffffffff00, 0xa0a6c0, 0xc965d8) /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0x9b internal/poll.(pollDesc).waitRead(0xc4201af918, 0xc4200f8400, 0x400, 0x400) /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d internal/poll.(FD).Read(0xc4201af900, 0xc4200f8400, 0x400, 0x400, 0x0, 0x0, 0x0) /usr/local/go/src/internal/poll/fd_unix.go:157 +0x17d net.(netFD).Read(0xc4201af900, 0xc4200f8400, 0x400, 0x400, 0x8, 0x8, 0x3f3) /usr/local/go/src/net/fd_unix.go:202 +0x4f net.(conn).Read(0xc42009e358, 0xc4200f8400, 0x400, 0x400, 0x0, 0x0, 0x0) /usr/local/go/src/net/net.go:176 +0x6a crypto/tls.(block).readFromUntil(0xc4202e3650, 0x7f9d9807e3a0, 0xc42009e358, 0x5, 0xc42009e358, 0x0) /usr/local/go/src/crypto/tls/conn.go:493 +0x96 crypto/tls.(Conn).readRecord(0xc4200d4a80, 0x9cbf17, 0xc4200d4ba0, 0x0) /usr/local/go/src/crypto/tls/conn.go:595 +0xe0 crypto/tls.(Conn).Read(0xc4200d4a80, 0xc4200f9800, 0x400, 0x400, 0x0, 0x0, 0x0) /usr/local/go/src/crypto/tls/conn.go:1156 +0x100 bufio.(Reader).Read(0xc4202d1320, 0xc420202f30, 0xc, 0xc, 0xc4201d9cc8, 0x813507, 0x903420) /usr/local/go/src/bufio/bufio.go:216 +0x238 io.ReadAtLeast(0xa09100, 0xc4202d1320, 0xc420202f30, 0xc, 0xc, 0xc, 0xc42027601e, 0x6, 0xc6) /usr/local/go/src/io/io.go:309 +0x86 io.ReadFull(0xa09100, 0xc4202d1320, 0xc420202f30, 0xc, 0xc, 0x0, 0x46d172, 0x0) /usr/local/go/src/io/io.go:327 +0x58 yulong-hids/server/vendor/github.com/smallnest/rpcx/protocol.(Message).Decode(0xc420302960, 0xa09100, 0xc4202d1320, 0x0, 0x0) /usr/local/go/src/yulong-hids/server/vendor/github.com/smallnest/rpcx/protocol/message.go:359 +0x71 yulong-hids/server/vendor/github.com/smallnest/rpcx/server.(Server).readRequest(0xc4201a0160, 0xa0d800, 0xc4202e3860, 0xa09100, 0xc4202d1320, 0xa0d800, 0xc4202e3860, 0xc4201a0160) /usr/local/go/src/yulong-hids/server/vendor/github.com/smallnest/rpcx/server/server.go:335 +0x7f yulong-hids/server/vendor/github.com/smallnest/rpcx/server.(Server).serveConn(0xc4201a0160, 0xa0eb40, 0xc4200d4a80) /usr/local/go/src/yulong-hids/server/vendor/github.com/smallnest/rpcx/server/server.go:258 +0x248 created by yulong-hids/server/vendor/github.com/smallnest/rpcx/server.(*Server).serveListener /usr/local/go/src/yulong-hids/server/vendor/github.com/smallnest/rpcx/server/server.go:189 +0x1de

goroutine 160788 [select, 169 minutes]: net/http.(persistConn).writeLoop(0xc42024bd40) /usr/local/go/src/net/http/transport.go:1822 +0x14b created by net/http.(Transport).dialConn /usr/local/go/src/net/http/transport.go:1238 +0x97f

goroutine 241293 [IO wait]: internal/poll.runtime_pollWait(0x7f9d98c1f060, 0x72, 0xc4204339a8) /usr/local/go/src/runtime/netpoll.go:173 +0x57 internal/poll.(pollDesc).wait(0xc4201afa18, 0x72, 0xffffffffffffff00, 0xa0a6c0, 0xc965d8) /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0x9b internal/poll.(pollDesc).waitRead(0xc4201afa18, 0xc4202fc000, 0x1000, 0x1000) /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d internal/poll.(FD).Read(0xc4201afa00, 0xc4202fc000, 0x1000, 0x1000, 0x0, 0x0, 0x0) /usr/local/go/src/internal/poll/fd_unix.go:157 +0x17d net.(netFD).Read(0xc4201afa00, 0xc4202fc000, 0x1000, 0x1000, 0x453530, 0xc4201b0f00, 0x4) /usr/local/go/src/net/fd_unix.go:202 +0x4f net.(conn).Read(0xc42000e418, 0xc4202fc000, 0x1000, 0x1000, 0x0, 0x0, 0x0) /usr/local/go/src/net/net.go:176 +0x6a net/http.(persistConn).Read(0xc4203910e0, 0xc4202fc000, 0x1000, 0x1000, 0xc420433b98, 0x404fa5, 0xc420341620) /usr/local/go/src/net/http/transport.go:1453 +0x136 bufio.(Reader).fill(0xc4202d1ec0) /usr/local/go/src/bufio/bufio.go:100 +0x11e bufio.(Reader).Peek(0xc4202d1ec0, 0x1, 0x0, 0x0, 0x1, 0xc420340ea0, 0x0) /usr/local/go/src/bufio/bufio.go:132 +0x3a net/http.(persistConn).readLoop(0xc4203910e0) /usr/local/go/src/net/http/transport.go:1601 +0x185 created by net/http.(Transport).dialConn /usr/local/go/src/net/http/transport.go:1237 +0x95a

goroutine 160687 [select, 169 minutes]: net/http.(persistConn).writeLoop(0xc420390c60) /usr/local/go/src/net/http/transport.go:1822 +0x14b created by net/http.(Transport).dialConn /usr/local/go/src/net/http/transport.go:1238 +0x97f

goroutine 241294 [select]: net/http.(persistConn).writeLoop(0xc4203910e0) /usr/local/go/src/net/http/transport.go:1822 +0x14b created by net/http.(Transport).dialConn /usr/local/go/src/net/http/transport.go:1238 +0x97f

goroutine 88832 [select, 289 minutes]: net/http.(persistConn).readLoop(0xc4202ff560) /usr/local/go/src/net/http/transport.go:1717 +0x743 created by net/http.(Transport).dialConn /usr/local/go/src/net/http/transport.go:1237 +0x95a

goroutine 160786 [select, 169 minutes]: net/http.(persistConn).writeLoop(0xc4200b5560) /usr/local/go/src/net/http/transport.go:1822 +0x14b created by net/http.(Transport).dialConn /usr/local/go/src/net/http/transport.go:1238 +0x97f

goroutine 160787 [select, 169 minutes]: net/http.(persistConn).readLoop(0xc42024bd40) /usr/local/go/src/net/http/transport.go:1717 +0x743 created by net/http.(Transport).dialConn /usr/local/go/src/net/http/transport.go:1237 +0x95a

goroutine 160820 [select, 169 minutes]: net/http.(persistConn).readLoop(0xc4202ffb00) /usr/local/go/src/net/http/transport.go:1717 +0x743 created by net/http.(Transport).dialConn /usr/local/go/src/net/http/transport.go:1237 +0x95a

goroutine 260236 [runnable]: yulong-hids/server/action.ResultStat(0xc42037c154, 0xc, 0xc42037c164, 0xa, 0xc42037c176, 0x5, 0xc42009e028, 0x1, 0x1, 0xbeb47de7d1447a35, ...) /usr/local/go/src/yulong-hids/server/action/statistics.go:34 +0x564 main.(Watcher).PutInfo(0xc420202580, 0xa0d800, 0xc42028e090, 0xc4202c6000, 0xc42037c1b8, 0x0, 0x0) /usr/local/go/src/yulong-hids/server/server.go:44 +0x1c9 reflect.Value.call(0xc4201ae800, 0xc42000e210, 0x13, 0x9af758, 0x4, 0xc420510c50, 0x4, 0x4, 0xc420073140, 0x92e760, ...) /usr/local/go/src/reflect/value.go:447 +0x969 reflect.Value.Call(0xc4201ae800, 0xc42000e210, 0x13, 0xc420510c50, 0x4, 0x4, 0x8b2101, 0x8b21e0, 0xc42037c1b8) /usr/local/go/src/reflect/value.go:308 +0xa4 yulong-hids/server/vendor/github.com/smallnest/rpcx/server.(service).call(0xc42001e820, 0xa0d800, 0xc42028e090, 0xc4201ae880, 0x8bc2e0, 0xc4202c6000, 0x16, 0x8b21e0, 0xc42037c1b8, 0x16, ...) /usr/local/go/src/yulong-hids/server/vendor/github.com/smallnest/rpcx/server/service.go:315 +0x1b5 yulong-hids/server/vendor/github.com/smallnest/rpcx/server.(Server).handleRequest(0xc4201a0160, 0xa0d800, 0xc42028e090, 0xc4200cb980, 0x903420, 0xc42028e030, 0xa0d800) /usr/local/go/src/yulong-hids/server/vendor/github.com/smallnest/rpcx/server/server.go:387 +0x3b0 yulong-hids/server/vendor/github.com/smallnest/rpcx/server.(Server).serveConn.func2(0xc4200cb980, 0xa0eb40, 0xc4200d4a80, 0xa0d800, 0xc4202e3860, 0xc4201a0160) /usr/local/go/src/yulong-hids/server/vendor/github.com/smallnest/rpcx/server/server.go:302 +0x17e created by yulong-hids/server/vendor/github.com/smallnest/rpcx/server.(*Server).serveConn /usr/local/go/src/yulong-hids/server/vendor/github.com/smallnest/rpcx/server/server.go:290 +0x4f4

PualCN commented 6 years ago

同问,不清楚什么原因,看系统资源还有空余

tianld11 commented 6 years ago

求解决办法~

zntim commented 6 years ago

求解决办法〜

临时解决方法,可以先写个脚本定时查看是否进程存在,不存在的话重启server端;

medasz commented 4 years ago

我用竞态检测的结果是这样的

WARNING: DATA RACE Read at 0x00c0004394d0 by goroutine 36: reflect.maplen() /usr/lib/golang/src/runtime/map.go:1351 +0x0 reflect.Value.MapKeys() /usr/lib/golang/src/reflect/value.go:1212 +0x3a4 encoding/json.mapEncoder.encode() /usr/lib/golang/src/encoding/json/encode.go:785 +0x10f encoding/json.mapEncoder.encode-fm() /usr/lib/golang/src/encoding/json/encode.go:777 +0x84 encoding/json.structEncoder.encode() /usr/lib/golang/src/encoding/json/encode.go:759 +0x3c4 encoding/json.structEncoder.encode-fm() /usr/lib/golang/src/encoding/json/encode.go:730 +0xa4 encoding/json.(encodeState).reflectValue() /usr/lib/golang/src/encoding/json/encode.go:358 +0x93 encoding/json.(encodeState).marshal() /usr/lib/golang/src/encoding/json/encode.go:330 +0xd2 encoding/json.Marshal() /usr/lib/golang/src/encoding/json/encode.go:161 +0x78 github.com/olivere/elastic.(BulkIndexRequest).Source() /root/go/pkg/mod/github.com/olivere/elastic@v6.2.35+incompatible/bulk_index_request.go:240 +0x63e github.com/olivere/elastic.(bulkWorker).work() /root/go/pkg/mod/github.com/olivere/elastic@v6.2.35+incompatible/bulk_processor.go:484 +0x21e

Previous write at 0x00c0004394d0 by goroutine 57: runtime.mapassign_faststr() /usr/lib/golang/src/runtime/map_faststr.go:202 +0x0 yulong-hids/server/action.ResultStat() /root/yulong-hids/server/action/statistics.go:32 +0x159e main.(Watcher).PutInfo() /root/yulong-hids/server/server.go:44 +0x357 runtime.call64() /usr/lib/golang/src/runtime/asm_amd64.s:541 +0x3d reflect.Value.Call() /usr/lib/golang/src/reflect/value.go:336 +0xd8 github.com/smallnest/rpcx/server.(service).call() /root/go/pkg/mod/github.com/smallnest/rpcx@v0.0.0-20200901102701-09a8d917732a/server/service.go:337 +0x292 github.com/smallnest/rpcx/server.(Server).handleRequest() /root/go/pkg/mod/github.com/smallnest/rpcx@v0.0.0-20200901102701-09a8d917732a/server/server.go:543 +0x1046 github.com/smallnest/rpcx/server.(Server).serveConn.func2() /root/go/pkg/mod/github.com/smallnest/rpcx@v0.0.0-20200901102701-09a8d917732a/server/server.go:422 +0x2e6

Goroutine 36 (running) created at: github.com/olivere/elastic.(BulkProcessor).Start() /root/go/pkg/mod/github.com/olivere/elastic@v6.2.35+incompatible/bulk_processor.go:336 +0x3d2 github.com/olivere/elastic.(BulkProcessorService).Do() /root/go/pkg/mod/github.com/olivere/elastic@v6.2.35+incompatible/bulk_processor.go:186 +0x4b7 yulong-hids/server/models.InsertThread() /root/yulong-hids/server/models/es.go:240 +0x29e

Goroutine 57 (running) created at: github.com/smallnest/rpcx/server.(*Server).serveConn() /root/go/pkg/mod/github.com/smallnest/rpcx@v0.0.0-20200901102701-09a8d917732a/server/server.go:403 +0x524

================== WARNING: DATA RACE Read at 0x00c0004640b8 by goroutine 36: reflect.typedmemmove() /usr/lib/golang/src/runtime/mbarrier.go:177 +0x0 reflect.copyVal() /usr/lib/golang/src/reflect/value.go:1309 +0x7d reflect.Value.MapIndex() /usr/lib/golang/src/reflect/value.go:1195 +0x2fc encoding/json.mapEncoder.encode() /usr/lib/golang/src/encoding/json/encode.go:801 +0x33c encoding/json.mapEncoder.encode-fm() /usr/lib/golang/src/encoding/json/encode.go:777 +0x84 encoding/json.structEncoder.encode() /usr/lib/golang/src/encoding/json/encode.go:759 +0x3c4 encoding/json.structEncoder.encode-fm() /usr/lib/golang/src/encoding/json/encode.go:730 +0xa4 encoding/json.(encodeState).reflectValue() /usr/lib/golang/src/encoding/json/encode.go:358 +0x93 encoding/json.(encodeState).marshal() /usr/lib/golang/src/encoding/json/encode.go:330 +0xd2 encoding/json.Marshal() /usr/lib/golang/src/encoding/json/encode.go:161 +0x78 github.com/olivere/elastic.(BulkIndexRequest).Source() /root/go/pkg/mod/github.com/olivere/elastic@v6.2.35+incompatible/bulk_index_request.go:240 +0x63e github.com/olivere/elastic.(bulkWorker).work() /root/go/pkg/mod/github.com/olivere/elastic@v6.2.35+incompatible/bulk_processor.go:484 +0x21e

Previous write at 0x00c0004640b8 by goroutine 57: yulong-hids/server/action.ResultStat() /root/yulong-hids/server/action/statistics.go:32 +0x15b6 main.(Watcher).PutInfo() /root/yulong-hids/server/server.go:44 +0x357 runtime.call64() /usr/lib/golang/src/runtime/asm_amd64.s:541 +0x3d reflect.Value.Call() /usr/lib/golang/src/reflect/value.go:336 +0xd8 github.com/smallnest/rpcx/server.(service).call() /root/go/pkg/mod/github.com/smallnest/rpcx@v0.0.0-20200901102701-09a8d917732a/server/service.go:337 +0x292 github.com/smallnest/rpcx/server.(Server).handleRequest() /root/go/pkg/mod/github.com/smallnest/rpcx@v0.0.0-20200901102701-09a8d917732a/server/server.go:543 +0x1046 github.com/smallnest/rpcx/server.(Server).serveConn.func2() /root/go/pkg/mod/github.com/smallnest/rpcx@v0.0.0-20200901102701-09a8d917732a/server/server.go:422 +0x2e6

异步写入线程

Goroutine 36 (running) created at: github.com/olivere/elastic.(BulkProcessor).Start() /root/go/pkg/mod/github.com/olivere/elastic@v6.2.35+incompatible/bulk_processor.go:336 +0x3d2 github.com/olivere/elastic.(BulkProcessorService).Do() /root/go/pkg/mod/github.com/olivere/elastic@v6.2.35+incompatible/bulk_processor.go:186 +0x4b7 yulong-hids/server/models.InsertThread() /root/yulong-hids/server/models/es.go:240 +0x29e

Goroutine 57 (running) created at: github.com/smallnest/rpcx/server.(*Server).serveConn() /root/go/pkg/mod/github.com/smallnest/rpcx@v0.0.0-20200901102701-09a8d917732a/server/server.go:403 +0x524

================== WARNING: DATA RACE Read at 0x0000015018b0 by goroutine 34: yulong-hids/server/safecheck.(Check).Rules() /root/yulong-hids/server/safecheck/check.go:114 +0x54 yulong-hids/server/safecheck.(Check).Run() /root/yulong-hids/server/safecheck/check.go:274 +0x10b yulong-hids/server/safecheck.ScanMonitorThread.func1() /root/yulong-hids/server/safecheck/check.go:290 +0x3e4

Previous write at 0x0000015018b0 by goroutine 21: reflect.typedmemmove() /usr/lib/golang/src/runtime/mbarrier.go:177 +0x0 reflect.Value.Set() /usr/lib/golang/src/reflect/value.go:1556 +0x108 gopkg.in/mgo%2ev2.(Iter).All() /root/go/pkg/mod/gopkg.in/mgo.v2@v2.0.0-20190816093944-a6b53ec6cb22/session.go:3812 +0x497 gopkg.in/mgo%2ev2.(Query).All() /root/go/pkg/mod/gopkg.in/mgo.v2@v2.0.0-20190816093944-a6b53ec6cb22/session.go:3818 +0x5e yulong-hids/server/models.setRules() /root/yulong-hids/server/models/common.go:176 +0x1ca yulong-hids/server/models.Heartbeat() /root/yulong-hids/server/models/common.go:195 +0x84

Goroutine 34 (running) created at: yulong-hids/server/safecheck.ScanMonitorThread() /root/yulong-hids/server/safecheck/check.go:284 +0x8f

Goroutine 21 (running) created at: main.init.0() /root/yulong-hids/server/server.go:66 +0x186

================== WARNING: DATA RACE Write at 0x000001512cc8 by goroutine 21: yulong-hids/server/models.setConfig() /root/yulong-hids/server/models/common.go:166 +0x74c yulong-hids/server/models.Heartbeat() /root/yulong-hids/server/models/common.go:194 +0x7d

Previous read at 0x000001512cc8 by goroutine 34: yulong-hids/server/safecheck.(Check).Intelligence() /root/yulong-hids/server/safecheck/check.go:191 +0x54 yulong-hids/server/safecheck.(Check).Run() /root/yulong-hids/server/safecheck/check.go:275 +0x119 yulong-hids/server/safecheck.ScanMonitorThread.func1() /root/yulong-hids/server/safecheck/check.go:290 +0x3e4

Goroutine 21 (running) created at: main.init.0() /root/yulong-hids/server/server.go:66 +0x186

Goroutine 34 (running) created at: yulong-hids/server/safecheck.ScanMonitorThread() /root/yulong-hids/server/safecheck/check.go:284 +0x8f

================== WARNING: DATA RACE Write at 0x00c0001e4270 by goroutine 21: reflect.typedmemmove() /usr/lib/golang/src/runtime/mbarrier.go:177 +0x0 reflect.Value.Set() /usr/lib/golang/src/reflect/value.go:1556 +0x108 gopkg.in/mgo.v2/bson.(decoder).readDocTo() /root/go/pkg/mod/gopkg.in/mgo.v2@v2.0.0-20190816093944-a6b53ec6cb22/bson/decode.go:202 +0x624 gopkg.in/mgo.v2/bson.Unmarshal() /root/go/pkg/mod/gopkg.in/mgo.v2@v2.0.0-20190816093944-a6b53ec6cb22/bson/bson.go:559 +0x238 gopkg.in/mgo%2ev2.(Iter).Next() /root/go/pkg/mod/gopkg.in/mgo.v2@v2.0.0-20190816093944-a6b53ec6cb22/session.go:3732 +0x6b0 gopkg.in/mgo%2ev2.(Iter).All() /root/go/pkg/mod/gopkg.in/mgo.v2@v2.0.0-20190816093944-a6b53ec6cb22/session.go:3806 +0x590 gopkg.in/mgo%2ev2.(Query).All() /root/go/pkg/mod/gopkg.in/mgo.v2@v2.0.0-20190816093944-a6b53ec6cb22/session.go:3818 +0x5e yulong-hids/server/models.setRules() /root/yulong-hids/server/models/common.go:176 +0x1ca yulong-hids/server/models.Heartbeat() /root/yulong-hids/server/models/common.go:195 +0x84

Previous read at 0x00c0001e4270 by goroutine 24: yulong-hids/server/safecheck.(Check).Rules() /root/yulong-hids/server/safecheck/check.go:114 +0xab yulong-hids/server/safecheck.(Check).Run() /root/yulong-hids/server/safecheck/check.go:274 +0x10b yulong-hids/server/safecheck.ScanMonitorThread.func1() /root/yulong-hids/server/safecheck/check.go:290 +0x3e4

Goroutine 21 (running) created at: main.init.0() /root/yulong-hids/server/server.go:66 +0x186

Goroutine 24 (running) created at: yulong-hids/server/safecheck.ScanMonitorThread() /root/yulong-hids/server/safecheck/check.go:284 +0x8f

================== WARNING: DATA RACE Write at 0x000001512c30 by goroutine 21: yulong-hids/server/models.setConfig() /root/yulong-hids/server/models/common.go:166 +0x74c yulong-hids/server/models.Heartbeat() /root/yulong-hids/server/models/common.go:194 +0x7d

Previous read at 0x000001512c30 by goroutine 34: yulong-hids/server/safecheck.(Check).BlackFilter() /root/yulong-hids/server/safecheck/check.go:66 +0xa5 yulong-hids/server/safecheck.(Check).Run() /root/yulong-hids/server/safecheck/check.go:270 +0xe4 yulong-hids/server/safecheck.ScanMonitorThread.func1() /root/yulong-hids/server/safecheck/check.go:290 +0x3e4

Goroutine 21 (running) created at: main.init.0() /root/yulong-hids/server/server.go:66 +0x186

Goroutine 34 (running) created at: yulong-hids/server/safecheck.ScanMonitorThread() /root/yulong-hids/server/safecheck/check.go:284 +0x8f

================== WARNING: DATA RACE Write at 0x000001512c90 by goroutine 21: yulong-hids/server/models.setConfig() /root/yulong-hids/server/models/common.go:166 +0x74c yulong-hids/server/models.Heartbeat() /root/yulong-hids/server/models/common.go:194 +0x7d

Previous read at 0x000001512c90 by goroutine 34: yulong-hids/server/safecheck.(Check).WhiteFilter() /root/yulong-hids/server/safecheck/check.go:103 +0xa5 yulong-hids/server/safecheck.(Check).Run() /root/yulong-hids/server/safecheck/check.go:271 +0xf2 yulong-hids/server/safecheck.ScanMonitorThread.func1() /root/yulong-hids/server/safecheck/check.go:290 +0x3e4

Goroutine 21 (running) created at: main.init.0() /root/yulong-hids/server/server.go:66 +0x186

Goroutine 34 (running) created at: yulong-hids/server/safecheck.ScanMonitorThread() /root/yulong-hids/server/safecheck/check.go:284 +0x8f