Error While Loading Librdkafka.dll

1 view
Skip to first unread message

Crisoforo Schuhmacher

unread,
Aug 3, 2024, 5:01:57 PM8/3/24
to ologorcar

I'm trying to run a .Net 4.72 app on Docker. That app executed perfectly on my computer, but when I run it on a Docker container, I receive error while loading librdkafka.dll or its dependencies from C:\temp\source\bin\x64\Debug\librdkafka\x64\librdkafka.dll. Check the directory exists, if not check your deployment process. You can also load the library and its dependencies by yourself before any call to Confluent.Kafka.

In order to execute the above code sample I have also added confluent.Kafka dll into my project asset folder. but whenever I run my unity game it throws an error:Win32Exception: The specified module could not be found.

Rethrow as InvalidOperationException: Error while loading librdkafka.dll or its dependencies from Assets/librdkafka.dll. Check the directory exists, if not check your deployment process. You can also load the library and its dependencies by yourself before any call to Confluent.Kafka Confluent.Kafka.Impl.LibRdKafka.Initialize (System.String userSpecifiedPath) (at :0) Confluent.Kafka.Consumer..ctor (System.Collections.Generic.IEnumerable1[T] config) (at :0) Confluent.Kafka.Consumer2[TKey,TValue]..ctor (System.Collections.Generic.IEnumerable1[T] config, Confluent.Kafka.Serialization.IDeserializer1[T] keyDeserializer, Confluent.Kafka.Serialization.IDeserializer`1[T] valueDeserializer) (at :0) KafkaConsumer.Start () (at Assets/KafkaConsumer.cs:26)

For future user, here is the process to add Kafka in your Unity3d Project:Actually there is a specific order or folder hierarchy to add dll in your project. (I didn't find any authoritative reference about this if someone found then please share)

IMP NOTE: After building the player, you have to manually copy the dll files in your Player/Managed/librdkafka folder. You have to create librdkafka folder in managed folder, then paste your dlls.(Again i don't know why it require but if someone found authoritative refrence then share)

Error while loading librdkafka.dll or its dependencies from E:\Program Files\OutSystems\Platform Server\running\TestP11.xxxxxx\bin2\librdkafka.dll. Check the directory exists, if not check your deployment process. You can also load the library and its dependencies by yourself before any call to Confluent.Kafka.

I don't have a ton of experience with Outsystems extensions, but is actually the first time I use a library that is divided in x64 and x86 and my guess is, that's the cause of this. Maybe Outsystems does not have the right logic to deal with that.

From /etc/grub.d/bin/grubcfg_proxy: error while loading shared libraries: libcrypto.so.1.1: cannot open shared object file: No such file or directory, I inferred that a library may be missing. As per this Stack Exchange post, I went to install the required libraries.

The missing libcrypto.so.1.1 is part of libssl1.1, which needs to be installed in order to fix the issue.While apt is broken in this case, you can still manually download the correct .deb for your distro and then install it using dpkg.For example, I downloaded the amd64 version directly from packages.debian.org and then installed it using

After doing this, I realized you can also search the Ubuntu packages repository. They apparently haven't provided an install candidate for libssl1.1 for Ubuntu 22.04, only one for libssl3. It is possible that this is the core of the issue. You should also be able to use the one from the version you upgraded from. However, the one from packages.debian.org worked fine for me.

There is a chance this might fail because apt tries first to remove the broken linux-image... package (and fails, ending the whole process) before it installs grub-customizer. If that is the case, you will have to temporarily flag the package linux-image... as uninstalled instead of half-installed. You can do this for instance by directly modifying corresponding entry in /var/lib/dpkg/status from half-installed to config-files. Open in gedit using:

Search for linux-image-5.13.0-46-generic (your version might be different, it's the package than can't be uninstalled). From the end of the line Status: delete half-installed and replace it with config-files. Now save the file and:

Now repair the grub if it is in any way broken. In my case after opening grub-customizer I was greeted with option to update the grub which I did. I also reordered as I wanted. Also among other things it merged duplicite entries in grub which I previously saw.

Thanks @JakobWeimar, @vinada for the answers, but before these answers were posted, I already did something else to my system. If the above answers do not work, you may try this answer (I would recommend using the other answers though since the install of libcrypto would be cleaner.)

I made the mistake of interrupting an upgrade and had the problem with that library missing. I had to download pacman-static so I could upgrade packages because pacman was wanting the old verison of libcrypto, but openssl was already upgraded to version 3. I was also having key problems so I ended up installing openssl-1.1 to fix the libcrypto errors and archlinux-keyring to fix the key problems. Afterwards, I used yay to install pacman-static from the Arch User Repository so I would make sure that I have an up to date version instead of someone else's copy.

when you see an error such as error while loading shared libraries: libcrypto.so.1.1 and you have that library installed but the specific file (or link) of .so.1.1 is not present, but you notice the other numbers like I show above, then you can just make a link like so...

in your case the library at hand is libcrypto.so and as you can see I have that which is a link to the appropriate versioned .so file based on whatever OpenSSL version I have installed which provides that rpm. And as that gets updated over time, what libcrypto.so points to will be altered accordingly.

That way whatever software you're using which is specifically coded (wrongly in my opinion) to reference a specific .so version (.so.1.1 in your case) you make it happy and able to run. When the newer version of OpenSSL (or whatever) does not work with whatever code you are using you'll find out otherwise this works 99% of the time and will get you past your shared library not found error.

I am using Garuda Linux, a version of Arch, same thing happened to me just now after a sizeable update, pacman, cp, ls, sudo all came up with the same message about the missing libcrypto file. I'm not sure why but it was as simple as logging in as root su - root and entering my normal sudo password and bingo...

After yesterdays update I cannot run gnome-terminal. I got error gnome-terminal: error while loading shared libraries: libicuuc.so.67: cannot open shared object file: No such file or directory.
Here is output of find / -name 'libicuuc.so.*' 2>/dev/null:

I have the same versions installed as they are the latest available versions. Since you two are the only folks that have reported this issue, there must be something you both have in common. Perhaps an AUR package?

I have the same issue after updating sudo + firefox today.
Did the aforementioned procedures but the problem persists. Interesting problem as I have not touched any settings today other than running sudo pacman -Syu after coming home from work.

When a projection was created with only the "PINNED" keyword, Vertica incorrectly considered it a segmented projection. This caused optimizer internal errors and incorrect results when loading data into tables with these projections.

In past releases, Vertica placed an exclusive lock on the global catalog while it created a query plan for CREATE TABLE AS . Very large queries could prolong this lock until it eventually timed out. On rare occasions, the prolonged lock caused an out-of-memory exception that shut down the cluster.

COPY statements using the default parser could erroneously reject rows if the input data contained overflowing floating point values in one column and the maximum 64-bit integer value in another column.

Loads and copies from HDFS occasionally failed if Vertica was reading data through libhdfs++ when the NameNode abruptly disconnected from the network. In this case, libhdfs++ was being compiled with a debug flag on, causing network errors to be caught in debug assertions rather than normal error handling and retry logic.

When using the REJECTED DATA AS clause with COPY statements, filename> could be treated as either a directory or a file, and the choice was made independent of user input depending on the number of sources. This could lead to confusion as in the case of GLOBS. With GLOBS, if a glob expands to just one source, is treated as a file. If a glob expands to multiple sources, it is treated as a directory. This could result in unpredictable behavior depending on the actual files a user is trying to load.

Previously, copycluster would overwrite the target database's spread control mode configuration setting to be the same as the source database's. When running copycluster from an on-premise database configured to use the default "broadcast" setting to a database running on AWS EC2, the database on EC2 would not be able to start, because EC2 requires a "point-to-point" setting. This issue has been resolved by preserving the spread control mode setting of the destination database during copycluster.

Previously, the network port connection used by the Management Console to communicate with nodes accepted the older DES and 3DES ciphers, which have a known vulnerability. This connection no longer accepts connections that use these ciphers.

Previously, Vertica built up sockets stuck in a CLOSE_WAIT state on non-kerberized webhdfs connection. This indicates that the socket is closed on the HDFS side but Vertica has not called close(). This issue has been fixed.

This update adds the configuration parameter EnableUnlimitedLicenseAudit, which allows the ability to enable or disable internal system audits for unlimited licenses. This parameter is enabled (set to 1) by default. To disable the internal system audits for an unlimited license, set EnableUnlimitedLicenseAudit to 0.

c80f0f1006
Reply all
Reply to author
Forward
0 new messages