Repository navigation
error:25066067:DSO support routines:dlfcn_load:could not load the shared library #43132
Description
Activity
I'm getting the same error while using the Google Cloud Storage client library. When it goes to sign data to request an access token, it throws that error. I can also reproduce using the steps @laneme listed above.
As a workaround, I ran
export OPENSSL_CONF=/dev/nullbefore starting node. This prevents the issue and the code begins to work, however this also bypasses the config for openssl.I first ran into this issue after upgrading to Ubuntu 22.04 which has the same
uname -aas @laneme originally reported as their platform. This also has OpenSSL 3.0.2.Reacted by Maximilian ZaunerThere's almost certainly something in your openssl configs that instruct it to load a third-party library ("engine" in openssl nomenclature) that's missing or, more likely, incompatible with openssl 3.
Because this seems like a configuration issue with Ubuntu, I posted this same question on askubuntu.com here: https://askubuntu.com/questions/1409458/openssl-config-cuases-error-in-node-js-crypto-how-should-the-config-be-updated
Hi Guys,
I found a workaround while facing this issue using firebase-admin.
Hence, we suggest you to comment out the lines providers = provider_sectin the file/etc/ssl/openssl.cnf` and restart application once.I took it off https://help.zoho.com/portal/en/community/topic/cant-install-zoho-workdrive-app-in-ubuntu-22-04
Thanks @k0d3d. That's an interesting fix. If I'm understanding the config file correctly (which seems unlikely as I'm not an openssl guru) commenting out that line should mean that openssl loads the default provider and no others. (see
man 7 OSSL_PROVIDER-default). This makes sense, however looking through the config, I don't see where any other providers are loaded anyway. I tried un-commenting the lineactivate = 1in[default_sect]which didn't work. I also tried commenting out the linedefault = default_sectin[provider_sect]again with no luck.Somehow it seems like if the config file defines any provider section (even if it does not define any providers) then it does not load the default provider, even if explicitly told to do so. Perhaps the default provider is complied in statically and cannot be loaded dynamically? Perhaps a bug in the openssl config routines?
Looks like providers are a new concept in openssl 3.0, so hopefully Ubuntu will provide an appropriate config soon. openssl/openssl#16249. In the meantime, I guess we now have two viable workarounds.
As this isn't a bug in node I'll go ahead and convert the issue to a discussion.
- locked and limited conversation to collaborators
on May 23, 2022 - converted this issue into a discussion
on May 23, 2022
Version
16.15.0
Platform
Linux usernam 5.15.0-30-generic #31-Ubuntu SMP Thu May 5 10:00:34 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Subsystem
No response
What steps will reproduce the bug?
Very unfornutalely i cannot find a way to reproduce this accross platforms but its worth noting that this problem isnt specific to version 16.15.0. It happens on 16.10.0 and 18.* too
The following code is what triggers the error
How often does it reproduce? Is there a required condition?
It DOES throw on the machine with
OpenSSL 3.0.2, it does NOT throw on theOpenSSL 1.1.1fmachine.What is the expected behavior?
Expecting a signed buffer returned from
crypto.signfunciton.What do you see instead?
Additional information
No response