Closed mnussbaum closed 10 years ago
Let me take a wild guess before I start investigating: That this interaction is a result of a version conflict by a transitive dependency shared by both Pulsar and ES. Can you try to add :pedantic :warn
to project.clj
and/or run lein deps :tree
to check for conflicts?
Thanks for the quick response! I ran lein deps :tree
with pedantic on and it looks like there is an overlap on the org.ow2.asm
library. I tried including all the suggested exclusions and ended up with
[co.paralleluniverse/pulsar "0.6.1" :exclusions [org.ow2.asm/asm org.ow2.asm/asm-commons org.clojure/tools.analyzer.jvm]
Running lein deps --tree
now gives me no output, but, I'm still getting the same exception. I'm not too familiar with clojure's dependency system, could pedantic just be missing some conflicts, or does this mean the problem lies elsewhere?
What asm version is ES requesting? I would exclude asm from ES -- not from Pulsar (Pulsar has the newest version, and relies on asm heavily). An asm version conflict is exactly the sort of thing that could cause this kind of problem.
Got it! I didn't understand that adding something to the exclusions list actually changed the dependency that was being imported, I thought perhaps it just stopped the excluded dependency from overriding other libraries. I added the following exclusions to my elasticsearch require and all my tests are passing again.
[org.elasticsearch/elasticsearch "1.3.4" :exclusions [org.ow2.asm/asm org.ow2.asm/asm-commons org.ow2.asm/asm-tree]]
Thanks again for all the help!
I'm getting the following error when trying to use pulsar in a project that also includes elasticsearch as a dependency:
Exception in Fiber "fiber-10000001" java.lang.RuntimeException: co.paralleluniverse.fibers.SuspendExecution: Oops. Forgot to instrument a method...
When I run with instrumentation verification I get:
IllegalArgumentException Target class class co.paralleluniverse.actors.behaviors.SupervisorActor has not been instrumented. co.paralleluniverse.fibers.Fiber.verifyInstrumentedTarget (Fiber.java:244)
To trigger the exception I run a file that only has:
In a project that includes
[org.elasticsearch/elasticsearch "1.3.0"]
, or any higher version of elasticsearch1.3.x
, in theproject.clj
. The exception does not occur with elasticsearch1.2.x
, or without elasticsearch at all, so I think there is some strange interaction between pulsar and newish versions of elasticsearch.I've tested with pulsar version
0.6.1
and0.7.0-SNAPSHOT
, and both have the same behavior.I'm happy to help track this down, just let me know what I can do.