Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

undefined symbol: EVP_idea_cbc, version OPENSSL_1_1_0 #9

Closed
dehann opened this issue Nov 23, 2022 · 3 comments
Closed

undefined symbol: EVP_idea_cbc, version OPENSSL_1_1_0 #9

dehann opened this issue Nov 23, 2022 · 3 comments

Comments

@dehann
Copy link

dehann commented Nov 23, 2022

Hi, just came across a missing symbol issue (not sure if it's related to Julia 1.8.3). I've been using unchanged code for some time and fairly sure this issue is upstream from anything I'm doing.

Opening the issue here because I'm not seeing any reference to the symbol EVP_idea_cbc: https://github.com/JuliaWeb/OpenSSL.jl/search?q=EVP_idea_cbc

julia: symbol lookup error: /home/dehann/.julia/artifacts/53037ac9d528ee46c3526799b407ee52b7c224f3/lib/libssl.so: undefined symbol: EVP_idea_cbc, version OPENSSL_1_1_0

The artifact libssl.so file does exist:

$ ~/.julia/artifacts/53037ac9d528ee46c3526799b407ee52b7c224f3/lib/libssl.so
/home/dehann/.julia/artifacts/53037ac9d528ee46c3526799b407ee52b7c224f3/lib/libssl.so: symbolic link to libssl.so.1.1

The symbol does exist in the .so file:

$ nm -gD ~/.julia/artifacts/53037ac9d528ee46c3526799b407ee52b7c224f3/lib/libssl.so | grep -i EVP_idea
                 U EVP_idea_cbc

MWE

Trying to boil it down to MWE, here is the shortest I could get so far:

This load order works fine

using OpenSSL
using RobotOS # only has one dependency: PyCall.jl

This breaks

using RobotOS # only has one dependency: PyCall.jl
using OpenSSL # flip load order with RobotOS

this gives the error above undefined symbol: EVP_idea_cbc, version OPENSSL_1_1_0. My best guess at the moment is that the RobotOS is calling a few Python packages through PyCall, and one of the lines of code there somewhere is looking for this symbol from OpenSSL. Probably not worth going through the Python code (since that's not going to change anyway), and since it looks like the EVP_idea_cbc symbol does not seem be present here in OpenSSL.jl.

Next best guess is that something with newest Julia is exposing a bug deeper in the stack. Either way the error is difficult to parse and took me a long time to boil it down this far.

OpenSSL_jll Wrapper

Dont know these binary wrappers too well myself yet, but nothing in terms of special cases etc:

[edited]

Version Info

julia> versioninfo()
Julia Version 1.8.3
Commit 0434deb161e (2022-11-14 20:14 UTC)
Platform Info:
  OS: Linux (x86_64-linux-gnu)
  CPU: 12 × Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-13.0.1 (ORCJIT, skylake)
  Threads: 6 on 12 virtual cores
Environment:
  LD_LIBRARY_PATH = /opt/ros/noetic/lib
  JULIA_NUM_THREADS = 6

Ubuntu 20.04

@quinnj
Copy link
Member

quinnj commented Nov 24, 2022

Hmmm, this doesn't have anything to do with OpenSSL.jl, which just wraps the OpenSSL_jll library to provide julia-level entry. I'd probably file this issue with JuliaLang/julia (there are some very in-the-know people who would then know better where to route this), or even at https://github.com/JuliaPackaging/Yggdrasil, which is the central home of _jll packages.

@quinnj quinnj closed this as completed Nov 24, 2022
@dehann
Copy link
Author

dehann commented Nov 24, 2022

okay, thanks

@lazzarello
Copy link

lazzarello commented Jan 14, 2023

I'm debugging this same issue. got here literally the same way. Downgrading the JLL binary hasn't fixed anything yet. I think this might be a bug in pycall because that library embeds a python interpreter into Julia...

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

No branches or pull requests

3 participants