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

[WFCORE-7003][WFCORE-7007] In testsuite, do not allow Bootable JAR to start in adm… #6189

Draft
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

yersan
Copy link
Collaborator

@yersan yersan commented Sep 19, 2024

Copy link
Contributor

@bstansberry bstansberry left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@yersan LGTM. We'll see if we need to fix any tests that somehow work. There may be some where admin-only isn't really needed. The existing (before Darran's update) ManagementInterfaceResourcesTestCase is an example of such a test.

@yersan
Copy link
Collaborator Author

yersan commented Sep 19, 2024

@bstansberry yes, there are some need to be fixed indeed

@yersan yersan marked this pull request as draft September 19, 2024 16:26
@bstansberry
Copy link
Contributor

In full WF the only use of these methods is one call in org.wildfly.test.manual.management.ManagementOnlyModeTestCase, and that module doesn't run in bootable jar test profiles. So this should be fine there.

I note this because CI for this PR wouldn't catch any problems in full WF as it doesn't exercise bootable jar there.

@wildfly-ci

This comment was marked as outdated.

@@ -187,6 +187,9 @@ protected void start(PrintStream out) {
CommandBuilder cbuilder = null;
boolean needNormalModeCheck = false;
if (isBootableJar) {
if (this.startMode != StartMode.NORMAL) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jfdenise if this is true, it means 'startMode' is either 'ADMIN_ONLY' or 'SUSPEND'. Is failing the right fix for 'SUSPEND'? Or is it perhaps just that we're not configuring the bootable jar launch for that when we could?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bstansberry , looking at how tests evolved, it appears that some tests start the bootable JAR in adminMode and succeed (no restart of the server). I ran some tests that we are excluding (because of adminMode) and they are passing. I think that the reasoning was: we are not exposing the option to start a bootable JAR in admin mode, so we excluded tests that use admin mode although they could succeed.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jfdenise I am a bit lost because Brian's question was more about starting them in SUSPEND.

So, the problem with the Bootable JAR is not about whether it can be started in admin-only (or suspend), it is more that we do not "expose" those options? What does "expose" mean here? are we talking about it is not documented as a valid option? .... my very naive understanding is that changes are not persisted, so if you start in admin-only to later move to normal, as soon as you restart instead of reload, your changes will be lost. In such a case, I guess starting in SUSPEND to go later to NORMAL could be valid as long as you do not modify the server configuration

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jfdenise Unless you edited the class we're discussing here to actually pass through the --admin-only to the bootable jar process, enabling more tests (I assume by removing pom.xml exclude elements) with the existing code basically demonstrates that the test didn't need to use startInAdminMode at all. That was definitely the case with ManagementInterfaceResourcesTestCase.

So perhaps before merging this we should enable a lot of tests and see which pass. If they pass, the test doesn't need StartMode.ADMIN_ONLY and we can can fix them to not use it and leave them enabled.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jfdenise You didn't answer my question about StartMode.SUSPEND though. :)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bstansberry , for SUSPEND I would say that we should allow it and set the mode. I don't see why a Bootable JAR couldn't be started in SUSPEND. So perhaps this fix is too radical.

@yersan yersan changed the title [WFCORE-7003] In testsuite, do not allow Bootable JAR to start in adm… [WFCORE-7003][WFCORE-7007] In testsuite, do not allow Bootable JAR to start in adm… Sep 20, 2024
@wildfly-ci
Copy link

Core -> Full Integration Build 13935 outcome was FAILURE using a merge of 0e99454
Summary: Tests failed: 1 (1 new), passed: 3989, ignored: 59 Build time: 03:22:28

Failed tests

org.jboss.as.test.clustering.cluster.ejb.stateful.StatefulTimeoutTestCase.timeout: java.lang.AssertionError: expected:<3> but was:<0>
	at org.jboss.as.test.clustering.cluster.ejb.stateful.StatefulTimeoutTestCase.timeout(StatefulTimeoutTestCase.java:87)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
------- Stdout: -------
 [0m19:05:15,756 INFO  [org.jboss.modules] (main) JBoss Modules version 2.1.5.Final
 [0m [0m19:05:16,984 INFO  [org.jboss.msc] (main) JBoss MSC version 1.5.5.Final
 [0m [0m19:05:17,004 INFO  [org.jboss.threads] (main) JBoss Threads version 2.4.0.Final
 [0m [0m19:05:17,257 INFO  [org.jboss.as] (MSC service thread 1-2) WFLYSRV0049: WildFly 34.0.0.Beta1-SNAPSHOT (WildFly Core 26.0.0.Beta5-SNAPSHOT) starting
 [0m [0m19:05:19,929 INFO  [org.wildfly.security] (Controller Boot Thread) ELY00001: WildFly Elytron version 2.5.2.Final
 [0m [0m19:05:21,893 INFO  [org.jboss.as.server] (Controller Boot Thread) WFLYSRV0039: Creating http management service using socket-binding (management-http)
 [0m [0m19:05:21,940 INFO  [org.xnio] (MSC service thread 1-7) XNIO version 3.8.16.Final
 [0m [0m19:05:21,976 INFO  [org.xnio.nio] (MSC service thread 1-7) XNIO NIO Implementation Version 3.8.16.Final
 [0m [0m19:05:22,033 INFO  [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 40) WFLYCLINF0001: Activating Infinispan subsystem.
 [0m [0m19:05:22,173 INFO  [org.jboss.as.jaxrs] (ServerService Thread Pool -- 42) WFLYRS0016: RESTEasy version 6.2.10.Final
 [0m [33m19:05:22,067 WARN  [org.jboss.as.txn] (ServerService Thread Pool -- 53) WFLYTX0013: The node-identifier attribute on the /subsystem=transactions is set to the default value. This is a danger for environments running multiple servers. Please make sure the attribute value is unique.
 [0m [0m19:05:22,222 INFO  [org.jboss.as.naming] (ServerService Thread Pool -- 48) WFLYNAM0001: Activating Naming Subsystem


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