Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

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 ManagementAssignee: Ivo Studensky <istudens>
Status: CLOSED CURRENTRELEASE QA Contact: Martin Simka <msimka>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 6.3.3CC: 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    

Description jooho lee 2015-06-12 00:17:27 UTC
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>
~~~

Comment 4 Jan Martiska 2015-07-31 07:37:16 UTC
Verified in EAP 6.4.3.CR1.

Comment 5 Petr Penicka 2017-01-17 10:37:52 UTC
Retroactively bulk-closing issues from released EAP 6.4 cummulative patches.