You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Robbie Gemmell (Jira)" <ji...@apache.org> on 2022/06/10 11:37:00 UTC

[jira] [Commented] (ARTEMIS-3305) compatibility tests dont work on Java 16+

    [ https://issues.apache.org/jira/browse/ARTEMIS-3305?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17552704#comment-17552704 ] 

Robbie Gemmell commented on ARTEMIS-3305:
-----------------------------------------

Giving it a run again now on Java 17 the situation seems the same, other than that Groovy has been updated separately already to v4. If the compatibility tests are enabled on Java 16+ (by changing the profile currently disabling the surefire run [[1]|https://github.com/apache/activemq-artemis/blob/2.23.0/tests/compatibility-tests/pom.xml#L773-L792]) then they do progress but with various errors and eventually seeming to get into an ongoing-reconnect scenario where connections are failing reporting a client-server version mismatch, and eventually on to [native] OOM errors etc as well.

Some of these errors may be able to get worked around with opens/exports config in some cases specific causes are identified, but it seems likely many will simply be from inability of something in some [very] old brokers/dependencies to run on JDK16+ at all. For the latter cases, adding some JVM-version-checking assumptions to the tests is probably the route to go, so that those specific tests using affected broker versions can simply be skipped on the newer JVMs those bits cant be run on.

The memory issues seem likely to be from the ongoing/previous failures as well...but in considering it further, its probably also relates more generally to the nature of the tests themselves. They do seem to need a lot of memory for what little they actually really do, with usage constantly increasing to around 6GB by the end (when running on JDK11). Perhaps because it is loading lots of different dependencies from all the broker versions in their own classloaders, e.g including lots of different Netty uses then ending up with their own memory pooling etc? 

[1] https://github.com/apache/activemq-artemis/blob/2.23.0/tests/compatibility-tests/pom.xml#L773-L792

> compatibility tests dont work on Java 16+
> -----------------------------------------
>
>                 Key: ARTEMIS-3305
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-3305
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: Tests
>    Affects Versions: 2.18.0
>            Reporter: Robbie Gemmell
>            Assignee: Clebert Suconic
>            Priority: Major
>
> ARTEMIS-3296 enabled the build to run on Java 16 and got the PR build passing there. It disabled running the tests in the compatibility-tests module to achieve this though.
> In its current state, the tests look to fail primarily due to an older groovy 2.5.x version, however upgrading this to the 3.0.8 release wasnt enough to get things working, with the tests progressing but seeming to get into an infinite-reconnect scenario where connection was failing and reporting a client-server version mismatch, and eventually OOM errors etc as well.
> Work is needed to see whether other changes, such as adding specific module exports, can get the compatibility tests running on Java 16+. Its always possible some of the previous client/server versions they use wont actually run on 16, so perhaps even only a subset can.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)