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

[Merged by Bors] - Downgrade Geth to v1.10.20 in EE integration tests #3382

Closed
wants to merge 4 commits into from

Conversation

paulhauner
Copy link
Member

@paulhauner paulhauner commented Jul 28, 2022

Issue Addressed

NA

Proposed Changes

The execution integration tests have started failing since Geth updated to v1.10.21. More details here: ethereum/go-ethereum#25427 (comment)

This PR pins our version at v1.10.20.

Additional Info

NA

@paulhauner paulhauner added the work-in-progress PR is a work-in-progress label Jul 28, 2022
@paulhauner
Copy link
Member Author

After reconsidering this, I'm not sure this is the correct behaviour from Geth. I've raised an issue here: ethereum/go-ethereum#25427

@paulhauner
Copy link
Member Author

paulhauner commented Jul 28, 2022

It turns out there was more to this issue than I originally thought. See ethereum/go-ethereum#25427 (comment).

I'm going to try the tests on Geth v1.10.20 now.

@paulhauner paulhauner changed the title Allow ACCEPTED payload after a SYNCING head Downgrade Geth to v1.10.20 in EE integration tests Jul 28, 2022
Copy link
Member

@michaelsproul michaelsproul left a comment

Choose a reason for hiding this comment

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

Looks good, shall we batch with #3380 and maybe #3370?

@paulhauner paulhauner marked this pull request as ready for review July 28, 2022 05:11
@paulhauner paulhauner added ready-for-merge This PR is ready to merge. and removed work-in-progress PR is a work-in-progress labels Jul 28, 2022
@paulhauner
Copy link
Member Author

bors r+

bors bot pushed a commit that referenced this pull request Jul 28, 2022
## Issue Addressed

NA

## Proposed Changes

The execution integration tests have started failing since Geth updated to v1.10.21. More details here: ethereum/go-ethereum#25427 (comment)

This PR pins our version at v1.10.20.

## Additional Info

NA
@karalabe
Copy link

Hey all, the new behavior is correct (though it should have returned SYNCING), just changed from the previous incorrect one.

Geth by default starts in snap sync mode. In snap sync, the node must finish a sync cycle first before it accepts blocks. The reason is that snap sync goes around all block validation pathways and writes stuff directly to the database, so it cannot allow some process to inject something conflicting out of band. I.e. if Geth is asked to snap sync, it will deny importing a payload on the engine API until snap sync finishes.

You should start geth with --syncmode=full if you want to test feeding Geth blocks from #1 onward via the engine API.

@bors
Copy link

bors bot commented Jul 28, 2022

Build failed (retrying...):

@karalabe
Copy link

Thinking about it a bit more, I think ACCEPTED is the correct response (just the warning message is wrong).

The reasoning is that if I have the parent block, but not it's state (e.g. the beacon client gives me an old block because it's resyncing), then the expected response is ACCEPTED; because the block seems right and we store it for potentially doing a fork choice update, but we don't act upon the payload.

Another scenario for ACCEPTED is if I'm currently syncing (full sync via the beacon client) and the beacon client gives me a side chain payload (missing parent). In that case I will save the payload and ACCEPT it, but I will not act upon it until the FCU.

I the same vein, getting a payload whilst in snap sync mode should behave kind of similarly: ACCEPT the payload and enable FCU-ing to it, but not really importing it since the chain is not "ready" for it.

@michaelsproul
Copy link
Member

will merge this for now just to unblock CI

bors r-

@bors
Copy link

bors bot commented Jul 28, 2022

Canceled.

@michaelsproul
Copy link
Member

bors r+

bors bot pushed a commit that referenced this pull request Jul 28, 2022
## Issue Addressed

NA

## Proposed Changes

The execution integration tests have started failing since Geth updated to v1.10.21. More details here: ethereum/go-ethereum#25427 (comment)

This PR pins our version at v1.10.20.

## Additional Info

NA
@bors
Copy link

bors bot commented Jul 28, 2022

Build failed (retrying...):

bors bot pushed a commit that referenced this pull request Jul 28, 2022
## Issue Addressed

NA

## Proposed Changes

The execution integration tests have started failing since Geth updated to v1.10.21. More details here: ethereum/go-ethereum#25427 (comment)

This PR pins our version at v1.10.20.

## Additional Info

NA
@bors
Copy link

bors bot commented Jul 28, 2022

This PR was included in a batch that was canceled, it will be automatically retried

@paulhauner
Copy link
Member Author

bors r-

@bors
Copy link

bors bot commented Jul 28, 2022

Canceled.

@paulhauner
Copy link
Member Author

bors r+

bors bot pushed a commit that referenced this pull request Jul 28, 2022
## Issue Addressed

NA

## Proposed Changes

The execution integration tests have started failing since Geth updated to v1.10.21. More details here: ethereum/go-ethereum#25427 (comment)

This PR pins our version at v1.10.20.

## Additional Info

NA
@bors
Copy link

bors bot commented Jul 28, 2022

Build failed (retrying...):

bors bot pushed a commit that referenced this pull request Jul 28, 2022
## Issue Addressed

NA

## Proposed Changes

The execution integration tests have started failing since Geth updated to v1.10.21. More details here: ethereum/go-ethereum#25427 (comment)

This PR pins our version at v1.10.20.

## Additional Info

NA
@bors bors bot changed the title Downgrade Geth to v1.10.20 in EE integration tests [Merged by Bors] - Downgrade Geth to v1.10.20 in EE integration tests Jul 28, 2022
@bors bors bot closed this Jul 28, 2022
@paulhauner
Copy link
Member Author

Thinking about it a bit more, I think ACCEPTED is the correct response (just the warning message is wrong).

This also seems reasonable to me. The semantics in the engine API are a little odd, it could be argued that a CL issuing a fcU to block A and then EL responding with a request that declares that block A is not on the canonical chain is incorrect. However, it could also be argued that a CL should expect a no-op when SYNCING is returned to fcU. I think the latter is most realistic, therefore Geth is behaving well and I was incorrect in my original determination.

paulhauner added a commit to paulhauner/lighthouse that referenced this pull request Aug 1, 2022
bors bot pushed a commit that referenced this pull request Aug 3, 2022
## Issue Addressed

NA

## Proposed Changes

This PR reverts #3382 and adds the `--syncmode=full` as described here: #3382 (comment)

## Additional Info

- Blocked on #3392
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ready-for-merge This PR is ready to merge.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants