Skip to content

Conversation

@Algo-devops-service
Copy link
Contributor

@Algo-devops-service Algo-devops-service commented Jul 30, 2021

GitHub Logo

Highlights

This is a maintenance release focused around many test improvements and other optimizations.

Changes

  1. REST API
    • Bug Fix
      • Use strict json encoder to correctly encode maps with numeric fields in REST API v2 endpoints
  2. TEAL
    • New Feature
      • cover opcode: "remove top of stack, and place it down the stack such that N elements are above it"
      • uncover opcode: "remove the value at depth N in the stack and shift above items down so the Nth deep value is on top of the stack"
    • Bug Fixes
      • Fix extraProgramPages: Looks up the actual application ExtraProgramPages when not updating and uses the stored value
  3. Ledger
    • Enhancements
      • Replace Balances.PutWithCreatable() to new functions that notify the COW that a creatable was created or deleted.
      • Add a public Eval() function for indexer
  4. Node
    • Bug Fixes
      • Disable networking on devmode
  5. Metrics
    • Bug Fix
      • Remove Gauge timeout
  6. Tests
    • Enhancements
      • Added test partitioning to long-running tests
      • Add report line about txn pool fullness
      • Add codec_tester
    • Bug Fixes
      • fix TestVoteAggregatorBundles
  7. Other
    • New Features
      • Add builds, build tests, and integrations tests in CircleCI.
    • Enhancements
      • Update our feature_request.md template for new Issues
      • Enable ineffassign linter
      • Remove old msgp 1.1.47 code from go.mod/go.sum
      • Implement partitiontest_linter
      • Update systemd-steup.sh to install system.json

Protocol Upgrade

This release does not contain a protocol upgrade.

Additional Resources

tolikzinovyev and others added 27 commits July 20, 2021 09:36
Add a comment about deleted accounts in AccountDeltas
The current code would not pass the `DisableNetworking` flag to the network package. This could be worked around by adding the `DisableNetworking` to the `config.json` file, or with this fix.
The [ineffassign](https://github.com/gordonklaus/ineffassign) linter is in the default set of linters enabled by golangci-lint but wasn't added in #2523 because it was reporting issues.

It's also one of the least objectionable linters; ineffectual assignments are rarely intentional and can point out bugs related to assumptions that a variable assignment had some effect.

There were various fixes here but I'm not sure if all the changes to remove or fix ineffectual assignments were the right ones.
CircleCI VMs come pre-installed with homebrew and some of the taps and packages we need already set up, so skipping running update and tap and install for those pre-existing assets reduces each job by ~6 minutes each (x 4 jobs).
While working on the agreement package, I noticed the wrong messageEvent type was being used in TestVoteAggregatorBundles (voteVerified instead of a bundleVerified). This leads voteAggregator to use filterVote instead of filterBundle, and read the empty `messageEvent.Input.Vote` value (with round/period/step of 0/0/0) rather than the value of `messageEvent.Input.Bundle` that has the correct RPS and bundle of votes. This leads the events to be thrown away as from an old round instead of being processed by dispatch.
Remove msgp 1.1.47 from go.mod/go.sum files
As #1699 demonstrates, api v2 uses `JSONHandle` that incorrectly encodes maps with numeric fields. Switching to `JSONStrictHandle` fixes the issue since it was specially created for this purpose.
Fix for updating an application with extra program pages
There is now a single package for both centos 7 & 8.
Add report line about txn pool fullness.
`txnpool({lowest reading}, {min(node mean txn pool size)}, {mean(node mean txnpool size)}, {max(node mean txnpool size)}, {highest reading})`

For a test running across 20 nodes, each node has a `node mean txn pool size` across a 20 minute test time. The above line reports the min/avg/max of those txn pool average sizes, and also the lowest and highest txn pool size seen at any moment.
This PR adds two opcodes.
cover: "remove top of stack, and place it down the stack such that N elements are above it",
uncover: "remove the value at depth N in the stack and shift above items down so the Nth deep value is on top of the stack"
Gauge that didn't change used to disappear from results; this could make a non-zero value appear zero, confusing metrics.
gaugeCommon.go split was confusing, merge back into gauge.go
#2645)



Since #2527, when you run msgp-generated tests that call `protocol.RunEncodingTest` from a cwd that doesn't contain "go-algorand" in the name and with GOPATH not set, the test may fail due to `//msgp:allocbound` not being read from the source, leading to "msgp: length overflow" errors (test data exceeding the allocbound).
Parameterize no_output_timeout and -short in the general commands on the circle config file to reduce duplicate code.
Add partition to daemon/algod/api/server/router_test.go
Right now a system.json file is not created when setting up systemd through the setup-systemd.sh script. Therefore, users aren't letting their nodes know that the algod process will be managed with systemd. This change modifies the systemd configuration file to create the system.json file in the data directory.
Add a public `Eval()` function in ledger that Indexer can use. The function accepts a custom protocol config so that Indexer can override it to always get asset close amounts, as opposed to only when the protocol supports it.

Closes https://github.com/algorand/go-algorand-internal/issues/1211.
Delete `Balances.PutWithCreatable()` and add new functions that notify the COW that a creatable was created or deleted. Coming up next is similar two functions for asset/application local state, needed by indexer.
@codecov-commenter
Copy link

codecov-commenter commented Jul 30, 2021

Codecov Report

Merging #2670 (a35256c) into rel/beta (7e09c41) will increase coverage by 0.05%.
The diff coverage is 61.00%.

Impacted file tree graph

@@             Coverage Diff              @@
##           rel/beta    #2670      +/-   ##
============================================
+ Coverage     46.97%   47.02%   +0.05%     
============================================
  Files           348      350       +2     
  Lines         55715    55832     +117     
============================================
+ Hits          26170    26255      +85     
- Misses        26604    26625      +21     
- Partials       2941     2952      +11     
Impacted Files Coverage Δ
catchup/service.go 69.35% <0.00%> (+0.34%) ⬆️
cmd/goal/account.go 14.78% <ø> (+0.04%) ⬆️
cmd/goal/node.go 10.51% <0.00%> (ø)
cmd/tealdbg/localLedger.go 58.57% <0.00%> (-1.73%) ⬇️
config/version.go 9.09% <ø> (ø)
daemon/algod/api/server/v2/handlers.go 0.00% <0.00%> (ø)
daemon/algod/api/server/v2/utils.go 16.81% <0.00%> (ø)
data/transactions/logic/doc.go 82.75% <ø> (ø)
data/transactions/logic/opcodes.go 96.00% <ø> (-4.00%) ⬇️
ledger/acctupdates.go 62.38% <ø> (+0.46%) ⬆️
... and 37 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 7e09c41...a35256c. Read the comment docs.

@algobarb algobarb self-assigned this Jul 30, 2021
@algobarb algobarb requested a review from tsachiherman July 30, 2021 20:29
@algobarb algobarb marked this pull request as ready for review July 30, 2021 20:29
@algojohnlee algojohnlee merged commit de84e90 into algorand:rel/beta Aug 2, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.