I am trying to install the Genie web framework and use the Genie Builder extension in VSCode. But I am hitting an error, and I can’t quite tell if it is a Genie issue or a more generic Julia issue. The core of the error and stacktrace is below. Seems like an OpenSSL and libssl.so issue.
/usr/lib/julia-1.8.3/bin/julia: symbol lookup error: /home/.../.julia/artifacts/53037ac9d528ee46c3526799b407ee52b7c224f3/lib/libssl.so: undefined symbol: EVP_idea_cbc, version OPENSSL_1_1_0
ERROR: LoadError: Failed to precompile Genie [c43c736e-a2d1-11e8-161f-af95117fbd1e] to /home/..../.julia/compiled/v1.8/Genie/jl_bRUoYt.
I am on Julia 1.8.3 on Ubuntu 20.04. So the problem seems related to a dependency of Genie, which is OpenSSL or libssl.so. I have seen this issue occur a number of times in other contexts before. Most recently I saw it when trying to install RCall I believe.
There seem to be a number of posts on this issue in discourse, but I have not found any discussions specific to Genie.
To fix the problem I have tried to set the LD_LIBRARY_PATH to include the /usr/lib/julia-1.8.3/lib/julia directory. There is a bunch of Oneapi stuff in that environment variable, so the julia folder inclusion is late in the list of paths, but it is present.
Not sure what else I can try. I opened an issue against Genie Builder, but again I am not sure that is the correct place to log the issue. I am not certain it is a Genie issue and not just a dependency of Genie issue.
Does that solve the problem? Setting LD_LIBRARY_PATH should be local to the applications that need them, having a long list of everything is begging for troubles. Ideally you should start Julia, or any other applications really, with an empty LD_LIBRARY_PATH unless you need something specific.
@giordano You know, I also tried to force LD_LIBRARY_PATH to be empty, but that did not work in this case either. I did something like LD_LIBRARY_PATH="" julia --startup-file=no rungb.jl, which is the usual instruction for installing and starting up the Genie Builder, but that ended up giving me the same error.
Then it seems like Adrian, the developer of Genie Builder @essenciary, told me to set the version for Genie Builder, and that seemed to get me farther. At least I was not hitting this error message for SSL anymore. I am much farther along with Genie Builder, but still working to get it to work. I am not sure which dependency was causing that issue with SSL, etc.
But thanks so much @giordano for you response. It does help to know that setting the LD_LIBRARY_PATH to include the julia direction should fix the issue. I was thinking that the directory was missing that libcrypto.so file, but then Adrian responded and helped me to get it working.
@giordano I figured it out. So the problem was that I had an environment variable set in VSCode, and that was apparently throwing off Genie. So I had the following instruction for the LD_PRELOAD variable set as below,
I believe I had set this, because when I was installing the RCall package, some of the R package installs were failing without this setting for curl.
Once I removed that setting, then the Genie install and Genie Builder install went smoothly.
Do you know what that LD_PRELOAD variable does? I did not think it would have such an unusual effect. I had to remove it to install Genie Builder, but I am not sure if the removal will affect my RCall use in the future.
Here’s the resolution to my journey with a similar error. I suspect both depend on OpenSSL_jll which keeps updated with each openssl binary release. The latest removed an encryption algorithm and some dependent software looks for it. My solution was to downgrade the OpenSSL_jll version, as written in the linked issue.