BrunoBonacci / safely

Safely is a Clojure's circuit-breaker library for handling retries in an elegant declarative way.
https://cljdoc.org/d/com.brunobonacci/safely
Apache License 2.0
207 stars 9 forks source link

Fails to compile with Clojure 1.11.1 #7

Closed Limess closed 2 years ago

Limess commented 2 years ago

We're seeing a compilation error when using safely version 0.5.0 with Clojure 1.11.1.

Here's the stack trace:

❯ lein check
Warning: protocol #'java-time.core/Amount is overwriting function abs
WARNING: abs already refers to: #'clojure.core/abs in namespace: java-time.core, being replaced by: #'java-time.core/abs
WARNING: update-vals already refers to: #'clojure.core/update-vals in namespace: clojure.tools.analyzer.utils, being replaced by: #'clojure.tools.analyzer.utils/update-vals
WARNING: update-vals already refers to: #'clojure.core/update-vals in namespace: clojure.tools.analyzer.passes, being replaced by: #'clojure.tools.analyzer.utils/update-vals
WARNING: update-vals already refers to: #'clojure.core/update-vals in namespace: clojure.tools.analyzer.passes.uniquify, being replaced by: #'clojure.tools.analyzer.utils/update-vals
Exception in thread "main" Syntax error macroexpanding clojure.core.async/go at (signal/data_platform/worker/queue.clj:123:27).
        at clojure.lang.Compiler.macroexpand1(Compiler.java:7027)
        at clojure.lang.Compiler.analyzeSeq(Compiler.java:7110)
        at clojure.lang.Compiler.analyze(Compiler.java:6806)
        at clojure.lang.Compiler.analyzeSeq(Compiler.java:7112)
        at clojure.lang.Compiler.analyze(Compiler.java:6806)
        at clojure.lang.Compiler.analyze(Compiler.java:6762)
        at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:6135)
        at clojure.lang.Compiler$LetExpr$Parser.parse(Compiler.java:6453)
        at clojure.lang.Compiler.analyzeSeq(Compiler.java:7124)
        at clojure.lang.Compiler.analyze(Compiler.java:6806)
        at clojure.lang.Compiler.analyzeSeq(Compiler.java:7112)
        at clojure.lang.Compiler.analyze(Compiler.java:6806)
        at clojure.lang.Compiler.analyze(Compiler.java:6762)
        at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:6137)
        at clojure.lang.Compiler$FnMethod.parse(Compiler.java:5479)
        at clojure.lang.Compiler$FnExpr.parse(Compiler.java:4041)
        at clojure.lang.Compiler.analyzeSeq(Compiler.java:7122)
        at clojure.lang.Compiler.analyze(Compiler.java:6806)
        at clojure.lang.Compiler.analyzeSeq(Compiler.java:7112)
        at clojure.lang.Compiler.analyze(Compiler.java:6806)
        at clojure.lang.Compiler.access$300(Compiler.java:38)
        at clojure.lang.Compiler$LetExpr$Parser.parse(Compiler.java:6401)
        at clojure.lang.Compiler.analyzeSeq(Compiler.java:7124)
        at clojure.lang.Compiler.analyze(Compiler.java:6806)
        at clojure.lang.Compiler.analyzeSeq(Compiler.java:7112)
        at clojure.lang.Compiler.analyze(Compiler.java:6806)
        at clojure.lang.Compiler.analyze(Compiler.java:6762)
        at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:6137)
        at clojure.lang.Compiler$LetExpr$Parser.parse(Compiler.java:6453)
        at clojure.lang.Compiler.analyzeSeq(Compiler.java:7124)
        at clojure.lang.Compiler.analyze(Compiler.java:6806)
        at clojure.lang.Compiler.analyzeSeq(Compiler.java:7112)
        at clojure.lang.Compiler.analyze(Compiler.java:6806)
        at clojure.lang.Compiler.analyze(Compiler.java:6762)
        at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:6137)
        at clojure.lang.Compiler$FnMethod.parse(Compiler.java:5479)
        at clojure.lang.Compiler$FnExpr.parse(Compiler.java:4041)
        at clojure.lang.Compiler.analyzeSeq(Compiler.java:7122)
        at clojure.lang.Compiler.analyze(Compiler.java:6806)
        at clojure.lang.Compiler.analyzeSeq(Compiler.java:7112)
        at clojure.lang.Compiler.analyze(Compiler.java:6806)
        at clojure.lang.Compiler.access$300(Compiler.java:38)
        at clojure.lang.Compiler$DefExpr$Parser.parse(Compiler.java:596)
        at clojure.lang.Compiler.analyzeSeq(Compiler.java:7124)
        at clojure.lang.Compiler.analyze(Compiler.java:6806)
        at clojure.lang.Compiler.analyze(Compiler.java:6762)
        at clojure.lang.Compiler.eval(Compiler.java:7198)
        at clojure.lang.Compiler.load(Compiler.java:7653)
        at clojure.lang.RT.loadResourceScript(RT.java:381)
        at clojure.lang.RT.loadResourceScript(RT.java:372)
        at clojure.lang.RT.load(RT.java:459)
        at clojure.lang.RT.load(RT.java:424)
        at clojure.core$load$fn__6908.invoke(core.clj:6161)
        at clojure.core$load.invokeStatic(core.clj:6160)
        at clojure.core$load.doInvoke(core.clj:6144)
        at clojure.lang.RestFn.invoke(RestFn.java:408)
        at clojure.core$load_one.invokeStatic(core.clj:5933)
        at clojure.core$load_one.invoke(core.clj:5928)
        at clojure.core$load_lib$fn__6850.invoke(core.clj:5975)
        at clojure.core$load_lib.invokeStatic(core.clj:5974)
        at clojure.core$load_lib.doInvoke(core.clj:5953)
        at clojure.lang.RestFn.applyTo(RestFn.java:142)
        at clojure.core$apply.invokeStatic(core.clj:669)
        at clojure.core$load_libs.invokeStatic(core.clj:6016)
        at clojure.core$load_libs.doInvoke(core.clj:6000)
        at clojure.lang.RestFn.applyTo(RestFn.java:137)
        at clojure.core$apply.invokeStatic(core.clj:669)
        at clojure.core$require.invokeStatic(core.clj:6038)
        at clojure.core$require.doInvoke(core.clj:6038)
        at clojure.lang.RestFn.invoke(RestFn.java:1523)
        at signal.data_notifier.core$eval23368$loading__6789__auto____23369.invoke(core.clj:1)
        at signal.data_notifier.core$eval23368.invokeStatic(core.clj:1)
        at signal.data_notifier.core$eval23368.invoke(core.clj:1)
        at clojure.lang.Compiler.eval(Compiler.java:7194)
        at clojure.lang.Compiler.eval(Compiler.java:7183)
        at clojure.lang.Compiler.load(Compiler.java:7653)
        at clojure.lang.RT.loadResourceScript(RT.java:381)
        at clojure.lang.RT.loadResourceScript(RT.java:372)
        at clojure.lang.RT.load(RT.java:459)
        at clojure.lang.RT.load(RT.java:424)
        at clojure.core$load$fn__6908.invoke(core.clj:6161)
        at clojure.core$load.invokeStatic(core.clj:6160)
        at clojure.core$load.doInvoke(core.clj:6144)
        at clojure.lang.RestFn.invoke(RestFn.java:408)
        at clojure.core$load_one.invokeStatic(core.clj:5933)
        at clojure.core$load_one.invoke(core.clj:5928)
        at clojure.core$load_lib$fn__6850.invoke(core.clj:5975)
        at clojure.core$load_lib.invokeStatic(core.clj:5974)
        at clojure.core$load_lib.doInvoke(core.clj:5953)
        at clojure.lang.RestFn.applyTo(RestFn.java:142)
        at clojure.core$apply.invokeStatic(core.clj:669)
        at clojure.core$load_libs.invokeStatic(core.clj:6016)
        at clojure.core$load_libs.doInvoke(core.clj:6000)
        at clojure.lang.RestFn.applyTo(RestFn.java:137)
        at clojure.core$apply.invokeStatic(core.clj:669)
        at clojure.core$require.invokeStatic(core.clj:6038)
        at clojure.core$require.doInvoke(core.clj:6038)
        at clojure.lang.RestFn.invoke(RestFn.java:805)
        at signal.data_notifier.system$eval1474$loading__6789__auto____1475.invoke(system.clj:1)
        at signal.data_notifier.system$eval1474.invokeStatic(system.clj:1)
        at signal.data_notifier.system$eval1474.invoke(system.clj:1)
        at clojure.lang.Compiler.eval(Compiler.java:7194)
        at clojure.lang.Compiler.eval(Compiler.java:7183)
        at clojure.lang.Compiler.load(Compiler.java:7653)
        at clojure.lang.RT.loadResourceScript(RT.java:381)
        at clojure.lang.RT.loadResourceScript(RT.java:372)
        at clojure.lang.RT.load(RT.java:459)
        at clojure.lang.RT.load(RT.java:424)
        at clojure.core$load$fn__6908.invoke(core.clj:6161)
        at clojure.core$load.invokeStatic(core.clj:6160)
        at clojure.core$load.doInvoke(core.clj:6144)
        at clojure.lang.RestFn.invoke(RestFn.java:408)
        at clojure.core$load_one.invokeStatic(core.clj:5933)
        at clojure.core$load_one.invoke(core.clj:5928)
        at clojure.core$load_lib$fn__6850.invoke(core.clj:5975)
        at clojure.core$load_lib.invokeStatic(core.clj:5974)
        at clojure.core$load_lib.doInvoke(core.clj:5953)
        at clojure.lang.RestFn.applyTo(RestFn.java:142)
        at clojure.core$apply.invokeStatic(core.clj:669)
        at clojure.core$load_libs.invokeStatic(core.clj:6016)
        at clojure.core$load_libs.doInvoke(core.clj:6000)
        at clojure.lang.RestFn.applyTo(RestFn.java:137)
        at clojure.core$apply.invokeStatic(core.clj:669)
        at clojure.core$require.invokeStatic(core.clj:6038)
        at clojure.core$require.doInvoke(core.clj:6038)
        at clojure.lang.RestFn.invoke(RestFn.java:482)
        at user$eval140$loading__6789__auto____141.invoke(user.clj:1)
        at user$eval140.invokeStatic(user.clj:1)
        at user$eval140.invoke(user.clj:1)
        at clojure.lang.Compiler.eval(Compiler.java:7194)
        at clojure.lang.Compiler.eval(Compiler.java:7183)
        at clojure.lang.Compiler.load(Compiler.java:7653)
        at clojure.lang.RT.loadResourceScript(RT.java:381)
        at clojure.lang.RT.loadResourceScript(RT.java:368)
        at clojure.lang.RT.maybeLoadResourceScript(RT.java:364)
        at clojure.lang.RT.doInit(RT.java:486)
        at clojure.lang.RT.init(RT.java:467)
        at clojure.main.main(main.java:38)
