Bugzilla will be upgraded to version 5.0. The upgrade date is tentatively scheduled for 2 December 2018, pending final testing and feedback.
Bug 900289 - (JBPAPP6-1490) Domain management API does not expose JTS orphans from the transaction object store
Domain management API does not expose JTS orphans from the transaction object...
Status: VERIFIED
Product: JBoss Enterprise Application Platform 6
Classification: JBoss
Component: Transaction Manager (Show other bugs)
6.4.0
Unspecified Unspecified
high Severity high
: DR1
: EAP 6.4.0
Assigned To: Ivo Studensky
Ondrej Chaloupka
http://jira.jboss.org/jira/browse/JBP...
eap601candidate
:
Depends On: 1028032
Blocks:
  Show dependency treegraph
 
Reported: 2012-04-24 08:35 EDT by Ivo Studensky
Modified: 2018-03-06 15:35 EST (History)
7 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
The transaction subsystem contained in JBoss EAP 6 maintains a log of pending transactions. This log is exposed to the console user. In some circumstances a resource has a log of an in-doubt transaction branch for which there is no corresponding top level transaction log (but on disk there is a participant log). Such logs are called "orphans" and by default these were not exposed in previous versions. As a result, if the transaction subsystem was configured to use JTS then these orphan records were not automatically removed resulting in a leak of available storage space. In this release, the console user can override the default by setting the transaction subsystem property `expose-all-logs` to `true`. Then the console user has the option to manually delete these logs, preventing the leak.
Story Points: ---
Clone Of:
Environment:
Last Closed:
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)


External Trackers
Tracker ID Priority Status Summary Last Updated
JBoss Issue Tracker JBPAPP6-1490 Major Closed Domain management API does not expose JTS orphans from the transaction object store 2014-09-04 11:05:58 EDT
JBoss Issue Tracker WFLY-3613 Major Resolved Domain management API does not expose JTS orphans from the transaction object store 2014-09-04 11:05:58 EDT

  None (edit)
Description Ivo Studensky 2012-04-24 08:35:06 EDT
project_key: JBPAPP6

At the moment domain management API exposes transactions and their participants from the object store. Thus it is possible to traverse down from a transaction to its participant records which is nice.

However in special cases it is possible to create "orphan" records in the object store, i.e. XAResourceRecord's which do not have any corresponding transaction record in the log (e.g. XA resource prepared but crashed before the TM recorded the fact) and thus are inaccessible for the domain management API, see [1]. In case of JTA it is not very problem as JBossTS has orphan filters for JTA that can remove such orphans automatically. But in case of JTS this becomes to be a problem as JBossTS does not have any orphan filers for JTS and the orphan records stay in the object store. Because of this we would need a tool that can expose and remove such records at least for HornetQ based object store where it is not possible to remove them manually from the file system.
Another question is why JBossTS includes orphan filters only for JTA.

Please consider severity/priority of this issue and discuss the details.
Thanks.


[1] https://issues.jboss.org/browse/JBQA-5185?focusedCommentId=12684623&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-12684623
Comment 1 Ivo Studensky 2012-04-24 08:36:01 EDT
Link: Added: This issue is related to JBQA-6260
Comment 2 Michael 2012-04-25 10:09:59 EDT
The Object Store tooling creates MBeans for transaction records and then creates MBeans to represent their participants. Since an orphan doesn't have a corresponding transaction MBeans are not created for them.

So I would need to add code to JBossTS to expose orphans as MBeans and then update the AS management subsystem to add a new child resource for exposing them.

ie we need another release of JBossTS to get this fixed.  
Comment 3 Rajesh Rajasekaran 2012-04-25 18:18:05 EDT
Labels: Added: eap6_need_triage
Comment 4 Rajesh Rajasekaran 2012-07-11 15:56:14 EDT
Labels: Removed: eap6_need_triage Added: eap601candidate
Comment 5 Michael 2012-08-21 09:15:53 EDT
Link: Added: This issue is a dependency of JBTM-1148
Comment 6 Michael 2012-08-22 11:27:24 EDT
Link: Added: This issue depends AS7-4331
Comment 7 Michael 2012-08-22 11:29:46 EDT
Link: Added: This issue is a dependency of AS7-4331
Comment 8 Anne-Louise Tangring 2012-11-13 16:00:29 EST
Docs QE Status: Removed: NEW 
Comment 9 Stefano Maestri 2013-01-11 04:45:51 EST
Reassingning to Heiko because the only dependency left is assigned to him
Comment 10 Michael 2013-02-27 13:29:07 EST
To expose all the transaction logs we need an extra attribute on the transactions subsystem in the AS management model. The subsystem manages transaction logs via MBeans. So something like 

String EXPOSEALLLOGS = "expose-all-logs";
...

ObjectName on = new ObjectName("jboss.jta:type=ObjectStore")
MBeanServer mbs = TransactionExtension.getMBeanServer(context)

and then use the mbean server to update the MBean atribute

mbs.setAttribute(on, new Attribute("ExposeAllRecordsAsMBean", Boolean.TRUE) 

This operation will now expose all transaction logs.
Comment 11 tom.jenkinson 2014-09-02 05:57:28 EDT
Hi Ivo,

I noticed your change has been merged to WF, do you intend to perform the backport for this too?

Thanks very much,
Tom
Comment 12 Ivo Studensky 2014-09-02 09:38:25 EDT
Yes, I am going to port this back.
Comment 13 Ivo Studensky 2014-09-03 04:21:01 EDT
PR sent:

https://github.com/jbossas/jboss-eap/pull/1639
Comment 14 Hayk Hovsepyan 2014-09-26 10:08:37 EDT
Now setting "expose-all-logs" to true allows to show orphaned JTS logs.
Verified on jboss-eap-6.4.0.DR2

Note You need to log in before you can comment on or make changes to this bug.