SQLite Forum

Possible bug: Unable to find an entry point

Possible bug: Unable to find an entry point

(1) By anonymous on 2021-11-23 16:45:24 [link] [source]

Hardware: Raspberry Pi 3 B+
OS: Debian Bullseye ARMv8 (64 bit) from the DietPi org

libSQLite.Interop.dll compiled on above using sqlite-netFx-full-source-

When running a .net 6 (core) app using System.Data.SQLite.Core the following error is encountered on start: Unable to find an entry point named 'SIa069da76968b7553' in shared library 'SQLite.Interop.dll'

When running the same app but with System.Data.SQLite.Core 1.0.115 (previous version) no error is encountered and the app functions normally.

It’s unclear to me if this is a bug in or if I’m doing something incorrect. Just throwing it out there in case it is a bug.


(2) By Larry Brasfield (larrybr) on 2021-11-23 21:08:24 in reply to 1 [link] [source]

... the following error is encountered on start: Unable to find an entry point named 'SIa069da76968b7553' in shared library 'SQLite.Interop.dll'

I am highly skeptical that a name like that is supposed to be exported by that DLL. I've seen many name decoration schemes, but never one that appears to encode a 64-bit number with a prefix. And all the names exported by SQLite.Interop.dll for x86 and amd64 platforms are more ordinary, semi-meaningful-to-humans identifiers.

Do you have any reason, beyond this error message, to believe that the System.Data.SQLite.Core library is, in fact, linked (albeit dynamically) to such an entry point?

(4) By anonymous on 2021-11-24 01:35:58 in reply to 2 [link] [source]

I agree, it seemed quite unusual to me too. But that was the message verbatim.

I have no other reason nor evidence. And admittedly I am in a litter over my head here.

All I know is the same steps taken for two very close versions resulted in one working and one not. The possibility exists that I was just getting lucky with having one working as the following post might suggest.


(3) By mistachkin on 2021-11-23 23:09:35 in reply to 1 [source]

The precompiled managed assemblies within the official NuGet packages are
only intended to be used with the interop assemblies also from those NuGet

(5) By anonymous on 2021-11-24 01:39:10 in reply to 3 [link] [source]

Ah. That is good to know. Thank you!

(6) By webprofusion on 2021-12-20 03:27:33 in reply to 3 [link] [source]


Further to this I can confirm that when upgrading from System.Data.SQLite.Core to and distributing our application to users that the users are frequently encountering the following error (not universally):

System.EntryPointNotFoundException: Unable to find an entry point named 'SIfcfad09d1b0a60ec' in DLL 'SQLite.Interop.dll'.\r\n at System.Data.SQLite.UnsafeNativeMethods.sqlite3_open_interop(Byte[] utf8Filename, Byte[] vfsName, SQLiteOpenFlagsEnum flags, Int32 extFuncs, IntPtr& db)\r\n at System.Data.SQLite.SQLite3.Open(String strFilename, String vfsName, SQLiteConnectionFlags connectionFlags, SQLiteOpenFlagsEnum openFlags, Int32 maxPoolSize, Boolean usePool)\r\n at System.Data.SQLite.SQLiteConnection.Open()\r\n at System.Data.Common.DbConnection.OpenAsync(CancellationToken cancellationToken)\

We have been distributing this app with SQLite for years, generally following the latest System.Data.SQLite.Core

My (unsubstantiated) theory is there could be a particular brand of Anti-Virus that's somehow interfering with the assembly load, or certain users have older SQLite.Interop.dll installed in the GAC and for some reason it's picking that up.

I can confirm SIfcfad09d1b0a60ec is the SQLite.Interop.dll export of sqlite3_open_interop in

 [DllImport("SQLite.Interop.dll", EntryPoint = "SIfcfad09d1b0a60ec")]
    internal static extern SQLiteErrorCode sqlite3_open_interop(
      byte[] utf8Filename,
      byte[] vfsName,
      SQLiteOpenFlagsEnum flags,
      int extFuncs,
      ref IntPtr db);