Skip to content

Commit 979af90

Browse files
nuivallmmatczuk
authored andcommitted
session: fix resource leak on some errors
1 parent 0b8cf90 commit 979af90

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

session.go

+9-2
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,14 @@ func NewSession(cfg ClusterConfig) (*Session, error) {
128128
cancel: cancel,
129129
}
130130

131+
// Close created resources on error otherwise they'll leak
132+
var err error
133+
defer func() {
134+
if err != nil {
135+
s.Close()
136+
}
137+
}()
138+
131139
s.schemaDescriber = newSchemaDescriber(s)
132140

133141
s.nodeEvents = newEventDebouncer("NodeEvents", s.handleNodeEvent)
@@ -163,8 +171,7 @@ func NewSession(cfg ClusterConfig) (*Session, error) {
163171
}
164172
s.connCfg = connCfg
165173

166-
if err := s.init(); err != nil {
167-
s.Close()
174+
if err = s.init(); err != nil {
168175
if err == ErrNoConnectionsStarted {
169176
//This error used to be generated inside NewSession & returned directly
170177
//Forward it on up to be backwards compatible

0 commit comments

Comments
 (0)