Bug 1230980
| Summary: | [GSS] (6.4.z) System property load order is different between standalone and domain mode. | ||
|---|---|---|---|
| Product: | [JBoss] JBoss Enterprise Application Platform 6 | Reporter: | jooho lee <jlee> |
| Component: | Domain Management | Assignee: | Ivo Studensky <istudens> |
| Status: | CLOSED CURRENTRELEASE | QA Contact: | Martin Simka <msimka> |
| Severity: | medium | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 6.3.3 | CC: | bmaxwell, brian.stansberry, dandread, istudens, jawilson, jmartisk, mmiura |
| Target Milestone: | CR1 | ||
| Target Release: | EAP 6.4.3 | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | Bug Fix | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2017-01-17 10:37:52 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
| Bug Depends On: | |||
| Bug Blocks: | 1231259 | ||
Verified in EAP 6.4.3.CR1. Retroactively bulk-closing issues from released EAP 6.4 cummulative patches. |
Description of problem: Using expression value in system property is valid in both mode(standalone/domain). ~~~ [domain@localhost:9999 /] /server-group=main-server-group/system-property=env:read-resource-description { "outcome" => "success", "result" => { ... "attributes" => { "value" => { "type" => STRING, "description" => "The value of the system property.", "expressions-allowed" => true, <========== ~~~ In standalone mode, the expression value successfully find right value but domain mode does not. This is example : ~~~ <server-group name="main-server-group" profile="full"> ... <system-properties> <property name="env" value="nexttest" boot-time="false"/> <property name="environment.url.prefix" value="${env}" boot-time="false"/> </system-properties> </server-group> ~~ From debugging, I realise that the total count of system-property is different when the expression value[${env}] try to find right vale[nexttest]. Standalone mode : around 93 (There is env property) Domain mode : around 62 (There is NOT env property) So, I think the way to load system-property is something different each other. The related file is org.jboss.as.controller.ExpressionResovlerImpl.java, org.jboss.dmr.ValueExpressionResovler.java. Especially, you can check the total count of system-property from 197 line of ValueExpressionResovler.java Version-Release number of selected component (if applicable): How reproducible: Always Steps to Reproduce: Domain mode. 1) Stop the servers of the main-server-group if already running. As we want to check if this configuration can survive the startup or not. -------------- [domain@localhost:9999 /] /server-group=main-server-group:stop-servers() { "outcome" => "success", "result" => undefined, "server-groups" => undefined } -------------- 2) Added the following system properties in the server-group element of EAP 6.3.3's domain mode via below CLI commands. -------------- [domain@localhost:9999 /] /server-group=main-server-group/system-property=env:add(boot-time=false,value=nexttest) { "outcome" => "success", "result" => undefined, "server-groups" => undefined } [domain@localhost:9999 /] /server-group=main-server-group/system-property=environment.url.prefix:add(boot-time=false,value=${env}) { "outcome" => "success", "result" => undefined, "server-groups" => undefined } -------------- 3) Started the servers of main-server-group as follows which got failed: -------------- [domain@localhost:9999 /] /server-group=main-server-group:start-servers() { "outcome" => "failed", "failure-description" => {"domain-failure-description" => "JBAS014749: Operation handler failed: null"}, "rolled-back" => true } [domain@localhost:9999 /] -------------- Following entry is added in the domain.xml: --------------- <server-group name="main-server-group" profile="full"> ... <system-properties> <property name="env" value="nexttest" boot-time="false"/> <property name="environment.url.prefix" value="${env}" boot-time="false"/> </system-properties> </server-group> -------------- Actual results: [Host Controller] 18:31:10,864 ERROR [org.jboss.as.host.controller] (Controller Boot Thread) JBAS010907: Failed to start server (server-one): java.lang.IllegalStateException [Host Controller] ... [Host Controller] Caused by: org.jboss.as.controller.OperationFailedException [ "JBAS014802: Cannot resolve expression 'expression \"${env}\"' -- java.lang.IllegalStateException: Failed to resolve expression: ${env}" ] ... [Host Controller] 18:31:10,877 ERROR [org.jboss.as.host.controller] (Controller Boot Thread) JBAS010907: Failed to start server (server-two): java.lang.IllegalStateException ... [Host Controller] Caused by: org.jboss.as.controller.OperationFailedException [ "JBAS014802: Cannot resolve expression 'expression \"${env}\"' -- java.lang.IllegalStateException: Failed to resolve expression: ${env}" ] Expected results: No error (env value should be "nexttest") Additional info: In order to test it in standalone mode, you can use this : ~~~ ..... </extension> <system-properties> <property name="env" value="nexttest"/> <property name="environment.url.prefix" value="${env}"/> </system-properties> ~~~