Hibernate Reactive doesn't work against current master of Hibernate ORM.
All the tests fail with something like:
Caused by: org.hibernate.AssertionFailure: possible non-threadsafe access to the session
at org.hibernate.reactive.loader.ReactiveResultSetProcessor.initializeEntity(ReactiveResultSetProcessor.java:55)
at org.hibernate.reactive.loader.ReactiveLoaderBasedResultSetProcessor.lambda$reactiveInitializeEntitiesAndCollections$3(ReactiveLoaderBasedResultSetProcessor.java:142)
at org.hibernate.reactive.loader.ReactiveLoaderBasedResultSetProcessor$$Lambda$364/0000000000000000.apply(Unknown Source)
at java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:995)
The cause appears to be the changes committed on Jul 30 by @yrodiere.
To be specific, I believe it's one of these commits that has caused the problem:
Ok, so it's my fault. How can I help you?
Ok, so it's my fault. How can I help you?
No, it's not your fault, it's the fault of we have no mechanism in either project to detect when something like this happens. It's only by pure chance that I got lucky and noticed this quickly instead of weeks later when tracking down the cause of the breakage would have been much more difficult.
So we're going to need to come up with some way to find problems like this automatically, and it's not clear what's the best way to do that.
So after carefully looking over the commits, I think it looks like all we're going to need to do is replicate those changes over to our copy/paste-job code. If I'm understanding correctly, we just need to know how to interpret these nulls in the list of hydrated objects.
So we're going to need to come up with some way to find problems like this automatically, and it's not clear what's the best way to do that.
To begin with, we can create a JOB that tests with the latest ORM snapshot
To begin with, we can create a JOB that tests with the latest ORM snapshot
Well sure, but is there a way to make it run on a schedule? I had the (perhaps wrong) impression we couldn't do that.
So we're going to need to come up with some way to find problems like this automatically, and it's not clear what's the best way to do that.
To begin with, we can create a JOB that tests with the latest ORM snapshot
I have something similar for Hibernate Search. Every time the ORM build finishes, I run a Hibernate Search build that uses the latest Hibernate ORM snapshot. However, I can only do that because I'm using Jenkins jobs, and they allow triggering a job after another job finishes.
I have something similar for Hibernate Search. Every time the ORM build finishes, I run a Hibernate Search build that uses the latest Hibernate ORM snapshot. However, I can only do that because I'm using Jenkins jobs, and they allow triggering a job after another job finishes.
That would be perfect except we don't have Jenkins here yet :-/
I'm going to create one.
I'm going to create one.
OK great.
The problem is fixed in #311.
@Sanne when is the next release of ORM?
hi @gavinking , micro releases of ORM are triggered on demand. We do one tomorrow if it's urgent, or we can wait for more PRs if that suites you better. Just let me know what's your preference.
Do I understand correctly that nothing else beyond https://github.com/hibernate/hibernate-orm/pull/3484 is required?
hi @gavinking , micro releases of ORM are triggered on demand. We do one tomorrow if it's urgent, or we can wait for more PRs if that suites you better. Just let me know what's your preference.
Well, I guess it's not super-urgent, but it sure would be nice to be able to merge #310 and #311 and not have them on my mind.
So sure, it would be nice, unless we can think of something else we need.
Do I understand correctly that nothing else beyond https://github.com/hibernate/hibernate-orm/pull/3484 is required?
I believe that #311 completely fixes the problem.
It's available now https://in.relation.to//2020/08/10/hibernate-orm-5/
It's available now
Awesome, thanks, I will merge everything tonight then!