Caused by: java.lang.IllegalStateException: Attempting to call unbound fn: #'clojure.tools.analyzer.utils/update-vals
        at clojure.lang.Var$Unbound.throwArity(Var.java:45)
        at clojure.lang.AFn.invoke(AFn.java:36)
        at clojure.lang.AFn.applyToHelper(AFn.java:156)
        at clojure.lang.AFn.applyTo(AFn.java:144)
        at clojure.core$apply.invokeStatic(core.clj:669)
        at clojure.core$update_in$up__6922.invoke(core.clj:6220)
        at clojure.core$update_in$up__6922.invoke(core.clj:6219)
        at clojure.core$update_in.invokeStatic(core.clj:6221)
        at clojure.core$update_in.doInvoke(core.clj:6207)
        at clojure.lang.RestFn.invoke(RestFn.java:467)
        at clojure.tools.analyzer.passes.uniquify$uniquify_locals_around.invokeStatic(uniquify.clj:29)
        at clojure.tools.analyzer.passes.uniquify$uniquify_locals_around.invoke(uniquify.clj:26)
        at clojure.tools.analyzer.passes.uniquify$uniquify_locals.invokeStatic(uniquify.clj:95)
        at clojure.tools.analyzer.passes.uniquify$uniquify_locals.invoke(uniquify.clj:85)
        at clojure.lang.Var.invoke(Var.java:384)
        at clojure.core$comp$fn__5876.invoke(core.clj:2586)
        at clojure.core$comp$fn__5876.invoke(core.clj:2586)
        at clojure.core$comp$fn__5876.invoke(core.clj:2586)
        at clojure.core$comp$fn__5876.invoke(core.clj:2586)
        at clojure.core$comp$fn__5876.invoke(core.clj:2586)
        at clojure.core$comp$fn__5876.invoke(core.clj:2586)
        at clojure.tools.analyzer.jvm$analyze$fn__6622$fn__6627.invoke(jvm.clj:469)
        at clojure.tools.analyzer.jvm$analyze$fn__6622.invoke(jvm.clj:467)
        at clojure.lang.AFn.applyToHelper(AFn.java:152)
        at clojure.lang.AFn.applyTo(AFn.java:144)
        at clojure.core$apply.invokeStatic(core.clj:667)
        at clojure.core$with_bindings_STAR_.invokeStatic(core.clj:1990)
        at clojure.core$with_bindings_STAR_.doInvoke(core.clj:1990)
        at clojure.lang.RestFn.invoke(RestFn.java:425)
        at clojure.tools.analyzer.jvm$analyze.invokeStatic(jvm.clj:456)
        at clojure.tools.analyzer.jvm$analyze.invoke(jvm.clj:436)
        at clojure.core.async.impl.ioc_macros$state_machine.invokeStatic(ioc_macros.clj:1098)
        at clojure.core.async.impl.ioc_macros$state_machine.invoke(ioc_macros.clj:1096)
        at clojure.core.async$go.invokeStatic(async.clj:421)
        at clojure.core.async$go.doInvoke(async.clj:404)
        at clojure.lang.RestFn.applyTo(RestFn.java:142)
        at clojure.lang.Var.applyTo(Var.java:705)
        at clojure.lang.Compiler.macroexpand1(Compiler.java:7010)
        ... 137 more
