# LibSSL Undefined Symbol error when installing Genie Builder

**URL:** <https://discourse.julialang.org/t/libssl-undefined-symbol-error-when-installing-genie-builder/92637>\
**Category:** General Usage\
**Tags:** question, webapps\
**Created:** [January 7, 2023, 3:17pm UTC](https://discourse.julialang.org/t/libssl-undefined-symbol-error-when-installing-genie-builder/92637 "2023-01-07T15:17:46Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![00krishna](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/00krishna/32/8843_2.png) [@00krishna](https://discourse.julialang.org/u/00krishna)\
**Post date:** [January 7, 2023, 3:17pm UTC](https://discourse.julialang.org/t/libssl-undefined-symbol-error-when-installing-genie-builder/92637/1 "2023-01-07T15:17:47Z")

</div>

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.

```julia
/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](https://discourse.julialang.org/t/unable-to-launch-julia-1-6-ssl-and-glibc-issues/60488/7) 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](https://github.com/GenieFramework/GenieBuilderIssues/issues/7) 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.

Any help would be welcome.

---

<div class="post-metadata">

**Author:** ![giordano](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/giordano/32/2166_2.png) [@giordano](https://discourse.julialang.org/u/giordano)\
**Post date:** [January 7, 2023, 6:42pm UTC](https://discourse.julialang.org/t/libssl-undefined-symbol-error-when-installing-genie-builder/92637/2 "2023-01-07T18:42:16Z")

</div>

> [@00krishna](#):
>
> 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.

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.

---

<div class="post-metadata">

**Author:** ![00krishna](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/00krishna/32/8843_2.png) [@00krishna](https://discourse.julialang.org/u/00krishna)\
**Post date:** [January 10, 2023, 1:37am UTC](https://discourse.julialang.org/t/libssl-undefined-symbol-error-when-installing-genie-builder/92637/3 "2023-01-10T01:37:09Z")

</div>

@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.

---

<div class="post-metadata">

**Author:** ![00krishna](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/00krishna/32/8843_2.png) [@00krishna](https://discourse.julialang.org/u/00krishna)\
**Post date:** [January 14, 2023, 2:22pm UTC](https://discourse.julialang.org/t/libssl-undefined-symbol-error-when-installing-genie-builder/92637/4 "2023-01-14T14:22:25Z")

</div>

@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,

```julia
 "terminal.integrated.env.linux": {
        "LD_PRELOAD" : "/usr/lib/x86_64-linux-gnu/libcurl.so.4.6.0"
    },

```

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.

---

<div class="post-metadata">

**Author:** ![lazzarello](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lazzarello/32/37769_2.png) [@lazzarello](https://discourse.julialang.org/u/lazzarello)\
**Post date:** [January 17, 2023, 2:04am UTC](https://discourse.julialang.org/t/libssl-undefined-symbol-error-when-installing-genie-builder/92637/5 "2023-01-17T02:04:52Z")

</div>

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.

> <https://github.com/JuliaPackaging/Yggdrasil/issues/6090>
>
> Cross referencing this here after a solution was found in an issue from the pare…nt package. This is related to #2210 in this repo and https://github.com/JuliaWeb/OpenSSL.jl/issues/13 in the parent project.
> 
> The OpenSSL\_jll package began breaking for a handful of users who all seem to be connected by our use of py-julia and PyCall. One solution is to install an older version of the jll binary package as far back as version OpenSSL-v1.1.1+2. The underlying issue is the OpenSSL project's removal of the \[IDEA encryption algorithm in symmetric CBC mode\](https://www.openssl.org/docs/man1.1.1/man3/EVP\_idea\_cbc.html) which began near version 1.1.1s, which is linked in the latest release of the jll. Many base operating systems have an older version, which other software such as Python interpreters are compiled against.
> 
> This problem also looks like it applies to some \[Matlab releases\](https://www.mathworks.com/matlabcentral/answers/648133-trouble-with-matlab-engine) too which (\*surprise!\*) are also linked to a python interpreter.
> 
> I guess the "fix" could be documentation? I don't really know the value in keeping on the edge of openssl releases though obvs it implements many encryption algorithms, some of which have been international news stories so 🤷‍♀️ I'll let the package maintainer decide how to proceed. If it helps, it took me three days to finally get to the bottom of this and fix my CI builds from failing, so it's not completely obvious how to fix the error. I was ready to persuade my whole GNC team to rewrite all the python code into julia because no one else could figure it out.
> 
> @giordano or @quinnj would you be able to add some documentation featuring this problem? I could also submit a PR if you like.
