Closed lischenko closed 6 years ago
Oh, and in case anyone is wondering, the quick and dirty fix for that is to follow https://github.com/jvm-profiling-tools/async-profiler#building to build the .so locally and then replace /tmp/clj-async-profiler/libasyncProfiler-linux.so
with it.
Thanks for reporting! I've pushed a possible improvement as 0.1.3-SNAPSHOT
. Could you try it and confirm? I can't test it myself easily.
Regarding documenting the dependencies explicitly, I think it should better be on async-profiler side. Besides, if the hack I've pushed works, people will know about the mismatched dependency from the exception.
BTW, you can do (reset! prof/async-profiler-agent-path "/path/to/custom/agent.so")
instead of replacing the file in the tempdir.
Thanks for making the change, works as expected with 0.1.3-SNAPSHOT
:
myns> (clojure.core/require '[clj-async-profiler.core :as prof])
nil
myns> (prof/start {})
UnsatisfiedLinkError /tmp/clj-async-profiler/libasyncProfiler-linux.so: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /tmp/clj-async-profiler/libasyncProfiler-linux.so) java.lang.ClassLoader$NativeLibrary.load (ClassLoader.java:-2)
Thank you!
I was having an issue trying to use the profiler:
So after some debugging it boiled down to:
and
The system I run this on has a bit older version of
libc
.It would be great to make this kind of errors more transparent, perhaps by having more than just "Failed to load agent library" message and/or documenting the required dependencies in the wiki.