aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--clientapi/auth/storage/accounts/postgres/account_data_table.go4
-rw-r--r--clientapi/auth/storage/accounts/postgres/membership_table.go4
-rw-r--r--clientapi/auth/storage/accounts/sqlite3/membership_table.go2
-rw-r--r--clientapi/auth/storage/accounts/sqlite3/threepid_table.go2
-rw-r--r--clientapi/auth/storage/devices/postgres/devices_table.go2
-rw-r--r--common/keydb/postgres/server_key_table.go4
-rw-r--r--common/keydb/sqlite3/server_key_table.go2
-rw-r--r--common/log.go18
-rw-r--r--common/partition_offset_table.go2
-rw-r--r--federationsender/storage/postgres/joined_hosts_table.go2
-rw-r--r--federationsender/storage/sqlite3/joined_hosts_table.go2
-rw-r--r--go.mod3
-rw-r--r--go.sum2
-rw-r--r--mediaapi/storage/postgres/thumbnail_table.go4
-rw-r--r--mediaapi/storage/sqlite3/thumbnail_table.go4
-rw-r--r--publicroomsapi/storage/postgres/public_rooms_table.go4
-rw-r--r--roomserver/storage/postgres/event_json_table.go4
-rw-r--r--roomserver/storage/postgres/event_state_keys_table.go4
-rw-r--r--roomserver/storage/postgres/event_types_table.go4
-rw-r--r--roomserver/storage/postgres/events_table.go12
-rw-r--r--roomserver/storage/postgres/invite_table.go4
-rw-r--r--roomserver/storage/postgres/membership_table.go4
-rw-r--r--roomserver/storage/postgres/room_aliases_table.go4
-rw-r--r--roomserver/storage/postgres/state_block_table.go6
-rw-r--r--roomserver/storage/sqlite3/event_json_table.go2
-rw-r--r--roomserver/storage/sqlite3/event_state_keys_table.go4
-rw-r--r--roomserver/storage/sqlite3/event_types_table.go2
-rw-r--r--roomserver/storage/sqlite3/events_table.go12
-rw-r--r--roomserver/storage/sqlite3/invite_table.go2
-rw-r--r--roomserver/storage/sqlite3/membership_table.go4
-rw-r--r--roomserver/storage/sqlite3/room_aliases_table.go2
-rw-r--r--roomserver/storage/sqlite3/state_block_table.go4
-rw-r--r--roomserver/storage/sqlite3/state_snapshot_table.go2
-rw-r--r--syncapi/storage/postgres/account_data_table.go2
-rw-r--r--syncapi/storage/postgres/backward_extremities_table.go4
-rw-r--r--syncapi/storage/postgres/current_room_state_table.go8
-rw-r--r--syncapi/storage/postgres/invites_table.go2
-rw-r--r--syncapi/storage/postgres/output_room_events_table.go8
-rw-r--r--syncapi/storage/postgres/output_room_events_topology_table.go6
-rw-r--r--syncapi/storage/sqlite3/account_data_table.go4
-rw-r--r--syncapi/storage/sqlite3/current_room_state_table.go8
-rw-r--r--syncapi/storage/sqlite3/invites_table.go2
-rw-r--r--syncapi/storage/sqlite3/output_room_events_table.go6
43 files changed, 118 insertions, 69 deletions
diff --git a/clientapi/auth/storage/accounts/postgres/account_data_table.go b/clientapi/auth/storage/accounts/postgres/account_data_table.go
index 4573999b..9198a744 100644
--- a/clientapi/auth/storage/accounts/postgres/account_data_table.go
+++ b/clientapi/auth/storage/accounts/postgres/account_data_table.go
@@ -18,6 +18,8 @@ import (
"context"
"database/sql"
+ "github.com/matrix-org/dendrite/common"
+
"github.com/matrix-org/gomatrixserverlib"
)
@@ -90,7 +92,7 @@ func (s *accountDataStatements) selectAccountData(
if err != nil {
return
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "selectAccountData: rows.close() failed")
global = []gomatrixserverlib.ClientEvent{}
rooms = make(map[string][]gomatrixserverlib.ClientEvent)
diff --git a/clientapi/auth/storage/accounts/postgres/membership_table.go b/clientapi/auth/storage/accounts/postgres/membership_table.go
index 426c2d6a..27570b67 100644
--- a/clientapi/auth/storage/accounts/postgres/membership_table.go
+++ b/clientapi/auth/storage/accounts/postgres/membership_table.go
@@ -18,6 +18,8 @@ import (
"context"
"database/sql"
+ "github.com/matrix-org/dendrite/common"
+
"github.com/lib/pq"
"github.com/matrix-org/dendrite/clientapi/auth/authtypes"
)
@@ -118,7 +120,7 @@ func (s *membershipStatements) selectMembershipsByLocalpart(
memberships = []authtypes.Membership{}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "selectMembershipsByLocalpart: rows.close() failed")
for rows.Next() {
var m authtypes.Membership
m.Localpart = localpart
diff --git a/clientapi/auth/storage/accounts/sqlite3/membership_table.go b/clientapi/auth/storage/accounts/sqlite3/membership_table.go
index 38f21b7f..b4bff633 100644
--- a/clientapi/auth/storage/accounts/sqlite3/membership_table.go
+++ b/clientapi/auth/storage/accounts/sqlite3/membership_table.go
@@ -118,7 +118,7 @@ func (s *membershipStatements) selectMembershipsByLocalpart(
memberships = []authtypes.Membership{}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "selectMembershipsByLocalpart: rows.close() failed")
for rows.Next() {
var m authtypes.Membership
m.Localpart = localpart
diff --git a/clientapi/auth/storage/accounts/sqlite3/threepid_table.go b/clientapi/auth/storage/accounts/sqlite3/threepid_table.go
index 53f6408d..29ee4c3d 100644
--- a/clientapi/auth/storage/accounts/sqlite3/threepid_table.go
+++ b/clientapi/auth/storage/accounts/sqlite3/threepid_table.go
@@ -97,7 +97,7 @@ func (s *threepidStatements) selectThreePIDsForLocalpart(
if err != nil {
return
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "selectThreePIDsForLocalpart: rows.close() failed")
threepids = []authtypes.ThreePID{}
for rows.Next() {
diff --git a/clientapi/auth/storage/devices/postgres/devices_table.go b/clientapi/auth/storage/devices/postgres/devices_table.go
index 6cae3743..ee559170 100644
--- a/clientapi/auth/storage/devices/postgres/devices_table.go
+++ b/clientapi/auth/storage/devices/postgres/devices_table.go
@@ -226,7 +226,7 @@ func (s *devicesStatements) selectDevicesByLocalpart(
if err != nil {
return devices, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "selectDevicesByLocalpart: rows.close() failed")
for rows.Next() {
var dev authtypes.Device
diff --git a/common/keydb/postgres/server_key_table.go b/common/keydb/postgres/server_key_table.go
index 6b13cc3c..0434eb8b 100644
--- a/common/keydb/postgres/server_key_table.go
+++ b/common/keydb/postgres/server_key_table.go
@@ -19,6 +19,8 @@ import (
"context"
"database/sql"
+ "github.com/matrix-org/dendrite/common"
+
"github.com/lib/pq"
"github.com/matrix-org/gomatrixserverlib"
)
@@ -91,7 +93,7 @@ func (s *serverKeyStatements) bulkSelectServerKeys(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "bulkSelectServerKeys: rows.close() failed")
results := map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.PublicKeyLookupResult{}
for rows.Next() {
var serverName string
diff --git a/common/keydb/sqlite3/server_key_table.go b/common/keydb/sqlite3/server_key_table.go
index 3caf4ea4..ba1cc060 100644
--- a/common/keydb/sqlite3/server_key_table.go
+++ b/common/keydb/sqlite3/server_key_table.go
@@ -124,7 +124,7 @@ func (s *serverKeyStatements) bulkSelectServerKeys(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "bulkSelectServerKeys: rows.close() failed")
results := map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.PublicKeyLookupResult{}
for rows.Next() {
var serverName string
diff --git a/common/log.go b/common/log.go
index f9ed84ed..11339ada 100644
--- a/common/log.go
+++ b/common/log.go
@@ -15,13 +15,17 @@
package common
import (
+ "context"
"fmt"
+ "io"
"os"
"path"
"path/filepath"
"runtime"
"strings"
+ "github.com/matrix-org/util"
+
"github.com/matrix-org/dendrite/common/config"
"github.com/matrix-org/dugong"
"github.com/sirupsen/logrus"
@@ -156,3 +160,17 @@ func setupFileHook(hook config.LogrusHook, level logrus.Level, componentName str
),
})
}
+
+//CloseAndLogIfError Closes io.Closer and logs the error if any
+func CloseAndLogIfError(ctx context.Context, closer io.Closer, message string) {
+ if closer == nil {
+ return
+ }
+ err := closer.Close()
+ if ctx == nil {
+ ctx = context.TODO()
+ }
+ if err != nil {
+ util.GetLogger(ctx).WithError(err).Error(message)
+ }
+}
diff --git a/common/partition_offset_table.go b/common/partition_offset_table.go
index 6bc066a6..aa799f8a 100644
--- a/common/partition_offset_table.go
+++ b/common/partition_offset_table.go
@@ -90,7 +90,7 @@ func (s *PartitionOffsetStatements) selectPartitionOffsets(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer CloseAndLogIfError(ctx, rows, "selectPartitionOffsets: rows.close() failed")
var results []PartitionOffset
for rows.Next() {
var offset PartitionOffset
diff --git a/federationsender/storage/postgres/joined_hosts_table.go b/federationsender/storage/postgres/joined_hosts_table.go
index e5c30a01..b3c45abd 100644
--- a/federationsender/storage/postgres/joined_hosts_table.go
+++ b/federationsender/storage/postgres/joined_hosts_table.go
@@ -118,7 +118,7 @@ func joinedHostsFromStmt(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "joinedHostsFromStmt: rows.close() failed")
var result []types.JoinedHost
for rows.Next() {
diff --git a/federationsender/storage/sqlite3/joined_hosts_table.go b/federationsender/storage/sqlite3/joined_hosts_table.go
index 1437a062..466ae499 100644
--- a/federationsender/storage/sqlite3/joined_hosts_table.go
+++ b/federationsender/storage/sqlite3/joined_hosts_table.go
@@ -121,7 +121,7 @@ func joinedHostsFromStmt(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "joinedHostsFromStmt: rows.close() failed")
var result []types.JoinedHost
for rows.Next() {
diff --git a/go.mod b/go.mod
index 958706db..82474944 100644
--- a/go.mod
+++ b/go.mod
@@ -15,10 +15,13 @@ require (
github.com/matrix-org/naffka v0.0.0-20200127221512-0716baaabaf1
github.com/matrix-org/util v0.0.0-20190711121626-527ce5ddefc7
github.com/mattn/go-sqlite3 v2.0.2+incompatible
+ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
+ github.com/modern-go/reflect2 v1.0.1 // indirect
github.com/nfnt/resize v0.0.0-20160724205520-891127d8d1b5
github.com/opentracing/opentracing-go v1.1.0
github.com/pkg/errors v0.8.1
github.com/prometheus/client_golang v1.4.1
+ github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0 // indirect
github.com/sirupsen/logrus v1.4.2
github.com/tidwall/gjson v1.6.0 // indirect
github.com/tidwall/pretty v1.0.1 // indirect
diff --git a/go.sum b/go.sum
index 63423760..3c7cf281 100644
--- a/go.sum
+++ b/go.sum
@@ -372,6 +372,8 @@ github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40T
github.com/quasilyte/go-consistent v0.0.0-20190521200055-c6f3937de18c/go.mod h1:5STLWrekHfjyYwxBRVRXNOSewLJ3PWfDJd1VyTS21fI=
github.com/rcrowley/go-metrics v0.0.0-20190826022208-cac0b30c2563 h1:dY6ETXrvDG7Sa4vE8ZQG4yqWg6UnOcbqTAahkV813vQ=
github.com/rcrowley/go-metrics v0.0.0-20190826022208-cac0b30c2563/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
+github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0 h1:MkV+77GLUNo5oJ0jf870itWm3D0Sjh7+Za9gazKc5LQ=
+github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
diff --git a/mediaapi/storage/postgres/thumbnail_table.go b/mediaapi/storage/postgres/thumbnail_table.go
index 127b86bb..08bddc36 100644
--- a/mediaapi/storage/postgres/thumbnail_table.go
+++ b/mediaapi/storage/postgres/thumbnail_table.go
@@ -20,6 +20,8 @@ import (
"database/sql"
"time"
+ "github.com/matrix-org/dendrite/common"
+
"github.com/matrix-org/dendrite/mediaapi/types"
"github.com/matrix-org/gomatrixserverlib"
)
@@ -144,7 +146,7 @@ func (s *thumbnailStatements) selectThumbnails(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "selectThumbnails: rows.close() failed")
var thumbnails []*types.ThumbnailMetadata
for rows.Next() {
diff --git a/mediaapi/storage/sqlite3/thumbnail_table.go b/mediaapi/storage/sqlite3/thumbnail_table.go
index 95332c9d..280fafe8 100644
--- a/mediaapi/storage/sqlite3/thumbnail_table.go
+++ b/mediaapi/storage/sqlite3/thumbnail_table.go
@@ -20,6 +20,8 @@ import (
"database/sql"
"time"
+ "github.com/matrix-org/dendrite/common"
+
"github.com/matrix-org/dendrite/mediaapi/types"
"github.com/matrix-org/gomatrixserverlib"
)
@@ -134,7 +136,7 @@ func (s *thumbnailStatements) selectThumbnails(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "selectThumbnails: rows.close() failed")
var thumbnails []*types.ThumbnailMetadata
for rows.Next() {
diff --git a/publicroomsapi/storage/postgres/public_rooms_table.go b/publicroomsapi/storage/postgres/public_rooms_table.go
index edf9ad2a..7e606e93 100644
--- a/publicroomsapi/storage/postgres/public_rooms_table.go
+++ b/publicroomsapi/storage/postgres/public_rooms_table.go
@@ -21,6 +21,8 @@ import (
"errors"
"fmt"
+ "github.com/matrix-org/dendrite/common"
+
"github.com/lib/pq"
"github.com/matrix-org/dendrite/publicroomsapi/types"
)
@@ -203,7 +205,7 @@ func (s *publicRoomsStatements) selectPublicRooms(
if err != nil {
return []types.PublicRoom{}, nil
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "selectPublicRooms: rows.close() failed")
rooms := []types.PublicRoom{}
for rows.Next() {
diff --git a/roomserver/storage/postgres/event_json_table.go b/roomserver/storage/postgres/event_json_table.go
index 0b7ef6aa..616eaf31 100644
--- a/roomserver/storage/postgres/event_json_table.go
+++ b/roomserver/storage/postgres/event_json_table.go
@@ -19,6 +19,8 @@ import (
"context"
"database/sql"
+ "github.com/matrix-org/dendrite/common"
+
"github.com/matrix-org/dendrite/roomserver/types"
)
@@ -86,7 +88,7 @@ func (s *eventJSONStatements) bulkSelectEventJSON(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "bulkSelectEventJSON: rows.close() failed")
// We know that we will only get as many results as event NIDs
// because of the unique constraint on event NIDs.
diff --git a/roomserver/storage/postgres/event_state_keys_table.go b/roomserver/storage/postgres/event_state_keys_table.go
index cbc29a69..4c3496d9 100644
--- a/roomserver/storage/postgres/event_state_keys_table.go
+++ b/roomserver/storage/postgres/event_state_keys_table.go
@@ -114,7 +114,7 @@ func (s *eventStateKeyStatements) bulkSelectEventStateKeyNID(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "bulkSelectEventStateKeyNID: rows.close() failed")
result := make(map[string]types.EventStateKeyNID, len(eventStateKeys))
for rows.Next() {
@@ -139,7 +139,7 @@ func (s *eventStateKeyStatements) bulkSelectEventStateKey(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "bulkSelectEventStateKey: rows.close() failed")
result := make(map[types.EventStateKeyNID]string, len(eventStateKeyNIDs))
for rows.Next() {
diff --git a/roomserver/storage/postgres/event_types_table.go b/roomserver/storage/postgres/event_types_table.go
index faa88754..6537a545 100644
--- a/roomserver/storage/postgres/event_types_table.go
+++ b/roomserver/storage/postgres/event_types_table.go
@@ -19,6 +19,8 @@ import (
"context"
"database/sql"
+ "github.com/matrix-org/dendrite/common"
+
"github.com/lib/pq"
"github.com/matrix-org/dendrite/roomserver/types"
)
@@ -132,7 +134,7 @@ func (s *eventTypeStatements) bulkSelectEventTypeNID(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "bulkSelectEventTypeNID: rows.close() failed")
result := make(map[string]types.EventTypeNID, len(eventTypes))
for rows.Next() {
diff --git a/roomserver/storage/postgres/events_table.go b/roomserver/storage/postgres/events_table.go
index d9b269bc..0caa8199 100644
--- a/roomserver/storage/postgres/events_table.go
+++ b/roomserver/storage/postgres/events_table.go
@@ -192,7 +192,7 @@ func (s *eventStatements) bulkSelectStateEventByID(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "bulkSelectStateEventByID: rows.close() failed")
// We know that we will only get as many results as event IDs
// because of the unique constraint on event IDs.
// So we can allocate an array of the correct size now.
@@ -235,7 +235,7 @@ func (s *eventStatements) bulkSelectStateAtEventByID(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "bulkSelectStateAtEventByID: rows.close() failed")
results := make([]types.StateAtEvent, len(eventIDs))
i := 0
for ; rows.Next(); i++ {
@@ -302,7 +302,7 @@ func (s *eventStatements) bulkSelectStateAtEventAndReference(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "bulkSelectStateAtEventAndReference: rows.close() failed")
results := make([]types.StateAtEventAndReference, len(eventNIDs))
i := 0
for ; rows.Next(); i++ {
@@ -343,7 +343,7 @@ func (s *eventStatements) bulkSelectEventReference(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "bulkSelectEventReference: rows.close() failed")
results := make([]gomatrixserverlib.EventReference, len(eventNIDs))
i := 0
for ; rows.Next(); i++ {
@@ -367,7 +367,7 @@ func (s *eventStatements) bulkSelectEventID(ctx context.Context, eventNIDs []typ
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "bulkSelectEventID: rows.close() failed")
results := make(map[types.EventNID]string, len(eventNIDs))
i := 0
for ; rows.Next(); i++ {
@@ -394,7 +394,7 @@ func (s *eventStatements) bulkSelectEventNID(ctx context.Context, eventIDs []str
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "bulkSelectEventNID: rows.close() failed")
results := make(map[string]types.EventNID, len(eventIDs))
for rows.Next() {
var eventID string
diff --git a/roomserver/storage/postgres/invite_table.go b/roomserver/storage/postgres/invite_table.go
index 603fed31..f764b156 100644
--- a/roomserver/storage/postgres/invite_table.go
+++ b/roomserver/storage/postgres/invite_table.go
@@ -120,7 +120,7 @@ func (s *inviteStatements) updateInviteRetired(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "updateInviteRetired: rows.close() failed")
var eventIDs []string
for rows.Next() {
@@ -144,7 +144,7 @@ func (s *inviteStatements) selectInviteActiveForUserInRoom(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "selectInviteActiveForUserInRoom: rows.close() failed")
var result []types.EventStateKeyNID
for rows.Next() {
var senderUserNID int64
diff --git a/roomserver/storage/postgres/membership_table.go b/roomserver/storage/postgres/membership_table.go
index 70032fd1..9c8a4c25 100644
--- a/roomserver/storage/postgres/membership_table.go
+++ b/roomserver/storage/postgres/membership_table.go
@@ -151,7 +151,7 @@ func (s *membershipStatements) selectMembershipsFromRoom(
if err != nil {
return
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "selectMembershipsFromRoom: rows.close() failed")
for rows.Next() {
var eNID types.EventNID
@@ -172,7 +172,7 @@ func (s *membershipStatements) selectMembershipsFromRoomAndMembership(
if err != nil {
return
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "selectMembershipsFromRoomAndMembership: rows.close() failed")
for rows.Next() {
var eNID types.EventNID
diff --git a/roomserver/storage/postgres/room_aliases_table.go b/roomserver/storage/postgres/room_aliases_table.go
index 6de898c4..c37f383c 100644
--- a/roomserver/storage/postgres/room_aliases_table.go
+++ b/roomserver/storage/postgres/room_aliases_table.go
@@ -18,6 +18,8 @@ package postgres
import (
"context"
"database/sql"
+
+ "github.com/matrix-org/dendrite/common"
)
const roomAliasesSchema = `
@@ -95,7 +97,7 @@ func (s *roomAliasesStatements) selectAliasesFromRoomID(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "selectAliasesFromRoomID: rows.close() failed")
var aliases []string
for rows.Next() {
diff --git a/roomserver/storage/postgres/state_block_table.go b/roomserver/storage/postgres/state_block_table.go
index e6f4f7fe..b9246b76 100644
--- a/roomserver/storage/postgres/state_block_table.go
+++ b/roomserver/storage/postgres/state_block_table.go
@@ -21,6 +21,8 @@ import (
"fmt"
"sort"
+ "github.com/matrix-org/dendrite/common"
+
"github.com/lib/pq"
"github.com/matrix-org/dendrite/roomserver/types"
"github.com/matrix-org/util"
@@ -138,7 +140,7 @@ func (s *stateBlockStatements) bulkSelectStateBlockEntries(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "bulkSelectStateBlockEntries: rows.close() failed")
results := make([]types.StateEntryList, len(stateBlockNIDs))
// current is a pointer to the StateEntryList to append the state entries to.
@@ -197,7 +199,7 @@ func (s *stateBlockStatements) bulkSelectFilteredStateBlockEntries(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "bulkSelectFilteredStateBlockEntries: rows.close() failed")
var results []types.StateEntryList
var current types.StateEntryList
diff --git a/roomserver/storage/sqlite3/event_json_table.go b/roomserver/storage/sqlite3/event_json_table.go
index f6c83906..fc661c1d 100644
--- a/roomserver/storage/sqlite3/event_json_table.go
+++ b/roomserver/storage/sqlite3/event_json_table.go
@@ -88,7 +88,7 @@ func (s *eventJSONStatements) bulkSelectEventJSON(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "bulkSelectEventJSON: rows.close() failed")
// We know that we will only get as many results as event NIDs
// because of the unique constraint on event NIDs.
diff --git a/roomserver/storage/sqlite3/event_state_keys_table.go b/roomserver/storage/sqlite3/event_state_keys_table.go
index b8bc6c02..fa8fc57e 100644
--- a/roomserver/storage/sqlite3/event_state_keys_table.go
+++ b/roomserver/storage/sqlite3/event_state_keys_table.go
@@ -116,7 +116,7 @@ func (s *eventStateKeyStatements) bulkSelectEventStateKeyNID(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "bulkSelectEventStateKeyNID: rows.close() failed")
result := make(map[string]types.EventStateKeyNID, len(eventStateKeys))
for rows.Next() {
var stateKey string
@@ -142,7 +142,7 @@ func (s *eventStateKeyStatements) bulkSelectEventStateKey(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "bulkSelectEventStateKey: rows.close() failed")
result := make(map[types.EventStateKeyNID]string, len(eventStateKeyNIDs))
for rows.Next() {
var stateKey string
diff --git a/roomserver/storage/sqlite3/event_types_table.go b/roomserver/storage/sqlite3/event_types_table.go
index edc06d4c..777f8be7 100644
--- a/roomserver/storage/sqlite3/event_types_table.go
+++ b/roomserver/storage/sqlite3/event_types_table.go
@@ -138,7 +138,7 @@ func (s *eventTypeStatements) bulkSelectEventTypeNID(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "bulkSelectEventTypeNID: rows.close() failed")
result := make(map[string]types.EventTypeNID, len(eventTypes))
for rows.Next() {
diff --git a/roomserver/storage/sqlite3/events_table.go b/roomserver/storage/sqlite3/events_table.go
index 4fa09591..1e4ed448 100644
--- a/roomserver/storage/sqlite3/events_table.go
+++ b/roomserver/storage/sqlite3/events_table.go
@@ -194,7 +194,7 @@ func (s *eventStatements) bulkSelectStateEventByID(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "bulkSelectStateEventByID: rows.close() failed")
// We know that we will only get as many results as event IDs
// because of the unique constraint on event IDs.
// So we can allocate an array of the correct size now.
@@ -247,7 +247,7 @@ func (s *eventStatements) bulkSelectStateAtEventByID(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "bulkSelectStateAtEventByID: rows.close() failed")
results := make([]types.StateAtEvent, len(eventIDs))
i := 0
for ; rows.Next(); i++ {
@@ -323,7 +323,7 @@ func (s *eventStatements) bulkSelectStateAtEventAndReference(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "bulkSelectStateAtEventAndReference: rows.close() failed")
results := make([]types.StateAtEventAndReference, len(eventNIDs))
i := 0
for ; rows.Next(); i++ {
@@ -374,7 +374,7 @@ func (s *eventStatements) bulkSelectEventReference(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "bulkSelectEventReference: rows.close() failed")
results := make([]gomatrixserverlib.EventReference, len(eventNIDs))
i := 0
for ; rows.Next(); i++ {
@@ -408,7 +408,7 @@ func (s *eventStatements) bulkSelectEventID(ctx context.Context, txn *sql.Tx, ev
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "bulkSelectEventID: rows.close() failed")
results := make(map[types.EventNID]string, len(eventNIDs))
i := 0
for ; rows.Next(); i++ {
@@ -445,7 +445,7 @@ func (s *eventStatements) bulkSelectEventNID(ctx context.Context, txn *sql.Tx, e
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "bulkSelectEventNID: rows.close() failed")
results := make(map[string]types.EventNID, len(eventIDs))
for rows.Next() {
var eventID string
diff --git a/roomserver/storage/sqlite3/invite_table.go b/roomserver/storage/sqlite3/invite_table.go
index 641f8015..0ab3e6f3 100644
--- a/roomserver/storage/sqlite3/invite_table.go
+++ b/roomserver/storage/sqlite3/invite_table.go
@@ -137,7 +137,7 @@ func (s *inviteStatements) selectInviteActiveForUserInRoom(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "selectInviteActiveForUserInRoom: rows.close() failed")
var result []types.EventStateKeyNID
for rows.Next() {
var senderUserNID int64
diff --git a/roomserver/storage/sqlite3/membership_table.go b/roomserver/storage/sqlite3/membership_table.go
index 97877673..7ae28e4b 100644
--- a/roomserver/storage/sqlite3/membership_table.go
+++ b/roomserver/storage/sqlite3/membership_table.go
@@ -134,7 +134,7 @@ func (s *membershipStatements) selectMembershipsFromRoom(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "selectMembershipsFromRoom: rows.close() failed")
for rows.Next() {
var eNID types.EventNID
@@ -154,7 +154,7 @@ func (s *membershipStatements) selectMembershipsFromRoomAndMembership(
if err != nil {
return
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "selectMembershipsFromRoomAndMembership: rows.close() failed")
for rows.Next() {
var eNID types.EventNID
diff --git a/roomserver/storage/sqlite3/room_aliases_table.go b/roomserver/storage/sqlite3/room_aliases_table.go
index 71238b0e..d2983391 100644
--- a/roomserver/storage/sqlite3/room_aliases_table.go
+++ b/roomserver/storage/sqlite3/room_aliases_table.go
@@ -103,7 +103,7 @@ func (s *roomAliasesStatements) selectAliasesFromRoomID(
return
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "selectAliasesFromRoomID: rows.close() failed")
for rows.Next() {
var alias string
diff --git a/roomserver/storage/sqlite3/state_block_table.go b/roomserver/storage/sqlite3/state_block_table.go
index c94ca238..cc7c7573 100644
--- a/roomserver/storage/sqlite3/state_block_table.go
+++ b/roomserver/storage/sqlite3/state_block_table.go
@@ -137,7 +137,7 @@ func (s *stateBlockStatements) bulkSelectStateBlockEntries(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "bulkSelectStateBlockEntries: rows.close() failed")
results := make([]types.StateEntryList, len(stateBlockNIDs))
// current is a pointer to the StateEntryList to append the state entries to.
@@ -207,7 +207,7 @@ func (s *stateBlockStatements) bulkSelectFilteredStateBlockEntries(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "bulkSelectFilteredStateBlockEntries: rows.close() failed")
var results []types.StateEntryList
var current types.StateEntryList
diff --git a/roomserver/storage/sqlite3/state_snapshot_table.go b/roomserver/storage/sqlite3/state_snapshot_table.go
index 0e1786ea..f367a779 100644
--- a/roomserver/storage/sqlite3/state_snapshot_table.go
+++ b/roomserver/storage/sqlite3/state_snapshot_table.go
@@ -99,7 +99,7 @@ func (s *stateSnapshotStatements) bulkSelectStateBlockNIDs(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "bulkSelectStateBlockNIDs: rows.close() failed")
results := make([]types.StateBlockNIDList, len(stateNIDs))
i := 0
for ; rows.Next(); i++ {
diff --git a/syncapi/storage/postgres/account_data_table.go b/syncapi/storage/postgres/account_data_table.go
index d1811aa6..d1e3b527 100644
--- a/syncapi/storage/postgres/account_data_table.go
+++ b/syncapi/storage/postgres/account_data_table.go
@@ -118,7 +118,7 @@ func (s *accountDataStatements) selectAccountDataInRange(
if err != nil {
return
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "selectAccountDataInRange: rows.close() failed")
for rows.Next() {
var dataType string
diff --git a/syncapi/storage/postgres/backward_extremities_table.go b/syncapi/storage/postgres/backward_extremities_table.go
index d63c546e..8286ca43 100644
--- a/syncapi/storage/postgres/backward_extremities_table.go
+++ b/syncapi/storage/postgres/backward_extremities_table.go
@@ -17,6 +17,8 @@ package postgres
import (
"context"
"database/sql"
+
+ "github.com/matrix-org/dendrite/common"
)
const backwardExtremitiesSchema = `
@@ -91,7 +93,7 @@ func (s *backwardExtremitiesStatements) selectBackwardExtremitiesForRoom(
if err != nil {
return
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "selectBackwardExtremitiesForRoom: rows.close() failed")
for rows.Next() {
var eID string
diff --git a/syncapi/storage/postgres/current_room_state_table.go b/syncapi/storage/postgres/current_room_state_table.go
index 6f5c1e80..48cc2b5f 100644
--- a/syncapi/storage/postgres/current_room_state_table.go
+++ b/syncapi/storage/postgres/current_room_state_table.go
@@ -140,7 +140,7 @@ func (s *currentRoomStateStatements) selectJoinedUsers(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "selectJoinedUsers: rows.close() failed")
result := make(map[string][]string)
for rows.Next() {
@@ -168,7 +168,7 @@ func (s *currentRoomStateStatements) selectRoomIDsWithMembership(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "selectRoomIDsWithMembership: rows.close() failed")
var result []string
for rows.Next() {
@@ -198,7 +198,7 @@ func (s *currentRoomStateStatements) selectCurrentState(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "selectCurrentState: rows.close() failed")
return rowsToEvents(rows)
}
@@ -248,7 +248,7 @@ func (s *currentRoomStateStatements) selectEventsWithEventIDs(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "selectEventsWithEventIDs: rows.close() failed")
return rowsToStreamEvents(rows)
}
diff --git a/syncapi/storage/postgres/invites_table.go b/syncapi/storage/postgres/invites_table.go
index 2cb8fb19..6a7f9ef2 100644
--- a/syncapi/storage/postgres/invites_table.go
+++ b/syncapi/storage/postgres/invites_table.go
@@ -115,7 +115,7 @@ func (s *inviteEventsStatements) selectInviteEventsInRange(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "selectInviteEventsInRange: rows.close() failed")
result := map[string]gomatrixserverlib.Event{}
for rows.Next() {
var (
diff --git a/syncapi/storage/postgres/output_room_events_table.go b/syncapi/storage/postgres/output_room_events_table.go
index 2db46c5d..e7cf1935 100644
--- a/syncapi/storage/postgres/output_room_events_table.go
+++ b/syncapi/storage/postgres/output_room_events_table.go
@@ -169,7 +169,7 @@ func (s *outputRoomEventsStatements) selectStateInRange(
if err != nil {
return nil, nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "selectStateInRange: rows.close() failed")
// Fetch all the state change events for all rooms between the two positions then loop each event and:
// - Keep a cache of the event by ID (99% of state change events are for the event itself)
// - For each room ID, build up an array of event IDs which represents cumulative adds/removes
@@ -303,7 +303,7 @@ func (s *outputRoomEventsStatements) selectRecentEvents(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "selectRecentEvents: rows.close() failed")
events, err := rowsToStreamEvents(rows)
if err != nil {
return nil, err
@@ -330,7 +330,7 @@ func (s *outputRoomEventsStatements) selectEarlyEvents(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "selectEarlyEvents: rows.close() failed")
events, err := rowsToStreamEvents(rows)
if err != nil {
return nil, err
@@ -354,7 +354,7 @@ func (s *outputRoomEventsStatements) selectEvents(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "selectEvents: rows.close() failed")
return rowsToStreamEvents(rows)
}
diff --git a/syncapi/storage/postgres/output_room_events_topology_table.go b/syncapi/storage/postgres/output_room_events_topology_table.go
index 78a381da..b114fd43 100644
--- a/syncapi/storage/postgres/output_room_events_topology_table.go
+++ b/syncapi/storage/postgres/output_room_events_topology_table.go
@@ -18,6 +18,8 @@ import (
"context"
"database/sql"
+ "github.com/matrix-org/dendrite/common"
+
"github.com/matrix-org/dendrite/syncapi/types"
"github.com/matrix-org/gomatrixserverlib"
)
@@ -134,7 +136,7 @@ func (s *outputRoomEventsTopologyStatements) selectEventIDsInRange(
} else if err != nil {
return
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "selectEventIDsInRange: rows.close() failed")
// Return the IDs.
var eventID string
@@ -177,7 +179,7 @@ func (s *outputRoomEventsTopologyStatements) selectEventIDsFromPosition(
} else if err != nil {
return
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "selectEventIDsFromPosition: rows.close() failed")
// Return the IDs.
var eventID string
for rows.Next() {
diff --git a/syncapi/storage/sqlite3/account_data_table.go b/syncapi/storage/sqlite3/account_data_table.go
index 71105d0c..3dbf961b 100644
--- a/syncapi/storage/sqlite3/account_data_table.go
+++ b/syncapi/storage/sqlite3/account_data_table.go
@@ -19,6 +19,8 @@ import (
"context"
"database/sql"
+ "github.com/matrix-org/dendrite/common"
+
"github.com/matrix-org/dendrite/syncapi/types"
"github.com/matrix-org/gomatrixserverlib"
)
@@ -102,7 +104,7 @@ func (s *accountDataStatements) selectAccountDataInRange(
if err != nil {
return
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "selectAccountDataInRange: rows.close() failed")
var entries int
diff --git a/syncapi/storage/sqlite3/current_room_state_table.go b/syncapi/storage/sqlite3/current_room_state_table.go
index ed76177b..87007f2b 100644
--- a/syncapi/storage/sqlite3/current_room_state_table.go
+++ b/syncapi/storage/sqlite3/current_room_state_table.go
@@ -126,7 +126,7 @@ func (s *currentRoomStateStatements) selectJoinedUsers(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "selectJoinedUsers: rows.close() failed")
result := make(map[string][]string)
for rows.Next() {
@@ -154,7 +154,7 @@ func (s *currentRoomStateStatements) selectRoomIDsWithMembership(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "selectRoomIDsWithMembership: rows.close() failed")
var result []string
for rows.Next() {
@@ -184,7 +184,7 @@ func (s *currentRoomStateStatements) selectCurrentState(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "selectCurrentState: rows.close() failed")
return rowsToEvents(rows)
}
@@ -238,7 +238,7 @@ func (s *currentRoomStateStatements) selectEventsWithEventIDs(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "selectEventsWithEventIDs: rows.close() failed")
return rowsToStreamEvents(rows)
}
diff --git a/syncapi/storage/sqlite3/invites_table.go b/syncapi/storage/sqlite3/invites_table.go
index baf8871b..df6f1c9a 100644
--- a/syncapi/storage/sqlite3/invites_table.go
+++ b/syncapi/storage/sqlite3/invites_table.go
@@ -113,7 +113,7 @@ func (s *inviteEventsStatements) selectInviteEventsInRange(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "selectInviteEventsInRange: rows.close() failed")
result := map[string]gomatrixserverlib.Event{}
for rows.Next() {
var (
diff --git a/syncapi/storage/sqlite3/output_room_events_table.go b/syncapi/storage/sqlite3/output_room_events_table.go
index 05a33c06..5ae28ca3 100644
--- a/syncapi/storage/sqlite3/output_room_events_table.go
+++ b/syncapi/storage/sqlite3/output_room_events_table.go
@@ -316,7 +316,7 @@ func (s *outputRoomEventsStatements) selectRecentEvents(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "selectRecentEvents: rows.close() failed")
events, err := rowsToStreamEvents(rows)
if err != nil {
return nil, err
@@ -343,7 +343,7 @@ func (s *outputRoomEventsStatements) selectEarlyEvents(
if err != nil {
return nil, err
}
- defer rows.Close() // nolint: errcheck
+ defer common.CloseAndLogIfError(ctx, rows, "selectEarlyEvents: rows.close() failed")
events, err := rowsToStreamEvents(rows)
if err != nil {
return nil, err
@@ -372,7 +372,7 @@ func (s *outputRoomEventsStatements) selectEvents(
if streamEvents, err := rowsToStreamEvents(rows); err == nil {
returnEvents = append(returnEvents, streamEvents...)
}
- rows.Close() // nolint: errcheck
+ common.CloseAndLogIfError(ctx, rows, "selectEvents: rows.close() failed")
}
return returnEvents, nil
}