When using MySQL for event storage, do not leak connections.

This commit is contained in:
Roman Vynar 2018-06-12 12:19:13 +03:00
parent c5a5fe2e8d
commit 4db9ceb0a6
2 changed files with 8 additions and 2 deletions

View File

@ -1,5 +1,9 @@
## Changelog
### Unreleased
* When using MySQL for event storage, do not leak connections.
### 0.6
* Add MySQL along with sqlite3 support as a registry events storage.

View File

@ -144,13 +144,13 @@ func (e *EventListener) GetEvents(repository string) []EventRow {
e.logger.Error("Error selecting from table: ", err)
return events
}
defer rows.Close()
for rows.Next() {
var row EventRow
rows.Scan(&row.ID, &row.Action, &row.Repository, &row.Tag, &row.IP, &row.User, &row.Created)
events = append(events, row)
}
rows.Close()
return events
}
@ -171,9 +171,11 @@ func (e *EventListener) getDababaseHandler() (*sql.DB, error) {
if e.databaseDriver == "mysql" {
schema = strings.Replace(schema, "AUTOINCREMENT", "AUTO_INCREMENT", 1)
if _, err := db.Query("SELECT * FROM events LIMIT 1"); err != nil {
rows, err := db.Query("SELECT * FROM events LIMIT 1")
if err != nil {
firstRun = true
}
rows.Close()
}
// Create table on first run.