m/sleep hangs indefinitely, scheduler thread seems blocked
mjmeintjes opened this issue · 3 comments
Every now and again, I get into a situation where (m/? (m/sleep 10))
just hangs indefinitely.
The only fix that I've found is to restart my repl.
This is on b.26
, JVM.
I did some investigation the last time this happened (not sure if this is any help, as I don't really understand how Sleep works):
Using reflection, I inspected the pending
field in the Scheduler/INSTANCE
, it looks like there are several thousand entries (4380), removing the empty entries there are several hundred (859). Not sure if that means anything.
When I create a new sleep task, it increases those numbers by 1 (4381, 860), so it looks like the new task gets added to the queue:
(def cancel
((m/sleep 1000)
#(println %)
#(println %)))
Calling (cancel)
reduces the pending numbers by 1 again (4381, 859).
The Scheduler/INSTANCE thread has the following properties:
:contextClassLoader = clojure.lang.DynamicClassLoader@75267430
:daemon = true
:threadGroup = java.lang.ThreadGroup[name=main,maxpri=10]
:name = "missionary scheduler"
:alive = true
:state = BLOCKED
:uncaughtExceptionHandler = java.lang.ThreadGroup[name=main,maxpri=10]
:priority = 5
:id = 279
:class = missionary.impl.Sleep$Scheduler
:interrupted = false
Thread stacktrace
[missionary.impl.GroupBy cancel GroupBy.java 127]
[missionary.impl.GroupBy$Group invoke GroupBy.java 50]
[missionary.impl.Transform invoke Transform.java 120]
[missionary.impl.Ambiguous$Choice invoke Ambiguous.java 328]
[missionary.impl.Ambiguous cancel Ambiguous.java 142]
[missionary.impl.Ambiguous$Process invoke Ambiguous.java 203]
[missionary.impl.Reduce$Process invoke Reduce.java 25]
[missionary.impl.RaceJoin invoke RaceJoin.java 80]
[missionary.impl.Sequential invoke Sequential.java 71]
[missionary.impl.Ambiguous$1 invoke Ambiguous.java 60]
[missionary.impl.Transform pull Transform.java 86]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.GroupBy transfer GroupBy.java 170]
[missionary.impl.GroupBy consume GroupBy.java 149]
[missionary.impl.GroupBy$Group deref GroupBy.java 55]
[missionary.impl.Transform pull Transform.java 74]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.GroupBy transfer GroupBy.java 170]
[missionary.impl.GroupBy consume GroupBy.java 149]
[missionary.impl.GroupBy$Group deref GroupBy.java 55]
[missionary.impl.Transform pull Transform.java 74]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.GroupBy transfer GroupBy.java 170]
[missionary.impl.GroupBy$2 invoke GroupBy.java 193]
[missionary.impl.Transform pull Transform.java 86]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.Transform pull Transform.java 86]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.Ambiguous$3 invoke Ambiguous.java 116]
[missionary.impl.Ambiguous$5 invoke Ambiguous.java 178]
[cloroutine.impl$coroutine$fn__45585 invoke impl.cljc 65]
[missionary.impl.Ambiguous more Ambiguous.java 43]
[missionary.impl.Ambiguous$1 invoke Ambiguous.java 60]
[missionary.impl.Transform pull Transform.java 86]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.Transform pull Transform.java 86]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.Transform pull Transform.java 86]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.Transform pull Transform.java 86]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.Watch$1 invoke Watch.java 23]
[lentes.core.RWFocus$run_watchers__101824$fn__101826 invoke core.cljc 188]
[clojure.core$run_BANG_$fn__8813 invoke core.clj 7717]
[clojure.core.protocols$iter_reduce invokeStatic protocols.clj 49]
[clojure.core.protocols$fn__8162 invokeStatic protocols.clj 75]
[clojure.core.protocols$fn__8162 invoke protocols.clj 75]
[clojure.core.protocols$fn__8110$G__8105__8123 invoke protocols.clj 13]
[clojure.core$reduce invokeStatic core.clj 6830]
[clojure.core$run_BANG_ invokeStatic core.clj 7712]
[clojure.core$run_BANG_ invoke core.clj 7712]
[lentes.core.RWFocus$run_watchers__101824 invoke core.cljc 188]
[lentes.core.RWFocus$main_watcher__101832 invoke core.cljc 198]
[clojure.lang.ARef notifyWatches ARef.java 81]
[clojure.lang.Atom swap Atom.java 55]
[clojure.core$swap_BANG_ invokeStatic core.clj 2357]
[clojure.core$swap_BANG_ invoke core.clj 2349]
[mattsum.app_state$remove_state invokeStatic NO_SOURCE_FILE 29]
[mattsum.app_state$remove_state invoke NO_SOURCE_FILE 28]
[mattsum.form_fields.data_load$dissoc_session_data invokeStatic NO_SOURCE_FILE 109]
[mattsum.form_fields.data_load$dissoc_session_data invoke NO_SOURCE_FILE 108]
[mattsum.form_fields.field_types_flow$set_entity_attr_data$$cr108337_block_4__108354 invoke field_types_flow.clj 260]
[cloroutine.impl$coroutine$fn__45585 invoke impl.cljc 60]
[missionary.impl.Sequential step Sequential.java 50]
[missionary.impl.Sequential$1 invoke Sequential.java 33]
[missionary.impl.Reduce ready Reduce.java 50]
[missionary.impl.Reduce$2 invoke Reduce.java 78]
[missionary.impl.Ambiguous terminate Ambiguous.java 25]
[missionary.impl.Ambiguous more Ambiguous.java 32]
[missionary.impl.Ambiguous$2 invoke Ambiguous.java 68]
[missionary.impl.Transform pull Transform.java 47]
[missionary.impl.Transform$3 invoke Transform.java 110]
[missionary.impl.Ambiguous terminate Ambiguous.java 25]
[missionary.impl.Ambiguous more Ambiguous.java 32]
[missionary.impl.Ambiguous$2 invoke Ambiguous.java 68]
[missionary.impl.Latest terminate Latest.java 85]
[missionary.impl.Latest$1 invoke Latest.java 103]
[missionary.impl.Transform pull Transform.java 47]
[missionary.impl.Transform$3 invoke Transform.java 110]
[missionary.impl.Transform pull Transform.java 47]
[missionary.impl.Transform$3 invoke Transform.java 110]
[missionary.impl.Watch invoke Watch.java 54]
[missionary.impl.Transform invoke Transform.java 120]
[missionary.impl.Transform invoke Transform.java 120]
[missionary.impl.Latest$Process invoke Latest.java 29]
[missionary.impl.Ambiguous$Choice invoke Ambiguous.java 328]
[missionary.impl.Ambiguous cancel Ambiguous.java 142]
[missionary.impl.Ambiguous$Process invoke Ambiguous.java 203]
[missionary.impl.Transform invoke Transform.java 120]
[missionary.impl.Ambiguous$Choice invoke Ambiguous.java 328]
[missionary.impl.Ambiguous cancel Ambiguous.java 142]
[missionary.impl.Ambiguous$Process invoke Ambiguous.java 203]
[missionary.impl.Reduce$Process invoke Reduce.java 25]
[missionary.impl.Sequential invoke Sequential.java 71]
[missionary.impl.RaceJoin invoke RaceJoin.java 80]
[missionary.impl.Sequential invoke Sequential.java 71]
[missionary.impl.Sequential invoke Sequential.java 71]
[missionary.impl.RaceJoin invoke RaceJoin.java 80]
[missionary.impl.Sequential invoke Sequential.java 71]
[missionary.impl.Sequential invoke Sequential.java 71]
[missionary.impl.Ambiguous$1 invoke Ambiguous.java 60]
[missionary.impl.Transform pull Transform.java 86]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.GroupBy transfer GroupBy.java 170]
[missionary.impl.GroupBy$2 invoke GroupBy.java 193]
[missionary.impl.Transform pull Transform.java 86]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.Transform pull Transform.java 86]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.Ambiguous$3 invoke Ambiguous.java 116]
[missionary.impl.Ambiguous$5 invoke Ambiguous.java 178]
[cloroutine.impl$coroutine$fn__45585 invoke impl.cljc 65]
[missionary.impl.Ambiguous more Ambiguous.java 43]
[missionary.impl.Ambiguous$1 invoke Ambiguous.java 60]
[missionary.impl.Transform pull Transform.java 86]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.Transform pull Transform.java 86]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.Transform pull Transform.java 86]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.Transform pull Transform.java 86]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.Watch$1 invoke Watch.java 23]
[lentes.core.RWFocus$run_watchers__101824$fn__101826 invoke core.cljc 188]
[clojure.core$run_BANG_$fn__8813 invoke core.clj 7717]
[clojure.core.protocols$iter_reduce invokeStatic protocols.clj 49]
[clojure.core.protocols$fn__8162 invokeStatic protocols.clj 75]
[clojure.core.protocols$fn__8162 invoke protocols.clj 75]
[clojure.core.protocols$fn__8110$G__8105__8123 invoke protocols.clj 13]
[clojure.core$reduce invokeStatic core.clj 6830]
[clojure.core$run_BANG_ invokeStatic core.clj 7712]
[clojure.core$run_BANG_ invoke core.clj 7712]
[lentes.core.RWFocus$run_watchers__101824 invoke core.cljc 188]
[lentes.core.RWFocus$main_watcher__101832 invoke core.cljc 198]
[clojure.lang.ARef notifyWatches ARef.java 81]
[clojure.lang.Atom swap Atom.java 55]
[clojure.core$swap_BANG_ invokeStatic core.clj 2357]
[clojure.core$swap_BANG_ invoke core.clj 2349]
[mattsum.app_state$remove_state invokeStatic NO_SOURCE_FILE 29]
[mattsum.app_state$remove_state invoke NO_SOURCE_FILE 28]
[mattsum.form_fields.data_load$dissoc_session_data invokeStatic NO_SOURCE_FILE 109]
[mattsum.form_fields.data_load$dissoc_session_data invoke NO_SOURCE_FILE 108]
[mattsum.form_fields.field_types_flow$set_entity_attr_data$$cr108337_block_4__108354 invoke field_types_flow.clj 260]
[cloroutine.impl$coroutine$fn__45585 invoke impl.cljc 60]
[missionary.impl.Sequential step Sequential.java 50]
[missionary.impl.Sequential$1 invoke Sequential.java 33]
[missionary.impl.Reduce ready Reduce.java 50]
[missionary.impl.Reduce$2 invoke Reduce.java 78]
[missionary.impl.Ambiguous terminate Ambiguous.java 25]
[missionary.impl.Ambiguous more Ambiguous.java 32]
[missionary.impl.Ambiguous$2 invoke Ambiguous.java 68]
[missionary.impl.Transform pull Transform.java 47]
[missionary.impl.Transform$3 invoke Transform.java 110]
[missionary.impl.Ambiguous terminate Ambiguous.java 25]
[missionary.impl.Ambiguous more Ambiguous.java 32]
[missionary.impl.Ambiguous$2 invoke Ambiguous.java 68]
[missionary.impl.Latest terminate Latest.java 85]
[missionary.impl.Latest$1 invoke Latest.java 103]
[missionary.impl.Transform pull Transform.java 47]
[missionary.impl.Transform$3 invoke Transform.java 110]
[missionary.impl.Transform pull Transform.java 47]
[missionary.impl.Transform$3 invoke Transform.java 110]
[missionary.impl.Watch invoke Watch.java 54]
[missionary.impl.Transform invoke Transform.java 120]
[missionary.impl.Transform invoke Transform.java 120]
[missionary.impl.Latest$Process invoke Latest.java 29]
[missionary.impl.Ambiguous$Choice invoke Ambiguous.java 328]
[missionary.impl.Ambiguous cancel Ambiguous.java 142]
[missionary.impl.Ambiguous$Process invoke Ambiguous.java 203]
[missionary.impl.Transform invoke Transform.java 120]
[missionary.impl.Ambiguous$Choice invoke Ambiguous.java 328]
[missionary.impl.Ambiguous cancel Ambiguous.java 142]
[missionary.impl.Ambiguous$Process invoke Ambiguous.java 203]
[missionary.impl.Reduce$Process invoke Reduce.java 25]
[missionary.impl.Sequential invoke Sequential.java 71]
[missionary.impl.RaceJoin invoke RaceJoin.java 80]
[missionary.impl.Sequential invoke Sequential.java 71]
[missionary.impl.RaceJoin invoke RaceJoin.java 80]
[missionary.impl.Sequential invoke Sequential.java 71]
[missionary.impl.Ambiguous$1 invoke Ambiguous.java 60]
[missionary.impl.Transform pull Transform.java 86]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.GroupBy transfer GroupBy.java 170]
[missionary.impl.GroupBy consume GroupBy.java 149]
[missionary.impl.GroupBy$Group deref GroupBy.java 55]
[missionary.impl.Transform pull Transform.java 74]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.GroupBy transfer GroupBy.java 170]
[missionary.impl.GroupBy consume GroupBy.java 149]
[missionary.impl.GroupBy$Group deref GroupBy.java 55]
[missionary.impl.Transform pull Transform.java 74]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.GroupBy transfer GroupBy.java 170]
[missionary.impl.GroupBy consume GroupBy.java 149]
[missionary.impl.GroupBy$Group deref GroupBy.java 55]
[missionary.impl.Transform pull Transform.java 74]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.GroupBy transfer GroupBy.java 170]
[missionary.impl.GroupBy$2 invoke GroupBy.java 193]
[missionary.impl.Transform pull Transform.java 86]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.Transform pull Transform.java 86]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.Ambiguous$3 invoke Ambiguous.java 116]
[missionary.impl.Ambiguous$5 invoke Ambiguous.java 178]
[cloroutine.impl$coroutine$fn__45585 invoke impl.cljc 65]
[missionary.impl.Ambiguous more Ambiguous.java 43]
[missionary.impl.Ambiguous$1 invoke Ambiguous.java 60]
[missionary.impl.Transform pull Transform.java 86]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.Transform pull Transform.java 86]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.Transform pull Transform.java 86]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.Transform pull Transform.java 86]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.Watch$1 invoke Watch.java 23]
[lentes.core.RWFocus$run_watchers__101824$fn__101826 invoke core.cljc 188]
[clojure.core$run_BANG_$fn__8813 invoke core.clj 7717]
[clojure.core.protocols$iter_reduce invokeStatic protocols.clj 49]
[clojure.core.protocols$fn__8162 invokeStatic protocols.clj 75]
[clojure.core.protocols$fn__8162 invoke protocols.clj 75]
[clojure.core.protocols$fn__8110$G__8105__8123 invoke protocols.clj 13]
[clojure.core$reduce invokeStatic core.clj 6830]
[clojure.core$run_BANG_ invokeStatic core.clj 7712]
[clojure.core$run_BANG_ invoke core.clj 7712]
[lentes.core.RWFocus$run_watchers__101824 invoke core.cljc 188]
[lentes.core.RWFocus$main_watcher__101832 invoke core.cljc 198]
[clojure.lang.ARef notifyWatches ARef.java 81]
[clojure.lang.Atom swap Atom.java 55]
[clojure.core$swap_BANG_ invokeStatic core.clj 2357]
[clojure.core$swap_BANG_ invoke core.clj 2349]
[mattsum.app_state$remove_state invokeStatic NO_SOURCE_FILE 29]
[mattsum.app_state$remove_state invoke NO_SOURCE_FILE 28]
[mattsum.form_fields.data_load$dissoc_session_data invokeStatic NO_SOURCE_FILE 109]
[mattsum.form_fields.data_load$dissoc_session_data invoke NO_SOURCE_FILE 108]
[mattsum.form_fields.field_types_flow$set_entity_attr_data$$cr108337_block_4__108354 invoke field_types_flow.clj 260]
[cloroutine.impl$coroutine$fn__45585 invoke impl.cljc 60]
[missionary.impl.Sequential step Sequential.java 50]
[missionary.impl.Sequential$1 invoke Sequential.java 33]
[missionary.impl.Reduce ready Reduce.java 50]
[missionary.impl.Reduce$2 invoke Reduce.java 78]
[missionary.impl.Ambiguous terminate Ambiguous.java 25]
[missionary.impl.Ambiguous more Ambiguous.java 32]
[missionary.impl.Ambiguous$2 invoke Ambiguous.java 68]
[missionary.impl.Transform pull Transform.java 47]
[missionary.impl.Transform$3 invoke Transform.java 110]
[missionary.impl.Ambiguous terminate Ambiguous.java 25]
[missionary.impl.Ambiguous more Ambiguous.java 32]
[missionary.impl.Ambiguous$2 invoke Ambiguous.java 68]
[missionary.impl.Latest terminate Latest.java 85]
[missionary.impl.Latest$1 invoke Latest.java 103]
[missionary.impl.Transform pull Transform.java 47]
[missionary.impl.Transform$3 invoke Transform.java 110]
[missionary.impl.Transform pull Transform.java 47]
[missionary.impl.Transform$3 invoke Transform.java 110]
[missionary.impl.Watch invoke Watch.java 54]
[missionary.impl.Transform invoke Transform.java 120]
[missionary.impl.Transform invoke Transform.java 120]
[missionary.impl.Latest$Process invoke Latest.java 29]
[missionary.impl.Ambiguous$Choice invoke Ambiguous.java 328]
[missionary.impl.Ambiguous cancel Ambiguous.java 142]
[missionary.impl.Ambiguous$Process invoke Ambiguous.java 203]
[missionary.impl.Transform invoke Transform.java 120]
[missionary.impl.Ambiguous$Choice invoke Ambiguous.java 328]
[missionary.impl.Ambiguous cancel Ambiguous.java 142]
[missionary.impl.Ambiguous$Process invoke Ambiguous.java 203]
[missionary.impl.Reduce$Process invoke Reduce.java 25]
[missionary.impl.Sequential invoke Sequential.java 71]
[missionary.impl.RaceJoin invoke RaceJoin.java 80]
[missionary.impl.Sequential invoke Sequential.java 71]
[missionary.impl.Sequential invoke Sequential.java 71]
[missionary.impl.RaceJoin invoke RaceJoin.java 80]
[missionary.impl.Sequential invoke Sequential.java 71]
[missionary.impl.Sequential invoke Sequential.java 71]
[missionary.impl.Ambiguous$1 invoke Ambiguous.java 60]
[missionary.impl.Transform pull Transform.java 86]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.GroupBy transfer GroupBy.java 170]
[missionary.impl.GroupBy consume GroupBy.java 149]
[missionary.impl.GroupBy$Group deref GroupBy.java 55]
[missionary.impl.Transform pull Transform.java 74]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.GroupBy transfer GroupBy.java 170]
[missionary.impl.GroupBy consume GroupBy.java 149]
[missionary.impl.GroupBy$Group deref GroupBy.java 55]
[missionary.impl.Transform pull Transform.java 74]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.GroupBy transfer GroupBy.java 170]
[missionary.impl.GroupBy consume GroupBy.java 149]
[missionary.impl.GroupBy$Group deref GroupBy.java 55]
[missionary.impl.Transform pull Transform.java 74]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.GroupBy transfer GroupBy.java 170]
[missionary.impl.GroupBy consume GroupBy.java 149]
[missionary.impl.GroupBy$Group deref GroupBy.java 55]
[missionary.impl.Transform pull Transform.java 74]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.GroupBy transfer GroupBy.java 170]
[missionary.impl.GroupBy consume GroupBy.java 149]
[missionary.impl.GroupBy$Group deref GroupBy.java 55]
[missionary.impl.Transform pull Transform.java 74]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.GroupBy transfer GroupBy.java 170]
[missionary.impl.GroupBy$2 invoke GroupBy.java 193]
[missionary.impl.Transform pull Transform.java 86]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.Transform pull Transform.java 86]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.Ambiguous$3 invoke Ambiguous.java 116]
[missionary.impl.Ambiguous$5 invoke Ambiguous.java 178]
[cloroutine.impl$coroutine$fn__45585 invoke impl.cljc 65]
[missionary.impl.Ambiguous more Ambiguous.java 43]
[missionary.impl.Ambiguous$1 invoke Ambiguous.java 60]
[missionary.impl.Transform pull Transform.java 86]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.Transform pull Transform.java 86]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.Transform pull Transform.java 86]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.Transform pull Transform.java 86]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.Watch$1 invoke Watch.java 23]
[lentes.core.RWFocus$run_watchers__101824$fn__101826 invoke core.cljc 188]
[clojure.core$run_BANG_$fn__8813 invoke core.clj 7717]
[clojure.core.protocols$iter_reduce invokeStatic protocols.clj 49]
[clojure.core.protocols$fn__8162 invokeStatic protocols.clj 75]
[clojure.core.protocols$fn__8162 invoke protocols.clj 75]
[clojure.core.protocols$fn__8110$G__8105__8123 invoke protocols.clj 13]
[clojure.core$reduce invokeStatic core.clj 6830]
[clojure.core$run_BANG_ invokeStatic core.clj 7712]
[clojure.core$run_BANG_ invoke core.clj 7712]
[lentes.core.RWFocus$run_watchers__101824 invoke core.cljc 188]
[lentes.core.RWFocus$main_watcher__101832 invoke core.cljc 198]
[clojure.lang.ARef notifyWatches ARef.java 81]
[clojure.lang.Atom swap Atom.java 55]
[clojure.core$swap_BANG_ invokeStatic core.clj 2357]
[clojure.core$swap_BANG_ invoke core.clj 2349]
[mattsum.app_state$remove_state invokeStatic NO_SOURCE_FILE 29]
[mattsum.app_state$remove_state invoke NO_SOURCE_FILE 28]
[mattsum.form_fields.data_load$dissoc_session_data invokeStatic NO_SOURCE_FILE 109]
[mattsum.form_fields.data_load$dissoc_session_data invoke NO_SOURCE_FILE 108]
[mattsum.form_fields.field_types_flow$set_entity_attr_data$$cr108337_block_4__108354 invoke field_types_flow.clj 260]
[cloroutine.impl$coroutine$fn__45585 invoke impl.cljc 60]
[missionary.impl.Sequential step Sequential.java 50]
[missionary.impl.Sequential$1 invoke Sequential.java 33]
[missionary.impl.Reduce ready Reduce.java 50]
[missionary.impl.Reduce$2 invoke Reduce.java 78]
[missionary.impl.Ambiguous terminate Ambiguous.java 25]
[missionary.impl.Ambiguous more Ambiguous.java 32]
[missionary.impl.Ambiguous$2 invoke Ambiguous.java 68]
[missionary.impl.Transform pull Transform.java 47]
[missionary.impl.Transform$3 invoke Transform.java 110]
[missionary.impl.Ambiguous terminate Ambiguous.java 25]
[missionary.impl.Ambiguous more Ambiguous.java 32]
[missionary.impl.Ambiguous$2 invoke Ambiguous.java 68]
[missionary.impl.Latest terminate Latest.java 85]
[missionary.impl.Latest$1 invoke Latest.java 103]
[missionary.impl.Transform pull Transform.java 47]
[missionary.impl.Transform$3 invoke Transform.java 110]
[missionary.impl.Transform pull Transform.java 47]
[missionary.impl.Transform$3 invoke Transform.java 110]
[missionary.impl.Watch invoke Watch.java 54]
[missionary.impl.Transform invoke Transform.java 120]
[missionary.impl.Transform invoke Transform.java 120]
[missionary.impl.Latest$Process invoke Latest.java 29]
[missionary.impl.Ambiguous$Choice invoke Ambiguous.java 328]
[missionary.impl.Ambiguous cancel Ambiguous.java 142]
[missionary.impl.Ambiguous$Process invoke Ambiguous.java 203]
[missionary.impl.Transform invoke Transform.java 120]
[missionary.impl.Ambiguous$Choice invoke Ambiguous.java 328]
[missionary.impl.Ambiguous cancel Ambiguous.java 142]
[missionary.impl.Ambiguous$Process invoke Ambiguous.java 203]
[missionary.impl.Reduce$Process invoke Reduce.java 25]
[missionary.impl.Sequential invoke Sequential.java 71]
[missionary.impl.RaceJoin invoke RaceJoin.java 80]
[missionary.impl.Sequential invoke Sequential.java 71]
[missionary.impl.RaceJoin invoke RaceJoin.java 80]
[missionary.impl.Ambiguous$1 invoke Ambiguous.java 60]
[missionary.impl.Transform pull Transform.java 86]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.Transform pull Transform.java 86]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.Watch$1 invoke Watch.java 23]
[lentes.core.RWFocus$run_watchers__101824$fn__101826 invoke core.cljc 188]
[clojure.core$run_BANG_$fn__8813 invoke core.clj 7717]
[clojure.core.protocols$iter_reduce invokeStatic protocols.clj 49]
[clojure.core.protocols$fn__8162 invokeStatic protocols.clj 75]
[clojure.core.protocols$fn__8162 invoke protocols.clj 75]
[clojure.core.protocols$fn__8110$G__8105__8123 invoke protocols.clj 13]
[clojure.core$reduce invokeStatic core.clj 6830]
[clojure.core$run_BANG_ invokeStatic core.clj 7712]
[clojure.core$run_BANG_ invoke core.clj 7712]
[lentes.core.RWFocus$run_watchers__101824 invoke core.cljc 188]
[lentes.core.RWFocus$main_watcher__101832 invoke core.cljc 198]
[clojure.lang.ARef notifyWatches ARef.java 81]
[clojure.lang.Atom swap Atom.java 55]
[clojure.core$swap_BANG_ invokeStatic core.clj 2357]
[clojure.core$swap_BANG_ invoke core.clj 2349]
[mattsum.app_state$remove_state invokeStatic NO_SOURCE_FILE 29]
[mattsum.app_state$remove_state invoke NO_SOURCE_FILE 28]
[mattsum.form_fields.data_load$dissoc_session_data invokeStatic NO_SOURCE_FILE 109]
[mattsum.form_fields.data_load$dissoc_session_data invoke NO_SOURCE_FILE 108]
[mattsum.form_fields.field_types_flow$set_entity_attr_data$$cr108337_block_4__108354 invoke field_types_flow.clj 260]
[cloroutine.impl$coroutine$fn__45585 invoke impl.cljc 60]
[missionary.impl.Sequential step Sequential.java 50]
[missionary.impl.Sequential$1 invoke Sequential.java 33]
[missionary.impl.Reduce ready Reduce.java 50]
[missionary.impl.Reduce$2 invoke Reduce.java 78]
[missionary.impl.Ambiguous terminate Ambiguous.java 25]
[missionary.impl.Ambiguous more Ambiguous.java 32]
[missionary.impl.Ambiguous$2 invoke Ambiguous.java 68]
[missionary.impl.Transform pull Transform.java 47]
[missionary.impl.Transform$3 invoke Transform.java 110]
[missionary.impl.Ambiguous terminate Ambiguous.java 25]
[missionary.impl.Ambiguous more Ambiguous.java 32]
[missionary.impl.Ambiguous$2 invoke Ambiguous.java 68]
[missionary.impl.Latest terminate Latest.java 85]
[missionary.impl.Latest$1 invoke Latest.java 103]
[missionary.impl.Transform pull Transform.java 47]
[missionary.impl.Transform$3 invoke Transform.java 110]
[missionary.impl.Transform pull Transform.java 47]
[missionary.impl.Transform$3 invoke Transform.java 110]
[missionary.impl.Watch invoke Watch.java 54]
[missionary.impl.Transform invoke Transform.java 120]
[missionary.impl.Transform invoke Transform.java 120]
[missionary.impl.Latest$Process invoke Latest.java 29]
[missionary.impl.Ambiguous$Choice invoke Ambiguous.java 328]
[missionary.impl.Ambiguous cancel Ambiguous.java 142]
[missionary.impl.Ambiguous$Process invoke Ambiguous.java 203]
[missionary.impl.Transform invoke Transform.java 120]
[missionary.impl.Ambiguous$Choice invoke Ambiguous.java 328]
[missionary.impl.Ambiguous cancel Ambiguous.java 142]
[missionary.impl.Ambiguous$Process invoke Ambiguous.java 203]
[missionary.impl.Reduce$Process invoke Reduce.java 25]
[missionary.impl.Sequential invoke Sequential.java 71]
[missionary.impl.RaceJoin invoke RaceJoin.java 80]
[missionary.impl.Sequential invoke Sequential.java 71]
[missionary.impl.Sequential invoke Sequential.java 71]
[missionary.impl.RaceJoin invoke RaceJoin.java 80]
[missionary.impl.Sequential invoke Sequential.java 71]
[missionary.impl.Sequential invoke Sequential.java 71]
[missionary.impl.Ambiguous$1 invoke Ambiguous.java 60]
[missionary.impl.Transform pull Transform.java 86]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.GroupBy transfer GroupBy.java 170]
[missionary.impl.GroupBy$2 invoke GroupBy.java 193]
[missionary.impl.Transform pull Transform.java 86]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.Transform pull Transform.java 86]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.Ambiguous$3 invoke Ambiguous.java 116]
[missionary.impl.Ambiguous$5 invoke Ambiguous.java 178]
[cloroutine.impl$coroutine$fn__45585 invoke impl.cljc 65]
[missionary.impl.Ambiguous more Ambiguous.java 43]
[missionary.impl.Ambiguous$1 invoke Ambiguous.java 60]
[missionary.impl.Transform pull Transform.java 86]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.Transform pull Transform.java 86]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.Transform pull Transform.java 86]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.Transform pull Transform.java 86]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.Watch$1 invoke Watch.java 23]
[lentes.core.RWFocus$run_watchers__101824$fn__101826 invoke core.cljc 188]
[clojure.core$run_BANG_$fn__8813 invoke core.clj 7717]
[clojure.core.protocols$iter_reduce invokeStatic protocols.clj 49]
[clojure.core.protocols$fn__8162 invokeStatic protocols.clj 75]
[clojure.core.protocols$fn__8162 invoke protocols.clj 75]
[clojure.core.protocols$fn__8110$G__8105__8123 invoke protocols.clj 13]
[clojure.core$reduce invokeStatic core.clj 6830]
[clojure.core$run_BANG_ invokeStatic core.clj 7712]
[clojure.core$run_BANG_ invoke core.clj 7712]
[lentes.core.RWFocus$run_watchers__101824 invoke core.cljc 188]
[lentes.core.RWFocus$main_watcher__101832 invoke core.cljc 198]
[clojure.lang.ARef notifyWatches ARef.java 81]
[clojure.lang.Atom swap Atom.java 55]
[clojure.core$swap_BANG_ invokeStatic core.clj 2357]
[clojure.core$swap_BANG_ invoke core.clj 2349]
[mattsum.app_state$remove_state invokeStatic NO_SOURCE_FILE 29]
[mattsum.app_state$remove_state invoke NO_SOURCE_FILE 28]
[mattsum.form_fields.data_load$dissoc_session_data invokeStatic NO_SOURCE_FILE 109]
[mattsum.form_fields.data_load$dissoc_session_data invoke NO_SOURCE_FILE 108]
[mattsum.form_fields.field_types_flow$set_entity_attr_data$$cr108337_block_4__108354 invoke field_types_flow.clj 260]
[cloroutine.impl$coroutine$fn__45585 invoke impl.cljc 60]
[missionary.impl.Sequential step Sequential.java 50]
[missionary.impl.Sequential$1 invoke Sequential.java 33]
[missionary.impl.Reduce ready Reduce.java 50]
[missionary.impl.Reduce$2 invoke Reduce.java 78]
[missionary.impl.Ambiguous terminate Ambiguous.java 25]
[missionary.impl.Ambiguous more Ambiguous.java 32]
[missionary.impl.Ambiguous$2 invoke Ambiguous.java 68]
[missionary.impl.Transform pull Transform.java 47]
[missionary.impl.Transform$3 invoke Transform.java 110]
[missionary.impl.Ambiguous terminate Ambiguous.java 25]
[missionary.impl.Ambiguous more Ambiguous.java 32]
[missionary.impl.Ambiguous$2 invoke Ambiguous.java 68]
[missionary.impl.Latest terminate Latest.java 85]
[missionary.impl.Latest$1 invoke Latest.java 103]
[missionary.impl.Transform pull Transform.java 47]
[missionary.impl.Transform$3 invoke Transform.java 110]
[missionary.impl.Transform pull Transform.java 47]
[missionary.impl.Transform$3 invoke Transform.java 110]
[missionary.impl.Watch invoke Watch.java 54]
[missionary.impl.Transform invoke Transform.java 120]
[missionary.impl.Transform invoke Transform.java 120]
[missionary.impl.Latest$Process invoke Latest.java 29]
[missionary.impl.Ambiguous$Choice invoke Ambiguous.java 328]
[missionary.impl.Ambiguous cancel Ambiguous.java 142]
[missionary.impl.Ambiguous$Process invoke Ambiguous.java 203]
[missionary.impl.Transform invoke Transform.java 120]
[missionary.impl.Ambiguous$Choice invoke Ambiguous.java 328]
[missionary.impl.Ambiguous cancel Ambiguous.java 142]
[missionary.impl.Ambiguous$Process invoke Ambiguous.java 203]
[missionary.impl.Reduce$Process invoke Reduce.java 25]
[missionary.impl.Sequential invoke Sequential.java 71]
[missionary.impl.RaceJoin invoke RaceJoin.java 80]
[missionary.impl.Sequential invoke Sequential.java 71]
[missionary.impl.RaceJoin invoke RaceJoin.java 80]
[missionary.impl.Sequential invoke Sequential.java 71]
[missionary.impl.Ambiguous$1 invoke Ambiguous.java 60]
[missionary.impl.Transform pull Transform.java 86]
[missionary.impl.Transform$2 invoke Transform.java 102]
[missionary.impl.GroupBy cancel GroupBy.java 135]
[missionary.impl.GroupBy$Group invoke GroupBy.java 50]
[missionary.impl.Transform invoke Transform.java 120]
[missionary.impl.Ambiguous$Choice invoke Ambiguous.java 328]
[missionary.impl.Ambiguous cancel Ambiguous.java 142]
[missionary.impl.Ambiguous$Process invoke Ambiguous.java 203]
[missionary.impl.Reduce$Process invoke Reduce.java 25]
[missionary.impl.Sequential invoke Sequential.java 71]
[missionary.impl.RaceJoin invoke RaceJoin.java 80]
[missionary.impl.Sequential invoke Sequential.java 71]
[missionary.impl.Sequential invoke Sequential.java 71]
[missionary.impl.Ambiguous$Choice invoke Ambiguous.java 329]
[missionary.impl.Ambiguous cancel Ambiguous.java 142]
[missionary.impl.Ambiguous$Process invoke Ambiguous.java 203]
[missionary.impl.Reduce$Process invoke Reduce.java 25]
[missionary.impl.RaceJoin invoke RaceJoin.java 80]
[missionary.impl.Sequential invoke Sequential.java 71]
[missionary.impl.Ambiguous$Choice invoke Ambiguous.java 329]
[missionary.impl.Ambiguous cancel Ambiguous.java 142]
[missionary.impl.Ambiguous$Process invoke Ambiguous.java 203]
[missionary.impl.Reduce$Process invoke Reduce.java 25]
[missionary.impl.Sequential invoke Sequential.java 71]
[missionary.impl.RaceJoin invoke RaceJoin.java 80]
[missionary.impl.Sequential invoke Sequential.java 71]
[missionary.impl.Ambiguous$Choice invoke Ambiguous.java 329]
[missionary.impl.Ambiguous cancel Ambiguous.java 142]
[missionary.impl.Ambiguous$Process invoke Ambiguous.java 203]
[missionary.impl.Reduce$Process invoke Reduce.java 25]
[missionary.impl.RaceJoin invoke RaceJoin.java 80]
[missionary.impl.RaceJoin invoke RaceJoin.java 80]
[missionary.impl.Sequential invoke Sequential.java 71]
[missionary.impl.RaceJoin invoke RaceJoin.java 80]
[missionary.impl.RaceJoin$2 invoke RaceJoin.java 63]
[missionary.impl.Reduce ready Reduce.java 50]
[missionary.impl.Reduce$1 invoke Reduce.java 69]
[missionary.impl.Ambiguous$3 invoke Ambiguous.java 116]
[missionary.impl.Ambiguous$5 invoke Ambiguous.java 178]
[cloroutine.impl$coroutine$fn__45585 invoke impl.cljc 65]
[missionary.impl.Ambiguous more Ambiguous.java 43]
[missionary.impl.Ambiguous$1 invoke Ambiguous.java 60]
[missionary.impl.Ambiguous$3 invoke Ambiguous.java 116]
[missionary.impl.Sleep$Scheduler trigger Sleep.java 60]
[missionary.impl.Sleep$Scheduler run Sleep.java 74]
Please let me know if there is any way to provide additional information about what is causing this.
This seems to happen in cases where I an infinite loop and then interrupted the execution.
Thank you for reporting.
The fact that the scheduler thread stays indefinitely blocked at the beginning of a synchronized block (GroupBy.java 127) is a good hint for a deadlock. Although I can't say for sure what happens in this specific case (which doesn't seem trivial), I have experienced deadlocks in other situations, I'm pretty sure group-by synchronization strategy is too aggressive and I'm currently working on a fix.
Should be fixed in b.27
, feel free to reopen if you still observe a similar problem.