Fails to load ParquetSharpNative.so on CentOS/RedHat
See original GitHub issueParquetSharp fails to load its native dependencies on certain Linux distributions. The issue probably comes from a wrong nuget packaging configuration, as ParquetSharpNative.so is not copied to the bin folder like it should.
Stacktrace:
Error Message:
System.TypeInitializationException : The type initializer for 'ParquetSharp.LogicalTypeFactory' threw an exception.
----> System.DllNotFoundException : Unable to load shared library 'ParquetSharpNative' or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: libParquetSharpNative: cannot open shared object file: No such file or directory
Stack Trace:
at ParquetSharp.ParquetFileWriter..ctor(String path, Column[] columns, Compression compression, IReadOnlyDictionary`2 keyValueMetadata)
at RQ.ParquetSharp.ParquetFileBuilder.WriteToParquet(String filename) in /Parquet/RQ.ParquetSharp/ParquetFileBuilder.cs:line 33
at RQ.ParquetSharp.Test.TestParquetFileBuilder.TestParquetFileRoundTrip() in /Parquet/RQ.ParquetSharp.Test/TestParquetFileBuilder.cs:line 44
--DllNotFoundException
at ParquetSharp.LogicalType.LogicalType_None(IntPtr& logicalType)
at ParquetSharp.ExceptionInfo.Return[TValue](GetAction`1 getter)
at ParquetSharp.LogicalType.None()
at ParquetSharp.LogicalTypeFactory..cctor()
Affected Linux distributions:
- CentOS 7, 7.9.2009
- RedHat Enterprise 7.9
Affected ParquetSharp versions:
- Latest 7.0.0 Beta 1 on net5.0 (and older versions).
Debian 10 can load the native binary just fine.
Issue Analytics
- State:
- Created a year ago
- Comments:5 (4 by maintainers)
Top Results From Across the Web
Installed on RHEL 7.9 fails to load native library. It works on ...
I have been testing mvnd on centOS 8 with GraalVM 20.3.1 without an issue but when I install it on Red Hat 7.9 ......
Read more >got an issue while converting centos7.9 to rhel 7.9
Check to make sure that the CentOS Linux repositories are enabled and the package is updated to its latest version.
Read more >Problems with conflicts and broken dependencies
Hello everyone. When I tried updating my system today, I got the following result: [nikos@asus-e502na ~]$ sudo dnf upgrade --refresh
Read more >Unable to update - os updates
Problem : cannot install the best update candidate for package libidn2-2.0.5-1.el8.x86_64 - nothing provides libunistring.so.0()(64bit) ...
Read more >Install NVIDIA Drivers and Vulkan on CentOS/RHEL
For CentOS, use yum to install the epel-release package. sudo yum install epel-release. Use the following install command for RHEL.
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found

Using a newer library on CentOS 7, or bringing one in via static linking is likely going to be troublesome, as this is being loaded as a library into the dotnet runtime, which is already using the libstdc++ and so on shipped with the OS.
Just so we’re talking about the same thing the ABI versions that can’t be found on CentOS 7 can be found by running
lddfrom CentOS within Docker, like so:This shows the relevant ABI versions that can’t be found on CentOS 7. CXXABI is possible to solve via
-fabi-version(https://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Dialect-Options.html), but GLIBC and so on are harder. There’s a nice overview of the problem at https://github.com/phusion/holy-build-box#problem-introductionMy suggestion would be to build on CentOS 7 (either via the above linked image, or centos:7 directly) if that’s the lowest target (as CentOS 7 is still within security support, rather than old versions of Ubuntu).
Fixed in https://github.com/G-Research/ParquetSharp/releases/tag/7.0.0