Issue Details (XML | Word | Printable)

Key: DERBY-3745
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Kathey Marsden
Reporter: Kathey Marsden
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Derby

Derby can leak classloaders in an app server environment

Created: 30/Jun/08 11:30 PM   Updated: 04/May/09 06:22 PM
Return to search
Component/s: Services
Affects Version/s: 10.3.3.0, 10.4.1.3, 10.5.1.1
Fix Version/s: 10.3.3.1, 10.4.2.0, 10.5.1.1

Time Tracking:
Not Specified

File Attachments:
  Size
HTML File Licensed for inclusion in ASF works cdevbabejgjd.html 2008-07-21 10:17 PM Kathey Marsden 10 kB
Text File Licensed for inclusion in ASF works derby-3745_10.3_diff.txt 2008-07-08 05:27 PM Kathey Marsden 9 kB
Text File Licensed for inclusion in ASF works derby-3745_10.3_diff2.txt 2008-07-09 04:43 PM Kathey Marsden 10 kB
Text File Licensed for inclusion in ASF works derby-3745_BaseMonitor_cleanup_diff.txt 2008-07-22 10:53 PM Kathey Marsden 2 kB
Text File Licensed for inclusion in ASF works derby-3745_doc_diff.txt 2008-07-21 10:17 PM Kathey Marsden 2 kB
Text File Licensed for inclusion in ASF works derby-3745_fix_build_warning_diff.txt 2008-08-15 12:30 PM Kathey Marsden 2 kB
Text File Licensed for inclusion in ASF works derby-3745_policy_files_diff.txt 2008-07-21 08:10 PM Kathey Marsden 2 kB
Text File Licensed for inclusion in ASF works derby-3745_removePrivThreadOps_diff.txt 2008-08-12 09:24 PM Kathey Marsden 15 kB
Text File Licensed for inclusion in ASF works derby-3745_trunk_diff.txt 2008-07-10 10:22 PM Kathey Marsden 7 kB
Text File Licensed for inclusion in ASF works derby3745_backport_to_104_diff_v1.txt 2008-08-22 06:17 AM Mamta A. Satoor 15 kB
Text File Licensed for inclusion in ASF works derby3745_backport_to_104_stat_v1.txt 2008-08-22 06:17 AM Mamta A. Satoor 0.4 kB
Issue Links:
Reference

Bug behavior facts: Security
Resolution Date: 25/Aug/08 08:30 PM


 Description  « Hide
A user reported potential class loader leaks in Derby

...The first one looks like Derby created a long-running
thread and copying the context class loader. To fix, the
context class loader should be saved/set/restored around the
creation of the new thread so that it copies some benign class
loader instead (e.g., null or getClass().getClassLoader()):

 0x42278e58 java/lang/Thread@302e302e
  [truncating at running thread LEAK]

Object: 0x42278e58 java/lang/Thread@302e302e
Children:
 0x42278ee0 java/lang/String@303f303f
 0x4226e558 java/lang/ThreadGroup@6f2e6f2e
 0x42278e40
org/apache/derby/impl/services/monitor/AntiGC@603a603a
 0x419cfac0

The second is another long running thread. The same applies:

 0x426fe7a0 java/lang/Thread@19901990
  [truncating at running thread LEAK]

