Hello Team, We have a situation where build comple...
# community-support
k
Hello Team, We have a situation where build completes successfully, but daemon continues in busy state causing the overall process to hang. This is only happening when ran through Jenkins, otherwise direct execution completes as expected. From analysis so far,
[DEBUG] [org.gradle.launcher.daemon.server.exec.ExecuteBuild] The daemon has finished executing the build.
is the last one present in daemon logs. Hereafter, its only the continuous loop from org.gradle.cache.internal.DefaultFileLockManager Gradle: 8.7 Java: 1.8 Kindly check in thread 🧵 for JSTACK on stuck Daemon Worker threads. Any suggestions?
Copy code
"Stdin handler" #23 prio=5 os_prio=0 tid=0x00007f90dc00e000 nid=0x7077 in Object.wait() [0x00007f912439d000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.io.PipedInputStream.awaitSpace(PipedInputStream.java:273)
        at java.io.PipedInputStream.receive(PipedInputStream.java:231)
        - locked <0x00000004f4aea338> (a java.io.PipedInputStream)
        at java.io.PipedOutputStream.write(PipedOutputStream.java:149)
        at java.io.OutputStream.write(OutputStream.java:75)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput$1.onInput(ForwardClientInput.java:54)
        at org.gradle.launcher.daemon.server.DefaultDaemonConnection$StdinQueue.doHandleCommand(DefaultDaemonConnection.java:299)
        at org.gradle.launcher.daemon.server.DefaultDaemonConnection$StdinQueue.doHandleCommand(DefaultDaemonConnection.java:286)
        at org.gradle.launcher.daemon.server.DefaultDaemonConnection$CommandQueue$1.run(DefaultDaemonConnection.java:259)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
        at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:47)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:750)

"Asynchronous log dispatcher for DefaultDaemonConnection: socket connection from /127.0.0.1:46335 to /127.0.0.1:36866" #22 prio=5 os_prio=0 tid=0x00007f90dc00c800 nid=0x7076 waiting on condition [0x00007f912449e000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleep(Native Method)
        at org.gradle.launcher.daemon.server.exec.LogToClient$AsynchronousLogDispatcher.run(LogToClient.java:108)

"Daemon worker" #21 prio=5 os_prio=0 tid=0x00007f90e0014800 nid=0x7073 waiting on condition [0x00007f912459e000]
   java.lang.Thread.State: TIMED_WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x00000004f47b2688> (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.ThreadPoolExecutor.awaitTermination(ThreadPoolExecutor.java:1475)
        at org.gradle.internal.concurrent.AbstractManagedExecutor.stop(AbstractManagedExecutor.java:86)
        at org.gradle.internal.concurrent.DefaultExecutorFactory$TrackedManagedExecutor.stop(DefaultExecutorFactory.java:116)
        at org.gradle.internal.concurrent.AbstractManagedExecutor.stop(AbstractManagedExecutor.java:76)
        at org.gradle.launcher.daemon.server.DefaultDaemonConnection$CommandQueue.stopConsuming(DefaultDaemonConnection.java:227)
        at org.gradle.launcher.daemon.server.DefaultDaemonConnection$CommandQueue.useHandler(DefaultDaemonConnection.java:211)
        at org.gradle.launcher.daemon.server.DefaultDaemonConnection.onStdin(DefaultDaemonConnection.java:109)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:83)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
        at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:64)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
        at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:63)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
        at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:84)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
        at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:52)
        at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
        at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:47)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:750)