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

Merge 4.6 into 4.7 #11172

Merged
merged 12 commits into from
Sep 10, 2024
Merged

Merge 4.6 into 4.7 #11172

merged 12 commits into from
Sep 10, 2024

Conversation

dstepanov
Copy link
Contributor

!!! Use merge not squash

yawkat and others added 12 commits September 6, 2024 15:45
Currently if a class is postponed the introspection is still generated. This means that in the next round the introspection is recreated and an exception is thrown because there was an attempt to rewrite the some class.

Without this change it is impossible to use @wither and @introspected together.

Unclear how to create a test for it here. Will have to upgrade SourceGen and add a test there.

---------

Co-authored-by: Denis Stepanov <[email protected]>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
The compile time metadata should store references to strings rather than actual enum values to avoid initialising user types at build time in Graal. This changes the code to store string values instead of the enum values.
…ails (#11161)

When netty reports a decode failure, we run the status routes and error response processor. If *that* fails, we would run onError. onError will run filters which can occlude the error because the filters will not see the full headers (decoding failed after all) and may e.g. fail authentication.

This change removes the onError fallback from the decode failure branch.
If a subscriber to a split streaming body writes a response when reading data from the body, this can ultimately lead to another split of the same body being closed. Closing the body in turn is a subscribe operation, which must not happen during a read in a reentrant fashion. This would lead to a failure in the assertion that guards against such reentrant operations (`assert !working;`), and various downstream issues like buffer leaks. In particular, `MaxRequestSizeSpec` was affected by this bug occasionally.

This patch replaces the use of EventLoopFlow with more suitable code. In particular, EventLoopFlow does not support reentrant or concurrent calls, it only ensures serialization. The new logic supports reentrant or concurrent calls and still ensures serialization where it matters.

The new test does not work yet due to netty/netty#13730 . This PR is a draft until that patch is released.
# Conflicts:
#	core/src/main/java/io/micronaut/core/io/service/ServiceScanner.java
#	gradle.properties
Copy link

sonarcloud bot commented Sep 10, 2024

Quality Gate Failed Quality Gate failed

Failed conditions
65.2% Coverage on New Code (required ≥ 70%)
1 New Blocker Issues (required ≤ 0)
1 New Bugs (required ≤ 0)
1 New Critical Issues (required ≤ 0)

See analysis details on SonarCloud

Catch issues before they fail your Quality Gate with our IDE extension SonarLint

@graemerocher graemerocher merged commit c62ed2c into 4.7.x Sep 10, 2024
20 of 21 checks passed
@graemerocher graemerocher deleted the merge_4_6 branch September 10, 2024 12:07
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.

4 participants