Skip to content
Discussion options

You must be logged in to vote

Here's what claude sonnet came up with after 30 minutes. Take it with a pile of salt :-) no effort done from my side here (sorry).


Theory

The hang is caused by the SpaceEngine's reachabilityCheckable analysis performing non-memoized decompose(List[T]) calls in O(N²) complexity for large Play SIRD routers.

What the stack trace reveals

Thread pool-46-thread-9 consumed 135s of CPU in 140s (96% utilization). The hot path is:

   checkReachability
     → isSubspace(covered, Or(prevs_LazyList))
       → minus(covered, Or(prevs)) = ss.foldLeft(a)(minus)   ← iterates over ALL previous routes
         → minus(Prod, Prod)  [Prod vs Prod with same &.unapply]
           → range.exists(i => isSubspace…

Replies: 1 comment 9 replies

Comment options

You must be logged in to vote
9 replies
@lrytz
Comment options

@schmitch
Comment options

@schmitch
Comment options

@lrytz
Comment options

lrytz Mar 3, 2026
Maintainer

Answer selected by schmitch
@schmitch
Comment options

@schmitch
Comment options

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
2 participants