TechnitiumSoftware / DnsServer

Technitium DNS Server
https://technitium.com/dns/
GNU General Public License v3.0
3.83k stars 399 forks source link

Query Logs on Musl/Alpine not working #884

Closed gitfoohub closed 2 weeks ago

gitfoohub commented 3 months ago

When using technitium on Alpine/Musl the Query Logs App seems to use the linux-x64 binary and not linux-musl-x64 (The log shows the error: "fcntl64: symbol not found"). After deleting the linux-x64 folder in the config/apps/Query Logs (Sqlite)/runtimes folder and copying the linux-musl-x64 to linux-x64 everything worked fine.

ShreyasZare commented 3 months ago

Thanks for the feedback. Please share the complete error log so that I can try to reproduce same here.

ShreyasZare commented 3 months ago

Also, let me know the exact OS version that you are using.

gitfoohub commented 3 months ago

---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.DllNotFoundException: Unable to load shared library '/tmp/tmpgFEeoH.tmp' 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: Error relocating /tmp/tmpgFEeoH.tmp: fcntl64: symbol not found

at System.Runtime.InteropServices.NativeLibrary.Load(String libraryPath) at System.Runtime.Loader.AssemblyLoadContext.LoadUnmanagedDllFromPath(String unmanagedDllPath) at DnsServerCore.Dns.DnsApplicationAssemblyLoadContext.LoadUnmanagedDll(String unmanagedDllName) in Z:\Technitium\Projects\DnsServer\DnsServerCore\Dns\Applications\DnsApplicationAssemblyLoadContext.cs:line 142 at System.Runtime.Loader.AssemblyLoadContext.ResolveUnmanagedDll(String unmanagedDllName, IntPtr gchManagedAssemblyLoadContext) 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 System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor) 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 Microsoft.Data.Sqlite.SqliteConnection..cctor() --- End of inner exception stack trace --- at QueryLogsSqlite.App.Dispose() in Z:\Technitium\Projects\DnsServer\Apps\QueryLogsSqliteApp\App.cs:line 158 at DnsServerCore.Dns.Applications.DnsApplication.Dispose(Boolean disposing) in Z:\Technitium\Projects\DnsServer\DnsServerCore\Dns\Applications\DnsApplication.cs:line 233 at DnsServerCore.Dns.Applications.DnsApplication.Dispose() in Z:\Technitium\Projects\DnsServer\DnsServerCore\Dns\Applications\DnsApplication.cs:line 245 at DnsServerCore.Dns.Applications.DnsApplicationManager.UnloadAllApplications() in Z:\Technitium\Projects\DnsServer\DnsServerCore\Dns\Applications\DnsApplicationManager.cs:line 163

I'm running it in a LXC Container with Alpine Edge, 3.19 doesn't have NET 8. The host is Proxmox in case that makes a difference.

ShreyasZare commented 3 months ago

Thanks for the details. Will get this fixed in the next update.

ShreyasZare commented 2 weeks ago

Technitium DNS Server v12.2.1 is now available that fixes this issue. Do update and let me know your feedback.

gitfoohub commented 1 week ago

Everything works fine. Thank you for your great work!

ShreyasZare commented 1 week ago

Thanks for the feedback!