puppetlabs/trapperkeeper

Cannot be run with `-Dclojure.core.async.go-checking=true`

Opened this issue · 0 comments

vemv commented

Context

Release 0.5.527 on 2019.11.12
Add system property clojure.core.async.go-checking that will throw if core.async blocking ops (>!!, <!!, alts!!, alt!!) are used in a go block

https://github.com/clojure/core.async/blob/91e132b8ffa90af9eaa21d8e5c4e78369fdfea1a/README.md

Describe the Bug

If I run trapperkeeper with the -Dclojure.core.async.go-checking=true JVM flag, I can hit the exception attached at the bottom

Steps to Reproduce

A bit hard to, especially respecting IP concerns, but if that helps, I'd suggest that you run the CI build with the flag set. Afer all, it's reasonable that modern core.async usage should be able to satisfy this safety flag.

Environment

  • TK 3.0.0
  • core.async >= 0.5.527
  • macOS

Additional Context

1. Unhandled java.lang.IllegalStateException
   Invalid blocking call in dispatch thread

              dispatch.clj:   29  clojure.core.async.impl.dispatch/check-blocking-in-dispatch
              dispatch.clj:   26  clojure.core.async.impl.dispatch/check-blocking-in-dispatch
                 async.clj:  164  clojure.core.async/fn
                 async.clj:  164  clojure.core.async/fn
              internal.clj:  621  puppetlabs.trapperkeeper.internal/eval178002/boot-services-for-app*/fn
              internal.clj:  616  puppetlabs.trapperkeeper.internal/eval178002/boot-services-for-app*
              internal.clj:  637  puppetlabs.trapperkeeper.internal/eval178070/boot-services*/fn
              internal.clj:  626  puppetlabs.trapperkeeper.internal/eval178070/boot-services*
                  core.clj:   78  puppetlabs.trapperkeeper.core/boot-services-with-config-fn
                  core.clj:   62  puppetlabs.trapperkeeper.core/boot-services-with-config-fn
                  core.clj:   94  puppetlabs.trapperkeeper.core/boot-services-with-config
                  core.clj:   80  puppetlabs.trapperkeeper.core/boot-services-with-config
             bootstrap.clj:   16  puppetlabs.trapperkeeper.testutils.bootstrap/bootstrap-services-with-config
             bootstrap.clj:   13  puppetlabs.trapperkeeper.testutils.bootstrap/bootstrap-services-with-config

Thanks - V