Bug 1092198

Summary: LogStoreProbeHandler overwrites the LogStoreResource root model
Product: [JBoss] JBoss Enterprise Application Platform 6 Reporter: Brian Stansberry <brian.stansberry>
Component: Transaction ManagerAssignee: Brian Stansberry <brian.stansberry>
Status: CLOSED CURRENTRELEASE QA Contact: Ondrej Chaloupka <ochaloup>
Severity: medium Docs Contact: Russell Dickenson <rdickens>
Priority: unspecified    
Version: 6.2.0CC: kkhan, myarboro, smumford
Target Milestone: ER4   
Target Release: EAP 6.3.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
In previous versions of JBoss EAP 6 it was found that `LogStoreProbeHandler` replaced the 'delegate' held by `LogStoreResource`. This removed any data from the existing delegate's 'model' field (the "type" attribute, for example). As a result, invoking the 'probe' operation on the `subsystem=transactions/log-store=log-store` would result in the value of the resource's 'type' attribute being changed to 'default' even if the transaction manager is actually using 'hornetq'. The actual runtime behavior would not be affected, but the reported value would be wrong. In this release of the product the contents of the current delegate's model is copied to the new delegate before it is removed and the 'type' attribute will no longer be 'default' after running the 'probe' operation when the log store type is actually something else.
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-06-28 15:39:34 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:

Description Brian Stansberry 2014-04-29 00:50:55 UTC
Description of problem:

The subsystem=transaction/log-store=log-store has a 'probe' operation that inadvertently clears the 'type' attribute from the resource.


How reproducible:

Always

Steps to Reproduce:
1. Invoke /subsystem=transaction/log-store=log-store:probe
2. Invoke /subsystem=transaction/log-store=log-store:read-resource

Actual results:

The 'type' attribute is undefined

Expected results:

The 'type' attribute should be defined

Additional info:

LogStoreProbeHandler replaces the 'delegate' held by LogStoreResource. Doing this removes any data from the existing delegate's 'model' field, i.e. the "type" attribute.

Comment 2 Brian Stansberry 2014-05-09 14:47:25 UTC
The steps to reproduce were incomplete. You only see the problem if the type attribute does not have value 'default'.

So, before the step I listed, either add the <use-hornetq-store/> element to the transaction subsystem config, or do it via the CLI with

batch
/subsystem=transactions:write-attribute(name=use-hornetq-store,value=true)
/subsystem=transactions:write-attribute(name=use-jdbc-store,value=false)
run-batch
reload

Comment 3 Ondrej Chaloupka 2014-05-09 15:06:09 UTC
Thank you for the additional info about verification the issue.

I've checked the behavior of EAP 6.3.0.ER3 and I have one cosmetic note about the failure behavior.
After the probe() operation is run the type of the log-store is not put to 'undefined' but is changed back to default 'default' value.

Comment 4 Brian Stansberry 2014-05-09 15:26:38 UTC
Agreed. I've changed the text. Thanks!

Comment 5 Ondrej Chaloupka 2014-05-21 13:34:51 UTC
Verified on EAP 6.3.0.ER4