[logback-dev] [JIRA] Updates for LOGBACK-1740: Number of async tasks limited to 32 on

logback developers list logback-dev at qos.ch
Tue May 16 09:54:00 CEST 2023


logback / LOGBACK-1740 [Open]
Number of async tasks limited to 32 on 

==============================

Here's what changed in this issue in the last few minutes.

This issue has been created
This issue is now assigned to you.


View or comment on issue using this link
https://jira.qos.ch/browse/LOGBACK-1740

==============================
 Issue created
------------------------------

dgodmun created this issue on 16/May/23 9:43

Summary:              Number of async tasks limited to 32 on 
Issue Type:           Bug
Affects Versions:     1.3.7
Assignee:             Logback dev list
Components:           logback-core
Created:              16/May/23 9:43
Labels:               SizeAndTimeBasedRollingPolicy
Priority:             Major
Reporter:             dgodmun
Description:
  Hello,
  
   
  
  I've found an issue related with the class CoreConstants:
  
   
  /**
  * Maximum number of threads to allow in a context's executor service.
  */
  // if you need a different MAX_POOL_SIZE, please file create a jira issue
  // asking to make MAX_POOL_SIZE a parameter.
  public static final int MAX_POOL_SIZE = 32;
   
  The size of the pool is causing a problem when using SizeAndTimeBasedRollingPolicy at the end of the day when the number of files in the logger is bigger than 32.
  
  See log details of the issue:
  
  02:00:01,852 |-INFO in c.q.l.co.rolling.helper.RenameUtil - Renaming file [/.../DEMO_LP3/USDAED.log] to [/.../DEMO_LP3/USDAED.2023-05-11.0.log2522180056964847.tmp] 02:00:01,852 |-ERROR in 
  SizeAndTimeBasedFNATP [FILE-SIFT] - Appender [FILE-SIFT] failed to append. java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.FutureTask at 398bae3b[Not completed, task = java.util.concurrent.Executors$RunnableAdapter at 198af505[Wrapped task = ch.qos.logback.core.rolling.helper.Compressor$CompressionRunnable at 3d7e666b]] rejected from java.util.concurrent.ThreadPoolExecutor at 296f8602[Running, pool size = 32, active threads = 32, queued tasks = 0, completed tasks = 91]     at java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.FutureTask at 398bae3b[Not completed, task = java.util.concurrent.Executors$RunnableAdapter at 198af505[Wrapped task = ch.qos.logback.core.rolling.helper.Compressor$CompressionRunnable at 3d7e666b]] rejected from java.util.concurrent.ThreadPoolExecutor at 296f8602[Running, pool size = 32, active threads = 32, queued tasks = 0, completed tasks = 91]     at     at java.base/java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2065)     at     at java.base/java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:833)     at     at java.base/java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1365)     at     at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:123)     at     at ch.qos.logback.core.rolling.helper.Compressor.asyncCompress(Compressor.java:229)     at     at ch.qos.logback.core.rolling.TimeBasedRollingPolicy.renameRawAndAsyncCompress(TimeBasedRollingPolicy.java:196)     at     at ch.qos.logback.core.rolling.TimeBasedRollingPolicy.rollover(TimeBasedRollingPolicy.java:182)     at     at ch.qos.logback.core.rolling.RollingFileAppender.attemptRollover(RollingFileAppender.java:220)     at     at ch.qos.logback.core.rolling.RollingFileAppender.rollover(RollingFileAppender.java:198)     at     at ch.qos.logback.core.rolling.RollingFileAppender.subAppend(RollingFileAppender.java:246)     at     at ch.qos.logback.core.OutputStreamAppender.append(OutputStreamAppender.java:102)     at     at ch.qos.logback.core.UnsynchronizedAppenderBase.doAppend(UnsynchronizedAppenderBase.java:85)     at     at ch.qos.logback.core.sift.SiftingAppenderBase.append(SiftingAppenderBase.java:122)     at     at ch.qos.logback.core.AppenderBase.doAppend(AppenderBase.java:83)     at     at ch.qos.logback.core.spi.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachab
  
  
  The issue leaves a tmp file in the disk.
   
  In order to reproduce it is just required having more than 32 files to roll with a reasonable size, if the queue of the thread pool is full then it will fail.
   
   
  It would be very interesting having the possibility of defining the number of threads by configuration. I know the case I'm working on is very special, it is not comming having so many files rolling at the end of the day for the logger.
  Thank you very much.
   


==============================
 This message was sent by Atlassian Jira (v9.6.0#960000-sha1:a3ee8af)



More information about the logback-dev mailing list