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

Update hibernate core #7451

Open
wants to merge 1,021 commits into
base: 3.5.x
Choose a base branch
from
Open

Update hibernate core #7451

wants to merge 1,021 commits into from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented May 21, 2022

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
org.hibernate:hibernate-validator (source) 6.1.6.Final -> 6.2.5.Final age adoption passing confidence
org.hibernate:hibernate-core (source) 5.5.9.Final -> 5.6.15.Final age adoption passing confidence

Release Notes

hibernate/hibernate-validator

v6.2.5.Final

Compare Source

v6.2.4.Final

Compare Source

v6.2.3.Final

Compare Source

v6.2.2.Final

Compare Source

v6.2.1.Final

Compare Source

v6.1.7.Final

Compare Source

hibernate/hibernate-orm

v5.6.15.Final

Compare Source

v5.6.14.Final

Compare Source

v5.6.13.Final

Compare Source

v5.6.12.Final

Compare Source

v5.6.11.Final

Compare Source

v5.6.10.Final

Compare Source

v5.6.9.Final

Compare Source

v5.6.8.Final

Compare Source

v5.6.7.Final

Compare Source

v5.6.6.Final

Compare Source

v5.6.5.Final

Compare Source

v5.6.4.Final

Compare Source

v5.6.3.Final

Compare Source

v5.6.2.Final

Compare Source

v5.6.1.Final

Compare Source

v5.6.0.Final

Compare Source


Configuration

📅 Schedule: Branch creation - "every weekend" in timezone Europe/Prague, Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate. View repository job log here.

@sonarqubecloud
Copy link

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

No Coverage information No Coverage information
No Duplication information No Duplication information

@renovate renovate bot force-pushed the renovate/hibernate-core branch 7 times, most recently from 7d530df to 840f80e Compare July 12, 2022 15:18
@renovate renovate bot force-pushed the renovate/hibernate-core branch 3 times, most recently from f933cc5 to a9cc52f Compare July 20, 2022 11:16
@renovate renovate bot force-pushed the renovate/hibernate-core branch 3 times, most recently from 61d5872 to b5cbec8 Compare July 26, 2022 09:45
@renovate renovate bot changed the title chore(deps): update hibernate core fix(deps): update hibernate core Jul 26, 2022
@renovate renovate bot force-pushed the renovate/hibernate-core branch 14 times, most recently from 519bff4 to 9bb1570 Compare August 1, 2022 09:33
graemerocher and others added 27 commits April 20, 2023 06:43
)

* tck: Write length and first 10 bytes if bytearray assertion fails

* Ignore flaky test

* Ignore flaky test

* Kick the CLA check which was asleep
#9128)

This PR replaces the HttpStreamsServerHandler, HandlerPublisher, HttpRequestDecoder and HttpResponseDecoder by a new PipeliningServerHandler. PipeliningServerHandler directly receives netty HttpMessages, combines them into a FullHttpRequest or StreamedHttpRequest, and passes them on to a handler. It also takes care of pipelining, so that the responses for different requests are sent in the same order those requests came in, which fixes some old bugs in RoutingInboundHandler.

PipeliningServerHandler optimizes the read and write operations. Concurrent reads are handled safely, removing the need for the FlowControlHandler even in the streaming case. Flushes are delayed until readComplete, so that multiple requests in the same TCP packet can be responded to in a single TCP packet as well.

The biggest performance win comes from message aggregation, however. While PipeliningServerHandler can handle a FullHttpRequest from FULL_CONTENT, it can also do some basic aggregation on its own. Small requests commonly have the HttpRequest and HttpContent come in in the same read call. PipeliningServerHandler will "hold back" the HttpRequest until readComplete to merge it with the HttpContent if available, into a FullHttpRequest. This gives a performance benefit downstream, it's actually ~600ns faster in FullHttpStackBenchmark by default than 4.0.x with FULL_CONTENT.

The big advantage over FULL_CONTENT is that this aggregation is always enabled and is not a compatibility issue. Large requests will still safely fall back to StreamedHttpRequest. FULL_CONTENT is still useful for customizers that want to observe the full HTTP message, however, and may give some perf benefit for medium-sized request bodies.

The reason this PR is so big is that now, many small requests are processed using the FullHttpRequest APIs. There are many subtle differences in this code path. For example, form items are parsed immediately and then passed to FormRouteCompleter, where previously parsing and processing would be interleaved (the reactive code path). This exposed some bugs because it moves some `if (refCnt > 0) release` calls to before the processing.
This fails in 4.0.0 as the response is OK
This got dropped in the merge by mistake...
Merge 3.9.x, fix TCK test and document breakage
* Use StringIntMap for propertyIndexOf
This patch replaces the propertyIndexOf method generated for each introspection with an optimized String->int map. For cases where propertyIndexOf may be called for many different types, this avoids a megamorphic call site (benchmark about 5x as fast). On the other hand, for cases where propertyIndexOf is only called with one or two different introspections at the same call site, this is slightly slower (benchmark about 0.65x as fast).

imo this tradeoff is acceptable, because the speedup for megamorphic case far exceeds the slowdown for the monomorphic case. Monomorphic call sites should also be less "hot" in practical code, so performance of propertyIndexOf matters less. Finally, the absolute performance difference is quite small for the monomorphic case, in the benchmark it's 70ns so roughly 1.5ns per item, while for the megamorphic case it's roughly 30ns per item.

Benchmark results, before this change:
Benchmark                    (itemCount)  (typeCount)  Mode  Cnt    Score   Error  Units
PropertyIndexBenchmark.test           50            1  avgt    5  115.205 ± 1.016  ns/op
PropertyIndexBenchmark.test           50            2  avgt    5  118.745 ± 0.106  ns/op
PropertyIndexBenchmark.test           50            3  avgt    5  832.091 ± 8.271  ns/op

After this change:
Benchmark                    (itemCount)  (typeCount)  Mode  Cnt    Score   Error  Units
PropertyIndexBenchmark.test           50            1  avgt    5  183.315 ± 0.435  ns/op
PropertyIndexBenchmark.test           50            2  avgt    5  162.453 ± 0.881  ns/op
PropertyIndexBenchmark.test           50            3  avgt    5  162.690 ± 1.004  ns/op

* Use array instead of list

---------

Co-authored-by: Denis Stepanov <[email protected]>
We had to disable Predictive Test Selection and Test Distribution for Kotest tests as Kotest was unsupported.

As of micronaut-test-4.0.0-M2, we use a supported version of Kotest 5, so this pr reverses

#8612

To re-enable these Gradle features
Apparently this causes some issues in some environements, probably
an ordering problem, but they should always be aligned in any case.
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
@renovate renovate bot force-pushed the renovate/hibernate-core branch from 1cffbaa to 81c9f5c Compare April 30, 2023 08:04
@renovate renovate bot changed the title fix(deps): update hibernate core Update hibernate core Apr 30, 2023
@CLAassistant
Copy link

CLAassistant commented Feb 7, 2024

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
7 out of 8 committers have signed the CLA.

✅ dstepanov
✅ timyates
✅ graemerocher
✅ yawkat
✅ andriy-dmytruk
✅ sdelamo
✅ melix
❌ GavrilovSV
You have signed the CLA already but the status is still pending? Let us recheck it.

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

Successfully merging this pull request may close these issues.