Hibernate-reactive: сломан на мастере Hibernate ORM

Созданный на 3 авг. 2020  ·  16Комментарии  ·  Источник: hibernate/hibernate-reactive

Hibernate Reactive не работает против текущего мастера Hibernate ORM.

Все тесты терпят неудачу с чем-то вроде:

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)

Причиной, по всей видимости, являются изменения, совершенные 30 июля @yrodiere.

Все 16 Комментарий

Чтобы быть конкретным, я считаю, что проблема была вызвана одним из этих коммитов:

Хорошо, это моя вина. Чем я могу помочь вам?

Хорошо, это моя вина. Чем я могу помочь вам?

Нет, это не ваша вина, это вина того, что у нас нет механизма ни в одном из проектов, чтобы обнаружить, когда что-то подобное происходит. Мне повезло только по чистой случайности, и я заметил это быстро, а не через несколько недель, когда отследить причину поломки было бы намного сложнее.

Итак, нам нужно будет придумать какой-то способ автоматически находить подобные проблемы, и неясно, как лучше всего это делать.

Итак, после тщательного просмотра коммитов, я думаю, что все, что нам нужно сделать, это скопировать эти изменения в наш код задания копирования / вставки. Если я правильно понимаю, нам просто нужно знать, как интерпретировать эти нули в списке гидратированных объектов.

Итак, нам нужно будет придумать какой-то способ автоматически находить подобные проблемы, и неясно, как лучше всего это делать.

Для начала мы можем создать задание, которое будет тестироваться с последним снимком состояния ORM.

Для начала мы можем создать задание, которое будет тестироваться с последним снимком состояния ORM.

Конечно, но есть ли способ заставить его работать по расписанию? У меня сложилось (возможно, ошибочное) впечатление, что мы не можем этого сделать.

Итак, нам нужно будет придумать какой-то способ автоматически находить подобные проблемы, и неясно, как лучше всего это делать.

Для начала мы можем создать задание, которое будет тестироваться с последним снимком состояния ORM.

У меня есть нечто подобное для Hibernate Search. Каждый раз, когда сборка ORM завершается, я запускаю сборку Hibernate Search, в которой используется последний моментальный снимок Hibernate ORM. Однако я могу это сделать только потому, что использую задания Jenkins, и они позволяют запускать задание после завершения другого задания.

У меня есть нечто подобное для Hibernate Search. Каждый раз, когда сборка ORM завершается, я запускаю сборку Hibernate Search, в которой используется последний моментальный снимок Hibernate ORM. Однако я могу это сделать только потому, что использую задания Jenkins, и они позволяют запускать задание после завершения другого задания.

Это было бы идеально, если бы у нас здесь еще нет Дженкинса: - /

Я собираюсь создать его.

Я собираюсь создать его.

Ок, отлично.

Проблема исправлена ​​в № 311.

@Sanne, когда

привет @gavinking , микро-релизы ORM запускаются по запросу. Мы сделаем одно завтра, если это срочно, или мы можем подождать дополнительных PR, если вам так удобнее. Просто дайте мне знать, что вы предпочитаете.

Правильно ли я понимаю, что ничего кроме https://github.com/hibernate/hibernate-orm/pull/3484 не требуется?

привет @gavinking , микро-релизы ORM запускаются по запросу. Мы сделаем одно завтра, если это срочно, или мы можем подождать дополнительных PR, если вам так удобнее. Просто дайте мне знать, что вы предпочитаете.

Что ж, я думаю, это не очень срочно, но было бы неплохо иметь возможность объединить # 310 и # 311 и не думать о них.

Так что, конечно, было бы неплохо, если бы мы не придумали что-то еще, что нам нужно.

Правильно ли я понимаю, что ничего кроме https://github.com/hibernate/hibernate-orm/pull/3484 не требуется?

Я считаю, что № 311 полностью решает проблему.

Он доступен сейчас https://in.relation.to//2020/08/10/hibernate-orm-5/

Это доступно сейчас

Отлично, спасибо, тогда сегодня вечером все объединю!

Была ли эта страница полезной?
0 / 5 - 0 рейтинги