11901: Fix unclosed db.Rows object.
authorTom Clegg <tom@curoverse.com>
Mon, 26 Jun 2017 13:47:36 +0000 (09:47 -0400)
committerTom Clegg <tom@curoverse.com>
Mon, 26 Jun 2017 13:47:36 +0000 (09:47 -0400)
rows is closed implicitly when rows.Next() returns false, but when the
client hangs up, sendOldEvents returns without retrieving all
results. In this case rows.Close() needs to be called explicitly.

Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tom@curoverse.com>

services/ws/session_v0.go

index 44e2a1deb5843f5909fc6f9157bbde1ca045e424..f8645eb887ed735fea07845f2b4ea0c1a5ae4da7 100644 (file)
@@ -157,6 +157,7 @@ func (sub *v0subscribe) sendOldEvents(sess *v0session) {
                sess.log.WithError(err).Error("db.Query failed")
                return
        }
                sess.log.WithError(err).Error("db.Query failed")
                return
        }
+       defer rows.Close()
        for rows.Next() {
                var id uint64
                err := rows.Scan(&id)
        for rows.Next() {
                var id uint64
                err := rows.Scan(&id)