Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

More changeset/view typing #14872

Draft
wants to merge 2 commits into
base: develop
Choose a base branch
from
Draft

More changeset/view typing #14872

wants to merge 2 commits into from

Conversation

connorwstein
Copy link
Contributor

Requires

Resolves

Copy link
Contributor

github-actions bot commented Oct 21, 2024

AER Report: CI Core

aer_workflow , commit , Clean Go Tidy & Generate , Detect Changes , lint , Core Tests (go_core_tests) , Core Tests (go_core_ccip_deployment_tests) , Core Tests (go_core_race_tests) , Core Tests (go_core_fuzz) , SonarQube Scan , Flakey Test Detection

1. CSA key does not exist:go_core_ccip_deployment_tests

Source of Error:
2024-10-21T21:42:20.913Z	ERROR	chainlink/application.go:692	[Feeds Service] Failed to start CSA key does not exist	{"version": "unset@unset"}
2024-10-21T21:42:20.944Z	ERROR	chainlink/application.go:692	[Feeds Service] Failed to start CSA key does not exist	{"version": "unset@unset"}
2024-10-21T21:42:21.010Z	ERROR	chainlink/application.go:692	[Feeds Service] Failed to start CSA key does not exist	{"version": "unset@unset"}

Why: The error indicates that the Feeds Service failed to start because the CSA (Chainlink Service Agreement) key does not exist. This key is essential for the service to operate correctly.

Suggested fix: Ensure that the CSA key is correctly generated and available in the environment where the service is being started. Verify the key management and loading process.

2. rmn home address not found:go_core_ccip_deployment_tests

Source of Error:
2024-10-21T21:42:21.064Z	ERROR	changeset/initial_deploy.go:21	Failed to deploy CCIP contracts	{"version": "unset@unset", "err": "rmn home address not found: chain selector 789068866484373046: chain not found", "addresses": {"AddressesByChain":{}}}

Why: The error indicates that the deployment of CCIP contracts failed because the RMN (Remote Management Node) home address was not found for the specified chain selector. This suggests that the chain configuration is missing or incorrect.

Suggested fix: Verify that the chain configuration is correctly set up and that the RMN home address is specified for the chain selector 789068866484373046. Ensure that all necessary chain details are provided.

3. Unable to get current block:go_core_ccip_deployment_tests

Source of Error:
2024-10-21T21:42:21.065Z	ERROR	EVM.90000003.LogPoller	logpoller/log_poller.go:1049	Unable to get current block	{"version": "unset@unset", "err": "Unable to read latestBlockNumber currentBlock saved", "errVerbose": "Unable to read latestBlockNumber currentBlock saved\ngithub.com/smartcontractkit/chainlink/v2/core/chains/evm/logpoller.(*logPoller).getCurrentBlockMaybeHandleReorg\n\t/home/runner/work/chainlink/chainlink/core/chains/evm/logpoller/log_poller.go:952\ngithub.com/smartcontractkit/chainlink/v2/core/chains/evm/logpoller.(*logPoller).PollAndSaveLogs\n\t/home/runner/work/chainlink/chainlink/core/chains/evm/logpoller/log_poller.go:1045\ngithub.com/smartcontractkit/chainlink/v2/core/chains/evm/logpoller.(*logPoller).run\n\t/home/runner/work/chainlink/chainlink/core/chains/evm/logpoller/log_poller.go:650\nruntime.goexit\n\t/opt/hostedtoolcache/go/1.22.8/x64/src/runtime/asm_amd64.s:1695"}

Why: The error indicates that the LogPoller was unable to read the latest block number, possibly due to a context cancellation or timeout.

Suggested fix: Investigate the context management and ensure that the context is not prematurely canceled. Check for any network issues or timeouts that might be affecting the block reading process.

4. Error occurred while handling tx queue:go_core_ccip_deployment_tests

Source of Error:
2024-10-21T21:42:21.066Z	ERROR	EVM.90000003.Txm.Broadcaster	txmgr/broadcaster.go:323	Error occurred while handling tx queue in ProcessUnstartedTxs	{"version": "unset@unset", "err": "processUnstartedTxs failed on handleAnyInProgressTx: handleAnyInProgressTx failed: getInProgressEthTx failed: context canceled"}
2024-10-21T21:42:21.067Z	ERROR	EVM.90000003.Txm.Broadcaster	txmgr/broadcaster.go:323	Error occurred while handling tx queue in ProcessUnstartedTxs	{"version": "unset@unset", "err": "processUnstartedTxs failed on handleAnyInProgressTx: handleAnyInProgressTx failed: getInProgressEthTx failed: context canceled"}

Why: The error indicates that there was an issue processing unstarted transactions in the transaction manager's broadcaster due to a context cancellation.

Suggested fix: Ensure that the context used for transaction processing is valid and not canceled prematurely. Review the transaction handling logic to handle context cancellations gracefully.

AER Report: Operator UI CI ran successfully ✅

aer_workflow , commit

"github.com/smartcontractkit/ccip-owner-contracts/pkg/proposal/timelock"
)

// Services as input to CI/Async tasks
// Changeset represents a set of changes to be made to an environment.
Copy link
Contributor Author

@connorwstein connorwstein Oct 21, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Relevant part - enforcing a signature for changesets and state viewing @krehermann @cgruber

@cl-sonarqube-production
Copy link

@@ -7,8 +7,14 @@ import (
ccipdeployment "github.com/smartcontractkit/chainlink/integration-tests/deployment/ccip"
)

var _ deployment.Changeset = CapRegChangeSet
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure what this is doing, other than catching a compile error if CapRegChangeSet isn't a ChangeSet.

// or existing environment specific contract addresses.
// Its recommended that changesets operate on a small number of chains (e.g. 1-3)
// to reduce the risk of partial failures.
type Changeset func(e Environment, config interface{}) (ChangesetOutput, error)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Having an explicit Changeset (and view state) notion makes sense to me.

I'm trying to roll around the idea that it's a function-type, rather than an interface. You can pull in an interface, but I don't see where we're forcing correct types, except in the unused var, which looks like a convention we could forget, rather than a type we have to conform to to even use the system. Or is there something I'm missing here? Is there a place where we consume (formally, so the compiler can enforce it) the ViewState and Changeset functions?

I guess this is fine in the sense that there isn't necessarily any reason for a struct with any particular data, if these are pure functions anyway, but is there any functionality that attaches to a change set, any metadata about the changeset, that we envision?

I guess it's not terribly hard to fix later, I'm just trying to get a sense of where we want it to go.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants