Compression with TimeBasedRollingPolicy leaks a thread which blocks the
application to shutdown + leads to severe memory leak in webapps
----------------------------------------------------------------------------------------------------------------------------------------
Key: LBCORE-78
URL: http://jira.qos.ch/browse/LBCORE-78
Project: logback-core
Issue Type: Bug
Components: Rolling
Affects Versions: 0.9.13
Environment: 1.5,1.6 JDK
Reporter: Szel Zoltan
Assignee: Logback dev list
Priority: Blocker
Hi,
the TimeBasedRollingPolicy uses the AsynchronousCompressor class to perform the
compression in a background thread. In the AsyncCompressor every compress
creates a ThreadPool with one thread which is never stopped. After compression
the thread will wait on a queue to be fed with new task which will never happen
again and there is now chance to stop the thread manually, because the
reference to the ExecutorService is lost.
Because the thread is not stoped and it is not a deamon thread, the JVM can not
shutdown. In web env this bug causes the leak of the application's classloader.
A simple solution is to create a simple thread to perform the compression
instead of using an ExecutorService.
Regards,
Zoltan Szel
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.qos.ch/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
_______________________________________________
logback-dev mailing list
[email protected]
http://qos.ch/mailman/listinfo/logback-dev