Skip to content

Fail fast on invalid entitlement patches #128071

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

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

prdoyle
Copy link
Contributor

@prdoyle prdoyle commented May 14, 2025

We've decided we'd rather crash at startup if an invalid patch is specified than ignore the patch and continue.

@prdoyle prdoyle self-assigned this May 14, 2025
@prdoyle prdoyle requested a review from a team as a code owner May 14, 2025 13:45
@prdoyle prdoyle added auto-backport Automatically create backport pull requests when merged v8.19.0 v9.1.0 :Core/Infra/Entitlements Entitlements infrastructure v8.18.2 v9.0.2 labels May 14, 2025
@elasticsearchmachine
Copy link
Collaborator

Pinging @elastic/es-core-infra (Team:Core/Infra)

@elasticsearchmachine elasticsearchmachine added the Team:Core/Infra Meta label for core/infra team label May 14, 2025
} catch (PolicyParserException e) {
// This is more specific and informative than a generalized IllegalStateException
throw e;
} catch (IOException | RuntimeException e) {
Copy link
Member

Choose a reason for hiding this comment

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

Is the RuntimeException necessary to catch? Could we just convert IOException to UncheckedIOException and leave the rest to propagate on their own? There is something to be said for wrapping any exception, though (not just these) since it includes the layer name? Does the PolicyParserException include that?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

It seems user-friendly to call out, loud and clear, that the patch they're applying is the cause of the problem, and I felt that PolicyParserException was already clear on that point. PolicyParserException may not name the layer, but it does describe the exact problem in detail.

I caught RuntimeException only because the set IOException | RuntimeException covers everything (besides Error) that this method could possibly throw. Happy to tweak it.

Copy link
Member

Choose a reason for hiding this comment

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

Why not be very clear and convert the old log message (that happened for all Exception) to a runtime exception? The cause will still be included, so the PolicyParserException would still be visible.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

That's what I did. The parts of the old log message I omitted are no longer true.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Are you saying you don't want me to peel off PolicyParseException? Sure, that's an easy change.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
auto-backport Automatically create backport pull requests when merged :Core/Infra/Entitlements Entitlements infrastructure >non-issue Team:Core/Infra Meta label for core/infra team v8.18.2 v8.19.0 v9.0.2 v9.1.0
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants