commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Manuel Dominguez Sarmiento (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DAEMON-333) Stop abusing System.gc() on Commons Daemon jsvc shutdown
Date Wed, 03 Jun 2015 16:14:40 GMT

    [ https://issues.apache.org/jira/browse/DAEMON-333?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14571270#comment-14571270
] 

Manuel Dominguez Sarmiento commented on DAEMON-333:
---------------------------------------------------

Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.45-b02 mixed mode): 

"RMI TCP Connection(283)-127.0.0.1" #801195 daemon prio=10 os_prio=0 tid=0x000000000b677000
nid=0xb4d6 runnable [0x00007f81f7749000] 
   java.lang.Thread.State: RUNNABLE 
        at java.net.SocketInputStream.socketRead0(Native Method) 
        at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) 
        at java.net.SocketInputStream.read(SocketInputStream.java:170) 
        at java.net.SocketInputStream.read(SocketInputStream.java:141) 
        at java.io.BufferedInputStream.fill(BufferedInputStream.java:246) 
        at java.io.BufferedInputStream.read(BufferedInputStream.java:265) 
        - locked <0x00007f8376a2cc08> (a java.io.BufferedInputStream) 
        at java.io.FilterInputStream.read(FilterInputStream.java:83) 
        at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:550) 
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)

        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$241(TCPTransport.java:683)

        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$$Lambda$3/1498966449.run(Unknown
Source) 
        at java.security.AccessController.doPrivileged(Native Method) 
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)

        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

        at java.lang.Thread.run(Thread.java:745) 

"oracle.jdbc.driver.BlockSource.ThreadedCachingBlockSource.BlockReleaser" #189 daemon prio=4
os_prio=0 tid=0x0000000010eec800 nid=0x68a1 in Object.wait() [0x00007f81f6bc3000] 
   java.lang.Thread.State: TIMED_WAITING (on object monitor) 
        at java.lang.Object.wait(Native Method) 
        at oracle.jdbc.driver.BlockSource$ThreadedCachingBlockSource$BlockReleaser.run(BlockSource.java:327)

        - locked <0x00007f829c9ff180> (a oracle.jdbc.driver.BlockSource$ThreadedCachingBlockSource$BlockReleaser)


"RMI RenewClean-[koji.renxo.net:1099]" #185 daemon prio=10 os_prio=0 tid=0x0000000009aba800
nid=0x550a in Object.wait() [0x00007f81f75c7000] 
   java.lang.Thread.State: TIMED_WAITING (on object monitor) 
        at java.lang.Object.wait(Native Method) 
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143) 
        - locked <0x00007f829cbf7b58> (a java.lang.ref.ReferenceQueue$Lock) 
        at sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread.run(DGCClient.java:536)

        at java.lang.Thread.run(Thread.java:745) 

"RMI Scheduler(0)" #184 daemon prio=10 os_prio=0 tid=0x000000000a133800 nid=0x5509 runnable
[0x00007f81f7648000] 
   java.lang.Thread.State: RUNNABLE 
        at java.lang.Thread.isInterrupted(Native Method) 
        at java.lang.Thread.interrupted(Thread.java:944) 
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.checkInterruptWhileWaiting(AbstractQueuedSynchronizer.java:2002)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2079)

        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:1067) 
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)

        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

        at java.lang.Thread.run(Thread.java:745) 

"agentsc-2-thread-1" #33 daemon prio=5 os_prio=0 tid=0x0000000005ba8000 nid=0x5428 waiting
on condition [0x00007f81fcfac000] 
   java.lang.Thread.State: TIMED_WAITING (parking) 
        at sun.misc.Unsafe.park(Native Method) 
        - parking to wait for <0x00007f8298183628> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)

        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:1067) 
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)

        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

        at java.lang.Thread.run(Thread.java:745) 

"TrackerProcessor" #32 daemon prio=5 os_prio=0 tid=0x0000000005ba9800 nid=0x5427 waiting on
condition [0x00007f81fd02d000] 
   java.lang.Thread.State: WAITING (parking) 
        at sun.misc.Unsafe.park(Native Method) 
        - parking to wait for <0x00007f82a99fe140> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)

        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) 
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)

        at java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:403) 
        at com.manageengine.apminsight.agent.trackers.TrackerProcessor.doExtract(TrackerProcessor.java:91)

        at com.manageengine.apminsight.agent.trackers.TrackerProcessor.doWork(TrackerProcessor.java:72)

        at com.manageengine.apminsight.agent.trackers.TrackerProcessor.run(TrackerProcessor.java:58)


"agentsc-1-thread-1" #31 daemon prio=5 os_prio=0 tid=0x0000000004e8b000 nid=0x5426 runnable
[0x00007f81fd2ae000] 
   java.lang.Thread.State: RUNNABLE 
        at java.lang.Long.valueOf(Long.java:840) 
        at com.manageengine.apminsight.agent.metrics.data.transport.MetricDataDispatcher.run(MetricDataDispatcher.java:49)

        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) 
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)

        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

        at java.lang.Thread.run(Thread.java:745) 

"GC Daemon" #28 daemon prio=2 os_prio=0 tid=0x0000000005537800 nid=0x5423 in Object.wait()
[0x00007f81fd5b0000] 
   java.lang.Thread.State: TIMED_WAITING (on object monitor) 
        at java.lang.Object.wait(Native Method) 
        at sun.misc.GC$Daemon.run(GC.java:117) 
        - locked <0x00007f829cc36860> (a sun.misc.GC$LatencyLock) 

"Java2D Disposer" #27 daemon prio=10 os_prio=0 tid=0x0000000004c0f000 nid=0x5422 in Object.wait()
[0x00007f81fd631000] 
   java.lang.Thread.State: WAITING (on object monitor) 
        at java.lang.Object.wait(Native Method) 
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143) 
        - locked <0x00007f829cc18fb0> (a java.lang.ref.ReferenceQueue$Lock) 
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164) 
        at sun.java2d.Disposer.run(Disposer.java:148) 
        at java.lang.Thread.run(Thread.java:745) 

"Service Thread" #26 daemon prio=9 os_prio=0 tid=0x000000000463c000 nid=0x5420 runnable [0x0000000000000000]

   java.lang.Thread.State: RUNNABLE 

"C1 CompilerThread14" #25 daemon prio=9 os_prio=0 tid=0x000000000448a000 nid=0x541f waiting
on condition [0x0000000000000000] 
   java.lang.Thread.State: RUNNABLE 

"C1 CompilerThread13" #24 daemon prio=9 os_prio=0 tid=0x0000000004486800 nid=0x541e waiting
on condition [0x0000000000000000] 
   java.lang.Thread.State: RUNNABLE 

"C1 CompilerThread12" #23 daemon prio=9 os_prio=0 tid=0x0000000004472000 nid=0x541d runnable
[0x0000000000000000] 
   java.lang.Thread.State: RUNNABLE 

"C1 CompilerThread11" #22 daemon prio=9 os_prio=0 tid=0x0000000004465800 nid=0x541c runnable
[0x0000000000000000] 
   java.lang.Thread.State: RUNNABLE 

"C1 CompilerThread10" #21 daemon prio=9 os_prio=0 tid=0x0000000004467800 nid=0x541b waiting
on condition [0x0000000000000000] 
   java.lang.Thread.State: RUNNABLE 

"C2 CompilerThread9" #20 daemon prio=9 os_prio=0 tid=0x0000000004462800 nid=0x541a waiting
on condition [0x0000000000000000] 
   java.lang.Thread.State: RUNNABLE 

"C2 CompilerThread8" #19 daemon prio=9 os_prio=0 tid=0x0000000004451000 nid=0x5419 runnable
[0x0000000000000000] 
   java.lang.Thread.State: RUNNABLE 

"C2 CompilerThread7" #18 daemon prio=9 os_prio=0 tid=0x000000000443e800 nid=0x5418 waiting
on condition [0x0000000000000000] 
   java.lang.Thread.State: RUNNABLE 

"C2 CompilerThread6" #17 daemon prio=9 os_prio=0 tid=0x0000000004431800 nid=0x5417 waiting
on condition [0x0000000000000000] 
   java.lang.Thread.State: RUNNABLE 

"C2 CompilerThread5" #16 daemon prio=9 os_prio=0 tid=0x000000000441f800 nid=0x5416 waiting
on condition [0x0000000000000000] 
   java.lang.Thread.State: RUNNABLE 

"C2 CompilerThread4" #15 daemon prio=9 os_prio=0 tid=0x000000000440a800 nid=0x5415 waiting
on condition [0x0000000000000000] 
   java.lang.Thread.State: RUNNABLE 

"C2 CompilerThread3" #14 daemon prio=9 os_prio=0 tid=0x00000000043d8000 nid=0x5414 waiting
on condition [0x0000000000000000] 
   java.lang.Thread.State: RUNNABLE 

"C2 CompilerThread2" #13 daemon prio=9 os_prio=0 tid=0x00000000043b4000 nid=0x5413 waiting
on condition [0x0000000000000000] 
   java.lang.Thread.State: RUNNABLE 

"C2 CompilerThread1" #12 daemon prio=9 os_prio=0 tid=0x00000000043b1800 nid=0x5412 waiting
on condition [0x0000000000000000] 
   java.lang.Thread.State: RUNNABLE 

"C2 CompilerThread0" #11 daemon prio=9 os_prio=0 tid=0x00000000043a8800 nid=0x5411 waiting
on condition [0x0000000000000000] 
   java.lang.Thread.State: RUNNABLE 

"AsyncFileHandlerWriter-258952499" #8 daemon prio=5 os_prio=0 tid=0x000000000427f000 nid=0x540f
runnable [0x00007f9d9808c000] 
   java.lang.Thread.State: TIMED_WAITING (parking) 
        at sun.misc.Unsafe.park(Native Method) 
        - parking to wait for <0x00007f82980abe10> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)

        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.LinkedBlockingDeque.pollFirst(LinkedBlockingDeque.java:522)

        at java.util.concurrent.LinkedBlockingDeque.poll(LinkedBlockingDeque.java:684) 
        at org.apache.juli.AsyncFileHandler$LoggerThread.run(AsyncFileHandler.java:144) 

"Signal Dispatcher" #5 daemon prio=9 os_prio=0 tid=0x000000000419d800 nid=0x540e waiting on
condition [0x0000000000000000] 
   java.lang.Thread.State: RUNNABLE 

"Surrogate Locker Thread (Concurrent GC)" #4 daemon prio=9 os_prio=0 tid=0x000000000419b800
nid=0x540d waiting on condition [0x0000000000000000] 
   java.lang.Thread.State: RUNNABLE 

"Finalizer" #3 daemon prio=8 os_prio=0 tid=0x000000000416b000 nid=0x540c in Object.wait()
[0x00007f9d982e2000] 
   java.lang.Thread.State: WAITING (on object monitor) 
        at java.lang.Object.wait(Native Method) 
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143) 
        - locked <0x00007f8298013c68> (a java.lang.ref.ReferenceQueue$Lock) 
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164) 
        at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209) 

"Reference Handler" #2 daemon prio=10 os_prio=0 tid=0x0000000004163000 nid=0x540b runnable
[0x00007f9d98363000] 
   java.lang.Thread.State: RUNNABLE 
        at sun.misc.Unsafe.freeMemory(Native Method) 
        at java.nio.DirectByteBuffer$Deallocator.run(DirectByteBuffer.java:94) 
        at sun.misc.Cleaner.clean(Cleaner.java:143) 
        at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:166) 

"main" #1 prio=5 os_prio=0 tid=0x0000000001a39800 nid=0x53d2 runnable [0x00007fff754a5000]

   java.lang.Thread.State: RUNNABLE 
        at sun.reflect.ReflectionFactory.newMethodAccessor(ReflectionFactory.java:157) 
        at java.lang.reflect.Method.acquireMethodAccessor(Method.java:563) 
        at java.lang.reflect.Method.invoke(Method.java:495) 
        at org.apache.commons.daemon.support.DaemonLoader.destroy(DaemonLoader.java:289) 

"VM Thread" os_prio=0 tid=0x000000000415e000 nid=0x540a runnable 

"Gang worker#0 (Parallel GC Threads)" os_prio=0 tid=0x0000000001a50800 nid=0x53d3 runnable


"Gang worker#1 (Parallel GC Threads)" os_prio=0 tid=0x0000000001a52000 nid=0x53d4 runnable


"Gang worker#2 (Parallel GC Threads)" os_prio=0 tid=0x0000000001a54000 nid=0x53d5 runnable


"Gang worker#3 (Parallel GC Threads)" os_prio=0 tid=0x0000000001a55800 nid=0x53d6 runnable


"Gang worker#4 (Parallel GC Threads)" os_prio=0 tid=0x0000000001a57800 nid=0x53d7 runnable


"Gang worker#5 (Parallel GC Threads)" os_prio=0 tid=0x0000000001a59000 nid=0x53d8 runnable


"Gang worker#6 (Parallel GC Threads)" os_prio=0 tid=0x0000000001a5b000 nid=0x53d9 runnable


"Gang worker#7 (Parallel GC Threads)" os_prio=0 tid=0x0000000001a5c800 nid=0x53da runnable


"Gang worker#8 (Parallel GC Threads)" os_prio=0 tid=0x0000000001a5e800 nid=0x53db runnable


"Gang worker#9 (Parallel GC Threads)" os_prio=0 tid=0x0000000001a60000 nid=0x53dc runnable


"Gang worker#10 (Parallel GC Threads)" os_prio=0 tid=0x0000000001a62000 nid=0x53dd runnable


"Gang worker#11 (Parallel GC Threads)" os_prio=0 tid=0x0000000001a63800 nid=0x53de runnable


"Gang worker#12 (Parallel GC Threads)" os_prio=0 tid=0x0000000001a65800 nid=0x53df runnable


"Gang worker#13 (Parallel GC Threads)" os_prio=0 tid=0x0000000001a67000 nid=0x53e0 runnable


"Gang worker#14 (Parallel GC Threads)" os_prio=0 tid=0x0000000001a69000 nid=0x53e1 runnable


"Gang worker#15 (Parallel GC Threads)" os_prio=0 tid=0x0000000001a6a800 nid=0x53e2 runnable


"Gang worker#16 (Parallel GC Threads)" os_prio=0 tid=0x0000000001a6c800 nid=0x53e3 runnable


"Gang worker#17 (Parallel GC Threads)" os_prio=0 tid=0x0000000001a6e000 nid=0x53e4 runnable


"Gang worker#18 (Parallel GC Threads)" os_prio=0 tid=0x0000000001a70000 nid=0x53e5 runnable


"Gang worker#19 (Parallel GC Threads)" os_prio=0 tid=0x0000000001a71800 nid=0x53e6 runnable


"Gang worker#20 (Parallel GC Threads)" os_prio=0 tid=0x0000000001a73000 nid=0x53e7 runnable


"Gang worker#21 (Parallel GC Threads)" os_prio=0 tid=0x0000000001a75000 nid=0x53e8 runnable


"Gang worker#22 (Parallel GC Threads)" os_prio=0 tid=0x0000000001a76800 nid=0x53e9 runnable


"G1 Main Concurrent Mark GC Thread" os_prio=0 tid=0x0000000001ae9000 nid=0x5402 runnable 

"Gang worker#0 (G1 Parallel Marking Threads)" os_prio=0 tid=0x0000000001aeb000 nid=0x5403
runnable 

"Gang worker#1 (G1 Parallel Marking Threads)" os_prio=0 tid=0x0000000001aec800 nid=0x5404
runnable 

"Gang worker#2 (G1 Parallel Marking Threads)" os_prio=0 tid=0x0000000001aee800 nid=0x5405
runnable 

"Gang worker#3 (G1 Parallel Marking Threads)" os_prio=0 tid=0x0000000001af0000 nid=0x5406
runnable 

"Gang worker#4 (G1 Parallel Marking Threads)" os_prio=0 tid=0x0000000001af2000 nid=0x5407
runnable 

"Gang worker#5 (G1 Parallel Marking Threads)" os_prio=0 tid=0x0000000001af3800 nid=0x5408
runnable 

"G1 Concurrent Refinement Thread#0" os_prio=0 tid=0x0000000001aa5000 nid=0x5401 runnable 

"G1 Concurrent Refinement Thread#1" os_prio=0 tid=0x0000000001aa3000 nid=0x5400 runnable 

"G1 Concurrent Refinement Thread#2" os_prio=0 tid=0x0000000001aa1000 nid=0x53ff runnable 