Object: 0x426fe7a0 java/lang/Thread@19901990
Parents:
 0x4226e5a8 [Ljava/lang/Thread;@6f386f38
 0x426fe548
org/apache/derby/iapi/services/context/ContextManager@19421942
Children:
 0x426fe838 java/lang/String@19a319a3
 0x4226e558 java/lang/ThreadGroup@6f2e6f2e
 0x426fe4f8
org/apache/derby/impl/services/daemon/BasicDaemon@19381938
 0x419cfac0

The third is a TimerThread owneed , which is created when a
Timer is created. The same applies:

 0x425ac538 java/util/Timer$TimerImpl@6b8a6b8a
  [truncating at running thread LEAK]

Object: 0x425ac538 java/util/Timer$TimerImpl@6b8a6b8a
Parents:
 0x41faaf58 [Ljava/lang/Thread;@3c583c58

Object: 0x425ac510 java/util/Timer@6b856b85
Parents:
 0x425ac500
org/apache/derby/impl/services/timer/SingletonTimerFactory@56e25
6e2

For more info, see thread at:
http://www.nabble.com/ClassLoader-leaks--td18121374.html


 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Repository Revision Date User Message
ASF #675648 Thu Jul 10 16:58:36 UTC 2008 kmarsden DERBY-3745 Derby can leak classloaders in an app server environment
Files Changed
ADD /db/derby/code/branches/10.3/java/engine/org/apache/derby/iapi/util/PrivilegedThreadOps.java
MODIFY /db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/services/timer/SingletonTimerFactory.java
MODIFY /db/derby/code/branches/10.3/java/testing/org/apache/derbyTesting/functionTests/util/derby_tests.policy
MODIFY /db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/services/monitor/BaseMonitor.java

Repository Revision Date User Message
ASF #675956 Fri Jul 11 14:07:51 UTC 2008 kmarsden DERBY-3745 Derby can leak classloaders in an app server environment
Files Changed
ADD /db/derby/code/trunk/java/engine/org/apache/derby/iapi/util/PrivilegedThreadOps.java (from /db/derby/code/branches/10.3/java/engine/org/apache/derby/iapi/util/PrivilegedThreadOps.java)
MODIFY /db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/util/derby_tests.policy
MODIFY /db/derby/code/trunk/java/engine/org/apache/derby/impl/services/timer/SingletonTimerFactory.java
MODIFY /db/derby/code/trunk/java/engine/org/apache/derby/impl/services/monitor/BaseMonitor.java
MODIFY /db/derby/code/trunk/java/engine/org/apache/derby/impl/services/jmx/JMXManagementService.java

Repository Revision Date User Message
ASF #676564 Mon Jul 14 12:15:16 UTC 2008 kmarsden DERBY-3745 Derby can leak classloaders in an app server environment
Files Changed
ADD /db/derby/code/branches/10.4/java/engine/org/apache/derby/iapi/util/PrivilegedThreadOps.java (from /db/derby/code/trunk/java/engine/org/apache/derby/iapi/util/PrivilegedThreadOps.java)
MODIFY /db/derby/code/branches/10.4/java/testing/org/apache/derbyTesting/functionTests/util/derby_tests.policy
MODIFY /db/derby/code/branches/10.4/java/engine/org/apache/derby/impl/services/timer/SingletonTimerFactory.java
MODIFY /db/derby/code/branches/10.4/java/engine/org/apache/derby/impl/services/monitor/BaseMonitor.java
MODIFY /db/derby/code/branches/10.4/java/engine/org/apache/derby/impl/services/jmx/JMXManagementService.java

Repository Revision Date User Message
ASF #679620 Fri Jul 25 00:03:03 UTC 2008 kmarsden DERBY-3745 Derby can leak classloaders in an app server environment
Cleanup change to set context class loader for newly created threads
directly rather than setting the context classloader of the current
thread before creation.
Files Changed
MODIFY /db/derby/code/trunk/java/engine/org/apache/derby/impl/services/monitor/BaseMonitor.java

Repository Revision Date User Message
ASF #679624 Fri Jul 25 00:11:01 UTC 2008 kmarsden DERBY-3745 Derby can leak classloaders in an app server environment
Change to add getClassLoader and setContextClassLoader to optional permissions
Files Changed
MODIFY /db/derby/docs/trunk/src/devguide/cdevbabejgjd.dita

Repository Revision Date User Message
ASF #681104 Wed Jul 30 16:17:23 UTC 2008 kmarsden DERBY-3803 fix 'org.apache.derbyTesting.functionTests.tests.lang.XMLTypeAndOpsTest' failures after checkin for DERBY-3745
Files Changed
MODIFY /db/derby/code/trunk/java/engine/org/apache/derby/impl/services/monitor/BaseMonitor.java
MODIFY /db/derby/code/trunk/java/engine/org/apache/derby/impl/services/daemon/SingleThreadDaemonFactory.java

Repository Revision Date User Message
ASF #681748 Fri Aug 01 16:59:11 UTC 2008 kmarsden DERBY-3803 fix 'org.apache.derbyTesting.functionTests.tests.lang.XMLTypeAndOpsTest' failures from checkin of DERBY-3745
Files Changed
MODIFY /db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/services/monitor/BaseMonitor.java
MODIFY /db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/services/daemon/SingleThreadDaemonFactory.java

Repository Revision Date User Message
ASF #685674 Wed Aug 13 20:49:50 UTC 2008 kmarsden DERBY-3745 inline doPrivileged blocks instead of using utility methods which can be a security risk.
Files Changed
DEL /db/derby/code/trunk/java/engine/org/apache/derby/iapi/util/PrivilegedThreadOps.java
MODIFY /db/derby/code/trunk/java/engine/org/apache/derby/impl/services/timer/SingletonTimerFactory.java
MODIFY /db/derby/code/trunk/java/engine/org/apache/derby/impl/services/monitor/BaseMonitor.java
MODIFY /db/derby/code/trunk/java/engine/org/apache/derby/impl/services/daemon/SingleThreadDaemonFactory.java
MODIFY /db/derby/code/trunk/java/engine/org/apache/derby/impl/services/jmx/JMXManagementService.java

Repository Revision Date User Message
ASF #686296 Fri Aug 15 18:02:11 UTC 2008 myrnavl DERBY-3745: derby can leak classloaders; fixing build warning resulting from
  a previous check-in.
  patch by Kathey Marsden
Files Changed
MODIFY /db/derby/code/trunk/java/engine/org/apache/derby/impl/services/jmx/JMXManagementService.java

Repository Revision Date User Message
ASF #687967 Fri Aug 22 06:20:47 UTC 2008 mamta DERBY-3745 : Backporting revisions 679620, 685674 and 686296 from the trunk into 10.4 codeline

derbyall tests ran fine. I ran junit test suites with classes and with jar files after backporting these changes to my 10.4 client. With classes, I ran into DERBY-3836 but didn't run into DERBY-3836 with jar files. I did run into some out of memory issues but I think it might be local to my machine because of all the other processes running on the machine and probably not enough memory to the junit tests when I specified -Xmx1024m. I will keep an eye on the 10.4 test runs after I commit the changes.
Files Changed
DEL /db/derby/code/branches/10.4/java/engine/org/apache/derby/iapi/util/PrivilegedThreadOps.java
MODIFY /db/derby/code/branches/10.4/java/engine/org/apache/derby/impl/services/timer/SingletonTimerFactory.java
MODIFY /db/derby/code/branches/10.4/java/engine/org/apache/derby/impl/services/monitor/BaseMonitor.java
MODIFY /db/derby/code/branches/10.4/java/engine/org/apache/derby/impl/services/daemon/SingleThreadDaemonFactory.java
MODIFY /db/derby/code/branches/10.4/java/engine/org/apache/derby/impl/services/jmx/JMXManagementService.java

Repository Revision Date User Message
ASF #691364 Tue Sep 02 20:16:53 UTC 2008 kmarsden DERBY-3745

inline priv blocks instead of using utility methods.
Files Changed
DEL /db/derby/code/branches/10.3/java/engine/org/apache/derby/iapi/util/PrivilegedThreadOps.java
MODIFY /db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/services/timer/SingletonTimerFactory.java
MODIFY /db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/services/monitor/BaseMonitor.java
MODIFY /db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/services/daemon/SingleThreadDaemonFactory.java

Repository Revision Date User Message
ASF #784831 Mon Jun 15 15:58:25 UTC 2009 kmarsden DERBY-3887 Embedded Derby fails under JBoss because of JMX-related conflicts
Backed out JMX related changes for DERBY-3745.
Files Changed
MODIFY /db/derby/code/trunk/java/engine/org/apache/derby/impl/services/jmx/JMXManagementService.java

Repository Revision Date User Message
ASF #785309 Tue Jun 16 17:26:54 UTC 2009 kmarsden DERBY-3887 Embedded Derby fails under JBoss because of JMX-related conflicts
backed out jmx related changes from DERBY-3745.
Files Changed
MODIFY /db/derby/code/branches/10.5/java/engine/org/apache/derby/impl/services/jmx/JMXManagementService.java

Repository Revision Date User Message
ASF #785411 Tue Jun 16 21:23:01 UTC 2009 kmarsden DERBY-3887 Embedded Derby fails under JBoss because of JMX-related conflicts
Backout jmx related changes from DERBY-3745.
Files Changed
MODIFY /db/derby/code/branches/10.4/java/engine/org/apache/derby/impl/services/jmx/JMXManagementService.java