Skip to content

Commit 28aa654

Browse files
(fix) database is locked during removal (#828)
This change ensures that connections to the database are properly closed and that no new connection is started when another has not been closed. Signed-off-by: Lance Galletti <[email protected]>
1 parent 0c3c5ca commit 28aa654

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

pkg/sqlite/load.go

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1600,6 +1600,7 @@ func (s *sqlLoader) rmStrandedDeprecated(tx *sql.Tx) error {
16001600
if err != nil {
16011601
return err
16021602
}
1603+
defer rows.Close()
16031604
knownPackages := map[string]struct{}{}
16041605
for rows.Next() {
16051606
var pkg sql.NullString
@@ -1613,14 +1614,15 @@ func (s *sqlLoader) rmStrandedDeprecated(tx *sql.Tx) error {
16131614
}
16141615

16151616
packagePropertiesQuery := `select distinct operatorbundle_name, value from properties where type = ?`
1616-
rows, err = s.db.Query(packagePropertiesQuery, registry.PackageType)
1617+
pRows, err := tx.Query(packagePropertiesQuery, registry.PackageType)
16171618
if err != nil {
16181619
return err
16191620
}
1621+
defer pRows.Close()
16201622

1621-
for rows.Next() {
1623+
for pRows.Next() {
16221624
var bundle, value sql.NullString
1623-
if err := rows.Scan(&bundle, &value); err != nil {
1625+
if err := pRows.Scan(&bundle, &value); err != nil {
16241626
return err
16251627
}
16261628

@@ -1764,10 +1766,11 @@ func (s sqlLoader) RemoveOverwrittenChannelHead(pkg, bundle string) error {
17641766
AND channel_entry.operatorbundle_name = ?
17651767
LIMIT 1`
17661768

1767-
rows, err := s.db.QueryContext(context.TODO(), getBundlesThatReplaceHeadQuery, pkg, bundle)
1769+
rows, err := tx.QueryContext(context.TODO(), getBundlesThatReplaceHeadQuery, pkg, bundle)
17681770
if err != nil {
17691771
return err
17701772
}
1773+
defer rows.Close()
17711774
if rows != nil {
17721775
for rows.Next() {
17731776
var replaces, channel sql.NullString
@@ -1793,17 +1796,17 @@ func (s sqlLoader) RemoveOverwrittenChannelHead(pkg, bundle string) error {
17931796
GROUP BY channel_name
17941797
`
17951798

1796-
rows, err = s.db.QueryContext(context.TODO(), getReplacingBundlesQuery, pkg, bundle)
1799+
pRows, err := tx.QueryContext(context.TODO(), getReplacingBundlesQuery, pkg, bundle)
17971800
if err != nil {
17981801
return err
17991802
}
1800-
defer rows.Close()
1803+
defer pRows.Close()
18011804

18021805
channelHeadUpdateQuery := `UPDATE channel SET head_operatorbundle_name = ? WHERE package_name = ? AND name = ? AND head_operatorbundle_name = ?`
1803-
for rows.Next() {
1806+
for pRows.Next() {
18041807
var replaces, channel sql.NullString
18051808
var depth sql.NullInt64
1806-
if err := rows.Scan(&replaces, &channel, &depth); err != nil {
1809+
if err := pRows.Scan(&replaces, &channel, &depth); err != nil {
18071810
return err
18081811
}
18091812

0 commit comments

Comments
 (0)