From bca8d657fcf005d9afd98db9e361d176d07ca412 Mon Sep 17 00:00:00 2001 From: Paul Lorenz Date: Mon, 25 Jan 2021 12:32:57 -0500 Subject: [PATCH] Clean up xgress edge abstractions and close logic --- go.mod | 4 +- go.sum | 6 +- router/xgress_edge/accept.go | 2 +- router/xgress_edge/dialer.go | 24 ++- router/xgress_edge/fabric.go | 103 +++++---- router/xgress_edge/hosted.go | 14 +- router/xgress_edge/listener.go | 198 +++++++----------- router/xgress_edge/perf_test.go | 4 +- .../Microsoft/Windows/Caches/cversions.2.db | Bin 16384 -> 0 bytes ...C-3716689AF493}.2.ver0x0000000000000001.db | Bin 295880 -> 0 bytes ...8-1A9A39C3FDA2}.2.ver0x0000000000000001.db | Bin 637856 -> 0 bytes 11 files changed, 177 insertions(+), 178 deletions(-) delete mode 100644 tests/%SystemDrive%/ProgramData/Microsoft/Windows/Caches/cversions.2.db delete mode 100644 tests/%SystemDrive%/ProgramData/Microsoft/Windows/Caches/{6AF0698E-D558-4F6E-9B3C-3716689AF493}.2.ver0x0000000000000001.db delete mode 100644 tests/%SystemDrive%/ProgramData/Microsoft/Windows/Caches/{DDF571F2-BE98-426D-8288-1A9A39C3FDA2}.2.ver0x0000000000000001.db diff --git a/go.mod b/go.mod index 0e951b0c9..6b5305e31 100644 --- a/go.mod +++ b/go.mod @@ -38,8 +38,8 @@ require ( github.com/miekg/dns v1.1.35 github.com/mitchellh/mapstructure v1.4.1 github.com/netfoundry/secretstream v0.1.2 - github.com/openziti/fabric v0.15.12 - github.com/openziti/foundation v0.15.8 + github.com/openziti/fabric v0.15.13 + github.com/openziti/foundation v0.15.9 github.com/openziti/sdk-golang v0.15.10 github.com/orcaman/concurrent-map v0.0.0-20190826125027-8c72a8bb44f6 github.com/pkg/errors v0.9.1 diff --git a/go.sum b/go.sum index 29ec5a757..bcee5e6ec 100644 --- a/go.sum +++ b/go.sum @@ -461,10 +461,12 @@ github.com/onsi/gomega v1.8.1/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoT github.com/onsi/gomega v1.10.1 h1:o0+MgICZLuZ7xjH7Vx6zS/zcu93/BEp1VwkIW1mEXCE= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/openzipkin/zipkin-go v0.1.1/go.mod h1:NtoC/o8u3JlF1lSlyPNswIbeQH9bJTmOf0Erfk+hxe8= -github.com/openziti/fabric v0.15.12 h1:ZVQamwVrFzlZCmnqe8g4ZOXsUPo2g+GL8AdDplWUkew= -github.com/openziti/fabric v0.15.12/go.mod h1:B8NeRzN+eIdo2Q4JUCbP0covC5SYqerrxwJsBgCU+A8= +github.com/openziti/fabric v0.15.13 h1:GgS4Sbce6ubkDUtO2oPQFEzh5S9EiAjtMs50NJbuAvo= +github.com/openziti/fabric v0.15.13/go.mod h1:B8NeRzN+eIdo2Q4JUCbP0covC5SYqerrxwJsBgCU+A8= github.com/openziti/foundation v0.15.8 h1:BFKDBkgsuXWgCtU7TS3eBPz2gceA057gK6W6IiyUQfM= github.com/openziti/foundation v0.15.8/go.mod h1:34ifQ24R2EUNjakzZBKY1M4EvnOWeIYJOrJxRGdRNh4= +github.com/openziti/foundation v0.15.9 h1:Do/wohULRt+3H6mlB8SZmIUl/mbxUuN7/Lf7nbz6ZRo= +github.com/openziti/foundation v0.15.9/go.mod h1:34ifQ24R2EUNjakzZBKY1M4EvnOWeIYJOrJxRGdRNh4= github.com/openziti/sdk-golang v0.15.10 h1:iwYTmBsEOBxcQlXuwSSBQLipUyT4QuRDFYXkf6zjyYs= github.com/openziti/sdk-golang v0.15.10/go.mod h1:ZC5Tke4NFsRH3qcZnc9X51hGjpXlq0aOCcadgxnICYI= github.com/orcaman/concurrent-map v0.0.0-20190826125027-8c72a8bb44f6 h1:lNCW6THrCKBiJBpz8kbVGjC7MgdCGKwuvBgc7LoD6sw= diff --git a/router/xgress_edge/accept.go b/router/xgress_edge/accept.go index 1b8d40343..a8d2c40c0 100644 --- a/router/xgress_edge/accept.go +++ b/router/xgress_edge/accept.go @@ -41,7 +41,7 @@ func (handler edgeBindHandler) BindChannel(ch channel2.Channel) error { log.WithField("token", ch.Id()).Debug("accepting edge connection") fpg := cert.NewFingerprintGenerator() - proxy := &ingressProxy{ + proxy := &edgeClientConn{ msgMux: edge.NewCowMapMsgMux(), listener: handler.listener, fingerprints: fpg.FromCerts(ch.Certificates()), diff --git a/router/xgress_edge/dialer.go b/router/xgress_edge/dialer.go index c9d983ba3..346e05333 100644 --- a/router/xgress_edge/dialer.go +++ b/router/xgress_edge/dialer.go @@ -24,7 +24,7 @@ import ( "github.com/openziti/foundation/channel2" "github.com/openziti/foundation/identity/identity" "github.com/openziti/sdk-golang/ziti/edge" - log "github.com/sirupsen/logrus" + "github.com/pkg/errors" "strings" "time" ) @@ -46,7 +46,7 @@ func (dialer dialer) IsTerminatorValid(id string, destination string) bool { token := destParts[1] - log.Debug("looking up hosted service conn") + pfxlog.Logger().Debug("looking up hosted service conn") _, found := dialer.factory.hostedServices.Get(token) return found } @@ -91,6 +91,7 @@ func (dialer *dialer) Dial(destination string, sessionId *identity.TokenId, addr if pk, ok := sessionId.Data[edge.PublicKeyHeader]; ok { dialRequest.Headers[edge.PublicKeyHeader] = pk } + appData, hasAppData := sessionId.Data[edge.AppDataHeader] if hasAppData { dialRequest.Headers[edge.AppDataHeader] = appData @@ -102,7 +103,10 @@ func (dialer *dialer) Dial(destination string, sessionId *identity.TokenId, addr log.Debug("router assigned connId for dial") dialRequest.PutUint32Header(edge.RouterProvidedConnId, connId) - conn := listenConn.newSink(connId) + conn, err := listenConn.newConnection(connId) + if err != nil { + return nil, errors.Wrapf(err, "failed to create edge xgress conn for token %v", token) + } // On the terminator, which this is, this only starts the txer, which pulls data from the link // Since the opposing xgress doesn't start until this call returns, nothing should be coming this way yet @@ -139,8 +143,8 @@ func (dialer *dialer) Dial(destination string, sessionId *identity.TokenId, addr if err != nil { return nil, err } - result, err := edge.UnmarshalDialResult(reply) + result, err := edge.UnmarshalDialResult(reply) if err != nil { return nil, err } @@ -149,7 +153,17 @@ func (dialer *dialer) Dial(destination string, sessionId *identity.TokenId, addr return nil, fmt.Errorf("failed to establish connection with token %v. error: (%v)", token, result.Message) } - conn := listenConn.newSink(result.NewConnId) + conn, err := listenConn.newConnection(result.NewConnId) + if err != nil { + startFail := edge.NewStateConnectedMsg(result.ConnId) + startFail.ReplyTo(reply) + + if sendErr := listenConn.SendState(startFail); sendErr != nil { + log.Debug("failed to send state disconnected") + } + + return nil, errors.Wrapf(err, "failed to create edge xgress conn for token %v", token) + } x := xgress.NewXgress(sessionId, address, conn, xgress.Terminator, &dialer.options.Options) bindHandler.HandleXgressBind(x) diff --git a/router/xgress_edge/fabric.go b/router/xgress_edge/fabric.go index 70a061fa6..b9d1082f6 100644 --- a/router/xgress_edge/fabric.go +++ b/router/xgress_edge/fabric.go @@ -22,6 +22,7 @@ import ( "github.com/openziti/foundation/channel2" "github.com/openziti/foundation/util/concurrenz" "github.com/openziti/sdk-golang/ziti/edge" + log "github.com/sirupsen/logrus" "io" "math" "sync/atomic" @@ -40,57 +41,78 @@ var headersFromFabric = map[uint8]int32{ PayloadFlagsHeader: edge.FlagsHeader, } -type localMessageSink struct { +type edgeTerminator struct { edge.MsgChannel - seq MsgQueue - closeCB func(connId uint32) - newSinkCB func(sink *localMessageSink) - closed concurrenz.AtomicBoolean + edgeClientConn *edgeClientConn + token string + terminatorId string + service string + assignIds bool } -type localListener struct { - localMessageSink - terminatorIdRef *concurrenz.AtomicString - service string - parent *ingressProxy - assignIds bool -} - -func (listener *localListener) nextDialConnId() uint32 { - nextId := atomic.AddUint32(&listener.parent.idSeq, 1) +func (listener *edgeTerminator) nextDialConnId() uint32 { + nextId := atomic.AddUint32(&listener.edgeClientConn.idSeq, 1) if nextId < math.MaxUint32/2 { - atomic.StoreUint32(&listener.parent.idSeq, math.MaxUint32/2) - nextId = atomic.AddUint32(&listener.parent.idSeq, 1) + atomic.StoreUint32(&listener.edgeClientConn.idSeq, math.MaxUint32/2) + nextId = atomic.AddUint32(&listener.edgeClientConn.idSeq, 1) } return nextId } -func (conn *localMessageSink) newSink(connId uint32) *localMessageSink { - result := &localMessageSink{ - MsgChannel: *edge.NewEdgeMsgChannel(conn.Channel, connId), - seq: NewMsgQueue(4), - closeCB: conn.closeCB, - newSinkCB: conn.newSinkCB, +func (listener *edgeTerminator) close(notify bool, reason string) { + logger := pfxlog.Logger() + + if notify && !listener.IsClosed() { + // Notify edge client of close + log.Debug("sending closed to SDK client") + closeMsg := edge.NewStateClosedMsg(listener.Id(), reason) + if err := listener.SendState(closeMsg); err != nil { + log.WithError(err).Warn("unable to send close msg to edge client for hosted service") + } } - // TODO: Evaluate best way to get new conn in map. Split dial? Any way to use regular map? - if conn.newSinkCB != nil { - conn.newSinkCB(result) + logger.Debugf("removing terminator %v for token: %v", listener.terminatorId, listener.token) + if err := xgress.RemoveTerminator(listener.edgeClientConn.listener.factory, listener.terminatorId); err != nil { + logger.Errorf("failed to remove terminator %v (%v)", listener.terminatorId, err) } - return result + + logger.Debugf("removing listener for terminator %v, token: %v", listener.terminatorId, listener.token) + listener.edgeClientConn.listener.factory.hostedServices.Delete(listener.token) } -func (conn *localMessageSink) LogContext() string { +type edgeXgressConn struct { + edge.MsgChannel + mux edge.MsgMux + seq MsgQueue + newSinkCB func(sink *edgeXgressConn) + closed concurrenz.AtomicBoolean +} + +func (listener *edgeTerminator) newConnection(connId uint32) (*edgeXgressConn, error) { + mux := listener.edgeClientConn.msgMux + result := &edgeXgressConn{ + mux: mux, + MsgChannel: *edge.NewEdgeMsgChannel(listener.edgeClientConn.ch, connId), + seq: NewMsgQueue(4), + } + + if err := mux.AddMsgSink(result); err != nil { + return nil, err + } + + return result, nil +} + +func (conn *edgeXgressConn) LogContext() string { return conn.Channel.Label() } -func (conn *localMessageSink) ReadPayload() ([]byte, map[uint8][]byte, error) { +func (conn *edgeXgressConn) ReadPayload() ([]byte, map[uint8][]byte, error) { log := pfxlog.ContextLogger(conn.Channel.Label()).WithField("connId", conn.Id()) msg := conn.seq.Pop() if msg == nil { log.Debug("sequencer closed, return EOF") - conn.closeCB(conn.Id()) return nil, nil, io.EOF // io.EOF signals xgress to shutdown } @@ -114,7 +136,7 @@ func (conn *localMessageSink) ReadPayload() ([]byte, map[uint8][]byte, error) { } } -func (conn *localMessageSink) WritePayload(p []byte, headers map[uint8][]byte) (n int, err error) { +func (conn *edgeXgressConn) WritePayload(p []byte, headers map[uint8][]byte) (n int, err error) { var msgUUID []byte var edgeHdrs map[int32][]byte @@ -148,17 +170,17 @@ func (conn *localMessageSink) WritePayload(p []byte, headers map[uint8][]byte) ( return len(p), nil } -func (conn *localMessageSink) Close() error { +func (conn *edgeXgressConn) Close() error { conn.close(true, "close called") return nil } -func (conn *localMessageSink) HandleMuxClose() error { +func (conn *edgeXgressConn) HandleMuxClose() error { conn.close(false, "channel closed") return nil } -func (conn *localMessageSink) close(notify bool, reason string) { +func (conn *edgeXgressConn) close(notify bool, reason string) { if !conn.closed.CompareAndSwap(false, true) { // already closed return @@ -166,17 +188,16 @@ func (conn *localMessageSink) close(notify bool, reason string) { log := pfxlog.ContextLogger(conn.Channel.Label()).WithField("connId", conn.Id()) log.Debugf("closing message sink, reason: %v", reason) - if notify { + if notify && !conn.IsClosed() { // Notify edge client of close - log.Debug("sennding closed to SDK client") - closeMsg := edge.NewStateClosedMsg(conn.Id(), "") + log.Debug("sending closed to SDK client") + closeMsg := edge.NewStateClosedMsg(conn.Id(), reason) if err := conn.SendState(closeMsg); err != nil { log.WithError(err).Warn("unable to send close msg to edge client") } } - // remove ourselves from mux, etc - conn.closeCB(conn.Id()) + conn.mux.RemoveMsgSink(conn) // When nextSeq is closed, GetNext in Read() will return a nil. // This will cause an io.EOF to be returned to the xgress read loop, which will cause that @@ -185,13 +206,13 @@ func (conn *localMessageSink) close(notify bool, reason string) { conn.seq.Close() } -func (conn *localMessageSink) Accept(msg *channel2.Message) { +func (conn *edgeXgressConn) Accept(msg *channel2.Message) { if err := conn.seq.Push(msg); err != nil { pfxlog.Logger().WithFields(edge.GetLoggerFields(msg)).Errorf("failed to dispatch to fabric: (%v)", err) } } -func (conn *localMessageSink) getHeaderMap(message *channel2.Message) map[uint8][]byte { +func (conn *edgeXgressConn) getHeaderMap(message *channel2.Message) map[uint8][]byte { headers := make(map[uint8][]byte) msgUUID, found := message.Headers[edge.UUIDHeader] if found { diff --git a/router/xgress_edge/hosted.go b/router/xgress_edge/hosted.go index fa722985a..2a0c7ad11 100644 --- a/router/xgress_edge/hosted.go +++ b/router/xgress_edge/hosted.go @@ -24,16 +24,16 @@ type hostedServiceRegistry struct { services sync.Map } -func (registry *hostedServiceRegistry) Put(hostId string, conn *localListener) { +func (registry *hostedServiceRegistry) Put(hostId string, conn *edgeTerminator) { registry.services.Store(hostId, conn) } -func (registry *hostedServiceRegistry) Get(hostId string) (*localListener, bool) { +func (registry *hostedServiceRegistry) Get(hostId string) (*edgeTerminator, bool) { val, ok := registry.services.Load(hostId) if !ok { return nil, false } - ch, ok := val.(*localListener) + ch, ok := val.(*edgeTerminator) return ch, ok } @@ -41,11 +41,11 @@ func (registry *hostedServiceRegistry) Delete(hostId string) { registry.services.Delete(hostId) } -func (registry *hostedServiceRegistry) cleanupServices(proxy *ingressProxy) (listeners []*localListener) { +func (registry *hostedServiceRegistry) cleanupServices(proxy *edgeClientConn) (listeners []*edgeTerminator) { registry.services.Range(func(key, value interface{}) bool { - listener := value.(*localListener) - if listener.parent == proxy { - listener.close(true, "underlying channel closing") + listener := value.(*edgeTerminator) + if listener.edgeClientConn == proxy { + listener.close(false, "") // don't notify, channel is already closed, we can't send messages registry.services.Delete(key) listeners = append(listeners, listener) } diff --git a/router/xgress_edge/listener.go b/router/xgress_edge/listener.go index b199e8421..66269b0ee 100644 --- a/router/xgress_edge/listener.go +++ b/router/xgress_edge/listener.go @@ -28,7 +28,6 @@ import ( "github.com/openziti/foundation/channel2" "github.com/openziti/foundation/identity/identity" "github.com/openziti/foundation/transport" - "github.com/openziti/foundation/util/concurrenz" "github.com/openziti/sdk-golang/ziti/edge" "time" ) @@ -78,7 +77,7 @@ func (listener *listener) Close() error { return listener.underlayListener.Close() } -type ingressProxy struct { +type edgeClientConn struct { msgMux edge.MsgMux listener *listener fingerprints cert.Fingerprints @@ -86,23 +85,23 @@ type ingressProxy struct { idSeq uint32 } -func (proxy *ingressProxy) HandleClose(_ channel2.Channel) { - log := pfxlog.ContextLogger(proxy.ch.Label()) +func (self *edgeClientConn) HandleClose(_ channel2.Channel) { + log := pfxlog.ContextLogger(self.ch.Label()) log.Debugf("closing") - listeners := proxy.listener.factory.hostedServices.cleanupServices(proxy) + listeners := self.listener.factory.hostedServices.cleanupServices(self) for _, listener := range listeners { - if err := xgress.RemoveTerminator(proxy.listener.factory, listener.terminatorIdRef.Get()); err != nil { - log.Warnf("failed to remove terminator on service %v for terminator %v on channel close", listener.service, listener.terminatorIdRef.Get()) + if err := xgress.RemoveTerminator(self.listener.factory, listener.terminatorId); err != nil { + log.Warnf("failed to remove terminator on service %v for terminator %v on channel close", listener.service, listener.terminatorId) } } - proxy.msgMux.Close() + self.msgMux.Close() } -func (proxy *ingressProxy) ContentType() int32 { +func (self *edgeClientConn) ContentType() int32 { return edge.ContentTypeData } -func (proxy *ingressProxy) processConnect(req *channel2.Message, ch channel2.Channel) { +func (self *edgeClientConn) processConnect(req *channel2.Message, ch channel2.Channel) { token := string(req.Body) log := pfxlog.ContextLogger(ch.Label()).WithField("token", token).WithFields(edge.GetLoggerFields(req)) connId, found := req.GetUint32Header(edge.ConnIdHeader) @@ -112,41 +111,39 @@ func (proxy *ingressProxy) processConnect(req *channel2.Message, ch channel2.Cha } log.Debug("validating network session") sm := fabric.GetStateManager() - ns := sm.GetSessionWithTimeout(token, proxy.listener.options.lookupSessionTimeout) + ns := sm.GetSessionWithTimeout(token, self.listener.options.lookupSessionTimeout) if ns == nil || ns.Type != edge_ctrl_pb.SessionType_Dial { log.WithField("token", token).Error("session not found") - proxy.sendStateClosedReply("Invalid Session", req) + self.sendStateClosedReply("Invalid Session", req) return } - if _, found := proxy.fingerprints.HasAny(ns.CertFingerprints); !found { + if _, found := self.fingerprints.HasAny(ns.CertFingerprints); !found { log.WithField("token", token). WithField("serviceFingerprints", ns.CertFingerprints). - WithField("clientFingerprints", proxy.fingerprints.Prints()). + WithField("clientFingerprints", self.fingerprints.Prints()). Error("matching fingerprint not found for connect") - proxy.sendStateClosedReply("Invalid Session", req) + self.sendStateClosedReply("Invalid Session", req) return } log.Debug("validating connection id") - removeListener := sm.AddSessionRemovedListener(ns.Token, func(token string) { - proxy.sendStateClosed(connId, "session closed") - proxy.closeConn(connId) - }) - - conn := &localMessageSink{ - MsgChannel: *edge.NewEdgeMsgChannel(proxy.ch, connId), + conn := &edgeXgressConn{ + mux: self.msgMux, + MsgChannel: *edge.NewEdgeMsgChannel(self.ch, connId), seq: NewMsgQueue(4), - closeCB: func(connId uint32) { - removeListener() - }, } - if err := proxy.msgMux.AddMsgSink(conn); err != nil { + sm.AddSessionRemovedListener(ns.Token, func(token string) { + conn.close(true, "session closed") + }) + + // We can't fix conn id, since it's provided by the client + if err := self.msgMux.AddMsgSink(conn); err != nil { log.WithField("token", token).Error(err) - proxy.sendStateClosedReply(err.Error(), req) + self.sendStateClosedReply(err.Error(), req) return } @@ -168,7 +165,7 @@ func (proxy *ingressProxy) processConnect(req *channel2.Message, ch channel2.Cha if ns.Service.EncryptionRequired && req.Headers[edge.PublicKeyHeader] == nil { msg := "encryption required on service, initiator did not send public header" - proxy.sendStateClosedReply(msg, req) + self.sendStateClosedReply(msg, req) conn.close(false, msg) return } @@ -177,30 +174,31 @@ func (proxy *ingressProxy) processConnect(req *channel2.Message, ch channel2.Cha if terminatorIdentity, found := req.GetStringHeader(edge.TerminatorIdentityHeader); found { service = terminatorIdentity + "@" + service } - sessionInfo, err := xgress.GetSession(proxy.listener.factory, ns.Id, service, proxy.listener.options.Options.GetSessionTimeout, peerData) + + sessionInfo, err := xgress.GetSession(self.listener.factory, ns.Id, service, self.listener.options.Options.GetSessionTimeout, peerData) if err != nil { log.WithError(err).Warn("failed to dial fabric") - proxy.sendStateClosedReply(err.Error(), req) + self.sendStateClosedReply(err.Error(), req) conn.close(false, "failed to dial fabric") return } if ns.Service.EncryptionRequired && sessionInfo.SessionId.Data[edge.PublicKeyHeader] == nil { msg := "encryption required on service, terminator did not send public header" - proxy.sendStateClosedReply(msg, req) + self.sendStateClosedReply(msg, req) conn.close(false, msg) return } - x := xgress.NewXgress(sessionInfo.SessionId, sessionInfo.Address, conn, xgress.Initiator, &proxy.listener.options.Options) - proxy.listener.bindHandler.HandleXgressBind(x) + x := xgress.NewXgress(sessionInfo.SessionId, sessionInfo.Address, conn, xgress.Initiator, &self.listener.options.Options) + self.listener.bindHandler.HandleXgressBind(x) // send the state_connected before starting the xgress. That way we can't get a state_closed before we get state_connected - proxy.sendStateConnectedReply(req, sessionInfo.SessionId.Data) + self.sendStateConnectedReply(req, sessionInfo.SessionId.Data) x.Start() } -func (proxy *ingressProxy) processBind(req *channel2.Message, ch channel2.Channel) { +func (self *edgeClientConn) processBind(req *channel2.Message, ch channel2.Channel) { token := string(req.Body) log := pfxlog.ContextLogger(ch.Label()).WithField("sessionId", token).WithFields(edge.GetLoggerFields(req)) @@ -211,20 +209,20 @@ func (proxy *ingressProxy) processBind(req *channel2.Message, ch channel2.Channe } log.Debug("validating network session") sm := fabric.GetStateManager() - ns := sm.GetSessionWithTimeout(token, proxy.listener.options.lookupSessionTimeout) + ns := sm.GetSessionWithTimeout(token, self.listener.options.lookupSessionTimeout) if ns == nil || ns.Type != edge_ctrl_pb.SessionType_Bind { log.WithField("token", token).Error("session not found") - proxy.sendStateClosedReply("Invalid Session", req) + self.sendStateClosedReply("Invalid Session", req) return } - if _, found := proxy.fingerprints.HasAny(ns.CertFingerprints); !found { + if _, found := self.fingerprints.HasAny(ns.CertFingerprints); !found { log.WithField("token", token). WithField("serviceFingerprints", ns.CertFingerprints). - WithField("clientFingerprints", proxy.fingerprints.Prints()). + WithField("clientFingerprints", self.fingerprints.Prints()). Error("matching fingerprint not found for bind") - proxy.sendStateClosedReply("Invalid Session", req) + self.sendStateClosedReply("Invalid Session", req) return } @@ -251,48 +249,23 @@ func (proxy *ingressProxy) processBind(req *channel2.Message, ch channel2.Channe } } - terminatorIdRef := &concurrenz.AtomicString{} - - removeListener := sm.AddSessionRemovedListener(ns.Token, func(token string) { - terminatorId := terminatorIdRef.Get() - defer func() { - log.Debugf("removing listener for terminator %v, token: %v", terminatorId, token) - proxy.listener.factory.hostedServices.Delete(token) - }() - log.Debugf("removing terminator %v for token: %v", terminatorId, token) - if err := xgress.RemoveTerminator(proxy.listener.factory, terminatorId); err != nil { - log.Errorf("failed to remove terminator %v (%v)", terminatorId, err) - } - }) - assignIds, _ := req.GetBoolHeader(edge.RouterProvidedConnId) log.Debugf("client requested router provided connection ids: %v", assignIds) log.Debug("establishing listener") - messageSink := &localListener{ - localMessageSink: localMessageSink{ - MsgChannel: *edge.NewEdgeMsgChannel(ch, connId), - seq: NewMsgQueue(4), - closeCB: func(closeConnId uint32) { - if closeConnId == connId { - removeListener() - } - proxy.sendStateClosed(closeConnId, "session closed") - proxy.closeConn(closeConnId) - }, - newSinkCB: func(conn *localMessageSink) { - if err := proxy.msgMux.AddMsgSink(conn); err != nil { - log.WithError(err).Error("Failed to add sink, duplicate id") - } - }, - }, - terminatorIdRef: terminatorIdRef, - service: ns.Service.Id, - parent: proxy, - assignIds: assignIds, + messageSink := &edgeTerminator{ + MsgChannel: *edge.NewEdgeMsgChannel(self.ch, connId), + edgeClientConn: self, + token: token, + service: ns.Service.Id, + assignIds: assignIds, } - proxy.listener.factory.hostedServices.Put(token, messageSink) + sm.AddSessionRemovedListener(ns.Token, func(token string) { + messageSink.close(true, "session ended") + }) + + self.listener.factory.hostedServices.Put(token, messageSink) terminatorIdentity, _ := req.GetStringHeader(edge.TerminatorIdentityHeader) var terminatorIdentitySecret []byte @@ -300,22 +273,22 @@ func (proxy *ingressProxy) processBind(req *channel2.Message, ch channel2.Channe terminatorIdentitySecret, _ = req.Headers[edge.TerminatorIdentitySecretHeader] } - terminatorId, err := xgress.AddTerminator(proxy.listener.factory, ns.Service.Id, "edge", "hosted:"+token, terminatorIdentity, terminatorIdentitySecret, hostData, cost, precedence) - messageSink.terminatorIdRef.Set(terminatorId) + terminatorId, err := xgress.AddTerminator(self.listener.factory, ns.Service.Id, "edge", "hosted:"+token, terminatorIdentity, terminatorIdentitySecret, hostData, cost, precedence) + messageSink.terminatorId = terminatorId log.Debugf("registered listener for terminator %v, token: %v", terminatorId, token) if err != nil { - messageSink.closeCB(messageSink.Id()) - proxy.sendStateClosedReply(err.Error(), req) + messageSink.close(false, "") // don't notify here, as we're notifying next line with a response + self.sendStateClosedReply(err.Error(), req) return } log.Debug("returning connection state CONNECTED to client") - proxy.sendStateConnectedReply(req, nil) + self.sendStateConnectedReply(req, nil) } -func (proxy *ingressProxy) processUnbind(req *channel2.Message, ch channel2.Channel) { +func (self *edgeClientConn) processUnbind(req *channel2.Message, ch channel2.Channel) { token := string(req.Body) log := pfxlog.ContextLogger(ch.Label()).WithField("sessionId", token).WithFields(edge.GetLoggerFields(req)) @@ -324,39 +297,39 @@ func (proxy *ingressProxy) processUnbind(req *channel2.Message, ch channel2.Chan if ns == nil { log.WithField("token", token).Error("session not found") - proxy.sendStateClosedReply("Invalid Session", req) + self.sendStateClosedReply("Invalid Session", req) return } - if _, found := proxy.fingerprints.HasAny(ns.CertFingerprints); !found { + if _, found := self.fingerprints.HasAny(ns.CertFingerprints); !found { log.WithField("token", token). WithField("serviceFingerprints", ns.CertFingerprints). - WithField("clientFingerprints", proxy.fingerprints.Prints()). + WithField("clientFingerprints", self.fingerprints.Prints()). Error("matching fingerprint not found for unbind") - proxy.sendStateClosedReply("Invalid Session", req) + self.sendStateClosedReply("Invalid Session", req) return } - localListener, ok := proxy.listener.factory.hostedServices.Get(token) + localListener, ok := self.listener.factory.hostedServices.Get(token) if ok { - defer proxy.listener.factory.hostedServices.Delete(token) + defer self.listener.factory.hostedServices.Delete(token) - log.Debugf("removing terminator %v for token: %v", localListener.terminatorIdRef.Get(), token) - if err := xgress.RemoveTerminator(proxy.listener.factory, localListener.terminatorIdRef.Get()); err != nil { - proxy.sendStateClosedReply(err.Error(), req) + log.Debugf("removing terminator %v for token: %v", localListener.terminatorId, token) + if err := xgress.RemoveTerminator(self.listener.factory, localListener.terminatorId); err != nil { + self.sendStateClosedReply(err.Error(), req) } else { - proxy.sendStateClosedReply("unbind successful", req) + self.sendStateClosedReply("unbind successful", req) } } else { - proxy.sendStateClosedReply("unbind successful", req) + self.sendStateClosedReply("unbind successful", req) } } -func (proxy *ingressProxy) processUpdateBind(req *channel2.Message, ch channel2.Channel) { +func (self *edgeClientConn) processUpdateBind(req *channel2.Message, ch channel2.Channel) { token := string(req.Body) log := pfxlog.ContextLogger(ch.Label()).WithField("sessionId", token).WithFields(edge.GetLoggerFields(req)) - localListener, ok := proxy.listener.factory.hostedServices.Get(token) + localListener, ok := self.listener.factory.hostedServices.Get(token) if !ok { log.Error("failed to update bind, no listener found") @@ -368,16 +341,16 @@ func (proxy *ingressProxy) processUpdateBind(req *channel2.Message, ch channel2. if ns == nil { log.WithField("token", token).Error("session not found") - proxy.sendStateClosedReply("Invalid Session", req) + self.sendStateClosedReply("Invalid Session", req) return } - if _, found := proxy.fingerprints.HasAny(ns.CertFingerprints); !found { + if _, found := self.fingerprints.HasAny(ns.CertFingerprints); !found { log.WithField("token", token). WithField("serviceFingerprints", ns.CertFingerprints). - WithField("clientFingerprints", proxy.fingerprints.Prints()). + WithField("clientFingerprints", self.fingerprints.Prints()). Error("matching fingerprint not found for update bind") - proxy.sendStateClosedReply("Invalid Session", req) + self.sendStateClosedReply("Invalid Session", req) return } @@ -398,13 +371,13 @@ func (proxy *ingressProxy) processUpdateBind(req *channel2.Message, ch channel2. precedence = &updatedPrecedence } - log.Debugf("updating terminator %v to precedence %v and cost %v", localListener.terminatorIdRef.Get(), precedence, cost) - if err := xgress.UpdateTerminator(proxy.listener.factory, localListener.terminatorIdRef.Get(), cost, precedence); err != nil { + log.Debugf("updating terminator %v to precedence %v and cost %v", localListener.terminatorId, precedence, cost) + if err := xgress.UpdateTerminator(self.listener.factory, localListener.terminatorId, cost, precedence); err != nil { log.WithError(err).Error("failed to update bind") } } -func (proxy *ingressProxy) sendStateConnectedReply(req *channel2.Message, hostData map[uint32][]byte) { +func (self *edgeClientConn) sendStateConnectedReply(req *channel2.Message, hostData map[uint32][]byte) { connId, _ := req.GetUint32Header(edge.ConnIdHeader) msg := edge.NewStateConnectedMsg(connId) @@ -417,19 +390,19 @@ func (proxy *ingressProxy) sendStateConnectedReply(req *channel2.Message, hostDa } msg.ReplyTo(req) - err := proxy.ch.SendPrioritizedWithTimeout(msg, channel2.High, time.Second*5) + err := self.ch.SendPrioritizedWithTimeout(msg, channel2.High, time.Second*5) if err != nil { pfxlog.Logger().WithFields(edge.GetLoggerFields(msg)).WithError(err).Error("failed to send state response") return } } -func (proxy *ingressProxy) sendStateClosedReply(message string, req *channel2.Message) { +func (self *edgeClientConn) sendStateClosedReply(message string, req *channel2.Message) { connId, _ := req.GetUint32Header(edge.ConnIdHeader) msg := edge.NewStateClosedMsg(connId, message) msg.ReplyTo(req) - syncC, err := proxy.ch.SendAndSyncWithPriority(msg, channel2.High) + syncC, err := self.ch.SendAndSyncWithPriority(msg, channel2.High) if err != nil { pfxlog.Logger().WithFields(edge.GetLoggerFields(msg)).WithError(err).Error("failed to send state response") return @@ -445,11 +418,11 @@ func (proxy *ingressProxy) sendStateClosedReply(message string, req *channel2.Me } } -func (proxy *ingressProxy) sendStateClosed(connId uint32, message string) { +func (self *edgeClientConn) sendStateClosed(connId uint32, message string) { msg := edge.NewStateClosedMsg(connId, message) pfxlog.Logger().WithFields(edge.GetLoggerFields(msg)).Debug("sending state closed message") - syncC, err := proxy.ch.SendAndSyncWithPriority(msg, channel2.High) + syncC, err := self.ch.SendAndSyncWithPriority(msg, channel2.High) if err != nil { pfxlog.Logger().WithFields(edge.GetLoggerFields(msg)).WithError(err).Error("failed to send state response") return @@ -464,14 +437,3 @@ func (proxy *ingressProxy) sendStateClosed(connId uint32, message string) { pfxlog.Logger().WithFields(edge.GetLoggerFields(msg)).WithError(err).Error("timed out sending state response") } } - -func (proxy *ingressProxy) closeConn(connId uint32) { - // This was done in the process loop, but all the relevant data structure are concurrent safe - // and if the the proxy closed before all the connections could be closed, this would lead to - // deadlocks - log := pfxlog.ContextLogger(proxy.ch.Label()).WithField("connId", connId) - log.Debug("closeConn()") - - // we don't need to close the conn here, it will get closed when the xgress closes its peer - proxy.msgMux.RemoveMsgSinkById(connId) -} diff --git a/router/xgress_edge/perf_test.go b/router/xgress_edge/perf_test.go index 8cc643b23..3302d74ef 100644 --- a/router/xgress_edge/perf_test.go +++ b/router/xgress_edge/perf_test.go @@ -86,14 +86,14 @@ func writePerf(b *testing.B, mux edge.MsgMux) { listener := &listener{} - proxy := &ingressProxy{ + proxy := &edgeClientConn{ msgMux: mux, listener: listener, fingerprints: nil, ch: testChannel, } - conn := &localMessageSink{ + conn := &edgeXgressConn{ MsgChannel: *edge.NewEdgeMsgChannel(proxy.ch, 1), seq: NewMsgQueue(4), } diff --git a/tests/%SystemDrive%/ProgramData/Microsoft/Windows/Caches/cversions.2.db b/tests/%SystemDrive%/ProgramData/Microsoft/Windows/Caches/cversions.2.db deleted file mode 100644 index 6493406c669cd7152ecc4d20552ffbb539807be1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 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%0AC=UZ?{$Ll_f+BII4(GKL0Ns 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