aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author0x1a8510f2 <admin@0x1a8510f2.space>2024-05-01 01:38:36 +0100
committerGitHub <noreply@github.com>2024-05-01 00:38:36 +0000
commit46902e5766cc8efcc4f1abb38789f8179893c17d (patch)
tree5995442264119a6028f55bcb069a2899b7d1b032
parent5547bf8ca67af325df6560ab13e54d04c39c629b (diff)
Take advantage of changes in recent Go versions (#3361)
Given that #2714 wasn't merged but we are now at a minimum supported Go version of 1.20 (soon to be 1.21), I wanted to carry over some of the changes. Namely: - Fix the log typo - Simplify build constraints for unix - Use stdlib atomic package ### Pull Request Checklist <!-- Please read https://matrix-org.github.io/dendrite/development/contributing before submitting your pull request --> * [x] I have added Go unit tests or [Complement integration tests](https://github.com/matrix-org/complement) for this PR _or_ I have justified why this PR doesn't need tests * [x] Pull request includes a [sign off below using a legally identifiable name](https://matrix-org.github.io/dendrite/development/contributing#sign-off) _or_ I have already signed off privately Signed-off-by: `0x1a8510f2 <admin@0x1a8510f2.space>` --------- Co-authored-by: devonh <devon.dmytro@gmail.com>
-rw-r--r--clientapi/routing/routing.go2
-rw-r--r--cmd/dendrite-demo-pinecone/relay/retriever.go4
-rw-r--r--federationapi/queue/destinationqueue.go2
-rw-r--r--federationapi/queue/queue_test.go6
-rw-r--r--federationapi/statistics/statistics.go6
-rw-r--r--internal/sqlutil/writer_exclusive.go3
-rw-r--r--internal/transactionrequest_test.go14
-rw-r--r--setup/base/base.go2
-rw-r--r--setup/base/sanity_other.go4
-rw-r--r--setup/base/sanity_unix.go4
10 files changed, 23 insertions, 24 deletions
diff --git a/clientapi/routing/routing.go b/clientapi/routing/routing.go
index c96c6538..60dad543 100644
--- a/clientapi/routing/routing.go
+++ b/clientapi/routing/routing.go
@@ -255,7 +255,7 @@ func Setup(
logrus.Info("Enabling server notices at /_synapse/admin/v1/send_server_notice")
serverNotificationSender, err := getSenderDevice(context.Background(), rsAPI, userAPI, cfg)
if err != nil {
- logrus.WithError(err).Fatal("unable to get account for sending sending server notices")
+ logrus.WithError(err).Fatal("unable to get account for sending server notices")
}
synapseAdminRouter.Handle("/admin/v1/send_server_notice/{txnID}",
diff --git a/cmd/dendrite-demo-pinecone/relay/retriever.go b/cmd/dendrite-demo-pinecone/relay/retriever.go
index 3c76ad60..9c918fb6 100644
--- a/cmd/dendrite-demo-pinecone/relay/retriever.go
+++ b/cmd/dendrite-demo-pinecone/relay/retriever.go
@@ -17,13 +17,13 @@ package relay
import (
"context"
"sync"
+ "sync/atomic"
"time"
federationAPI "github.com/matrix-org/dendrite/federationapi/api"
relayServerAPI "github.com/matrix-org/dendrite/relayapi/api"
"github.com/matrix-org/gomatrixserverlib/spec"
"github.com/sirupsen/logrus"
- "go.uber.org/atomic"
)
const (
@@ -54,7 +54,7 @@ func NewRelayServerRetriever(
federationAPI: federationAPI,
relayAPI: relayAPI,
relayServersQueried: make(map[spec.ServerName]bool),
- running: *atomic.NewBool(false),
+ running: atomic.Bool{},
quit: quit,
}
}
diff --git a/federationapi/queue/destinationqueue.go b/federationapi/queue/destinationqueue.go
index 87a6fe55..be43aaf1 100644
--- a/federationapi/queue/destinationqueue.go
+++ b/federationapi/queue/destinationqueue.go
@@ -19,6 +19,7 @@ import (
"encoding/json"
"fmt"
"sync"
+ "sync/atomic"
"time"
"github.com/matrix-org/gomatrix"
@@ -26,7 +27,6 @@ import (
"github.com/matrix-org/gomatrixserverlib/fclient"
"github.com/matrix-org/gomatrixserverlib/spec"
"github.com/sirupsen/logrus"
- "go.uber.org/atomic"
"github.com/matrix-org/dendrite/federationapi/statistics"
"github.com/matrix-org/dendrite/federationapi/storage"
diff --git a/federationapi/queue/queue_test.go b/federationapi/queue/queue_test.go
index 6da86342..7d21a3bb 100644
--- a/federationapi/queue/queue_test.go
+++ b/federationapi/queue/queue_test.go
@@ -18,6 +18,7 @@ import (
"context"
"encoding/json"
"fmt"
+ "sync/atomic"
"testing"
"time"
@@ -26,7 +27,6 @@ import (
"github.com/matrix-org/dendrite/test/testrig"
"github.com/matrix-org/gomatrixserverlib/fclient"
"github.com/matrix-org/gomatrixserverlib/spec"
- "go.uber.org/atomic"
"gotest.tools/v3/poll"
"github.com/matrix-org/gomatrixserverlib"
@@ -113,8 +113,8 @@ func testSetup(failuresUntilBlacklist uint32, failuresUntilAssumedOffline uint32
fc := &stubFederationClient{
shouldTxSucceed: shouldTxSucceed,
shouldTxRelaySucceed: shouldTxRelaySucceed,
- txCount: *atomic.NewUint32(0),
- txRelayCount: *atomic.NewUint32(0),
+ txCount: atomic.Uint32{},
+ txRelayCount: atomic.Uint32{},
}
stats := statistics.NewStatistics(db, failuresUntilBlacklist, failuresUntilAssumedOffline, false)
diff --git a/federationapi/statistics/statistics.go b/federationapi/statistics/statistics.go
index e133fc9c..750c57fd 100644
--- a/federationapi/statistics/statistics.go
+++ b/federationapi/statistics/statistics.go
@@ -5,10 +5,10 @@ import (
"math"
"math/rand"
"sync"
+ "sync/atomic"
"time"
"github.com/sirupsen/logrus"
- "go.uber.org/atomic"
"github.com/matrix-org/dendrite/federationapi/storage"
"github.com/matrix-org/gomatrixserverlib/spec"
@@ -169,7 +169,7 @@ func (s *ServerStatistics) Success(method SendMethod) {
// NOTE : Sending to the final destination vs. a relay server has
// slightly different semantics.
if method == SendDirect {
- s.successCounter.Inc()
+ s.successCounter.Add(1)
if s.blacklisted.Load() && s.statistics.DB != nil {
if err := s.statistics.DB.RemoveServerFromBlacklist(s.serverName); err != nil {
logrus.WithError(err).Errorf("Failed to remove %q from blacklist", s.serverName)
@@ -195,7 +195,7 @@ func (s *ServerStatistics) Failure() (time.Time, bool) {
// start a goroutine which will wait out the backoff and
// unset the backoffStarted flag when done.
if s.backoffStarted.CompareAndSwap(false, true) {
- backoffCount := s.backoffCount.Inc()
+ backoffCount := s.backoffCount.Add(1)
if backoffCount >= s.statistics.FailuresUntilAssumedOffline {
s.assumedOffline.CompareAndSwap(false, true)
diff --git a/internal/sqlutil/writer_exclusive.go b/internal/sqlutil/writer_exclusive.go
index c6a271c1..69eb8609 100644
--- a/internal/sqlutil/writer_exclusive.go
+++ b/internal/sqlutil/writer_exclusive.go
@@ -3,8 +3,7 @@ package sqlutil
import (
"database/sql"
"errors"
-
- "go.uber.org/atomic"
+ "sync/atomic"
)
// ExclusiveWriter implements sqlutil.Writer.
diff --git a/internal/transactionrequest_test.go b/internal/transactionrequest_test.go
index ffc1cd89..8dd100d1 100644
--- a/internal/transactionrequest_test.go
+++ b/internal/transactionrequest_test.go
@@ -19,6 +19,7 @@ import (
"encoding/json"
"fmt"
"strconv"
+ "sync/atomic"
"testing"
"time"
@@ -26,7 +27,6 @@ import (
"github.com/matrix-org/gomatrixserverlib/spec"
"github.com/nats-io/nats.go"
"github.com/stretchr/testify/assert"
- "go.uber.org/atomic"
"gotest.tools/v3/poll"
"github.com/matrix-org/dendrite/federationapi/producers"
@@ -228,7 +228,7 @@ func TestProcessTransactionRequestEDUTyping(t *testing.T) {
ctx := process.NewProcessContext()
defer ctx.ShutdownDendrite()
txn, js, cfg := createTransactionWithEDU(ctx, edus)
- received := atomic.NewBool(false)
+ received := atomic.Bool{}
onMessage := func(ctx context.Context, msgs []*nats.Msg) bool {
msg := msgs[0] // Guaranteed to exist if onMessage is called
room := msg.Header.Get(jetstream.RoomID)
@@ -294,7 +294,7 @@ func TestProcessTransactionRequestEDUToDevice(t *testing.T) {
ctx := process.NewProcessContext()
defer ctx.ShutdownDendrite()
txn, js, cfg := createTransactionWithEDU(ctx, edus)
- received := atomic.NewBool(false)
+ received := atomic.Bool{}
onMessage := func(ctx context.Context, msgs []*nats.Msg) bool {
msg := msgs[0] // Guaranteed to exist if onMessage is called
@@ -371,7 +371,7 @@ func TestProcessTransactionRequestEDUDeviceListUpdate(t *testing.T) {
ctx := process.NewProcessContext()
defer ctx.ShutdownDendrite()
txn, js, cfg := createTransactionWithEDU(ctx, edus)
- received := atomic.NewBool(false)
+ received := atomic.Bool{}
onMessage := func(ctx context.Context, msgs []*nats.Msg) bool {
msg := msgs[0] // Guaranteed to exist if onMessage is called
@@ -468,7 +468,7 @@ func TestProcessTransactionRequestEDUReceipt(t *testing.T) {
ctx := process.NewProcessContext()
defer ctx.ShutdownDendrite()
txn, js, cfg := createTransactionWithEDU(ctx, edus)
- received := atomic.NewBool(false)
+ received := atomic.Bool{}
onMessage := func(ctx context.Context, msgs []*nats.Msg) bool {
msg := msgs[0] // Guaranteed to exist if onMessage is called
@@ -512,7 +512,7 @@ func TestProcessTransactionRequestEDUSigningKeyUpdate(t *testing.T) {
ctx := process.NewProcessContext()
defer ctx.ShutdownDendrite()
txn, js, cfg := createTransactionWithEDU(ctx, edus)
- received := atomic.NewBool(false)
+ received := atomic.Bool{}
onMessage := func(ctx context.Context, msgs []*nats.Msg) bool {
msg := msgs[0] // Guaranteed to exist if onMessage is called
@@ -569,7 +569,7 @@ func TestProcessTransactionRequestEDUPresence(t *testing.T) {
ctx := process.NewProcessContext()
defer ctx.ShutdownDendrite()
txn, js, cfg := createTransactionWithEDU(ctx, edus)
- received := atomic.NewBool(false)
+ received := atomic.Bool{}
onMessage := func(ctx context.Context, msgs []*nats.Msg) bool {
msg := msgs[0] // Guaranteed to exist if onMessage is called
diff --git a/setup/base/base.go b/setup/base/base.go
index 455337e5..82068aa9 100644
--- a/setup/base/base.go
+++ b/setup/base/base.go
@@ -28,13 +28,13 @@ import (
_ "net/http/pprof"
"os"
"os/signal"
+ "sync/atomic"
"syscall"
"time"
sentryhttp "github.com/getsentry/sentry-go/http"
"github.com/matrix-org/gomatrixserverlib/fclient"
"github.com/prometheus/client_golang/prometheus/promhttp"
- "go.uber.org/atomic"
"github.com/gorilla/mux"
"github.com/kardianos/minwinsvc"
diff --git a/setup/base/sanity_other.go b/setup/base/sanity_other.go
index d35c2e87..38e2b941 100644
--- a/setup/base/sanity_other.go
+++ b/setup/base/sanity_other.go
@@ -1,5 +1,5 @@
-//go:build !linux && !darwin && !netbsd && !freebsd && !openbsd && !solaris && !dragonfly && !aix
-// +build !linux,!darwin,!netbsd,!freebsd,!openbsd,!solaris,!dragonfly,!aix
+//go:build !unix
+// +build !unix
package base
diff --git a/setup/base/sanity_unix.go b/setup/base/sanity_unix.go
index 0403df1a..90e38a6d 100644
--- a/setup/base/sanity_unix.go
+++ b/setup/base/sanity_unix.go
@@ -1,5 +1,5 @@
-//go:build linux || darwin || netbsd || freebsd || openbsd || solaris || dragonfly || aix
-// +build linux darwin netbsd freebsd openbsd solaris dragonfly aix
+//go:build unix
+// +build unix
package base