JBoss Enterprise Application Platform 6 can experience intermittent failures when running on the IBM JDK 6 and 7. This is because the IBM garbage collector is much more aggressive than that of other JVMs. This can sometimes result in memory being reclaimed in situations that were unanticipated and did not manifest when testing on other JVMs.
Until this issue is resolved Red Hat recommends using the OpenJDK or Oracle JDK to run JBoss Enterprise Application Platform 6 on Red Hat Enterprise Linux.
IBM JDK 7
IBM JDK 6
Affects: Release Notes
IBM JDK is very eager to finalize an Object. It can even be finalized when a thread is still running a method within the instance.
Link: Added: This issue relates to AS7-5967
A simple test case which shows the problem can be found https://www.ibm.com/developerworks/forums/message.jspa?messageID=14915477#14915477
Needs release notes as known issue
Release Notes Docs Status: Added: Not Yet Documented
Affects: Added: Release Notes
Created attachment 693223 [details]
Finalize methods in EAP 5.2
Created attachment 693224 [details]
Finalize methods in EAP 6.0.1
Created attachment 694281 [details]
Finalize methods in EAP 6.1.0.DR3
That's a large number of occurrences, but no so large that we could not divide them out across a group and determine if they fall into the problematic pattern. Can we target that for 5.3 and 6.1?
The relevant jiras are public so this BZ should be public as well.
Unfortunatly there is not really any way to tell if a given finalizer will cause problems.
I think that the best we can do is have a system property (-Dbroken.ibm.garbage.collection=true), and in the finalisers check for the presense of this property and if it is present don't perform the finalization action.
@Stuart: If this is the only way to address this, is a new property necessary? There are standard JVM properties that we could use to identify an IBM JVM and then act accordingly? Are there any IBM JVMs without this issue? My understanding is that all of them have it.
It is possible that we have existing customers running the IBM JDK that are not experiencing this issue that will start to experience resource leaks if we disable these finalisers.
Lets nail on a case by case. We know of https://issues.jboss.org/browse/WFLY-1149. Maybe that can be refactored and backported?
We need a plan to close this BZ.
We have lists of the the occurrences of the finalize in methods in the EAP 6, can we make that list more accessible and enable people to work on the occurrences as time permits, and reduce the list that way?
Jason Greene <email@example.com> updated the status of jira WFLY-1470 to Resolved
We have analyzed and fixed the locations that were likely to be problematic for customers. Future issues can be reported separately if and when they occur.
Verified on EAP 6.4.0.DR11