Failed.

Dependencies tree (This is in a production project, I haven't put together a minimal reproduction yet):

 [cc.qbits/knit "1.0.0"]
   [cc.qbits/commons "0.5.1"]
   [org.clojure/core.async "1.5.648"]
     [org.clojure/tools.analyzer.jvm "1.2.2"]
       [org.clojure/core.memoize "1.0.257"]
         [org.clojure/core.cache "1.0.225"]
           [org.clojure/data.priority-map "1.1.0"]
       [org.clojure/tools.analyzer "1.1.0"]
       [org.ow2.asm/asm "9.2"]
 [cheshire "5.11.0"]
   [com.fasterxml.jackson.core/jackson-core "2.13.4"]
   [com.fasterxml.jackson.dataformat/jackson-dataformat-cbor "2.13.4" :exclusions [[com.fasterxml.jackson.core/jackson-databind]]]
   [com.fasterxml.jackson.dataformat/jackson-dataformat-smile "2.13.3" :exclusions [[com.fasterxml.jackson.core/jackson-databind]]]
   [tigris "0.1.2"]
 [clj-http "3.12.3"]
   [commons-codec "1.15" :exclusions [[org.clojure/clojure]]]
   [commons-io "2.11.0" :exclusions [[org.clojure/clojure]]]
   [org.apache.httpcomponents/httpasyncclient "4.1.5" :exclusions [[org.clojure/clojure]]]
     [org.apache.httpcomponents/httpcore-nio "4.4.15"]
   [org.apache.httpcomponents/httpclient-cache "4.5.13" :exclusions [[org.clojure/clojure]]]
   [org.apache.httpcomponents/httpclient "4.5.13" :exclusions [[org.clojure/clojure]]]
     [commons-logging "1.2"]
   [org.apache.httpcomponents/httpcore "4.4.15" :exclusions [[org.clojure/clojure]]]
   [org.apache.httpcomponents/httpmime "4.5.13" :exclusions [[org.clojure/clojure]]]
   [potemkin "0.4.5" :exclusions [[org.clojure/clojure]]]
     [clj-tuple "0.2.2"]
     [riddley "0.2.0"]
   [slingshot "0.12.2" :exclusions [[org.clojure/clojure]]]
 [com.amazonaws/aws-java-sdk-ec2 "1.12.280"]
 [com.amazonaws/aws-java-sdk-ecs "1.12.280"]
   [com.amazonaws/aws-java-sdk-core "1.12.280"]
     [joda-time "2.11.1"]
     [software.amazon.ion/ion-java "1.0.2"]
   [com.amazonaws/jmespath-java "1.12.280"]
 [com.signal-ai/data-platform-component-http "0.2.5-20220909.102327-4"]
   [com.github.steffan-westcott/clj-otel-api "0.1.5"]
     [io.opentelemetry/opentelemetry-api "1.17.0"]
       [io.opentelemetry/opentelemetry-context "1.17.0"]
     [io.opentelemetry/opentelemetry-semconv "1.17.0-alpha"]
   [com.signal-ai/logging-timbre "0.2.8"]
     [com.fzakaria/slf4j-timbre "0.3.21" :exclusions [[org.slf4j/slf4j-log4j13] [org.slf4j/slf4j-log4j12] [org.slf4j/slf4j-nop] [org.slf4j/slf4j-jcl] [org.slf4j/simple] [ch.qos.logback/logback-core] [ch.qos.logback/logback-classic] [org.apache.logging.log4j/log4j] [log4j] [commons-logging]]]
     [org.slf4j/jcl-over-slf4j "1.7.36" :exclusions [[org.slf4j/slf4j-log4j13] [org.slf4j/slf4j-log4j12] [org.slf4j/slf4j-nop] [org.slf4j/slf4j-jcl] [org.slf4j/simple] [ch.qos.logback/logback-core] [ch.qos.logback/logback-classic] [org.apache.logging.log4j/log4j] [log4j] [commons-logging]]]
     [org.slf4j/jul-to-slf4j "1.7.36" :exclusions [[org.slf4j/slf4j-log4j13] [org.slf4j/slf4j-log4j12] [org.slf4j/slf4j-nop] [org.slf4j/slf4j-jcl] [org.slf4j/simple] [ch.qos.logback/logback-core] [ch.qos.logback/logback-classic] [org.apache.logging.log4j/log4j] [log4j] [commons-logging]]]
     [org.slf4j/log4j-over-slf4j "1.7.36" :exclusions [[org.slf4j/slf4j-log4j13] [org.slf4j/slf4j-log4j12] [org.slf4j/slf4j-nop] [org.slf4j/slf4j-jcl] [org.slf4j/simple] [ch.qos.logback/logback-core] [ch.qos.logback/logback-classic] [org.apache.logging.log4j/log4j] [log4j] [commons-logging]]]
     [org.slf4j/osgi-over-slf4j "1.7.36" :exclusions [[org.slf4j/slf4j-log4j13] [org.slf4j/slf4j-log4j12] [org.slf4j/slf4j-nop] [org.slf4j/slf4j-jcl] [org.slf4j/simple] [ch.qos.logback/logback-core] [ch.qos.logback/logback-classic] [org.apache.logging.log4j/log4j] [log4j] [commons-logging]]]
     [viesti/timbre-json-appender "0.2.7" :exclusions [[org.slf4j/slf4j-log4j13] [org.slf4j/slf4j-log4j12] [org.slf4j/slf4j-nop] [org.slf4j/slf4j-jcl] [org.slf4j/simple] [ch.qos.logback/logback-core] [ch.qos.logback/logback-classic] [org.apache.logging.log4j/log4j] [log4j] [commons-logging]]]
   [integrant "0.8.0"]
     [weavejester/dependency "0.2.1"]
   [metosin/jsonista "0.3.6"]
     [com.fasterxml.jackson.datatype/jackson-datatype-jsr310 "2.13.2"]
   [metosin/reitit "0.5.18"]
     [metosin/reitit-core "0.5.18"]
     [metosin/reitit-dev "0.5.18"]
       [com.bhauman/spell-spec "0.1.2"]
     [metosin/reitit-frontend "0.5.18"]
     [metosin/reitit-http "0.5.18"]
     [metosin/reitit-interceptors "0.5.18"]
     [metosin/reitit-malli "0.5.18"]
     [metosin/reitit-middleware "0.5.18"]
       [metosin/muuntaja "0.6.8"]
         [com.cognitect/transit-clj "1.0.324"]
           [com.cognitect/transit-java "1.0.343"]
             [org.msgpack/msgpack "0.6.12"]
               [com.googlecode.json-simple/json-simple "1.1.1" :exclusions [[junit]]]
               [org.javassist/javassist "3.18.1-GA"]
     [metosin/reitit-ring "0.5.18"]
     [metosin/reitit-schema "0.5.18"]
       [metosin/schema-tools "0.12.3"]
     [metosin/reitit-sieppari "0.5.18"]
       [metosin/sieppari "0.0.0-alpha13"]
     [metosin/reitit-spec "0.5.18"]
       [metosin/spec-tools "0.10.5"]
     [metosin/reitit-swagger-ui "0.5.18"]
       [metosin/ring-swagger-ui "4.3.0"]
     [metosin/reitit-swagger "0.5.18"]
   [ring/ring-jetty-adapter "1.9.5"]
     [org.eclipse.jetty/jetty-server "9.4.44.v20210927"]
       [javax.servlet/javax.servlet-api "3.1.0"]
       [org.eclipse.jetty/jetty-io "9.4.48.v20220622"]
     [ring/ring-core "1.9.5"]
       [commons-fileupload "1.4"]
       [crypto-equality "1.0.0"]
       [crypto-random "1.2.1"]
     [ring/ring-servlet "1.9.5"]
 [com.signal-ai/data-platform-component-schema "0.2.5-20220909.102338-4"]
   [org.clj-commons/claypoole "1.2.2"]
 [com.signal-ai/data-platform-component-worker "0.2.5-20220909.102337-4"]
   [amazonica "0.3.161" :exclusions [[com.amazonaws/aws-java-sdk] [com.amazonaws/amazon-kinesis-client] [org.clojure/tools.reader]]]
     [com.amazonaws/dynamodb-streams-kinesis-adapter "1.5.2" :exclusions [[com.amazonaws/amazon-kinesis-client] [com.amazonaws/aws-java-sdk-cloudwatch] [com.amazonaws/aws-java-sdk-dynamodb] [com.amazonaws/aws-java-sdk-kinesis] [joda-time]]]
       [org.apache.commons/commons-lang3 "3.7"]
     [org.clojure/algo.generic "0.1.2"]
     [robert/hooke "1.3.0"]
   [com.amazonaws/aws-java-sdk-s3 "1.12.280"]
     [com.amazonaws/aws-java-sdk-kms "1.12.280"]
   [com.amazonaws/aws-java-sdk-sns "1.12.280"]
   [com.amazonaws/aws-java-sdk-sqs "1.12.280"]
   [com.amazonaws/aws-java-sdk-sts "1.12.280"]
   [manifold "0.2.4"]
     [io.aleph/dirigiste "1.0.0"]
 [com.signal-ai/data-platform-telemetry "0.4.10"]
   [circleci/rollcage "1.0.203"]
     [clj-stacktrace "0.2.8"]
     [prismatic/schema "1.4.0"]
   [clj-commons/iapetos "0.1.12" :exclusions [[io.prometheus/simpleclient]]]
     [io.prometheus/simpleclient_common "0.12.0"]
     [io.prometheus/simpleclient_pushgateway "0.12.0"]
       [javax.xml.bind/jaxb-api "2.3.1"]
         [javax.activation/javax.activation-api "1.2.0"]
   [clojure.java-time "0.3.3"]
   [io.prometheus/simpleclient_hotspot "0.16.0"]
     [io.prometheus/simpleclient "0.16.0"]
       [io.prometheus/simpleclient_tracer_otel "0.16.0"]
         [io.prometheus/simpleclient_tracer_common "0.16.0"]
       [io.prometheus/simpleclient_tracer_otel_agent "0.16.0"]
   [org.clojure/tools.logging "1.2.4"]
 [com.signal-ai/schema-management "0.2.2"]
   [clj-aws-sign "0.1.1"]
     [ring/ring-codec "1.2.0"]
   [com.cognitect.aws/api "0.8.587"]
     [com.cognitect/http-client "1.0.115"]
       [org.eclipse.jetty/jetty-client "9.4.48.v20220622"]
       [org.eclipse.jetty/jetty-http "9.4.48.v20220622"]
       [org.eclipse.jetty/jetty-util "9.4.48.v20220622"]
     [org.clojure/data.xml "0.2.0-alpha6"]
       [org.clojure/data.codec "0.1.0"]
   [com.cognitect.aws/endpoints "1.1.12.280"]
   [com.fasterxml.jackson.core/jackson-databind "2.13.4"]
     [com.fasterxml.jackson.core/jackson-annotations "2.13.4"]
   [io.apicurio/apicurio-registry-client "2.2.5.Final"]
     [io.apicurio/apicurio-common-rest-client-jdk "0.1.11.Final"]
       [io.apicurio/apicurio-common-rest-client-common "0.1.11.Final"]
     [io.apicurio/apicurio-registry-common "2.2.5.Final" :exclusions [[org.jboss.spec.javax.ws.rs/jboss-jaxrs-api_2.1_spec]]]
       [org.projectlombok/lombok "1.18.24"]
     [org.slf4j/slf4j-api "1.7.36"]
   [luposlip/json-schema "0.3.4"]
     [com.github.erosb/everit-json-schema "1.14.1"]
       [com.damnhandy/handy-uri-templates "2.1.8"]
       [com.google.re2j/re2j "1.6"]
       [commons-validator "1.7" :exclusions [[commons-beanutils]]]
         [commons-collections "3.2.2"]
         [commons-digester "2.1" :exclusions [[commons-beanutils] [commons-logging]]]
       [org.json/json "20220320"]
   [org.clj-commons/byte-streams "0.3.1"]
     [org.clj-commons/primitive-math "1.0.0"]
   [org.clojure/data.json "2.4.0"]
   [org.clojure/tools.reader "1.3.6"]
 [com.taoensso/carmine "3.1.0"]
   [com.taoensso/encore "3.24.0"]
     [com.taoensso/truss "1.6.0"]
   [com.taoensso/nippy "3.2.0"]
     [org.iq80.snappy/snappy "0.4"]
     [org.lz4/lz4-java "1.8.0"]
     [org.tukaani/xz "1.9"]
   [com.taoensso/timbre "5.2.1"]
     [io.aviso/pretty "1.1.1"]
   [org.apache.commons/commons-pool2 "2.9.0"]
 [criterium "0.4.6"]
 [environ "1.2.0"]
 [integrant/repl "0.3.2" :scope "test"]
 [lambdaisland/kaocha-cloverage "1.0.75" :scope "test"]
   [cloverage "1.2.0" :scope "test"]
 [lambdaisland/kaocha-junit-xml "1.16.98" :scope "test"]
 [lambdaisland/kaocha "1.69.1069" :scope "test"]
   [aero "1.1.6" :scope "test"]
   [com.nextjournal/beholder "1.0.0" :scope "test"]
     [io.methvin/directory-watcher "0.15.0" :scope "test"]
       [net.java.dev.jna/jna "5.7.0" :scope "test"]
   [expound "0.9.0"]
   [hawk "0.2.11" :scope "test"]
     [net.incongru.watchservice/barbary-watchservice "1.0" :scope "test"]
   [lambdaisland/deep-diff "0.0-47"]
     [mvxcvi/puget "1.1.2"]
     [tech.droit/clj-diff "1.0.1"]
   [lambdaisland/tools.namespace "0.1.247" :scope "test"]
   [meta-merge "1.0.0"]
   [org.clojure/tools.cli "1.0.206" :scope "test"]
   [org.tcrawley/dynapath "1.1.0" :scope "test"]
   [progrock "0.1.2" :scope "test"]
 [metosin/malli "0.8.9"]
   [borkdude/dynaload "0.3.4"]
   [borkdude/edamame "1.0.0"]
   [fipp "0.6.26"]
     [org.clojure/core.rrb-vector "0.1.2"]
   [mvxcvi/arrangement "2.0.0"]
   [org.clojure/test.check "1.1.1"]
 [nrepl "0.9.0" :exclusions [[org.clojure/clojure]]]
 [org.clojure/clojure "1.10.3"]
   [org.clojure/core.specs.alpha "0.2.56"]
   [org.clojure/spec.alpha "0.2.194"]
 [org.clojure/tools.namespace "1.3.0"]
   [org.clojure/java.classpath "1.0.0"]
 [org.nrepl/incomplete "0.1.0" :exclusions [[org.clojure/clojure]]]
BrunoBonacci commented 2 years ago

Hi @Limess ,

I've tested the compilation with Clojure 1.11.1 and it works just fine. (please see commit: https://github.com/BrunoBonacci/safely/commit/cc02304e805c427303b94f032beb74320f66a512). I also use safely in many Clojure-1.11.1 projects and I haven't experienced compilation issues.

from the error it looks like the failure is on clojure.core.async/go source file: signal/data_platform/worker/queue.clj:123:27. The stacktrace doesn't mention safely not even once. Safely is not even in your deps tree pasted above.

How did you come to the conclusion that it was a safely issue?

Limess commented 2 years ago

Ah, sorry - I may have posted the deps tree after removing safely and getting the code to compile.

We'd identified safely by adding/removing dependencies with the above stack trace, removing safely seemed to fix the above error. Weirdly, everything now seems to be happy after some unrelated changes, I'll close this issue, sorry for the false-alarm.