fix #156
This commit is contained in:
@ -137,7 +137,7 @@ func (c *Conn) start() {
|
|||||||
go func() {
|
go func() {
|
||||||
defer func() {
|
defer func() {
|
||||||
if e := recover(); e != nil {
|
if e := recover(); e != nil {
|
||||||
fmt.Printf("crashed, err: %s\nstack:", e, string(debug.Stack()))
|
fmt.Printf("crashed, err: %s\nstack:\n%s", e, string(debug.Stack()))
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
c.reader()
|
c.reader()
|
||||||
|
|||||||
@ -155,7 +155,7 @@ func (m ConcurrentMap) Iter() <-chan Tuple {
|
|||||||
go func() {
|
go func() {
|
||||||
defer func() {
|
defer func() {
|
||||||
if e := recover(); e != nil {
|
if e := recover(); e != nil {
|
||||||
fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack()))
|
fmt.Printf("crashed, err: %s\nstack:\n%s",e, string(debug.Stack()))
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
fanIn(chans, ch)
|
fanIn(chans, ch)
|
||||||
@ -174,7 +174,7 @@ func (m ConcurrentMap) IterBuffered() <-chan Tuple {
|
|||||||
go func() {
|
go func() {
|
||||||
defer func() {
|
defer func() {
|
||||||
if e := recover(); e != nil {
|
if e := recover(); e != nil {
|
||||||
fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack()))
|
fmt.Printf("crashed, err: %s\nstack:\n%s",e, string(debug.Stack()))
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
fanIn(chans, ch)
|
fanIn(chans, ch)
|
||||||
@ -195,7 +195,7 @@ func snapshot(m ConcurrentMap) (chans []chan Tuple) {
|
|||||||
go func(index int, shard *ConcurrentMapShared) {
|
go func(index int, shard *ConcurrentMapShared) {
|
||||||
defer func() {
|
defer func() {
|
||||||
if e := recover(); e != nil {
|
if e := recover(); e != nil {
|
||||||
fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack()))
|
fmt.Printf("crashed, err: %s\nstack:\n%s",e, string(debug.Stack()))
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
// Foreach key, value pair.
|
// Foreach key, value pair.
|
||||||
@ -221,7 +221,7 @@ func fanIn(chans []chan Tuple, out chan Tuple) {
|
|||||||
go func() {
|
go func() {
|
||||||
defer func() {
|
defer func() {
|
||||||
if e := recover(); e != nil {
|
if e := recover(); e != nil {
|
||||||
fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack()))
|
fmt.Printf("crashed, err: %s\nstack:\n%s",e, string(debug.Stack()))
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
func(ch chan Tuple) {
|
func(ch chan Tuple) {
|
||||||
@ -274,7 +274,7 @@ func (m ConcurrentMap) Keys() []string {
|
|||||||
go func() {
|
go func() {
|
||||||
defer func() {
|
defer func() {
|
||||||
if e := recover(); e != nil {
|
if e := recover(); e != nil {
|
||||||
fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack()))
|
fmt.Printf("crashed, err: %s\nstack:\n%s",e, string(debug.Stack()))
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
// Foreach shard.
|
// Foreach shard.
|
||||||
@ -284,7 +284,7 @@ func (m ConcurrentMap) Keys() []string {
|
|||||||
go func() {
|
go func() {
|
||||||
defer func() {
|
defer func() {
|
||||||
if e := recover(); e != nil {
|
if e := recover(); e != nil {
|
||||||
fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack()))
|
fmt.Printf("crashed, err: %s\nstack:\n%s",e, string(debug.Stack()))
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
func(shard *ConcurrentMapShared) {
|
func(shard *ConcurrentMapShared) {
|
||||||
|
|||||||
@ -62,7 +62,7 @@ func (s *IOBinder) AliveWithServeConn(srcAddr string, inTCPConn *net.Conn) *IOBi
|
|||||||
go func() {
|
go func() {
|
||||||
defer func() {
|
defer func() {
|
||||||
if e := recover(); e != nil {
|
if e := recover(); e != nil {
|
||||||
fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack()))
|
fmt.Printf("crashed, err: %s\nstack:\n%s",e, string(debug.Stack()))
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
buf := make([]byte, 1)
|
buf := make([]byte, 1)
|
||||||
@ -75,7 +75,7 @@ func (s *IOBinder) AliveWithServeConn(srcAddr string, inTCPConn *net.Conn) *IOBi
|
|||||||
go func() {
|
go func() {
|
||||||
defer func() {
|
defer func() {
|
||||||
if e := recover(); e != nil {
|
if e := recover(); e != nil {
|
||||||
fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack()))
|
fmt.Printf("crashed, err: %s\nstack:\n%s",e, string(debug.Stack()))
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
for {
|
for {
|
||||||
@ -96,7 +96,7 @@ func (s *IOBinder) AliveWithClientConn(srcAddr string, outTCPConn *net.Conn) *IO
|
|||||||
go func() {
|
go func() {
|
||||||
defer func() {
|
defer func() {
|
||||||
if e := recover(); e != nil {
|
if e := recover(); e != nil {
|
||||||
fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack()))
|
fmt.Printf("crashed, err: %s\nstack:\n%s",e, string(debug.Stack()))
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
buf := make([]byte, 1)
|
buf := make([]byte, 1)
|
||||||
@ -156,7 +156,7 @@ func (s *IOBinder) Run() (err error) {
|
|||||||
go func() {
|
go func() {
|
||||||
defer func() {
|
defer func() {
|
||||||
if e := recover(); e != nil {
|
if e := recover(); e != nil {
|
||||||
fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack()))
|
fmt.Printf("crashed, err: %s\nstack:\n%s",e, string(debug.Stack()))
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
defer func() {
|
defer func() {
|
||||||
|
|||||||
2
main.go
2
main.go
@ -36,7 +36,7 @@ func Clean(s *services.Service) {
|
|||||||
go func() {
|
go func() {
|
||||||
defer func() {
|
defer func() {
|
||||||
if e := recover(); e != nil {
|
if e := recover(); e != nil {
|
||||||
fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack()))
|
fmt.Printf("crashed, err: %s\nstack:\n%s", e, string(debug.Stack()))
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
for _ = range signalChan {
|
for _ = range signalChan {
|
||||||
|
|||||||
@ -192,7 +192,7 @@ func (s *Socks) InitService() (err error) {
|
|||||||
go func() {
|
go func() {
|
||||||
defer func() {
|
defer func() {
|
||||||
if e := recover(); e != nil {
|
if e := recover(); e != nil {
|
||||||
fmt.Printf("crashed, err: %s\nstack:", e, string(debug.Stack()))
|
fmt.Printf("crashed, err: %s\nstack:\n%s", e, string(debug.Stack()))
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
//循环检查ssh网络连通性
|
//循环检查ssh网络连通性
|
||||||
|
|||||||
@ -159,7 +159,7 @@ func (s *TunnelClient) Start(args interface{}, log *logger.Logger) (err error) {
|
|||||||
go func() {
|
go func() {
|
||||||
defer func() {
|
defer func() {
|
||||||
if e := recover(); e != nil {
|
if e := recover(); e != nil {
|
||||||
fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack()))
|
fmt.Printf("crashed, err: %s\nstack:\n%s",e, string(debug.Stack()))
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
s.ServeUDP(localAddr, ID, serverID)
|
s.ServeUDP(localAddr, ID, serverID)
|
||||||
@ -168,7 +168,7 @@ func (s *TunnelClient) Start(args interface{}, log *logger.Logger) (err error) {
|
|||||||
go func() {
|
go func() {
|
||||||
defer func() {
|
defer func() {
|
||||||
if e := recover(); e != nil {
|
if e := recover(); e != nil {
|
||||||
fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack()))
|
fmt.Printf("crashed, err: %s\nstack:\n%s",e, string(debug.Stack()))
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
s.ServeConn(localAddr, ID, serverID)
|
s.ServeConn(localAddr, ID, serverID)
|
||||||
@ -324,7 +324,7 @@ func (s *TunnelClient) ServeUDP(localAddr, ID, serverID string) {
|
|||||||
go func() {
|
go func() {
|
||||||
defer func() {
|
defer func() {
|
||||||
if e := recover(); e != nil {
|
if e := recover(); e != nil {
|
||||||
fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack()))
|
fmt.Printf("crashed, err: %s\nstack:\n%s",e, string(debug.Stack()))
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
(*item).udpConn.Write(body)
|
(*item).udpConn.Write(body)
|
||||||
@ -335,7 +335,7 @@ func (s *TunnelClient) UDPRevecive(key, ID string) {
|
|||||||
go func() {
|
go func() {
|
||||||
defer func() {
|
defer func() {
|
||||||
if e := recover(); e != nil {
|
if e := recover(); e != nil {
|
||||||
fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack()))
|
fmt.Printf("crashed, err: %s\nstack:\n%s",e, string(debug.Stack()))
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
s.log.Printf("udp conn %s connected", ID)
|
s.log.Printf("udp conn %s connected", ID)
|
||||||
@ -365,7 +365,7 @@ func (s *TunnelClient) UDPRevecive(key, ID string) {
|
|||||||
go func() {
|
go func() {
|
||||||
defer func() {
|
defer func() {
|
||||||
if e := recover(); e != nil {
|
if e := recover(); e != nil {
|
||||||
fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack()))
|
fmt.Printf("crashed, err: %s\nstack:\n%s",e, string(debug.Stack()))
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
(*cui.conn).SetWriteDeadline(time.Now().Add(time.Millisecond * time.Duration(*s.cfg.Timeout)))
|
(*cui.conn).SetWriteDeadline(time.Now().Add(time.Millisecond * time.Duration(*s.cfg.Timeout)))
|
||||||
@ -384,7 +384,7 @@ func (s *TunnelClient) UDPGCDeamon() {
|
|||||||
go func() {
|
go func() {
|
||||||
defer func() {
|
defer func() {
|
||||||
if e := recover(); e != nil {
|
if e := recover(); e != nil {
|
||||||
fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack()))
|
fmt.Printf("crashed, err: %s\nstack:\n%s",e, string(debug.Stack()))
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
if s.isStop {
|
if s.isStop {
|
||||||
|
|||||||
@ -369,7 +369,7 @@ func (s *TunnelServer) UDPGCDeamon() {
|
|||||||
go func() {
|
go func() {
|
||||||
defer func() {
|
defer func() {
|
||||||
if e := recover(); e != nil {
|
if e := recover(); e != nil {
|
||||||
fmt.Printf("crashed, err: %s\nstack:", e, string(debug.Stack()))
|
fmt.Printf("crashed, err: %s\nstack:\n%s", e, string(debug.Stack()))
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
if s.isStop {
|
if s.isStop {
|
||||||
@ -440,7 +440,7 @@ func (s *TunnelServer) UDPRevecive(key, ID string) {
|
|||||||
go func() {
|
go func() {
|
||||||
defer func() {
|
defer func() {
|
||||||
if e := recover(); e != nil {
|
if e := recover(); e != nil {
|
||||||
fmt.Printf("crashed, err: %s\nstack:", e, string(debug.Stack()))
|
fmt.Printf("crashed, err: %s\nstack:\n%s", e, string(debug.Stack()))
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
s.log.Printf("udp conn %s connected", ID)
|
s.log.Printf("udp conn %s connected", ID)
|
||||||
@ -473,7 +473,7 @@ func (s *TunnelServer) UDPRevecive(key, ID string) {
|
|||||||
go func() {
|
go func() {
|
||||||
defer func() {
|
defer func() {
|
||||||
if e := recover(); e != nil {
|
if e := recover(); e != nil {
|
||||||
fmt.Printf("crashed, err: %s\nstack:", e, string(debug.Stack()))
|
fmt.Printf("crashed, err: %s\nstack:\n%s", e, string(debug.Stack()))
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
s.sc.UDPListener.WriteToUDP(body, uc.srcAddr)
|
s.sc.UDPListener.WriteToUDP(body, uc.srcAddr)
|
||||||
|
|||||||
@ -174,7 +174,7 @@ func (s *UDP) OutToUDPGCDeamon() {
|
|||||||
go func() {
|
go func() {
|
||||||
defer func() {
|
defer func() {
|
||||||
if e := recover(); e != nil {
|
if e := recover(); e != nil {
|
||||||
fmt.Printf("crashed, err: %s\nstack:", e, string(debug.Stack()))
|
fmt.Printf("crashed, err: %s\nstack:\n%s", e, string(debug.Stack()))
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
if s.isStop {
|
if s.isStop {
|
||||||
@ -216,7 +216,7 @@ func (s *UDP) OutToUDP(packet []byte, localAddr, srcAddr *net.UDPAddr) {
|
|||||||
go func() {
|
go func() {
|
||||||
defer func() {
|
defer func() {
|
||||||
if e := recover(); e != nil {
|
if e := recover(); e != nil {
|
||||||
fmt.Printf("crashed, err: %s\nstack:", e, string(debug.Stack()))
|
fmt.Printf("crashed, err: %s\nstack:\n%s", e, string(debug.Stack()))
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
s.log.Printf("udp conn %s <--> %s connected", srcAddr.String(), localAddr.String())
|
s.log.Printf("udp conn %s <--> %s connected", srcAddr.String(), localAddr.String())
|
||||||
@ -238,7 +238,7 @@ func (s *UDP) OutToUDP(packet []byte, localAddr, srcAddr *net.UDPAddr) {
|
|||||||
go func() {
|
go func() {
|
||||||
defer func() {
|
defer func() {
|
||||||
if e := recover(); e != nil {
|
if e := recover(); e != nil {
|
||||||
fmt.Printf("crashed, err: %s\nstack:", e, string(debug.Stack()))
|
fmt.Printf("crashed, err: %s\nstack:\n%s", e, string(debug.Stack()))
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
(*(s.sc).UDPListener).SetWriteDeadline(time.Now().Add(time.Millisecond * time.Duration(*s.cfg.Timeout)))
|
(*(s.sc).UDPListener).SetWriteDeadline(time.Now().Add(time.Millisecond * time.Duration(*s.cfg.Timeout)))
|
||||||
@ -275,7 +275,7 @@ func (s *UDP) UDPGCDeamon() {
|
|||||||
go func() {
|
go func() {
|
||||||
defer func() {
|
defer func() {
|
||||||
if e := recover(); e != nil {
|
if e := recover(); e != nil {
|
||||||
fmt.Printf("crashed, err: %s\nstack:", e, string(debug.Stack()))
|
fmt.Printf("crashed, err: %s\nstack:\n%s", e, string(debug.Stack()))
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
if s.isStop {
|
if s.isStop {
|
||||||
@ -352,7 +352,7 @@ func (s *UDP) UDPRevecive(key string) {
|
|||||||
go func() {
|
go func() {
|
||||||
defer func() {
|
defer func() {
|
||||||
if e := recover(); e != nil {
|
if e := recover(); e != nil {
|
||||||
fmt.Printf("crashed, err: %s\nstack:", e, string(debug.Stack()))
|
fmt.Printf("crashed, err: %s\nstack:\n%s", e, string(debug.Stack()))
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
s.log.Printf("udp conn %s connected", key)
|
s.log.Printf("udp conn %s connected", key)
|
||||||
@ -385,7 +385,7 @@ func (s *UDP) UDPRevecive(key string) {
|
|||||||
go func() {
|
go func() {
|
||||||
defer func() {
|
defer func() {
|
||||||
if e := recover(); e != nil {
|
if e := recover(); e != nil {
|
||||||
fmt.Printf("crashed, err: %s\nstack:", e, string(debug.Stack()))
|
fmt.Printf("crashed, err: %s\nstack:\n%s", e, string(debug.Stack()))
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
s.sc.UDPListener.WriteToUDP(body, uc.srcAddr)
|
s.sc.UDPListener.WriteToUDP(body, uc.srcAddr)
|
||||||
|
|||||||
@ -116,7 +116,7 @@ func (b *Backend) startMuxHeartCheck() {
|
|||||||
go func() {
|
go func() {
|
||||||
defer func() {
|
defer func() {
|
||||||
if e := recover(); e != nil {
|
if e := recover(); e != nil {
|
||||||
fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack()))
|
fmt.Printf("crashed, err: %s\nstack:\n%s",e, string(debug.Stack()))
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
for {
|
for {
|
||||||
@ -151,7 +151,7 @@ func (b *Backend) startTCPHeartCheck() {
|
|||||||
go func() {
|
go func() {
|
||||||
defer func() {
|
defer func() {
|
||||||
if e := recover(); e != nil {
|
if e := recover(); e != nil {
|
||||||
fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack()))
|
fmt.Printf("crashed, err: %s\nstack:\n%s",e, string(debug.Stack()))
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
for {
|
for {
|
||||||
|
|||||||
Reference in New Issue
Block a user