# Extension is updated?

**URL:** <https://discourse.julialang.org/t/extension-is-updated/130045>\
**Category:** VS Code\
**Created:** [June 19, 2025, 10:24pm UTC](https://discourse.julialang.org/t/extension-is-updated/130045 "2025-06-19T22:24:26Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![Ken\_Williams](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ken_williams/32/5289_2.png) [@Ken\_Williams](https://discourse.julialang.org/u/Ken_Williams)\
**Post date:** [June 19, 2025, 10:24pm UTC](https://discourse.julialang.org/t/extension-is-updated/130045/1 "2025-06-19T22:24:26Z")

</div>

I noticed that a version 1.146.2 of the VS Code extension was released a few days ago. Is there a summary of what’s updated?

I’m still pinning myself to 1.127.2, since the version after that broke test-running (see [VS Code won't run tests anymore](https://discourse.julialang.org/t/vs-code-wont-run-tests-anymore/129233)). If that’s supposed to be fixed now, I’ll try the new version.

---

<div class="post-metadata">

**Author:** ![Ken\_Williams](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ken_williams/32/5289_2.png) [@Ken\_Williams](https://discourse.julialang.org/u/Ken_Williams)\
**Post date:** [June 23, 2025, 6:48pm UTC](https://discourse.julialang.org/t/extension-is-updated/130045/2 "2025-06-23T18:48:25Z")

</div>

I tried out the 1.146.2 release today, so far it seems like it’s fixed the testing bugs from 1.140.

---

<div class="post-metadata">

**Author:** ![Ken\_Williams](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ken_williams/32/5289_2.png) [@Ken\_Williams](https://discourse.julialang.org/u/Ken_Williams)\
**Post date:** [June 23, 2025, 7:52pm UTC](https://discourse.julialang.org/t/extension-is-updated/130045/3 "2025-06-23T19:52:33Z")

</div>

I spoke too soon, I’m seeing hangs again. At least this time there are some errors in the “Test Tesults” panel - starting out like so:

```julia
[91165] signal (15): Terminated: 15
in expression starting at /Users/kwilliams/.vscode/extensions/julialang.language-julia-1.146.2/scripts/packages/TestItemControllers/testprocess/app/testserver_main.jl:19
[ Info: Julia test item process launching
[ Info: Julia test item process launching
[ Info: Julia test item process launching
[ Info: Julia test item process launching
[ Info: Julia test item process launching
[ Info: Julia test item process launching
[ Info: Julia test item process launching
[ Info: Julia test item process launching
[ Info: Julia test item process launching
nnable
Stacktrace:
  [1] error(s::String)
    @ Base ./error.jl:35
  [2] schedule(t::Task, arg::Any; error::Bool)
    @ Base ./task.jl:871
  [3] schedule
    @ ./task.jl:863 [inlined]
  [4] uv_writecb_task(req::Ptr{Nothing}, status::Int32)
    @ Base ./stream.jl:1166
  [5] poptask(W::Base.IntrusiveLinkedListSynchronized{Task})
    @ Base ./task.jl:999
  [6] wait()
    @ Base ./task.jl:1008
  [7] uv_write(s::Base.PipeEndpoint, p::Ptr{UInt8}, n::UInt64)
    @ Base ./stream.jl:1048
  [8] unsafe_write(s::Base.PipeEndpoint, p::Ptr{UInt8}, n::UInt64)
    @ Base ./stream.jl:1120
  [9] unsafe_write
    @ ./io.jl:698 [inlined]
 [10] write(s::Base.PipeEndpoint, a::Vector{UInt8})
    @ Base ./io.jl:721
 [11] handle_message(logger::Logging.ConsoleLogger, level::Base.CoreLogging.LogLevel, message::Any, _module::Any, group::Any, id::Any, filepath::Any, line::Any; kwargs...)
    @ Logging ~/.julia/juliaup/julia-1.10.9+0.aarch64.apple.darwin14/share/julia/stdlib/v1.10/Logging/src/ConsoleLogger.jl:178
 [12] handle_message(logger::Logging.ConsoleLogger, level::Base.CoreLogging.LogLevel, message::Any, _module::Any, group::Any, id::Any, filepath::Any, line::Any)
    @ Logging ~/.julia/juliaup/julia-1.10.9+0.aarch64.apple.darwin14/share/julia/stdlib/v1.10/Logging/src/ConsoleLogger.jl:106
 [13] #invokelatest#2
    @ ./essentials.jl:892 [inlined]
 [14] invokelatest
    @ ./essentials.jl:889 [inlined]
 [15] macro expansion
    @ ./logging.jl:377 [inlined]
 [16] temp_cleanup_purge(; force::Bool)
    @ Base.Filesystem ./file.jl:549
 [17] temp_cleanup_purge
    @ ./file.jl:537 [inlined]
 [18] (::Base.var"#951#952")()
    @ Base ./initdefs.jl:366
 [19] _atexit(exitcode::Int32)
    @ Base ./initdefs.jl:428
  Activating new project at `/var/folders/d5/xj384ymn2r551n6yk4mwl2ch0000gp/T/jl_Txhadu`
   Resolving package versions...
kevent at /usr/lib/system/libsystem_kernel.dylib (unknown line)
unknown function (ip: 0x0)
Allocations: 80911676 (Pool: 80807110; Big: 104566); GC: 67
kevent at /usr/lib/system/libsystem_kernel.dylib (unknown line)
unknown function (ip: 0x0)
Allocations: 103573488 (Pool: 103438497; Big: 134991); GC: 63
┌ Warning: Failed to clean up temporary path "/var/folders/d5/xj384ymn2r551n6yk4mwl2ch0000gp/T/jl_OHsqO7"
│ ErrorException("schedule: Task not runnable")
└ @ Base.Filesystem file.jl:549
schedule: Task not runnablekevent at /usr/lib/system/libsystem_kernel.dylib (unknown line)
unknown function (ip: 0x0)
Allocations: 105242613 (Pool: 105112657; Big: 129956); GC: 75
┌ Warning: Failed to clean up temporary path "/var/folders/d5/xj384ymn2r551n6yk4mwl2ch0000gp/T/jl_wqlEA9"
│ ErrorException("schedule: Task not runnable")
└ @ Base.Filesystem file.jl:549
schedule: Task not runnablekevent at /usr/lib/system/libsystem_kernel.dylib (unknown line)
unknown function (ip: 0x0)
Allocations: 131856809 (Pool: 131687481; Big: 169328); GC: 71
kevent at /usr/lib/system/libsystem_kernel.dylib (unknown line)
unknown function (ip: 0x0)
Allocations: 137510072 (Pool: 137327213; Big: 182859); GC: 103
kevent at /usr/lib/system/libsystem_kernel.dylib (unknown line)
unknown function (ip: 0x0)
Allocations: 90945099 (Pool: 90830937; Big: 114162); GC: 62
...

```

So I’ll be reinstalling 1.127.2.

---

<div class="post-metadata">

**Author:** ![davidanthoff](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/davidanthoff/32/223493_2.png) [@davidanthoff](https://discourse.julialang.org/u/davidanthoff)\
**Post date:** [June 24, 2025, 10:24am UTC](https://discourse.julialang.org/t/extension-is-updated/130045/4 "2025-06-24T10:24:47Z")

</div>

Hm, that actually looks like a Julia bug to me… What Julia version are you using?

Also, there is a newer version of the extension as a pre-release out right now (v1.147) and in general I’m pushing out new versions there a lot that fix more and more test item stuff, its the thing I’m focused on right now. So maybe ideally at the moment try the pre-release versions to get the latest test item fixes. But I don’t think your error would be explained/fixed by the newer version…

---

<div class="post-metadata">

**Author:** ![Ken\_Williams](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ken_williams/32/5289_2.png) [@Ken\_Williams](https://discourse.julialang.org/u/Ken_Williams)\
**Post date:** [June 24, 2025, 9:51pm UTC](https://discourse.julialang.org/t/extension-is-updated/130045/5 "2025-06-24T21:51:23Z")

</div>

I’m using `1.10.9+0.aarch64.apple.darwin14` for my project, but I think VS Code is finding `1.11.5+0.aarch64.apple.darwin14` on my machine and using that for the test daemon processes? I’m not quite sure how to tell.

**[EDIT]** Actually I see `Logging ~/.julia/juliaup/julia-1.10.9+0.aarch64.apple.darwin14` in the error output, so I guess it’s using my `juliaup` default of 1.10.9.

---

<div class="post-metadata">

**Author:** ![davidanthoff](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/davidanthoff/32/223493_2.png) [@davidanthoff](https://discourse.julialang.org/u/davidanthoff)\
**Post date:** [June 25, 2025, 6:37pm UTC](https://discourse.julialang.org/t/extension-is-updated/130045/6 "2025-06-25T18:37:15Z")

</div>

It will always use the Juliaup `release` channel for the coordinator, and then whatever you configured as the default in Juliaup to run the actual tests.

Could you try to run the tests with Julia 1.11 as the default? If this is indeed a Julia bug, maybe it has been fixed in the meantime…

---

<div class="post-metadata">

**Author:** ![Ken\_Williams](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ken_williams/32/5289_2.png) [@Ken\_Williams](https://discourse.julialang.org/u/Ken_Williams)\
**Post date:** [July 1, 2025, 10:31pm UTC](https://discourse.julialang.org/t/extension-is-updated/130045/7 "2025-07-01T22:31:21Z")

</div>

I didn’t get a chance to try Julia 1.11, but I did see that version 1.149.2 of the extension was released in the meantime - I installed that and have put it through a few paces (still with Julia 1.10) and so far it looks good.

---

<div class="post-metadata">

**Author:** ![Ken\_Williams](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ken_williams/32/5289_2.png) [@Ken\_Williams](https://discourse.julialang.org/u/Ken_Williams)\
**Post date:** [July 2, 2025, 7:32pm UTC](https://discourse.julialang.org/t/extension-is-updated/130045/8 "2025-07-02T19:32:34Z")

</div>

I’ve now had a chance to try Julia 1.11 with version 1.149.2 of the extension. Still getting trouble. A test run is currently hung up before executing any tests. I captured the following from the “Julia Test Item Controller” output:

```julia
[ Info: New env, lets figure out whether we need to precompile the test environment
[ Info: Julia version is new enough
[ Info: Stealing 7 test items from 783c2c12-e818-4506-8ae1-276bf87bd686 for 9482e969-2591-48b4-ba28-cc23a69ee7b2.
[ Info: Stealing 3 test items from 783c2c12-e818-4506-8ae1-276bf87bd686 for 2aaa00a2-95c0-4a5a-9ebd-5a0018d76e81.
[ Info: Stealing 3 test items from 9482e969-2591-48b4-ba28-cc23a69ee7b2 for 7fa1f651-1f84-40a0-b90e-d47da50bba8b.
[ Info: Stealing 3 test items from 251994c6-eaa4-4cdc-a857-dbc34b16ec63 for 7fa1f651-1f84-40a0-b90e-d47da50bba8b.
[ Info: Stealing 1 test items from 7fa1f651-1f84-40a0-b90e-d47da50bba8b for 538d7a03-e30f-4f06-9d79-00162b0c7191.
[ Info: Stealing 1 test items from bb5d552d-5421-47cc-a09f-446ef8cff131 for 538d7a03-e30f-4f06-9d79-00162b0c7191.
[ Info: Stealing 1 test items from d1f90ea9-8b50-43b1-a2e9-73553d575894 for 783c2c12-e818-4506-8ae1-276bf87bd686.
[ Info: Stealing 1 test items from 7fa1f651-1f84-40a0-b90e-d47da50bba8b for 9482e969-2591-48b4-ba28-cc23a69ee7b2.
[ Info: Stealing 1 test items from bb5d552d-5421-47cc-a09f-446ef8cff131 for 9482e969-2591-48b4-ba28-cc23a69ee7b2.
[ Info: Stealing 1 test items from 5ccf5995-5394-449c-8dbd-c655002c6fce for bb5d552d-5421-47cc-a09f-446ef8cff131.
[ Info: Stealing 1 test items from d1f90ea9-8b50-43b1-a2e9-73553d575894 for 7fa1f651-1f84-40a0-b90e-d47da50bba8b.
[ Info: Nothing to steal for 0023b44a-0fb1-40e9-b0ee-7290b99fb90e, returning to pool (passed: file:///Users/kwilliams/git/transmission/TFOpt.jl/test/workspace_test.jl:20).
[ Info: Nothing to steal for 538d7a03-e30f-4f06-9d79-00162b0c7191, returning to pool (passed: file:///Users/kwilliams/git/transmission/TFOpt.jl/test/proposals_test.jl:6).
[ Info: Nothing to steal for 7fa1f651-1f84-40a0-b90e-d47da50bba8b, returning to pool (passed: file:///Users/kwilliams/git/transmission/TFOpt.jl/test/sme_models_test.jl:4).
[ Info: Nothing to steal for d1f90ea9-8b50-43b1-a2e9-73553d575894, returning to pool (skipped_stolen: file:///Users/kwilliams/git/transmission/TFOpt.jl/test/ptdf_test.jl:1).
[ Info: Nothing to steal for bb5d552d-5421-47cc-a09f-446ef8cff131, returning to pool (passed: file:///Users/kwilliams/git/transmission/TFOpt.jl/test/objective_test.jl:5).
[ Info: Nothing to steal for 2aaa00a2-95c0-4a5a-9ebd-5a0018d76e81, returning to pool (passed: file:///Users/kwilliams/git/transmission/TFOpt.jl/test/workspace_test.jl:11).
[ Info: Nothing to steal for 251994c6-eaa4-4cdc-a857-dbc34b16ec63, returning to pool (skipped_stolen: file:///Users/kwilliams/git/transmission/TFOpt.jl/test/sme_models_test.jl:5).
[ Info: Nothing to steal for 9482e969-2591-48b4-ba28-cc23a69ee7b2, returning to pool (passed: file:///Users/kwilliams/git/transmission/TFOpt.jl/test/ptdf_test.jl:6).
[ Info: Nothing to steal for 783c2c12-e818-4506-8ae1-276bf87bd686, returning to pool (passed: file:///Users/kwilliams/git/transmission/TFOpt.jl/test/ptdf_test.jl:1).
[ Info: Nothing to steal for 5ccf5995-5394-449c-8dbd-c655002c6fce, returning to pool (skipped_stolen: file:///Users/kwilliams/git/transmission/TFOpt.jl/test/objective_test.jl:5).
[ Info: Creating new test run
┌ Info: Test environment
│ 
│ Project Uri: nothing
│ Package Uri: file:///Users/kwilliams/git/transmission/TFOpt.jl
│ Package Name: TFOpt
│ Julia command: julia
│ Julia Num Threads: missing
│ Mode: Normal
│ Env: Dict{String, Union{Nothing, String}}()
│ 
└ We need 10 procs, there are 10 processes, of which 10 are idle.
[ Info: New env, lets figure out whether we need to precompile the test environment
[ Info: Julia version is new enough
[ Info: Revise could not handle changes or test env was changed, restarting process
[ Info: Revise could not handle changes or test env was changed, restarting process
[ Info: Revise could not handle changes or test env was changed, restarting process
[ Info: Revise could not handle changes or test env was changed, restarting process
[ Info: Revise could not handle changes or test env was changed, restarting process
[ Info: Revise could not handle changes or test env was changed, restarting process
[ Info: Revise could not handle changes or test env was changed, restarting process
[ Info: Revise could not handle changes or test env was changed, restarting process
[ Info: Revise could not handle changes or test env was changed, restarting process
[ Info: Revise could not handle changes or test env was changed, restarting process
ERROR: InvalidStateException: Channel is closed.
Stacktrace:
 [1] try_yieldto(undo::typeof(Base.ensure_rescheduled))
   @ Base ./task.jl:958
 [2] wait()
   @ Base ./task.jl:1022
 [3] wait(c::Base.GenericCondition{ReentrantLock}; first::Bool)
   @ Base ./condition.jl:130
 [4] wait
   @ ./condition.jl:125 [inlined]
 [5] take_buffered(c::Channel{TestItemControllers.JSONRPC.Request})
   @ Base ./channels.jl:493
 [6] take!
   @ ./channels.jl:487 [inlined]
 [7] get_next_message
   @ ~/.vscode/extensions/julialang.language-julia-1.149.2/scripts/packages/TestItemControllers/packages/JSONRPC/src/core.jl:330 [inlined]
 [8] start(testprocess_id::String, controller_msg_channel::Channel{Any}, testprocess_msg_channel::Channel{Any}, env::TestItemControllers.TestEnvironment, debug_pipe_name::String, error_handler_file::String, crash_reporting_pipename::String, token::TestItemControllers.CancellationTokens.CancellationToken)
   @ TestItemControllers ~/.vscode/extensions/julialang.language-julia-1.149.2/scripts/packages/TestItemControllers/src/testprocess.jl:634
 [9] (::TestItemControllers.var"#54#64"{TestItemControllers.CancellationTokens.CancellationTokenSource, String, Channel{Any}, TestItemControllers.TestEnvironment, String, String, Channel{Any}, String})()
   @ TestItemControllers ~/.vscode/extensions/julialang.language-julia-1.149.2/scripts/packages/TestItemControllers/src/testprocess.jl:165
ERROR: InvalidStateException: Channel is closed.
Stacktrace:
 [1] try_yieldto(undo::typeof(Base.ensure_rescheduled))
   @ Base ./task.jl:958
 [2] wait()
   @ Base ./task.jl:1022
 [3] wait(c::Base.GenericCondition{ReentrantLock}; first::Bool)
   @ Base ./condition.jl:130
 [4] wait
   @ ./condition.jl:125 [inlined]
 [5] take_buffered(c::Channel{TestItemControllers.JSONRPC.Request})
   @ Base ./channels.jl:493
 [6] take!
   @ ./channels.jl:487 [inlined]
 [7] get_next_message
   @ ~/.vscode/extensions/julialang.language-julia-1.149.2/scripts/packages/TestItemControllers/packages/JSONRPC/src/core.jl:330 [inlined]
 [8] start(testprocess_id::String, controller_msg_channel::Channel{Any}, testprocess_msg_channel::Channel{Any}, env::TestItemControllers.TestEnvironment, debug_pipe_name::String, error_handler_file::String, crash_reporting_pipename::String, token::TestItemControllers.CancellationTokens.CancellationToken)
   @ TestItemControllers ~/.vscode/extensions/julialang.language-julia-1.149.2/scripts/packages/TestItemControllers/src/testprocess.jl:634
 [9] (::TestItemControllers.var"#54#64"{TestItemControllers.CancellationTokens.CancellationTokenSource, String, Channel{Any}, TestItemControllers.TestEnvironment, String, String, Channel{Any}, String})()
   @ TestItemControllers ~/.vscode/extensions/julialang.language-julia-1.149.2/scripts/packages/TestItemControllers/src/testprocess.jl:165
ERROR: InvalidStateException: Channel is closed.
Stacktrace:
 [1] try_yieldto(undo::typeof(Base.ensure_rescheduled))
   @ Base ./task.jl:958
 [2] wait()
   @ Base ./task.jl:1022
 [3] wait(c::Base.GenericCondition{ReentrantLock}; first::Bool)ERROR: 
InvalidStateException: @Channel is closed. 
Stacktrace:Base
  ./[1]condition.jl:130 try_yieldto(undo::typeof(Base.ensure_rescheduled))

    @[4] Basewait 
./ @task.jl:958 ./
condition.jl:125 [inlined][2]
  wait()[5]
    @take_buffered(c::Channel{TestItemControllers.JSONRPC.Request}) 
Base @ ./Basetask.jl:1022 ./
channels.jl:493 [3]
  wait(c::Base.GenericCondition{ReentrantLock}; first::Bool)[6]
    @take! 
Base @ ././condition.jl:130channels.jl:487 [inlined]

 [4] wait[7]
    @get_next_message 
./ @condition.jl:125 [inlined]~/.vscode/extensions/julialang.language-julia-1.149.2/scripts/packages/TestItemControllers/packages/JSONRPC/src/
core.jl:330 [inlined][5]
  take_buffered(c::Channel{TestItemControllers.JSONRPC.Request})[8]
    @start(testprocess_id::String, controller_msg_channel::Channel{Any}, testprocess_msg_channel::Channel{Any}, env::TestItemControllers.TestEnvironment, debug_pipe_name::String, error_handler_file::String, crash_reporting_pipename::String, token::TestItemControllers.CancellationTokens.CancellationToken) 
Base @ ./TestItemControllerschannels.jl:493 ~/.vscode/extensions/julialang.language-julia-1.149.2/scripts/packages/TestItemControllers/src/
testprocess.jl:634 [6]
  take![9]
    @(::TestItemControllers.var"#54#64"{TestItemControllers.CancellationTokens.CancellationTokenSource, String, Channel{Any}, TestItemControllers.TestEnvironment, String, String, Channel{Any}, String})() 
./ @channels.jl:487 [inlined]TestItemControllers
  ~/.vscode/extensions/julialang.language-julia-1.149.2/scripts/packages/TestItemControllers/src/[7]testprocess.jl:165 get_next_message

   @ ~/.vscode/extensions/julialang.language-julia-1.149.2/scripts/packages/TestItemControllers/packages/JSONRPC/src/core.jl:330 [inlined]
 [8] start(testprocess_id::String, controller_msg_channel::Channel{Any}, testprocess_msg_channel::Channel{Any}, env::TestItemControllers.TestEnvironment, debug_pipe_name::String, error_handler_file::String, crash_reporting_pipename::String, token::TestItemControllers.CancellationTokens.CancellationToken)
   @ TestItemControllers ~/.vscode/extensions/julialang.language-julia-1.149.2/scripts/packages/TestItemControllers/src/testprocess.jl:634
 [9] (::TestItemControllers.var"#54#64"{TestItemControllers.CancellationTokens.CancellationTokenSource, String, Channel{Any}, TestItemControllers.TestEnvironment, String, String, Channel{Any}, String})()
   @ TestItemControllers ~/.vscode/extensions/julialang.language-julia-1.149.2/scripts/packages/TestItemControllers/src/testprocess.jl:165
ERROR: InvalidStateException: Channel is closed.
Stacktrace:
 [1] try_yieldto(undo::typeof(Base.ensure_rescheduled))
   @ Base ./task.jl:958
 [2] wait()
   @ Base ./task.jl:1022
 [3] wait(c::Base.GenericCondition{ReentrantLock}; first::Bool)
   @ Base ./condition.jl:130
 [4] wait
   @ ./condition.jl:125 [inlined]
 [5] take_buffered(c::Channel{TestItemControllers.JSONRPC.Request})
   @ Base ./channels.jl:493
 [6] take!
   @ ./channels.jl:487 [inlined]
 [7] get_next_message
   @ ~/.vscode/extensions/julialang.language-julia-1.149.2/scripts/packages/TestItemControllers/packages/JSONRPC/src/core.jl:330 [inlined]
 [8] start(testprocess_id::String, controller_msg_channel::Channel{Any}, testprocess_msg_channel::Channel{Any}, env::TestItemControllers.TestEnvironment, debug_pipe_name::String, error_handler_file::String, crash_reporting_pipename::String, token::TestItemControllers.CancellationTokens.CancellationToken)
   @ TestItemControllers ~/.vscode/extensions/julialang.language-julia-1.149.2/scripts/packages/TestItemControllers/src/testprocess.jl:634
 [9] (::TestItemControllers.var"#54#64"{TestItemControllers.CancellationTokens.CancellationTokenSource, String, Channel{Any}, TestItemControllers.TestEnvironment, String, String, Channel{Any}, String})()
   @ TestItemControllers ~/.vscode/extensions/julialang.language-julia-1.149.2/scripts/packages/TestItemControllers/src/testprocess.jl:165
ERROR: InvalidStateException: Channel is closed.
Stacktrace:
 [1] try_yieldto(undo::typeof(Base.ensure_rescheduled))
   @ Base ./task.jl:958
 [2] wait()
   @ Base ERROR: ./InvalidStateException: task.jl:1022Channel is closed.
Stacktrace:

 [1] try_yieldto(undo::typeof(Base.ensure_rescheduled))[3]
    @wait(c::Base.GenericCondition{ReentrantLock}; first::Bool) 
Base @ ./Basetask.jl:958 ./
condition.jl:130 [2]
  wait()[4]
    @wait 
Base @ ././task.jl:1022condition.jl:125 [inlined]

 [3] wait(c::Base.GenericCondition{ReentrantLock}; first::Bool)[5]
    @take_buffered(c::Channel{TestItemControllers.JSONRPC.Request}) 
Base @ ./Basecondition.jl:130 ./
channels.jl:493 [4]
  wait[6]
    @take! 
./ @condition.jl:125 [inlined]./
channels.jl:487 [inlined][5]
  take_buffered(c::Channel{TestItemControllers.JSONRPC.Request})[7]
    @get_next_message 
Base @ ./~/.vscode/extensions/julialang.language-julia-1.149.2/scripts/packages/TestItemControllers/packages/JSONRPC/src/channels.jl:493ERROR: core.jl:330InvalidStateException: [inlined]
Channel is closed.

Stacktrace:
 [1] try_yieldto(undo::typeof(Base.ensure_rescheduled))[8]
    @ start(testprocess_id::String, controller_msg_channel::Channel{Any}, testprocess_msg_channel::Channel{Any}, env::TestItemControllers.TestEnvironment, debug_pipe_name::String, error_handler_file::String, crash_reporting_pipename::String, token::TestItemControllers.CancellationTokens.CancellationToken) [6]
Base @ take! ./
TestItemControllerstask.jl:958 @ ~/.vscode/extensions/julialang.language-julia-1.149.2/scripts/packages/TestItemControllers/src/
./testprocess.jl:634 channels.jl:487[2] [inlined]
 
 wait()[9]
    @ (::TestItemControllers.var"#54#64"{TestItemControllers.CancellationTokens.CancellationTokenSource, String, Channel{Any}, TestItemControllers.TestEnvironment, String, String, Channel{Any}, String})() [7]
Base @ get_next_message ./
TestItemControllerstask.jl:1022 @ ~/.vscode/extensions/julialang.language-julia-1.149.2/scripts/packages/TestItemControllers/src/
~/.vscode/extensions/julialang.language-julia-1.149.2/scripts/packages/TestItemControllers/packages/JSONRPC/src/testprocess.jl:165 core.jl:330[3] [inlined]
 
wait(c::Base.GenericCondition{ReentrantLock}; first::Bool) 
[8] @ start(testprocess_id::String, controller_msg_channel::Channel{Any}, testprocess_msg_channel::Channel{Any}, env::TestItemControllers.TestEnvironment, debug_pipe_name::String, error_handler_file::String, crash_reporting_pipename::String, token::TestItemControllers.CancellationTokens.CancellationToken)Base
    @./ condition.jl:130TestItemControllers 
~/.vscode/extensions/julialang.language-julia-1.149.2/scripts/packages/TestItemControllers/src/ testprocess.jl:634[4] 
wait 
[9] @ (::TestItemControllers.var"#54#64"{TestItemControllers.CancellationTokens.CancellationTokenSource, String, Channel{Any}, TestItemControllers.TestEnvironment, String, String, Channel{Any}, String})()./
condition.jl:125 @ [inlined] 
TestItemControllers [5]~/.vscode/extensions/julialang.language-julia-1.149.2/scripts/packages/TestItemControllers/src/ testprocess.jl:165take_buffered(c::Channel{TestItemControllers.JSONRPC.Request})

   @ Base ./channels.jl:493
 [6] take!
   @ ./channels.jl:487 [inlined]
 [7] ERROR: get_next_messageInvalidStateException: 
Channel is closed. @
Stacktrace: 
~/.vscode/extensions/julialang.language-julia-1.149.2/scripts/packages/TestItemControllers/packages/JSONRPC/src/ core.jl:330[1] [inlined] 
try_yieldto(undo::typeof(Base.ensure_rescheduled)) 
[8] @ start(testprocess_id::String, controller_msg_channel::Channel{Any}, testprocess_msg_channel::Channel{Any}, env::TestItemControllers.TestEnvironment, debug_pipe_name::String, error_handler_file::String, crash_reporting_pipename::String, token::TestItemControllers.CancellationTokens.CancellationToken)Base
    @./ task.jl:958TestItemControllers 
~/.vscode/extensions/julialang.language-julia-1.149.2/scripts/packages/TestItemControllers/src/ testprocess.jl:634[2] 
wait() 
[9] @ (::TestItemControllers.var"#54#64"{TestItemControllers.CancellationTokens.CancellationTokenSource, String, Channel{Any}, TestItemControllers.TestEnvironment, String, String, Channel{Any}, String})()Base
    @ERROR: ./ InvalidStateException: task.jl:1022TestItemControllersChannel is closed. 
Stacktrace:
~/.vscode/extensions/julialang.language-julia-1.149.2/scripts/packages/TestItemControllers/src/
testprocess.jl:165 [1]
  try_yieldto(undo::typeof(Base.ensure_rescheduled))[3]
    @wait(c::Base.GenericCondition{ReentrantLock}; first::Bool) 
Base @ ./Basetask.jl:958 ./
condition.jl:130 [2]
  wait()[4]
    @wait 
Base @ ././task.jl:1022condition.jl:125 [inlined]

 [3] wait(c::Base.GenericCondition{ReentrantLock}; first::Bool)[5]
    @take_buffered(c::Channel{TestItemControllers.JSONRPC.Request}) 
Base @ ./Basecondition.jl:130 ./
channels.jl:493 [4]
  wait[6]
    @take! 
./ @condition.jl:125 [inlined]./
channels.jl:487 [inlined][5]
  take_buffered(c::Channel{TestItemControllers.JSONRPC.Request})[7]
    @get_next_message 
Base @ ./~/.vscode/extensions/julialang.language-julia-1.149.2/scripts/packages/TestItemControllers/packages/JSONRPC/src/channels.jl:493core.jl:330 [inlined]

 [6] take![8]
    @start(testprocess_id::String, controller_msg_channel::Channel{Any}, testprocess_msg_channel::Channel{Any}, env::TestItemControllers.TestEnvironment, debug_pipe_name::String, error_handler_file::String, crash_reporting_pipename::String, token::TestItemControllers.CancellationTokens.CancellationToken) 
./ @channels.jl:487 [inlined]TestItemControllers
  ~/.vscode/extensions/julialang.language-julia-1.149.2/scripts/packages/TestItemControllers/src/[7]testprocess.jl:634 get_next_message

    @[9] ~/.vscode/extensions/julialang.language-julia-1.149.2/scripts/packages/TestItemControllers/packages/JSONRPC/src/(::TestItemControllers.var"#54#64"{TestItemControllers.CancellationTokens.CancellationTokenSource, String, Channel{Any}, TestItemControllers.TestEnvironment, String, String, Channel{Any}, String})()core.jl:330
 [inlined] @
  TestItemControllers[8] ~/.vscode/extensions/julialang.language-julia-1.149.2/scripts/packages/TestItemControllers/src/start(testprocess_id::String, controller_msg_channel::Channel{Any}, testprocess_msg_channel::Channel{Any}, env::TestItemControllers.TestEnvironment, debug_pipe_name::String, error_handler_file::String, crash_reporting_pipename::String, token::TestItemControllers.CancellationTokens.CancellationToken)testprocess.jl:165
   @
 TestItemControllers ~/.vscode/extensions/julialang.language-julia-1.149.2/scripts/packages/TestItemControllers/src/testprocess.jl:634
 [9] (::TestItemControllers.var"#54#64"{TestItemControllers.CancellationTokens.CancellationTokenSource, String, Channel{Any}, TestItemControllers.TestEnvironment, String, String, Channel{Any}, String})()
   @ TestItemControllers ~/.vscode/extensions/julialang.language-julia-1.149.2/scripts/packages/TestItemControllers/src/testprocess.jl:165
ERROR: ERROR: ERROR: ERROR: ERROR: ERROR: ERROR: ERROR: ERROR: Invalid state transition from testrun_activating.Invalid state transition from testrun_activating.Invalid state transition from testrun_activating.Invalid state transition from testrun_activating.Invalid state transition from testrun_activating.Invalid state transition from testrun_activating.Invalid state transition from testrun_activating.Invalid state transition from testrun_activating.Invalid state transition from testrun_activating.
Stacktrace:
 [1] 
Stacktrace:error(s::String)

    @[1] Base
Stacktrace:error(s::String) 

./ @error.jl:35[1] Base

Stacktrace:error(s::String) 

./ @error.jl:35[1] Base

Stacktrace:error(s::String) 

./ @error.jl:35[1] Base

Stacktrace:error(s::String) 

./ @error.jl:35[1] Base

Stacktrace:error(s::String) 

./ @error.jl:35[1] Base

Stacktrace:error(s::String) 

./ @error.jl:35[1] Base

Stacktrace:error(s::String) 

./ @error.jl:35[1] Base
 error(s::String) [2]
./ @error.jl:35 (::TestItemControllers.var"#51#61"{Channel{Any}, TestItemControllers.TestEnvironment, Bool, String, String, String, Channel{Any}, String})() [2]
Base
    @ (::TestItemControllers.var"#51#61"{Channel{Any}, TestItemControllers.TestEnvironment, Bool, String, String, String, Channel{Any}, String})() ./[2]
TestItemControllerserror.jl:35 @ (::TestItemControllers.var"#51#61"{Channel{Any}, TestItemControllers.TestEnvironment, Bool, String, String, String, Channel{Any}, String})() ~/.vscode/extensions/julialang.language-julia-1.149.2/scripts/packages/TestItemControllers/src/
[2]
TestItemControllerstestprocess.jl:203 @ (::TestItemControllers.var"#51#61"{Channel{Any}, TestItemControllers.TestEnvironment, Bool, String, String, String, Channel{Any}, String})() ~/.vscode/extensions/julialang.language-julia-1.149.2/scripts/packages/TestItemControllers/src/
[2]
TestItemControllerstestprocess.jl:203 @ (::TestItemControllers.var"#51#61"{Channel{Any}, TestItemControllers.TestEnvironment, Bool, String, String, String, Channel{Any}, String})() ~/.vscode/extensions/julialang.language-julia-1.149.2/scripts/packages/TestItemControllers/src/
[2]
TestItemControllerstestprocess.jl:203 @ (::TestItemControllers.var"#51#61"{Channel{Any}, TestItemControllers.TestEnvironment, Bool, String, String, String, Channel{Any}, String})() ~/.vscode/extensions/julialang.language-julia-1.149.2/scripts/packages/TestItemControllers/src/
[2]
TestItemControllerstestprocess.jl:203 @ (::TestItemControllers.var"#51#61"{Channel{Any}, TestItemControllers.TestEnvironment, Bool, String, String, String, Channel{Any}, String})() ~/.vscode/extensions/julialang.language-julia-1.149.2/scripts/packages/TestItemControllers/src/
[2]
TestItemControllerstestprocess.jl:203 @ (::TestItemControllers.var"#51#61"{Channel{Any}, TestItemControllers.TestEnvironment, Bool, String, String, String, Channel{Any}, String})() ~/.vscode/extensions/julialang.language-julia-1.149.2/scripts/packages/TestItemControllers/src/
[2]
TestItemControllerstestprocess.jl:203 @ (::TestItemControllers.var"#51#61"{Channel{Any}, TestItemControllers.TestEnvironment, Bool, String, String, String, Channel{Any}, String})() ~/.vscode/extensions/julialang.language-julia-1.149.2/scripts/packages/TestItemControllers/src/

TestItemControllerstestprocess.jl:203 @ ~/.vscode/extensions/julialang.language-julia-1.149.2/scripts/packages/TestItemControllers/src/
TestItemControllerstestprocess.jl:203 ~/.vscode/extensions/julialang.language-julia-1.149.2/scripts/packages/TestItemControllers/src/
testprocess.jl:203
ERROR: Invalid state transition from running_tests.
Stacktrace:
 [1] error(s::String)
   @ Base ./error.jl:35
 [2] (::TestItemControllers.var"#51#61"{Channel{Any}, TestItemControllers.TestEnvironment, Bool, String, String, String, Channel{Any}, String})()
   @ TestItemControllers ~/.vscode/extensions/julialang.language-julia-1.149.2/scripts/packages/TestItemControllers/src/testprocess.jl:203

```

I had also started to see hanging with Julia 1.10, which is what prompted me to try 1.11.

---

<div class="post-metadata">

**Author:** ![davidanthoff](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/davidanthoff/32/223493_2.png) [@davidanthoff](https://discourse.julialang.org/u/davidanthoff)\
**Post date:** [July 15, 2025, 12:48pm UTC](https://discourse.julialang.org/t/extension-is-updated/130045/9 "2025-07-15T12:48:40Z")

</div>

@Ken_Williams I just published pre release version v1.150 of the extension, can you try again? I fixed at least some of the earlier bugs that you showed there, unclear whether that will get rid of the problem entirely.

---

<div class="post-metadata">

**Author:** ![Ken\_Williams](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ken_williams/32/5289_2.png) [@Ken\_Williams](https://discourse.julialang.org/u/Ken_Williams)\
**Post date:** [July 18, 2025, 9:19pm UTC](https://discourse.julialang.org/t/extension-is-updated/130045/10 "2025-07-18T21:19:16Z")

</div>

Thanks @davidanthoff , I’ve installed the latest pre-release (1.152.1 now) and I haven’t put it through a ton of paces yet, but it seems to be behaving well so far. I do like the free-order execution of unit tests, that seems to get big sets of tests running more quickly overall.

I’ll keep it installed and report back if I’m hitting any problems, thanks for the ping.

---

<div class="post-metadata">

**Author:** ![Ken\_Williams](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ken_williams/32/5289_2.png) [@Ken\_Williams](https://discourse.julialang.org/u/Ken_Williams)\
**Post date:** [July 21, 2025, 4:25pm UTC](https://discourse.julialang.org/t/extension-is-updated/130045/11 "2025-07-21T16:25:43Z")

</div>

Well, bummer - I encountered a hang today, so I’ll revert again.

I launched unit tests, went away for a little while (because I knew it would have to re-precompile, I made a change to a `struct`), and when I came back I discovered it was still trying to kick off tests (taking \> 2500s, tests usually take anywhere from 5s to 120s depending on precompilation):

 ![Screenshot 2025-07-21 at 11.16.25 AM](https://global.discourse-cdn.com/julialang/original/3X/0/5/056e9deea964f79da2d4d163f16d535661101527.png)

In the `Julia Test Item Controller` tab I see a few errors:

```julia
...
[ Info: Revise could not handle changes or test env was changed, restarting process
[ Info: Revise could not handle changes or test env was changed, restarting process
[ Info: Revise could not handle changes or test env was changed, restarting process
[ Info: Revise could not handle changes or test env was changed, restarting process
[ Info: Julia version is new enough
[ Info: Revise could not handle changes or test env was changed, restarting process
ERROR: ERROR: ERROR: ERROR: ERROR: ERROR: ERROR: ERROR: ERROR: ERROR: Invalid state transition from testrun_activating.Invalid state transition from testrun_starting.Invalid state transition from testrun_activating.Invalid state transition from testrun_starting.Invalid state transition from testrun_activating.Invalid state transition from testrun_starting.Invalid state transition from testrun_activating.Invalid state transition from testrun_activating.Invalid state transition from testrun_activating.Invalid state transition from testrun_activating.
Stacktrace:
 [1] 
Stacktrace:error(s::String)

    @[1] Base
Stacktrace:error(s::String) 

./ @error.jl:35[1] Base

Stacktrace:error(s::String) 

./ @error.jl:35[1] Base
...

```

Additionally, after I quit VS Code I see a bunch of these `testserver_main.jl` processes hanging around and I need to kill them manually:

```julia
% ps auxww | grep julia
kwilliams 82916 0.0 0.4 412733808 125008 ?? S 10:34AM 0:07.46 /Users/kwilliams/.julia/juliaup/julia-1.10.10+0.aarch64.apple.darwin14/bin/julia --check-bounds=yes --startup-file=no --history-file=no --depwarn=no --code-coverage=none /Users/kwilliams/.vscode/extensions/julialang.language-julia-1.152.1/scripts/packages/TestItemControllers/src/../testprocess/app/testserver_main.jl /var/folders/d5/xj384ymn2r551n6yk4mwl2ch0000gp/T/jl_KzuLKTAX2v /var/folders/d5/xj384ymn2r551n6yk4mwl2ch0000gp/T/jl_UVsBmL47mZ /Users/kwilliams/.vscode/extensions/julialang.language-julia-1.152.1/scripts/error_handler.jl /var/folders/d5/xj384ymn2r551n6yk4mwl2ch0000gp/T/vsc-jl-cr-e6e15246-120f-411e-adab-c74cf51b09b3
...

```

---

<div class="post-metadata">

**Author:** ![Ken\_Williams](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ken_williams/32/5289_2.png) [@Ken\_Williams](https://discourse.julialang.org/u/Ken_Williams)\
**Post date:** [July 23, 2025, 10:27pm UTC](https://discourse.julialang.org/t/extension-is-updated/130045/12 "2025-07-23T22:27:35Z")

</div>

@davidanthoff I think when I get into a hung state, it has something to do with old test processes hanging around, maybe? It seems to happen more when I run tests, then go away for a while, come back, and run tests again. I see in the Test Results output several messages like this:

```julia
[ Info: Julia test item process launching
[ Info: Julia test item process launching
[ Info: Julia test item process launching
[ Info: Julia test item process launching
[ Info: Julia test item process launching
[ Info: Julia test item process launching
[ Info: Julia test item process launching

```

which is surprising because I thought those processes had already been started previously.

In the terminal, if I do `ps auxww | grep 'ju[l]ia' | less -S`, I see this:

```julia
kwilliams 48942 100.0 2.5 413206240 844048 ?? R 4:47PM 7:12.25 /Users/kwilliams/.julia/juliaup/julia-1.10.10+0.aarch64.apple.darwin14/bin/julia --check-bounds=yes --startup-file=no --history-file=no --depw
kwilliams 49759 0.0 1.3 413361168 449984 ?? S 4:48PM 0:29.53 /Users/kwilliams/.julia/juliaup/julia-1.11.6+0.aarch64.apple.darwin14/bin/julia --startup-file=no --history-file=no --depwarn=no main.jl /User
kwilliams 48844 0.0 1.1 412734160 364288 ?? S 4:47PM 0:11.39 /Users/kwilliams/.julia/juliaup/julia-1.11.6+0.aarch64.apple.darwin14/bin/julia --startup-file=no --history-file=no --depwarn=no /Users/kwilli
kwilliams 58036 0.0 0.8 412276800 258608 ?? S 4:59PM 0:03.38 /Users/kwilliams/.julia/juliaup/julia-1.10.10+0.aarch64.apple.darwin14/bin/julia --check-bounds=yes --startup-file=no --history-file=no --depw
kwilliams 58025 0.0 0.8 412333120 255536 ?? S 4:59PM 0:02.99 /Users/kwilliams/.julia/juliaup/julia-1.10.10+0.aarch64.apple.darwin14/bin/julia --check-bounds=yes --startup-file=no --history-file=no --depw
kwilliams 58014 0.0 0.7 412267584 228560 ?? S 4:59PM 0:03.00 /Users/kwilliams/.julia/juliaup/julia-1.10.10+0.aarch64.apple.darwin14/bin/julia --check-bounds=yes --startup-file=no --history-file=no --depw
kwilliams 58003 0.0 0.7 412268608 228528 ?? S 4:59PM 0:02.92 /Users/kwilliams/.julia/juliaup/julia-1.10.10+0.aarch64.apple.darwin14/bin/julia --check-bounds=yes --startup-file=no --history-file=no --depw
kwilliams 57990 0.0 1.4 412666768 470416 ?? S 4:59PM 0:07.42 /Users/kwilliams/.julia/juliaup/julia-1.10.10+0.aarch64.apple.darwin14/bin/julia --check-bounds=yes --startup-file=no --history-file=no --depw
kwilliams 57980 0.0 1.6 413368528 529056 ?? S 4:59PM 0:07.04 /Users/kwilliams/.julia/juliaup/julia-1.10.10+0.aarch64.apple.darwin14/bin/julia --check-bounds=yes --startup-file=no --history-file=no --depw
kwilliams 57969 0.0 1.9 412668048 646880 ?? S 4:59PM 0:08.08 /Users/kwilliams/.julia/juliaup/julia-1.10.10+0.aarch64.apple.darwin14/bin/julia --check-bounds=yes --startup-file=no --history-file=no --depw
kwilliams 57958 0.0 1.9 412667408 628896 ?? S 4:59PM 0:08.12 /Users/kwilliams/.julia/juliaup/julia-1.10.10+0.aarch64.apple.darwin14/bin/julia --check-bounds=yes --startup-file=no --history-file=no --depw
kwilliams 57942 0.0 0.8 412264384 263600 ?? S 4:59PM 0:02.93 /Users/kwilliams/.julia/juliaup/julia-1.10.10+0.aarch64.apple.darwin14/bin/julia --check-bounds=yes --startup-file=no --history-file=no --depw
kwilliams 57933 0.0 0.9 412341312 296592 ?? S 4:59PM 0:02.88 /Users/kwilliams/.julia/juliaup/julia-1.10.10+0.aarch64.apple.darwin14/bin/julia --check-bounds=yes --startup-file=no --history-file=no --depw

```

Two things to notice: 1) the `100.0` at the top is in the `%CPU` column, so something’s not happy in that process. 2) there are roughly two start times (`STARTED` column) in the data, 4:47PM and 4:59PM. 4:47 is the first time I ran tests, 4:59 is the second time.
