Skip to content

All BSP actions (builds, runs) fail due to closed thread pool #5966

@nk2IsHere

Description

@nk2IsHere

Hello, we've been using mill in our project. There is another issue we experience with mill and running actions on the project. After starting BSP server and running the action the first time, any subsequent runs crash the BSP server.

Current workaround we found is to stop all BSP connections in idea and rerun action after that.

OS: macos 15.6
Java: azul 24
Mill version: 1.0.6
Logs included:

[15-compile] Entered buildTargetCompile
[15-compile] Evaluating 2 tasks
[15-compile] buildTargetCompile took 24 msec
[15-compile] buildTargetCompile caught exception: java.util.concurrent.RejectedExecutionException: Task mill.exec.ExecutionContexts$ThreadPool$PriorityRunnable@2f0c87f3 rejected from java.util.concurrent.ThreadPoolExecutor@fd07cbb[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 19202]
[15-compile] java.util.concurrent.RejectedExecutionException: Task mill.exec.ExecutionContexts$ThreadPool$PriorityRunnable@2f0c87f3 rejected from java.util.concurrent.ThreadPoolExecutor@fd07cbb[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 19202]
[15-compile] 	at java.base/java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2032)
[15-compile] 	at java.base/java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:787)
[15-compile] 	at java.base/java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1328)
[15-compile] 	at mill.exec.ExecutionContexts$ThreadPool.execute(ExecutionContexts.scala:63)
[15-compile] 	at scala.concurrent.impl.Promise$Transformation.submitWithValue(Promise.scala:429)
[15-compile] 	at scala.concurrent.impl.Promise$DefaultPromise.submitWithValue(Promise.scala:338)
[15-compile] 	at scala.concurrent.impl.Promise$DefaultPromise.dispatchOrAddCallbacks(Promise.scala:312)
[15-compile] 	at scala.concurrent.impl.Promise$DefaultPromise.map(Promise.scala:182)
[15-compile] 	at mill.exec.Execution.evaluateTerminals$1$$anonfun$1(Execution.scala:271)
[15-compile] 	at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
[15-compile] 	at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
[15-compile] 	at scala.collection.IterableOnceOps.foreach(IterableOnce.scala:619)
[15-compile] 	at scala.collection.IterableOnceOps.foreach$(IterableOnce.scala:617)
[15-compile] 	at scala.collection.AbstractIterable.foreach(Iterable.scala:935)
[15-compile] 	at mill.exec.Execution.evaluateTerminals$1(Execution.scala:160)
[15-compile] 	at mill.exec.Execution.execute0$$anonfun$1(Execution.scala:293)
[15-compile] 	at mill.api.daemon.Logger.withChromeProfile(Logger.scala:50)
[15-compile] 	at mill.api.daemon.Logger.withChromeProfile$(Logger.scala:12)
[15-compile] 	at mill.internal.PrefixLogger.withChromeProfile(PrefixLogger.scala:21)
[15-compile] 	at mill.exec.Execution.execute0(Execution.scala:334)
[15-compile] 	at mill.exec.Execution.executeTasks$$anonfun$1$$anonfun$1(Execution.scala:97)
[15-compile] 	at scala.util.DynamicVariable.withValue(DynamicVariable.scala:59)
[15-compile] 	at mill.exec.Execution.executeTasks$$anonfun$1(Execution.scala:98)
[15-compile] 	at mill.api.daemon.Logger$Prompt$NoOp.withPromptUnpaused(Logger.scala:191)
[15-compile] 	at mill.exec.Execution.executeTasks(Execution.scala:99)
[15-compile] 	at mill.eval.EvaluatorImpl.execute(EvaluatorImpl.scala:194)
[15-compile] 	at mill.api.Evaluator.executeApi$$anonfun$2(Evaluator.scala:128)
[15-compile] 	at mill.api.BuildCtx$.withFilesystemCheckerDisabled$$anonfun$1(BuildCtx.scala:31)
[15-compile] 	at scala.util.DynamicVariable.withValue(DynamicVariable.scala:59)
[15-compile] 	at mill.api.BuildCtx$.withFilesystemCheckerDisabled(BuildCtx.scala:31)
[15-compile] 	at mill.api.Evaluator.executeApi(Evaluator.scala:130)
[15-compile] 	at mill.api.Evaluator.executeApi$(Evaluator.scala:22)
[15-compile] 	at mill.eval.EvaluatorImpl.executeApi(EvaluatorImpl.scala:24)
[15-compile] 	at mill.bsp.worker.MillBuildServer.evaluate(MillBuildServer.scala:1012)
[15-compile] 	at mill.bsp.worker.MillBuildServer.$anonfun$23(MillBuildServer.scala:537)
[15-compile] 	at scala.collection.StrictOptimizedIterableOps.map(StrictOptimizedIterableOps.scala:100)
[15-compile] 	at scala.collection.StrictOptimizedIterableOps.map$(StrictOptimizedIterableOps.scala:87)
[15-compile] 	at scala.collection.immutable.Map$Map1.map(Map.scala:259)
[15-compile] 	at mill.bsp.worker.MillBuildServer.buildTargetCompile$$anonfun$1(MillBuildServer.scala:529)
[15-compile] 	at mill.bsp.worker.MillBuildServer.$anonfun$41(MillBuildServer.scala:922)
[15-compile] 	at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
[15-compile] 	at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
[15-compile] 	at mill.bsp.worker.MillBuildServer$$anon$1.run$$anonfun$1$$anonfun$1$$anonfun$1(MillBuildServer.scala:876)
[15-compile] 	at scala.Option.foreach(Option.scala:437)
[15-compile] 	at mill.bsp.worker.MillBuildServer$$anon$1.run$$anonfun$1$$anonfun$1(MillBuildServer.scala:873)
[15-compile] 	at mill.bsp.worker.MillBuildServer$$anon$1.run$$anonfun$1$$anonfun$adapted$1(MillBuildServer.scala:886)
[15-compile] 	at mill.server.MillDaemonServer$.withOutLock$$anonfun$1(MillDaemonServer.scala:188)
[15-compile] 	at scala.util.Using$.resource(Using.scala:296)
[15-compile] 	at mill.server.MillDaemonServer$.withOutLock(MillDaemonServer.scala:190)
[15-compile] 	at mill.bsp.worker.MillBuildServer$$anon$1.run$$anonfun$1(MillBuildServer.scala:886)
[15-compile] 	at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
[15-compile] 	at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
[15-compile] 	at scala.Option.foreach(Option.scala:437)
[15-compile] 	at mill.bsp.worker.MillBuildServer$$anon$1.run(MillBuildServer.scala:863)
Oct 10, 2025 7:17:49 PM org.eclipse.lsp4j.jsonrpc.RemoteEndpoint fallbackResponseError
SEVERE: Internal error: java.util.concurrent.RejectedExecutionException: Task mill.exec.ExecutionContexts$ThreadPool$PriorityRunnable@2f0c87f3 rejected from java.util.concurrent.ThreadPoolExecutor@fd07cbb[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 19202]
java.util.concurrent.CompletionException: java.util.concurrent.RejectedExecutionException: Task mill.exec.ExecutionContexts$ThreadPool$PriorityRunnable@2f0c87f3 rejected from java.util.concurrent.ThreadPoolExecutor@fd07cbb[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 19202]
at java.base/java.util.concurrent.CompletableFuture.wrapInCompletionException(CompletableFuture.java:323)
at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:376)
at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:391)
at java.base/java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:729)
at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:531)
at java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2221)
at mill.bsp.worker.MillBuildServer.$anonfun$41(MillBuildServer.scala:936)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at mill.bsp.worker.MillBuildServer$$anon$1.run$$anonfun$1$$anonfun$1$$anonfun$1(MillBuildServer.scala:876)
at scala.Option.foreach(Option.scala:437)
at mill.bsp.worker.MillBuildServer$$anon$1.run$$anonfun$1$$anonfun$1(MillBuildServer.scala:873)
at mill.bsp.worker.MillBuildServer$$anon$1.run$$anonfun$1$$anonfun$adapted$1(MillBuildServer.scala:886)
at mill.server.MillDaemonServer$.withOutLock$$anonfun$1(MillDaemonServer.scala:188)
at scala.util.Using$.resource(Using.scala:296)
at mill.server.MillDaemonServer$.withOutLock(MillDaemonServer.scala:190)
at mill.bsp.worker.MillBuildServer$$anon$1.run$$anonfun$1(MillBuildServer.scala:886)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.Option.foreach(Option.scala:437)
at mill.bsp.worker.MillBuildServer$$anon$1.run(MillBuildServer.scala:863)
Caused by: java.util.concurrent.RejectedExecutionException: Task mill.exec.ExecutionContexts$ThreadPool$PriorityRunnable@2f0c87f3 rejected from java.util.concurrent.ThreadPoolExecutor@fd07cbb[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 19202]
at java.base/java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2032)
at java.base/java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:787)
at java.base/java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1328)
at mill.exec.ExecutionContexts$ThreadPool.execute(ExecutionContexts.scala:63)
at scala.concurrent.impl.Promise$Transformation.submitWithValue(Promise.scala:429)
at scala.concurrent.impl.Promise$DefaultPromise.submitWithValue(Promise.scala:338)
at scala.concurrent.impl.Promise$DefaultPromise.dispatchOrAddCallbacks(Promise.scala:312)
at scala.concurrent.impl.Promise$DefaultPromise.map(Promise.scala:182)
at mill.exec.Execution.evaluateTerminals$1$$anonfun$1(Execution.scala:271)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.IterableOnceOps.foreach(IterableOnce.scala:619)
at scala.collection.IterableOnceOps.foreach$(IterableOnce.scala:617)
at scala.collection.AbstractIterable.foreach(Iterable.scala:935)
at mill.exec.Execution.evaluateTerminals$1(Execution.scala:160)
at mill.exec.Execution.execute0$$anonfun$1(Execution.scala:293)
at mill.api.daemon.Logger.withChromeProfile(Logger.scala:50)
at mill.api.daemon.Logger.withChromeProfile$(Logger.scala:12)
at mill.internal.PrefixLogger.withChromeProfile(PrefixLogger.scala:21)
at mill.exec.Execution.execute0(Execution.scala:334)
at mill.exec.Execution.executeTasks$$anonfun$1$$anonfun$1(Execution.scala:97)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:59)
at mill.exec.Execution.executeTasks$$anonfun$1(Execution.scala:98)
at mill.api.daemon.Logger$Prompt$NoOp.withPromptUnpaused(Logger.scala:191)
at mill.exec.Execution.executeTasks(Execution.scala:99)
at mill.eval.EvaluatorImpl.execute(EvaluatorImpl.scala:194)
at mill.api.Evaluator.executeApi$$anonfun$2(Evaluator.scala:128)
at mill.api.BuildCtx$.withFilesystemCheckerDisabled$$anonfun$1(BuildCtx.scala:31)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:59)
at mill.api.BuildCtx$.withFilesystemCheckerDisabled(BuildCtx.scala:31)
at mill.api.Evaluator.executeApi(Evaluator.scala:130)
at mill.api.Evaluator.executeApi$(Evaluator.scala:22)
at mill.eval.EvaluatorImpl.executeApi(EvaluatorImpl.scala:24)
at mill.bsp.worker.MillBuildServer.evaluate(MillBuildServer.scala:1012)
at mill.bsp.worker.MillBuildServer.$anonfun$23(MillBuildServer.scala:537)
at scala.collection.StrictOptimizedIterableOps.map(StrictOptimizedIterableOps.scala:100)
at scala.collection.StrictOptimizedIterableOps.map$(StrictOptimizedIterableOps.scala:87)
at scala.collection.immutable.Map$Map1.map(Map.scala:259)
at mill.bsp.worker.MillBuildServer.buildTargetCompile$$anonfun$1(MillBuildServer.scala:529)
at mill.bsp.worker.MillBuildServer.$anonfun$41(MillBuildServer.scala:922)
... 14 more

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions