Skip to content

Commit

Permalink
Merge branch 'dev' into tmpnet-move-local
Browse files Browse the repository at this point in the history
  • Loading branch information
marun authored Dec 13, 2023
2 parents 004af9b + bf0cc44 commit 5552748
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 16 deletions.
24 changes: 13 additions & 11 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ concurrency:

env:
go_version: '~1.20.12'
tmpnet_data_path: ~/.tmpnet/networks/1000

jobs:
Unit:
Expand Down Expand Up @@ -53,7 +54,7 @@ jobs:
check-latest: true
- name: fuzz_test
shell: bash
run: ./scripts/build_fuzz.sh 15 # Run each fuzz test 15 seconds
run: ./scripts/build_fuzz.sh 10 # Run each fuzz test 10 seconds
e2e:
runs-on: ubuntu-latest
steps:
Expand All @@ -72,8 +73,9 @@ jobs:
uses: actions/upload-artifact@v3
if: always()
with:
name: e2e-artifact
path: ~/.tmpnet/networks/1000
name: e2e-tmpnet-data
path: ${{ env.tmpnet_data_path }}
if-no-files-found: error
e2e_existing_network:
runs-on: ubuntu-latest
steps:
Expand All @@ -92,8 +94,9 @@ jobs:
uses: actions/upload-artifact@v3
if: always()
with:
name: e2e-existing-network-tmpnet-artifact
path: ~/.tmpnet/networks/1000
name: e2e-existing-network-tmpnet-data
path: ${{ env.tmpnet_data_path }}
if-no-files-found: error
Upgrade:
runs-on: ubuntu-latest
steps:
Expand All @@ -107,15 +110,14 @@ jobs:
run: ./scripts/build.sh
- name: Run e2e tests
shell: bash
# 1.10.7 is the first version compatible with the ephnet fixture by
# virtue of writing a process context file on node start.
run: ./scripts/tests.upgrade.sh 1.10.7
- name: Upload ephnet network dir
run: ./scripts/tests.upgrade.sh
- name: Upload tmpnet network dir
uses: actions/upload-artifact@v3
if: always()
with:
name: upgrade-artifact
path: ~/.ephnet/networks/1000
name: upgrade-tmpnet-data
path: ${{ env.tmpnet_data_path }}
if-no-files-found: error
Lint:
runs-on: ubuntu-latest
steps:
Expand Down
13 changes: 10 additions & 3 deletions scripts/tests.upgrade.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,21 @@
set -euo pipefail

# e.g.,
# ./scripts/tests.upgrade.sh 1.7.16
# AVALANCHEGO_PATH=./path/to/avalanchego ./scripts/tests.upgrade.sh 1.7.16 # Customization of avalanchego path
# ./scripts/tests.upgrade.sh # Use default version
# ./scripts/tests.upgrade.sh 1.10.18 # Specify a version
# AVALANCHEGO_PATH=./path/to/avalanchego ./scripts/tests.upgrade.sh 1.10.18 # Customization of avalanchego path
if ! [[ "$0" =~ scripts/tests.upgrade.sh ]]; then
echo "must be run from repository root"
exit 255
fi

VERSION="${1:-}"
# 1.10.17 is the first version compatible with bls signing keys being
# included in the genesis. Attempting to upgrade from prior versions
# will result in nodes failing to boot due to the hash of the genesis
# not matching the hash of the committed genesis block.
DEFAULT_VERSION="1.10.17"

VERSION="${1:-${DEFAULT_VERSION}}"
if [[ -z "${VERSION}" ]]; then
echo "Missing version argument!"
echo "Usage: ${0} [VERSION]" >>/dev/stderr
Expand Down
4 changes: 3 additions & 1 deletion tests/upgrade/upgrade_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,9 @@ var _ = ginkgo.Describe("[Upgrade]", func() {
node.Flags[config.BootstrapIPsKey] = strings.Join(bootstrapIPs, ",")
require.NoError(node.WriteConfig())

require.NoError(node.Start(ginkgo.GinkgoWriter, avalancheGoExecPath))
// Ensure the new node starts with the upgrade binary
node.ExecPath = avalancheGoExecPathToUpgradeTo
require.NoError(node.Start(ginkgo.GinkgoWriter, "" /* defaultExecPath */))

ginkgo.By(fmt.Sprintf("waiting for node %q to report healthy after restart", node.ID))
e2e.WaitForHealthy(node)
Expand Down
10 changes: 9 additions & 1 deletion x/merkledb/db.go
Original file line number Diff line number Diff line change
Expand Up @@ -481,9 +481,17 @@ func (db *merkleDB) PrefetchPath(key []byte) error {
func (db *merkleDB) prefetchPath(view *trieView, keyBytes []byte) error {
return view.visitPathToKey(ToKey(keyBytes), func(n *node) error {
if !n.hasValue() {
// this value is already in the cache, so skip writing
// to avoid grabbing the cache write lock
if _, ok := db.intermediateNodeDB.nodeCache.Get(n.key); ok {
return nil
}
return db.intermediateNodeDB.nodeCache.Put(n.key, n)
}

// this value is already in the cache, so skip writing
if _, ok := db.valueNodeDB.nodeCache.Get(n.key); ok {
return nil
}
db.valueNodeDB.nodeCache.Put(n.key, n)
return nil
})
Expand Down

0 comments on commit 5552748

Please sign in to comment.