[ 
https://issues.apache.org/jira/browse/IGNITE-5730?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16084187#comment-16084187
 ] 

Pavel Tupitsyn edited comment on IGNITE-5730 at 7/12/17 3:46 PM:
-----------------------------------------------------------------

* {{DomainUnload}} is not called in default domain. {{ProcessExit}} should be 
used instead.
* When Ignite is started in a non-default AppDomain, we should use 
{{DomainUnload}}. But we rely on {{UnmanagedTarget}} and {{UnmanagedContext}} 
finalizers to clean up unmanaged objects, so we can't unload ignite.jni.dll 
before everything is finalized. And finalizer order is undefined. Seems like 
there is no reliable way to handle this.

Maybe we should not waste time on this and implement IGNITE-5343 instead, which 
gets rid of {{ignite.jni.dll}} altogether.


was (Author: ptupitsyn):
* {{DomainUnload}} is not called in default domain. {{ProcessExit}} should be 
used instead.
* When Ignite is started in a non-default AppDomain, we should use 
{{DomainUnload}}. But we rely on {{UnmanagedTarget}} and {{UnmanagedContext}} 
finalizers to clean up unmanaged objects, so we can't unload ignite.jni.dll 
before everything is finalized. And finalizer order is undefined. Seems like 
there is no reliable way to handle this.

> .NET: Failed to load ignite.jni.dll when starting up multiple nodes
> -------------------------------------------------------------------
>
>                 Key: IGNITE-5730
>                 URL: https://issues.apache.org/jira/browse/IGNITE-5730
>             Project: Ignite
>          Issue Type: Bug
>          Components: platforms
>    Affects Versions: 2.0
>            Reporter: Pavel Tupitsyn
>            Assignee: Pavel Tupitsyn
>              Labels: .NET
>             Fix For: 2.2
>
>
> When starting multiple nodes at once (with a script of some kind), failure to 
> load unmanaged dll can occur:
> {code}
> for (int i = 0; i < 30; i++)
> {
>       Process.Start(@"cmd.exe", @"/k Apache.Ignite.exe");
> }
> {code}
> Exception:
> {code}
> ERROR: System.TypeInitializationException: The type initializer for 
> 'Apache.Ignite.Core.Impl.Unmanaged.UnmanagedUtils' threw an exception. ---> 
> Apache.Ignite.Core.Common.IgniteException: Failed to load ignite.jni.dll: 126
>    at Apache.Ignite.Core.Impl.Unmanaged.UnmanagedUtils..cctor()
>    --- End of inner exception stack trace ---
>    at Apache.Ignite.Core.Impl.Unmanaged.UnmanagedUtils.Initialize()
>    at Apache.Ignite.Core.Impl.IgniteUtils.LoadDlls(String configJvmDllPath, 
> ILogger log)
>    at Apache.Ignite.Core.Ignition.Start(IgniteConfiguration cfg)
>    at Apache.Ignite.IgniteRunner.Main(String[] args)
> {code}
> Error codes may be 5 (ERROR_ACCESS_DENIED) or 126 (ERROR_MOD_NOT_FOUND).



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to