"G1 Concurrent Refinement Thread#3" os_prio=0 tid=0x0000000001a9f000 nid=0x53fe runnable 

"G1 Concurrent Refinement Thread#4" os_prio=0 tid=0x0000000001a9d800 nid=0x53fd runnable 

"G1 Concurrent Refinement Thread#5" os_prio=0 tid=0x0000000001a9b800 nid=0x53fc runnable 

"G1 Concurrent Refinement Thread#6" os_prio=0 tid=0x0000000001a99800 nid=0x53fb runnable 

"G1 Concurrent Refinement Thread#7" os_prio=0 tid=0x0000000001a98000 nid=0x53fa runnable 

"G1 Concurrent Refinement Thread#8" os_prio=0 tid=0x0000000001a96000 nid=0x53f9 runnable 

"G1 Concurrent Refinement Thread#9" os_prio=0 tid=0x0000000001a94000 nid=0x53f8 runnable 

"G1 Concurrent Refinement Thread#10" os_prio=0 tid=0x0000000001a92800 nid=0x53f7 runnable


"G1 Concurrent Refinement Thread#11" os_prio=0 tid=0x0000000001a90800 nid=0x53f6 runnable


"G1 Concurrent Refinement Thread#12" os_prio=0 tid=0x0000000001a8e800 nid=0x53f5 runnable


"G1 Concurrent Refinement Thread#13" os_prio=0 tid=0x0000000001a8c800 nid=0x53f4 runnable


"G1 Concurrent Refinement Thread#14" os_prio=0 tid=0x0000000001a8b000 nid=0x53f3 runnable


"G1 Concurrent Refinement Thread#15" os_prio=0 tid=0x0000000001a89000 nid=0x53f2 runnable


"G1 Concurrent Refinement Thread#16" os_prio=0 tid=0x0000000001a87000 nid=0x53f1 runnable


"G1 Concurrent Refinement Thread#17" os_prio=0 tid=0x0000000001a85800 nid=0x53f0 runnable


"G1 Concurrent Refinement Thread#18" os_prio=0 tid=0x0000000001a83800 nid=0x53ef runnable


"G1 Concurrent Refinement Thread#19" os_prio=0 tid=0x0000000001a81800 nid=0x53ee runnable


"G1 Concurrent Refinement Thread#20" os_prio=0 tid=0x0000000001a7f800 nid=0x53ed runnable


"G1 Concurrent Refinement Thread#21" os_prio=0 tid=0x0000000001a7e000 nid=0x53ec runnable


"G1 Concurrent Refinement Thread#22" os_prio=0 tid=0x0000000001a7c000 nid=0x53eb runnable


"G1 Concurrent Refinement Thread#23" os_prio=0 tid=0x0000000001a7a800 nid=0x53ea runnable


"String Deduplication Thread" os_prio=0 tid=0x00000000040e4000 nid=0x5409 runnable 

"VM Periodic Task Thread" os_prio=0 tid=0x000000000463f000 nid=0x5421 waiting on condition


> Stop abusing System.gc() on Commons Daemon jsvc shutdown
> --------------------------------------------------------
>
>                 Key: DAEMON-333
>                 URL: https://issues.apache.org/jira/browse/DAEMON-333
>             Project: Commons Daemon
>          Issue Type: Bug
>          Components: Jsvc
>    Affects Versions: 1.0.15
>            Reporter: Manuel Dominguez Sarmiento
>
> The shutdown sequence invokes System.gc() several times. I'm not sure why this would
be necessary, especially considering that System.gc() is only a hint and the JVM will not
necessarily do anything when this method is invoked. Especially if -XX:+DisableExplicitGC
is used, which is fairly common practice in production environments.
> In our case, we use rather huge heaps (over 100 GB) so shutdown can take forever, depending
on how much uncollected garbage there is in the JVM heap. We've always used -XX:+DisableExplicitGC
so this was never apparent, however we decided to stop using -XX:+DisableExplicitGC after
careful code review showed none of our apps or supporting libraries are using System.gc()
and sometimes we want to trigger GC manually from monitoring tools (Jconsole, VisualVM, etc.)
- but we found the hard way that Commons Daemon / jsvc is using System.gc() on shutdown, preventing
the speedy shutdown we were used to.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message