Closed JunTaoLuo closed 6 years ago
From @natemcmaster's email:
I found the cause of the libuv issue. Kestrel 1.1.3 depends on Libuv 1.9.2. This version of libuv only supports rhel-x64 and Debian-x64, so on OpenSUSE, the libuv native dependency is not included in application. We did not add the generic “linux-x64” RID support until Libuv 1.10.0. Options: • Users manually add a package reference to Libuv 1.10.0 • We patch Kestrel in the MSRC to include and updated dependency version of Libuv
@JunTaoLuo - is this issue something that we want to consider for an upcoming patch? If so, which patch train? (1.0, 1.1, 2.0, 2.1?)
Yes 1.1 will need to support Opensuse 42.3 and we'll need to make this update the next time 1.1 patches. However, I believe the decision is that we'll make this change (update the libuv dependency from 1.9.2 to 1.10.0) the next time we are patching 1.1 for other reasons. In other words we don't plan on shipping a patch solely for this. Particularly because we don't know if this impacts that many customers and that an easy workaround, adding an explicit reference to libuv 1.10.0, exists.
The recommended approach here is to use the Libuv 1.10 package, which should work on Opensuse 42.3.
OpenSuSe 42.3 only, dotnet run for mvc, web and webapi failed nicole@opensuse423:~/myweb> dotnet run crit: Microsoft.AspNetCore.Server.Kestrel[0] Unable to start Kestrel. System.AggregateException: One or more errors occurred. (Unable to load DLL 'libuv': The specified module could not be found. (Exception from HRESULT: 0x8007007E)) ---> System.DllNotFoundException: Unable to load DLL 'libuv': The specified module could not be found. (Exception from HRESULT: 0x8007007E) at Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.Libuv.NativeMethods.uv_loop_size() at Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.UvLoopHandle.Init(Libuv uv) at Microsoft.AspNetCore.Server.Kestrel.Internal.KestrelThread.ThreadStart(Object parameter) --- End of inner exception stack trace --- at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken) at Microsoft.AspNetCore.Server.Kestrel.Internal.KestrelEngine.Start(Int32 count) at Microsoft.AspNetCore.Server.Kestrel.KestrelServer.Start[TContext](IHttpApplication`1 application) ---> (Inner Exception #0) System.DllNotFoundException: Unable to load DLL 'libuv': The specified module could not be found. (Exception from HRESULT: 0x8007007E) at Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.Libuv.NativeMethods.uv_loop_size() at Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.UvLoopHandle.Init(Libuv uv) at Microsoft.AspNetCore.Server.Kestrel.Internal.KestrelThread.ThreadStart(Object parameter)<---
Unhandled Exception: System.AggregateException: One or more errors occurred. (Unable to load DLL 'libuv': The specified module could not be found. (Exception from HRESULT: 0x8007007E)) ---> System.DllNotFoundException: Unable to load DLL 'libuv': The specified module could not be found. (Exception from HRESULT: 0x8007007E) at Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.Libuv.NativeMethods.uv_loop_size() at Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.UvLoopHandle.Init(Libuv uv) at Microsoft.AspNetCore.Server.Kestrel.Internal.KestrelThread.ThreadStart(Object parameter) --- End of inner exception stack trace --- at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken) at Microsoft.AspNetCore.Server.Kestrel.Internal.KestrelEngine.Start(Int32 count) at Microsoft.AspNetCore.Server.Kestrel.KestrelServer.Start[TContext](IHttpApplication`1 application) at Microsoft.AspNetCore.Hosting.Internal.WebHost.Start() at Microsoft.AspNetCore.Hosting.WebHostExtensions.Run(IWebHost host, CancellationToken token, String shutdownMessage) at Microsoft.AspNetCore.Hosting.WebHostExtensions.Run(IWebHost host) at myweb.Program.Main(String[] args) in /home/nicole/myweb/Program.cs:line 21