From 92a739c33c516abae07b307cbef53acc568758db Mon Sep 17 00:00:00 2001 From: Eric Warehime Date: Mon, 25 Apr 2022 14:32:01 -0700 Subject: [PATCH 1/5] Bump golang to 1.17.9 --- .circleci/config.yml | 2 +- .github/workflows/build.yml | 2 +- .github/workflows/reviewdog.yml | 2 +- agreement/msgp_gen_test.go | 1 + cmd/partitiontest_linter/go.mod | 2 +- compactcert/msgp_gen_test.go | 1 + crypto/compactcert/msgp_gen_test.go | 1 + crypto/merklearray/msgp_gen_test.go | 1 + crypto/merklesignature/msgp_gen_test.go | 1 + crypto/msgp_gen_test.go | 1 + crypto/secp256k1/dummy.go | 1 + crypto/secp256k1/libsecp256k1/contrib/dummy.go | 1 + crypto/secp256k1/libsecp256k1/dummy.go | 1 + crypto/secp256k1/libsecp256k1/include/dummy.go | 1 + crypto/secp256k1/libsecp256k1/src/dummy.go | 1 + .../libsecp256k1/src/modules/dummy.go | 1 + .../libsecp256k1/src/modules/ecdh/dummy.go | 1 + .../libsecp256k1/src/modules/recovery/dummy.go | 1 + crypto/secp256k1/panic_cb.go | 4 ++-- crypto/secp256k1/scalar_mult_cgo.go | 4 ++-- crypto/secp256k1/scalar_mult_nocgo.go | 1 + crypto/secp256k1/secp256.go | 4 ++-- daemon/algod/api/spec/v2/msgp_gen_test.go | 1 + data/account/msgp_gen_test.go | 1 + data/basics/msgp_gen_test.go | 1 + data/bookkeeping/msgp_gen_test.go | 1 + data/committee/msgp_gen_test.go | 1 + data/hashable/msgp_gen_test.go | 1 + data/transactions/msgp_gen_test.go | 1 + go.mod | 18 +++++++++++++++++- ledger/ledgercore/msgp_gen_test.go | 1 + ledger/msgp_gen_test.go | 1 + libgoal/lockedFileLinux.go | 1 + libgoal/lockedFileUnix.go | 1 + libgoal/lockedFileWindows.go | 1 + network/messagetracer/graphtrace.go | 1 + node/msgp_gen_test.go | 1 + nodecontrol/kmdControl_common.go | 1 + protocol/msgp_gen_test.go | 1 + protocol/test/msgp_gen_test.go | 1 + rpcs/msgp_gen_test.go | 1 + scripts/buildtools/go.mod | 2 +- scripts/get_golang_version.sh | 6 +++--- tools/network/dnssec/config_unix.go | 1 + tools/network/dnssec/config_unix_test.go | 1 + tools/network/dnssec/config_windows.go | 1 + util/process_common.go | 1 + util/process_windows.go | 1 + util/sleep.go | 1 + util/util.go | 1 + 50 files changed, 71 insertions(+), 15 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 34828ef5e6..b911cafed1 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -198,7 +198,7 @@ commands: shell: bash.exe command: | choco install -y msys2 pacman make wget --force - choco install -y golang --version=1.16.15 --force + choco install -y golang --version=1.17.9 --force choco install -y python3 --version=3.7.3 --force export msys2='cmd //C RefreshEnv.cmd ' export msys2+='& set MSYS=winsymlinks:nativestrict ' diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4cc8eaba40..825056b1e1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -20,7 +20,7 @@ jobs: - name: Install golang uses: actions/setup-go@v2 with: - go-version: '1.16.15' + go-version: '1.17.9' - name: Build Test run: | export ALGORAND_DEADLOCK=enable diff --git a/.github/workflows/reviewdog.yml b/.github/workflows/reviewdog.yml index 134685fc6e..6cc82a6e55 100644 --- a/.github/workflows/reviewdog.yml +++ b/.github/workflows/reviewdog.yml @@ -44,7 +44,7 @@ jobs: - name: Install specific golang uses: actions/setup-go@v2 with: - go-version: '1.16.15' + go-version: '1.17.9' - name: Create folders for golangci-lint run: mkdir -p cicdtmp/golangci-lint - name: Check if custom golangci-lint is already built diff --git a/agreement/msgp_gen_test.go b/agreement/msgp_gen_test.go index 4bfe9d0280..8d886e6562 100644 --- a/agreement/msgp_gen_test.go +++ b/agreement/msgp_gen_test.go @@ -1,3 +1,4 @@ +//go:build !skip_msgp_testing // +build !skip_msgp_testing package agreement diff --git a/cmd/partitiontest_linter/go.mod b/cmd/partitiontest_linter/go.mod index 17a694f6de..3e9db30e99 100644 --- a/cmd/partitiontest_linter/go.mod +++ b/cmd/partitiontest_linter/go.mod @@ -1,6 +1,6 @@ module github.com/algorand/go-algorand/cmd/partitiontest_linter -go 1.16 +go 1.17 require golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 require golang.org/x/sys v0.0.0-20210510120138-977fb7262007 diff --git a/compactcert/msgp_gen_test.go b/compactcert/msgp_gen_test.go index 88c8395a37..52cbb5a3e4 100644 --- a/compactcert/msgp_gen_test.go +++ b/compactcert/msgp_gen_test.go @@ -1,3 +1,4 @@ +//go:build !skip_msgp_testing // +build !skip_msgp_testing package compactcert diff --git a/crypto/compactcert/msgp_gen_test.go b/crypto/compactcert/msgp_gen_test.go index 23ebb5a3fd..f2a43f572d 100644 --- a/crypto/compactcert/msgp_gen_test.go +++ b/crypto/compactcert/msgp_gen_test.go @@ -1,3 +1,4 @@ +//go:build !skip_msgp_testing // +build !skip_msgp_testing package compactcert diff --git a/crypto/merklearray/msgp_gen_test.go b/crypto/merklearray/msgp_gen_test.go index fbcc81970a..7715f75df3 100644 --- a/crypto/merklearray/msgp_gen_test.go +++ b/crypto/merklearray/msgp_gen_test.go @@ -1,3 +1,4 @@ +//go:build !skip_msgp_testing // +build !skip_msgp_testing package merklearray diff --git a/crypto/merklesignature/msgp_gen_test.go b/crypto/merklesignature/msgp_gen_test.go index 9c73788c54..3ea42c77f0 100644 --- a/crypto/merklesignature/msgp_gen_test.go +++ b/crypto/merklesignature/msgp_gen_test.go @@ -1,3 +1,4 @@ +//go:build !skip_msgp_testing // +build !skip_msgp_testing package merklesignature diff --git a/crypto/msgp_gen_test.go b/crypto/msgp_gen_test.go index 21be375fad..8a74a2852a 100644 --- a/crypto/msgp_gen_test.go +++ b/crypto/msgp_gen_test.go @@ -1,3 +1,4 @@ +//go:build !skip_msgp_testing // +build !skip_msgp_testing package crypto diff --git a/crypto/secp256k1/dummy.go b/crypto/secp256k1/dummy.go index 7c86a7f42a..479e07dc8e 100644 --- a/crypto/secp256k1/dummy.go +++ b/crypto/secp256k1/dummy.go @@ -1,3 +1,4 @@ +//go:build dummy // +build dummy // This file is part of a workaround for `go mod vendor` which won't vendor diff --git a/crypto/secp256k1/libsecp256k1/contrib/dummy.go b/crypto/secp256k1/libsecp256k1/contrib/dummy.go index fda594be99..2c946210c5 100644 --- a/crypto/secp256k1/libsecp256k1/contrib/dummy.go +++ b/crypto/secp256k1/libsecp256k1/contrib/dummy.go @@ -1,3 +1,4 @@ +//go:build dummy // +build dummy // Package c contains only a C file. diff --git a/crypto/secp256k1/libsecp256k1/dummy.go b/crypto/secp256k1/libsecp256k1/dummy.go index 379b16992f..04bbe3d76e 100644 --- a/crypto/secp256k1/libsecp256k1/dummy.go +++ b/crypto/secp256k1/libsecp256k1/dummy.go @@ -1,3 +1,4 @@ +//go:build dummy // +build dummy // Package c contains only a C file. diff --git a/crypto/secp256k1/libsecp256k1/include/dummy.go b/crypto/secp256k1/libsecp256k1/include/dummy.go index 5af540c73c..64c71b8451 100644 --- a/crypto/secp256k1/libsecp256k1/include/dummy.go +++ b/crypto/secp256k1/libsecp256k1/include/dummy.go @@ -1,3 +1,4 @@ +//go:build dummy // +build dummy // Package c contains only a C file. diff --git a/crypto/secp256k1/libsecp256k1/src/dummy.go b/crypto/secp256k1/libsecp256k1/src/dummy.go index 65868f38a8..2df270adc3 100644 --- a/crypto/secp256k1/libsecp256k1/src/dummy.go +++ b/crypto/secp256k1/libsecp256k1/src/dummy.go @@ -1,3 +1,4 @@ +//go:build dummy // +build dummy // Package c contains only a C file. diff --git a/crypto/secp256k1/libsecp256k1/src/modules/dummy.go b/crypto/secp256k1/libsecp256k1/src/modules/dummy.go index 3c7a696439..99c538db51 100644 --- a/crypto/secp256k1/libsecp256k1/src/modules/dummy.go +++ b/crypto/secp256k1/libsecp256k1/src/modules/dummy.go @@ -1,3 +1,4 @@ +//go:build dummy // +build dummy // Package c contains only a C file. diff --git a/crypto/secp256k1/libsecp256k1/src/modules/ecdh/dummy.go b/crypto/secp256k1/libsecp256k1/src/modules/ecdh/dummy.go index b6fc38327e..48c2e0aa54 100644 --- a/crypto/secp256k1/libsecp256k1/src/modules/ecdh/dummy.go +++ b/crypto/secp256k1/libsecp256k1/src/modules/ecdh/dummy.go @@ -1,3 +1,4 @@ +//go:build dummy // +build dummy // Package c contains only a C file. diff --git a/crypto/secp256k1/libsecp256k1/src/modules/recovery/dummy.go b/crypto/secp256k1/libsecp256k1/src/modules/recovery/dummy.go index b9491f0cb9..8efbd7abe7 100644 --- a/crypto/secp256k1/libsecp256k1/src/modules/recovery/dummy.go +++ b/crypto/secp256k1/libsecp256k1/src/modules/recovery/dummy.go @@ -1,3 +1,4 @@ +//go:build dummy // +build dummy // Package c contains only a C file. diff --git a/crypto/secp256k1/panic_cb.go b/crypto/secp256k1/panic_cb.go index 5da2bea376..a30b04f51b 100644 --- a/crypto/secp256k1/panic_cb.go +++ b/crypto/secp256k1/panic_cb.go @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be found in // the LICENSE file. -// +build !gofuzz -// +build cgo +//go:build !gofuzz && cgo +// +build !gofuzz,cgo package secp256k1 diff --git a/crypto/secp256k1/scalar_mult_cgo.go b/crypto/secp256k1/scalar_mult_cgo.go index 8e29d65b04..d1b4c8b20e 100644 --- a/crypto/secp256k1/scalar_mult_cgo.go +++ b/crypto/secp256k1/scalar_mult_cgo.go @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be found in // the LICENSE file. -// +build !gofuzz -// +build cgo +//go:build !gofuzz && cgo +// +build !gofuzz,cgo package secp256k1 diff --git a/crypto/secp256k1/scalar_mult_nocgo.go b/crypto/secp256k1/scalar_mult_nocgo.go index 55756b5be8..22f53ac6ae 100644 --- a/crypto/secp256k1/scalar_mult_nocgo.go +++ b/crypto/secp256k1/scalar_mult_nocgo.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be found in // the LICENSE file. +//go:build gofuzz || !cgo // +build gofuzz !cgo package secp256k1 diff --git a/crypto/secp256k1/secp256.go b/crypto/secp256k1/secp256.go index 067b5e6c50..7fbce862e1 100644 --- a/crypto/secp256k1/secp256.go +++ b/crypto/secp256k1/secp256.go @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be found in // the LICENSE file. -// +build !gofuzz -// +build cgo +//go:build !gofuzz && cgo +// +build !gofuzz,cgo // Package secp256k1 wraps the bitcoin secp256k1 C library. package secp256k1 diff --git a/daemon/algod/api/spec/v2/msgp_gen_test.go b/daemon/algod/api/spec/v2/msgp_gen_test.go index 57bda723cf..2d3a842a22 100644 --- a/daemon/algod/api/spec/v2/msgp_gen_test.go +++ b/daemon/algod/api/spec/v2/msgp_gen_test.go @@ -1,3 +1,4 @@ +//go:build !skip_msgp_testing // +build !skip_msgp_testing package v2 diff --git a/data/account/msgp_gen_test.go b/data/account/msgp_gen_test.go index 9bde0e5d83..ae68f3769f 100644 --- a/data/account/msgp_gen_test.go +++ b/data/account/msgp_gen_test.go @@ -1,3 +1,4 @@ +//go:build !skip_msgp_testing // +build !skip_msgp_testing package account diff --git a/data/basics/msgp_gen_test.go b/data/basics/msgp_gen_test.go index 8756c3c4e1..90f62698a0 100644 --- a/data/basics/msgp_gen_test.go +++ b/data/basics/msgp_gen_test.go @@ -1,3 +1,4 @@ +//go:build !skip_msgp_testing // +build !skip_msgp_testing package basics diff --git a/data/bookkeeping/msgp_gen_test.go b/data/bookkeeping/msgp_gen_test.go index 8bad965935..2315516af8 100644 --- a/data/bookkeeping/msgp_gen_test.go +++ b/data/bookkeeping/msgp_gen_test.go @@ -1,3 +1,4 @@ +//go:build !skip_msgp_testing // +build !skip_msgp_testing package bookkeeping diff --git a/data/committee/msgp_gen_test.go b/data/committee/msgp_gen_test.go index 7a8946a6cb..084952c31c 100644 --- a/data/committee/msgp_gen_test.go +++ b/data/committee/msgp_gen_test.go @@ -1,3 +1,4 @@ +//go:build !skip_msgp_testing // +build !skip_msgp_testing package committee diff --git a/data/hashable/msgp_gen_test.go b/data/hashable/msgp_gen_test.go index 131eaebe03..429712bd87 100644 --- a/data/hashable/msgp_gen_test.go +++ b/data/hashable/msgp_gen_test.go @@ -1,3 +1,4 @@ +//go:build !skip_msgp_testing // +build !skip_msgp_testing package hashable diff --git a/data/transactions/msgp_gen_test.go b/data/transactions/msgp_gen_test.go index d92a29cf8f..0a916da82a 100644 --- a/data/transactions/msgp_gen_test.go +++ b/data/transactions/msgp_gen_test.go @@ -1,3 +1,4 @@ +//go:build !skip_msgp_testing // +build !skip_msgp_testing package transactions diff --git a/go.mod b/go.mod index c917e62adf..30e8b145de 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/algorand/go-algorand -go 1.16 +go 1.17 require ( github.com/algorand/falcon v0.0.0-20220130164023-c9e1d466f123 @@ -14,12 +14,15 @@ require ( github.com/aws/aws-sdk-go v1.16.5 github.com/chrismcguire/gobberish v0.0.0-20150821175641-1d8adb509a0e github.com/cpuguy83/go-md2man v1.0.8 // indirect + github.com/davecgh/go-spew v1.1.1 // indirect github.com/davidlazar/go-crypto v0.0.0-20170701192655-dcfb0a7ac018 github.com/dchest/siphash v1.2.1 + github.com/dgrijalva/jwt-go v3.2.0+incompatible // indirect github.com/fatih/color v1.7.0 github.com/fortytw2/leaktest v1.3.0 // indirect github.com/gen2brain/beeep v0.0.0-20180718162406-4e430518395f github.com/getkin/kin-openapi v0.22.0 + github.com/ghodss/yaml v1.0.0 // indirect github.com/godbus/dbus v0.0.0-20181101234600-2ff6f7ffd60f // indirect github.com/gofrs/flock v0.7.0 github.com/google/go-querystring v1.0.0 @@ -28,26 +31,39 @@ require ( github.com/gorilla/context v1.1.1 // indirect github.com/gorilla/mux v1.6.2 github.com/inconshreveable/mousetrap v1.0.0 // indirect + github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af // indirect github.com/jmoiron/sqlx v1.2.0 + github.com/josharian/intern v1.0.0 // indirect github.com/karalabe/usb v0.0.2 github.com/labstack/echo/v4 v4.1.17 + github.com/labstack/gommon v0.3.0 // indirect github.com/mailru/easyjson v0.7.7 // indirect + github.com/mattn/go-colorable v0.1.7 // indirect + github.com/mattn/go-isatty v0.0.12 // indirect github.com/mattn/go-sqlite3 v1.10.0 github.com/miekg/dns v1.1.27 github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e // indirect github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d // indirect github.com/olivere/elastic v6.2.14+incompatible + github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5 // indirect + github.com/pkg/errors v0.9.1 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect github.com/russross/blackfriday v1.5.2 // indirect github.com/sirupsen/logrus v1.8.1 github.com/spf13/cobra v0.0.3 github.com/spf13/pflag v1.0.5 // indirect github.com/stretchr/testify v1.7.1 + github.com/valyala/bytebufferpool v1.0.0 // indirect + github.com/valyala/fasttemplate v1.2.1 // indirect golang.org/x/crypto v0.0.0-20210921155107-089bfa567519 + golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f // indirect golang.org/x/sys v0.0.0-20211019181941-9d821ace8654 + golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 // indirect golang.org/x/text v0.3.7 google.golang.org/appengine v1.6.7 // indirect gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f // indirect gopkg.in/sohlich/elogrus.v3 v3.0.0-20180410122755-1fa29e2f2009 gopkg.in/toast.v1 v1.0.0-20180812000517-0a84660828b2 // indirect + gopkg.in/yaml.v2 v2.3.0 // indirect gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 // indirect ) diff --git a/ledger/ledgercore/msgp_gen_test.go b/ledger/ledgercore/msgp_gen_test.go index 99ad64e4de..dbb017a491 100644 --- a/ledger/ledgercore/msgp_gen_test.go +++ b/ledger/ledgercore/msgp_gen_test.go @@ -1,3 +1,4 @@ +//go:build !skip_msgp_testing // +build !skip_msgp_testing package ledgercore diff --git a/ledger/msgp_gen_test.go b/ledger/msgp_gen_test.go index 92b54bc521..fb1dac5a29 100644 --- a/ledger/msgp_gen_test.go +++ b/ledger/msgp_gen_test.go @@ -1,3 +1,4 @@ +//go:build !skip_msgp_testing // +build !skip_msgp_testing package ledger diff --git a/libgoal/lockedFileLinux.go b/libgoal/lockedFileLinux.go index 989972873c..9c60ca028d 100644 --- a/libgoal/lockedFileLinux.go +++ b/libgoal/lockedFileLinux.go @@ -14,6 +14,7 @@ // You should have received a copy of the GNU Affero General Public License // along with go-algorand. If not, see . +//go:build linux // +build linux package libgoal diff --git a/libgoal/lockedFileUnix.go b/libgoal/lockedFileUnix.go index 70262a15ca..b32af5def4 100644 --- a/libgoal/lockedFileUnix.go +++ b/libgoal/lockedFileUnix.go @@ -17,6 +17,7 @@ // Support all unix system except linux // in https://github.com/golang/sys/blob/master/unix/syscall_unix.go +//go:build aix || darwin || dragonfly || freebsd || netbsd || openbsd || solaris // +build aix darwin dragonfly freebsd netbsd openbsd solaris package libgoal diff --git a/libgoal/lockedFileWindows.go b/libgoal/lockedFileWindows.go index efc6de0ade..c89785d80a 100644 --- a/libgoal/lockedFileWindows.go +++ b/libgoal/lockedFileWindows.go @@ -14,6 +14,7 @@ // You should have received a copy of the GNU Affero General Public License // along with go-algorand. If not, see . +//go:build windows // +build windows package libgoal diff --git a/network/messagetracer/graphtrace.go b/network/messagetracer/graphtrace.go index 8a92698011..68c465914b 100644 --- a/network/messagetracer/graphtrace.go +++ b/network/messagetracer/graphtrace.go @@ -14,6 +14,7 @@ // You should have received a copy of the GNU Affero General Public License // along with go-algorand. If not, see . // +//go:build msgtrace // +build msgtrace package messagetracer diff --git a/node/msgp_gen_test.go b/node/msgp_gen_test.go index e72b128ee6..bbfb4732a3 100644 --- a/node/msgp_gen_test.go +++ b/node/msgp_gen_test.go @@ -1,3 +1,4 @@ +//go:build !skip_msgp_testing // +build !skip_msgp_testing package node diff --git a/nodecontrol/kmdControl_common.go b/nodecontrol/kmdControl_common.go index a73c75746f..151ea79633 100644 --- a/nodecontrol/kmdControl_common.go +++ b/nodecontrol/kmdControl_common.go @@ -14,6 +14,7 @@ // You should have received a copy of the GNU Affero General Public License // along with go-algorand. If not, see . +//go:build !windows // +build !windows package nodecontrol diff --git a/protocol/msgp_gen_test.go b/protocol/msgp_gen_test.go index 4bdc805908..e9cbe36b16 100644 --- a/protocol/msgp_gen_test.go +++ b/protocol/msgp_gen_test.go @@ -1,3 +1,4 @@ +//go:build !skip_msgp_testing // +build !skip_msgp_testing package protocol diff --git a/protocol/test/msgp_gen_test.go b/protocol/test/msgp_gen_test.go index d87b778e07..6704fc95bb 100644 --- a/protocol/test/msgp_gen_test.go +++ b/protocol/test/msgp_gen_test.go @@ -1,3 +1,4 @@ +//go:build !skip_msgp_testing // +build !skip_msgp_testing package test diff --git a/rpcs/msgp_gen_test.go b/rpcs/msgp_gen_test.go index 46ec99aaf3..58d5d0de6c 100644 --- a/rpcs/msgp_gen_test.go +++ b/rpcs/msgp_gen_test.go @@ -1,3 +1,4 @@ +//go:build !skip_msgp_testing // +build !skip_msgp_testing package rpcs diff --git a/scripts/buildtools/go.mod b/scripts/buildtools/go.mod index cf29e9304c..96142dc63c 100644 --- a/scripts/buildtools/go.mod +++ b/scripts/buildtools/go.mod @@ -1,6 +1,6 @@ module github.com/algorand/go-algorand/scripts/buildtools -go 1.16 +go 1.17 require ( github.com/algorand/msgp v1.1.50 diff --git a/scripts/get_golang_version.sh b/scripts/get_golang_version.sh index 1dd22eda46..390847ed4d 100755 --- a/scripts/get_golang_version.sh +++ b/scripts/get_golang_version.sh @@ -11,9 +11,9 @@ # Our build task-runner `mule` will refer to this script and will automatically # build a new image whenever the version number has been changed. -BUILD=1.16.15 - MIN=1.16 - GO_MOD_SUPPORT=1.16 +BUILD=1.17.9 + MIN=1.17 + GO_MOD_SUPPORT=1.17 if [ "$1" = all ] then diff --git a/tools/network/dnssec/config_unix.go b/tools/network/dnssec/config_unix.go index bb328cde6a..4a8c574de1 100644 --- a/tools/network/dnssec/config_unix.go +++ b/tools/network/dnssec/config_unix.go @@ -14,6 +14,7 @@ // You should have received a copy of the GNU Affero General Public License // along with go-algorand. If not, see . +//go:build !windows // +build !windows package dnssec diff --git a/tools/network/dnssec/config_unix_test.go b/tools/network/dnssec/config_unix_test.go index c6699e67f8..c757b5369f 100644 --- a/tools/network/dnssec/config_unix_test.go +++ b/tools/network/dnssec/config_unix_test.go @@ -14,6 +14,7 @@ // You should have received a copy of the GNU Affero General Public License // along with go-algorand. If not, see . +//go:build !windows // +build !windows package dnssec diff --git a/tools/network/dnssec/config_windows.go b/tools/network/dnssec/config_windows.go index 357f1aa1f1..41d6950070 100644 --- a/tools/network/dnssec/config_windows.go +++ b/tools/network/dnssec/config_windows.go @@ -14,6 +14,7 @@ // You should have received a copy of the GNU Affero General Public License // along with go-algorand. If not, see . +//go:build windows // +build windows package dnssec diff --git a/util/process_common.go b/util/process_common.go index 5685b06a51..b2c1bc7081 100644 --- a/util/process_common.go +++ b/util/process_common.go @@ -14,6 +14,7 @@ // You should have received a copy of the GNU Affero General Public License // along with go-algorand. If not, see . +//go:build !windows // +build !windows package util diff --git a/util/process_windows.go b/util/process_windows.go index b7a5c6b65d..4cad60df7e 100644 --- a/util/process_windows.go +++ b/util/process_windows.go @@ -14,6 +14,7 @@ // You should have received a copy of the GNU Affero General Public License // along with go-algorand. If not, see . +//go:build windows // +build windows package util diff --git a/util/sleep.go b/util/sleep.go index 6f8c150abe..0d3a60acf0 100644 --- a/util/sleep.go +++ b/util/sleep.go @@ -14,6 +14,7 @@ // You should have received a copy of the GNU Affero General Public License // along with go-algorand. If not, see . +//go:build !linux // +build !linux package util diff --git a/util/util.go b/util/util.go index c4c7a7385c..a19a5b0690 100644 --- a/util/util.go +++ b/util/util.go @@ -14,6 +14,7 @@ // You should have received a copy of the GNU Affero General Public License // along with go-algorand. If not, see . +//go:build !windows // +build !windows package util From 305b6cbc7f09504729f2aaee3923caed36b85b7d Mon Sep 17 00:00:00 2001 From: Eric Warehime Date: Mon, 25 Apr 2022 15:14:10 -0700 Subject: [PATCH 2/5] Update Makefile for Mac M1 support --- Makefile | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Makefile b/Makefile index 90bcc70215..f55089890c 100644 --- a/Makefile +++ b/Makefile @@ -36,6 +36,13 @@ else export GOTESTCOMMAND=gotestsum --format pkgname --jsonfile testresults.json -- endif +# M1 Mac--homebrew install location in /opt/homebrew +ifeq ($(OS_TYPE), darwin) +ifeq ($(ARCH), arm64) +export CPATH=/opt/homebrew/include +export LIBRARY_PATH=/opt/homebrew/lib +endif +endif ifeq ($(UNAME), Linux) EXTLDFLAGS := -static-libstdc++ -static-libgcc ifeq ($(ARCH), amd64) From b0c4e8a2849a9f1bb5749c138a3bea895ec2729f Mon Sep 17 00:00:00 2001 From: Eric Warehime Date: Tue, 3 May 2022 11:33:22 -0700 Subject: [PATCH 3/5] Add RWLocks to protect node context from data race --- node/node.go | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/node/node.go b/node/node.go index f173853d48..c225317f81 100644 --- a/node/node.go +++ b/node/node.go @@ -93,7 +93,7 @@ func (status StatusReport) TimeSinceLastRound() time.Duration { // AlgorandFullNode specifies and implements a full Algorand node. type AlgorandFullNode struct { - mu deadlock.Mutex + mu deadlock.RWMutex ctx context.Context cancelCtx context.CancelFunc config config.Local @@ -1037,10 +1037,13 @@ func (node *AlgorandFullNode) txPoolGaugeThread() { ticker := time.NewTicker(10 * time.Second) defer ticker.Stop() for true { + node.mu.RLock() + done := node.ctx.Done() + node.mu.RUnlock() select { case <-ticker.C: txPoolGuage.Set(float64(node.transactionPool.PendingCount()), nil) - case <-node.ctx.Done(): + case <-done: return } } @@ -1074,8 +1077,11 @@ func (node *AlgorandFullNode) OnNewBlock(block bookkeeping.Block, delta ledgerco func (node *AlgorandFullNode) oldKeyDeletionThread() { defer node.monitoringRoutinesWaitGroup.Done() for { + node.mu.RLock() + done := node.ctx.Done() + node.mu.RUnlock() select { - case <-node.ctx.Done(): + case <-done: return case <-node.oldKeyDeletionNotify: } From 4081315dc29776b23a0cecfac1314c7ce1cc2299 Mon Sep 17 00:00:00 2001 From: Eric Warehime Date: Tue, 3 May 2022 13:18:43 -0700 Subject: [PATCH 4/5] Add mutex/locks to ctx reads/writes in node --- node/node.go | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/node/node.go b/node/node.go index c225317f81..c8ff6aa3e2 100644 --- a/node/node.go +++ b/node/node.go @@ -93,7 +93,7 @@ func (status StatusReport) TimeSinceLastRound() time.Duration { // AlgorandFullNode specifies and implements a full Algorand node. type AlgorandFullNode struct { - mu deadlock.RWMutex + mu deadlock.Mutex ctx context.Context cancelCtx context.CancelFunc config config.Local @@ -407,11 +407,11 @@ func (node *AlgorandFullNode) startMonitoringRoutines() { // PKI TODO: Remove this with #2596 // Periodically check for new participation keys - go node.checkForParticipationKeys() + go node.checkForParticipationKeys(node.ctx.Done()) - go node.txPoolGaugeThread() + go node.txPoolGaugeThread(node.ctx.Done()) // Delete old participation keys - go node.oldKeyDeletionThread() + go node.oldKeyDeletionThread(node.ctx.Done()) // TODO re-enable with configuration flag post V1 //go logging.UsageLogThread(node.ctx, node.log, 100*time.Millisecond, nil) @@ -782,7 +782,7 @@ func ensureParticipationDB(genesisDir string, log logging.Logger) (account.Parti } // Reload participation keys from disk periodically -func (node *AlgorandFullNode) checkForParticipationKeys() { +func (node *AlgorandFullNode) checkForParticipationKeys(done <-chan struct{}) { defer node.monitoringRoutinesWaitGroup.Done() ticker := time.NewTicker(node.config.ParticipationKeysRefreshInterval) for { @@ -792,7 +792,7 @@ func (node *AlgorandFullNode) checkForParticipationKeys() { if err != nil { node.log.Errorf("Could not refresh participation keys: %v", err) } - case <-node.ctx.Done(): + case <-done: ticker.Stop() return } @@ -1032,14 +1032,11 @@ func insertStateProofToRegistry(part account.PersistedParticipation, node *Algor var txPoolGuage = metrics.MakeGauge(metrics.MetricName{Name: "algod_tx_pool_count", Description: "current number of available transactions in pool"}) -func (node *AlgorandFullNode) txPoolGaugeThread() { +func (node *AlgorandFullNode) txPoolGaugeThread(done <-chan struct{}) { defer node.monitoringRoutinesWaitGroup.Done() ticker := time.NewTicker(10 * time.Second) defer ticker.Stop() for true { - node.mu.RLock() - done := node.ctx.Done() - node.mu.RUnlock() select { case <-ticker.C: txPoolGuage.Set(float64(node.transactionPool.PendingCount()), nil) @@ -1074,12 +1071,9 @@ func (node *AlgorandFullNode) OnNewBlock(block bookkeeping.Block, delta ledgerco // oldKeyDeletionThread keeps deleting old participation keys. // It runs in a separate thread so that, during catchup, we // don't have to delete key for each block we received. -func (node *AlgorandFullNode) oldKeyDeletionThread() { +func (node *AlgorandFullNode) oldKeyDeletionThread(done <-chan struct{}) { defer node.monitoringRoutinesWaitGroup.Done() for { - node.mu.RLock() - done := node.ctx.Done() - node.mu.RUnlock() select { case <-done: return From ab5fb9df32489d2f8ff6866d6baa8c8fb4d3b529 Mon Sep 17 00:00:00 2001 From: Eric Warehime Date: Mon, 9 May 2022 15:07:21 -0700 Subject: [PATCH 5/5] Update msgp, go mod tidy --- go.mod | 47 +++++++++++++++++++++++++---------------------- go.sum | 15 +++++++-------- 2 files changed, 32 insertions(+), 30 deletions(-) diff --git a/go.mod b/go.mod index 30e8b145de..b037dcf81a 100644 --- a/go.mod +++ b/go.mod @@ -8,62 +8,65 @@ require ( github.com/algorand/go-deadlock v0.2.2 github.com/algorand/go-sumhash v0.1.0 github.com/algorand/graphtrace v0.1.0 - github.com/algorand/msgp v1.1.50 + github.com/algorand/msgp v1.1.51 github.com/algorand/oapi-codegen v1.3.7 github.com/algorand/websocket v1.4.5 github.com/aws/aws-sdk-go v1.16.5 github.com/chrismcguire/gobberish v0.0.0-20150821175641-1d8adb509a0e - github.com/cpuguy83/go-md2man v1.0.8 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect github.com/davidlazar/go-crypto v0.0.0-20170701192655-dcfb0a7ac018 github.com/dchest/siphash v1.2.1 - github.com/dgrijalva/jwt-go v3.2.0+incompatible // indirect github.com/fatih/color v1.7.0 - github.com/fortytw2/leaktest v1.3.0 // indirect github.com/gen2brain/beeep v0.0.0-20180718162406-4e430518395f github.com/getkin/kin-openapi v0.22.0 - github.com/ghodss/yaml v1.0.0 // indirect - github.com/godbus/dbus v0.0.0-20181101234600-2ff6f7ffd60f // indirect github.com/gofrs/flock v0.7.0 github.com/google/go-querystring v1.0.0 + github.com/gorilla/mux v1.6.2 + github.com/jmoiron/sqlx v1.2.0 + github.com/karalabe/usb v0.0.2 + github.com/labstack/echo/v4 v4.1.17 + github.com/mattn/go-sqlite3 v1.10.0 + github.com/miekg/dns v1.1.27 + github.com/olivere/elastic v6.2.14+incompatible + github.com/sirupsen/logrus v1.8.1 + github.com/spf13/cobra v0.0.3 + github.com/stretchr/testify v1.7.1 + golang.org/x/crypto v0.0.0-20210921155107-089bfa567519 + golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e + golang.org/x/text v0.3.7 + gopkg.in/sohlich/elogrus.v3 v3.0.0-20180410122755-1fa29e2f2009 +) + +require ( + github.com/cpuguy83/go-md2man v1.0.8 // indirect + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/dgrijalva/jwt-go v3.2.0+incompatible // indirect + github.com/fortytw2/leaktest v1.3.0 // indirect + github.com/ghodss/yaml v1.0.0 // indirect + github.com/godbus/dbus v0.0.0-20181101234600-2ff6f7ffd60f // indirect github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e // indirect github.com/gopherjs/gopherwasm v1.0.1 // indirect github.com/gorilla/context v1.1.1 // indirect - github.com/gorilla/mux v1.6.2 github.com/inconshreveable/mousetrap v1.0.0 // indirect github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af // indirect - github.com/jmoiron/sqlx v1.2.0 github.com/josharian/intern v1.0.0 // indirect - github.com/karalabe/usb v0.0.2 - github.com/labstack/echo/v4 v4.1.17 github.com/labstack/gommon v0.3.0 // indirect github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-colorable v0.1.7 // indirect github.com/mattn/go-isatty v0.0.12 // indirect - github.com/mattn/go-sqlite3 v1.10.0 - github.com/miekg/dns v1.1.27 github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e // indirect github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d // indirect - github.com/olivere/elastic v6.2.14+incompatible github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/russross/blackfriday v1.5.2 // indirect - github.com/sirupsen/logrus v1.8.1 - github.com/spf13/cobra v0.0.3 github.com/spf13/pflag v1.0.5 // indirect - github.com/stretchr/testify v1.7.1 github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasttemplate v1.2.1 // indirect - golang.org/x/crypto v0.0.0-20210921155107-089bfa567519 golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f // indirect - golang.org/x/sys v0.0.0-20211019181941-9d821ace8654 golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 // indirect - golang.org/x/text v0.3.7 google.golang.org/appengine v1.6.7 // indirect gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f // indirect - gopkg.in/sohlich/elogrus.v3 v3.0.0-20180410122755-1fa29e2f2009 gopkg.in/toast.v1 v1.0.0-20180812000517-0a84660828b2 // indirect gopkg.in/yaml.v2 v2.3.0 // indirect - gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 // indirect + gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect ) diff --git a/go.sum b/go.sum index 73e446a9f5..dad920e278 100644 --- a/go.sum +++ b/go.sum @@ -1,6 +1,5 @@ github.com/algorand/falcon v0.0.0-20220130164023-c9e1d466f123 h1:cnUjJ/iqUjJNbhUzgmxbfwHMVFnz+DLnNQx8uJcGaks= github.com/algorand/falcon v0.0.0-20220130164023-c9e1d466f123/go.mod h1:OkQyHlGvS0kLNcIWbC21/uQcnbfwSOQm+wiqWwBG9pQ= -github.com/algorand/go-codec v1.1.8 h1:XDSreeeZY8gMst6Edz4RBkl08/DGMJOeHYkoXL2B7wI= github.com/algorand/go-codec v1.1.8/go.mod h1:XhzVs6VVyWMLu6cApb9/192gBjGRVGm5cX5j203Heg4= github.com/algorand/go-codec/codec v1.1.8 h1:lsFuhcOH2LiEhpBH3BVUUkdevVmwCRyvb7FCAAPeY6U= github.com/algorand/go-codec/codec v1.1.8/go.mod h1:tQ3zAJ6ijTps6V+wp8KsGDnPC2uhHVC7ANyrtkIY0bA= @@ -10,8 +9,8 @@ github.com/algorand/go-sumhash v0.1.0 h1:b/QRhyLuF//vOcicBIxBXYW8bERNoeLxieht/dU github.com/algorand/go-sumhash v0.1.0/go.mod h1:OOe7jdDWUhLkuP1XytkK5gnLu9entAviN5DfDZh6XAc= github.com/algorand/graphtrace v0.1.0 h1:QemP1iT0W56SExD0NfiU6rsG34/v0Je6bg5UZnptEUM= github.com/algorand/graphtrace v0.1.0/go.mod h1:HscLQrzBdH1BH+5oehs3ICd8SYcXvnSL9BjfTu8WHCc= -github.com/algorand/msgp v1.1.50 h1:Mvsjs5LCE6HsXXbwJXD8ol1Y+c+QMoFNM4j0CY+mFGo= -github.com/algorand/msgp v1.1.50/go.mod h1:R5sJrW9krk4YwNo+rs82Kq6V55q/zNgACwWqt3sQBM4= +github.com/algorand/msgp v1.1.51 h1:0Z8qXlSPMPmODjpqzvIhBENrbLcrf1eJPRnKgLlrcxM= +github.com/algorand/msgp v1.1.51/go.mod h1:5K3d58/poT5fPmtiwuQft6GjgSrVEM46KoXdLrID8ZU= github.com/algorand/oapi-codegen v1.3.7 h1:TdXeGljgrnLXSCGPdeY6g6+i/G0Rr5CkjBgUJY6ht48= github.com/algorand/oapi-codegen v1.3.7/go.mod h1:UvOtAiP3hc0M2GUKBnZVTjLe3HKGDKh6y9rs3e3JyOg= github.com/algorand/websocket v1.4.5 h1:Cs6UTaCReAl02evYxmN8k57cNHmBILRcspfSxYg4AJE= @@ -75,8 +74,8 @@ github.com/karalabe/usb v0.0.2 h1:M6QQBNxF+CQ8OFvxrT90BA0qBOXymndZnk5q235mFc4= github.com/karalabe/usb v0.0.2/go.mod h1:Od972xHfMJowv7NGVDiWVxk2zxnWgjLlJzE+F4F7AGU= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/labstack/echo/v4 v4.1.16/go.mod h1:awO+5TzAjvL8XpibdsfXxPgHr+orhtXZJZIQCVjogKI= github.com/labstack/echo/v4 v4.1.17 h1:PQIBaRplyRy3OjwILGkPg89JRtH2x5bssi59G2EL3fo= github.com/labstack/echo/v4 v4.1.17/go.mod h1:Tn2yRQL/UclUalpb5rPdXDevbkJ+lp/2svdyFBg6CHQ= @@ -127,7 +126,6 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/ttacon/chalk v0.0.0-20160626202418-22c06c80ed31/go.mod h1:onvgF043R+lC5RZ8IT9rBXDaEDnpnw/Cl+HFiw+v/7Q= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= @@ -175,8 +173,9 @@ golang.org/x/sys v0.0.0-20200826173525-f9321e4c35a6/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211019181941-9d821ace8654 h1:id054HUawV2/6IGm2IV8KZQjqtwAOo2CYlOToYqa0d0= golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e h1:fLOSk5Q00efkSvAm+4xcoXD+RRmLmmulPn5I3Y9F2EM= +golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -209,5 +208,5 @@ gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 h1:tQIYjPdBoyREyB9XMu+nnTclpTYkz2zFM+lzLJFO4gQ= -gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=