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

Conflicting --validators-keystore-locking-enabled=false has Teku complain about --ee-endpoint #6146

Closed
yorickdowne opened this issue Aug 31, 2022 · 5 comments · Fixed by #6556
Assignees

Comments

@yorickdowne
Copy link

yorickdowne commented Aug 31, 2022

Description

When adding --validators-keystore-locking-enabled=false to Teku startup parameters, while mistakenly not removing --validators-keystore-locking-enabled=true, it complains that FATAL - Invalid configuration. --ee-endpoint parameter is mandatory when Bellatrix milestone is enabled

Which is unexpected to say the least. A more fitting error message about conflicting parameters would be helpful.

Command line as shown by ps -aux | grep teku:

tech.pegasys.teku.Teku --data-path=/var/lib/teku --log-destination=CONSOLE --network=goerli --ee-endpoint=http://execution:8551 --ee-jwt-secret-file /var/lib/teku/ee-secret/jwtsecret --p2p-port=9020 --p2p-peer-upper-bound=100 --p2p-peer-lower-bound=64 --validators-keystore-locking-enabled=true --validator-keys=/var/lib/teku/validator-keys:/var/lib/teku/validator-passwords --validators-graffiti=🐼eth-docker🐼 --logging=info --rest-api-host-allowlist=* --rest-api-enabled=true --rest-api-interface=0.0.0.0 --rest-api-port=5052 --metrics-enabled=true --metrics-port=8008 --metrics-interface=0.0.0.0 --metrics-host-allowlist=* --validator-api-enabled=true --validator-api-interface=0.0.0.0 --validator-api-port=7500 --validator-api-host-allowlist=* --validator-api-cors-origins=* --validator-api-keystore-file=/var/lib/teku/teku-keyapi.keystore --validator-api-keystore-password-file=/var/lib/teku/teku-keyapi.password --validators-proposer-default-fee-recipient=0x9a1431df76aBF98cbAe0865927a5Ca23d46C3F04 --validators-keystore-locking-enabled=false --validators-builder-registration-default-enabled --builder-endpoint=http://mev-boost:18550 --metrics-publish-endpoint=https://beaconcha.in/api/v1/client/metrics?apikey=SOSECRET&machine=fnurble

Versions (Add all that apply)

  • Software version: teku/v22.8.2/linux-x86_64/-eclipseadoptium-openjdk64bitservervm-java-17
@yorickdowne yorickdowne changed the title Adding --validators-keystore-locking-enabled=false has Teku complain about --ee-endpoint Conflicting --validators-keystore-locking-enabled=false has Teku complain about --ee-endpoint Aug 31, 2022
@ajsutton
Copy link
Contributor

ajsutton commented Sep 1, 2022

hmm, that definitely is unexpected. It doesn't happen with a simpler command line (eg teku --network goerli --ee-endpoint http://localhost:8551 --validators-keystore-locking-enabled=false is totally fine), but I can reproduce it with that full command line.

I think something is going wrong because both --validators-keystore-locking-enabled=true and --validators-keystore-locking-enabled=false is being specified. I'm not entirely sure how that's causing the issue but it gets passed the original error if I remove it. It still fails to start for me because I obviously don't have all the same files and validator keys etc, but I suspect not having the value duplicated will get you running again.

We'll need to dig further to work out exactly why we're getting such an odd error because of that - the last version of the option should just take precedence.

@ajsutton
Copy link
Contributor

ajsutton commented Sep 1, 2022

Simplest version I can find that reproduces this is:

teku \
  --ee-endpoint=http://execution:8551 \
  --validators-keystore-locking-enabled=true \
  --validators-keystore-locking-enabled=false \
  --builder-endpoint=http://mev-boost:18550

@ajsutton
Copy link
Contributor

ajsutton commented Sep 1, 2022

I think it's somehow related to the fact that --ee-endpoint and --builder-endpoint come from the same arg group and the two --validators-keystore-locking-enabled options are in between them. I'm not sure why arg groups are doing this, but this is the second unexpected problem we've had because of arg groups and all they're really buying us is the separate sections in the help text output so we may just want to ditch them.

@tbenr
Copy link
Contributor

tbenr commented Sep 1, 2022

I tried approaching it by adding another pass which sorts the provided params by matched group, but it's not that straight forward...

@rolfyone
Copy link
Contributor

Basically we need to stop using arggroups, and still get help text out in a nice format.
We could create a custom help printer potentially, also potentially could change picocli to allow us to specify headings on mixins or something. The test code in the picocli ticket shows pretty well the problem.

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 a pull request may close this issue.

4 participants