Wjcccccccccc opened a new issue #1996:
URL: https://github.com/apache/shardingsphere-elasticjob/issues/1996


   ## Bug Report
   Start 100 ScheduleJobBootstrap jobs, and shut down all of them immediately.
   Check the JVM Thread Dump, found that 100 Threads of ReconcileService appear.
   ```
   "ReconcileService" prio=0 tid=0x0 nid=0x0 waiting on condition
        java.lang.Thread.State: TIMED_WAITING
    on 
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@4662db48
        at sun.misc.Unsafe.park(Native Method)
        at 
java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
        at 
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
        at 
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
   
   ```
   
   ### Which version of ElasticJob did you use?
   3.0.0
   
   ### Which project did you use? ElasticJob-Lite or ElasticJob-Cloud?
   ElasticJob-Lite
   
   ### Steps to reproduce the behavior.
   There is the reproducible code.
   ```
   public class Main {
   
       public static void main(String[] args) throws InterruptedException {
           final ZookeeperConfiguration zookeeperConfiguration = new 
ZookeeperConfiguration("192.168.10.110:2181", "test");
           final ZookeeperRegistryCenter zookeeperRegistryCenter = new 
ZookeeperRegistryCenter(zookeeperConfiguration);
           zookeeperRegistryCenter.init();
           final JobOperateAPIImpl jobOperateAPI = new 
JobOperateAPIImpl(zookeeperRegistryCenter);
   
           CountDownLatch cdl = new CountDownLatch(1);
   
           String cron = "*/5 * * * * ?";
           int jobNumber = 100;
   
           List<String> jobNames = new ArrayList<>(jobNumber);
   
           for (int i = 0; i < jobNumber; i++) {
               String jobName = "testJob-" + i;
               jobNames.add(jobName);
               final JobConfiguration jobConfiguration = JobConfiguration
                       .newBuilder(jobName, 1)
                       .overwrite(true)
                       .monitorExecution(true)
                       .failover(true)
                       .cron(cron)
                       .build();
               new ScheduleJobBootstrap(zookeeperRegistryCenter, new 
TestScheduledJob(), jobConfiguration).schedule();
           }
   
           Thread.sleep(3000L);
   
           jobNames.parallelStream().forEach(jobName -> {
   //            final String serverIp = 
JobRegistry.getInstance().getJobInstance(jobName).getServerIp();
               jobOperateAPI.shutdown(jobName, null);
           });
   
           cdl.await();
   
       }
   }
   
   ```
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to