Microsoft.Data.Sqlite 10.0.11+ fails to load on RHEL 8 (GLIBC_2.33 not found)

Đang mở
#39,148 6 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 2 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
45/100
Loại issue
Lỗi
Độ rõ ràng
Cần làm rõ
Mức độ hoạt động
Sôi nổi
Công nghệ
csharp, linux, sqlite

Hướng nghiên cứu

Start with the linked sqlite-glibc-repro and Program.cs line 3, then inspect Microsoft.Data.Sqlite 10.0.11's SQLitePCLRaw native asset and the related SQLitePCL.raw issue. Determine where the GLIBC_2.33 requirement enters and identify the repository's appropriate test or packaging entry point. Done means an agreed fix or documented compatibility outcome for RHEL 8, with a regression check if supported.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

area-adonet-sqlite area-external customer-reported regression
Bug description

Microsoft.Data.Sqlite 10.0.11+ doesn't work on RHEL 8, even though RHEL 8 is supported by .NET 10

Cause:

Starting with Microsoft.Data.Sqlite 10.0.11, which depends on SQLitePCLRaw 2.1.12, the bundled
linux-x64 native library libe_sqlite3.so needs a higher version of glibc than ships in RHEL 8.

RHEL 8 ships glibc 2.28 and is a supported OS for .NET 10.
So a .NET 10 servicing update of Microsoft.Data.Sqlite stops working on a supported platform.

Related SQLitePCL.raw issue: https://github.com/ericsink/SQLitePCL.raw/issues/674.

Your code
https://github.com/timothycoleman/sqlite-glibc-repro
Stack traces
Unhandled exception. System.TypeInitializationException: The type initializer for 'Microsoft.Data.Sqlite.SqliteConnection' threw an exception.
 ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
 ---> System.DllNotFoundException: Unable to load shared library 'e_sqlite3' or one of its dependencies. In order to help diagnose loading problems, consider using a tool like strace. If you're using glibc, consider setting the LD_DEBUG environment variable:
/app/e_sqlite3.so: cannot open shared object file: No such file or directory
/lib64/libc.so.6: version `GLIBC_2.33' not found (required by /app/libe_sqlite3.so)
libe_sqlite3.so: cannot open shared object file: No such file or directory
/app/e_sqlite3: cannot open shared object file: No such file or directory
/app/libe_sqlite3: cannot open shared object file: No such file or directory

   at SQLitePCL.SQLite3Provider_e_sqlite3.NativeMethods.sqlite3_libversion_number()
   at SQLitePCL.SQLite3Provider_e_sqlite3.NativeMethods.sqlite3_libversion_number()
   at SQLitePCL.SQLite3Provider_e_sqlite3.SQLitePCL.ISQLite3Provider.sqlite3_libversion_number()
   at SQLitePCL.raw.SetProvider(ISQLite3Provider imp)
   at SQLitePCL.Batteries_V2.Init()
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
   --- End of inner exception stack trace ---
   at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at Microsoft.Data.Sqlite.SqliteConnection..cctor()
   --- End of inner exception stack trace ---
   at Microsoft.Data.Sqlite.SqliteConnection..ctor(String connectionString)
   at Program.<Main>$(String[] args) in /src/Program.cs:line 3
Microsoft.Data.Sqlite version

10.0.11

Target framework

.NET 10

Operating system

No response

Ngôn ngữ chính
C#
Star
14.8k
Fork
3.4k
Merge trung bình
3 ngày 18 giờ
Pull request đã merge (30 ngày)
159

Chuẩn bị môi trường

Mở trong Codespaces

Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của dotnet/efcore

Tất cả issue của dotnet/efcore

Issue tương tự

Thêm issue về C#

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.