You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Pavel Tupitsyn (JIRA)" <ji...@apache.org> on 2019/04/05 16:07:00 UTC

[jira] [Commented] (IGNITE-11690) .NET: Cache iteration hangs with enabled peerAssemblyLoading

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

Pavel Tupitsyn commented on IGNITE-11690:
-----------------------------------------

Analysis:
* .NET Core is used
* PeerAssemblyLoading for System.Configuration.ConfigurationManager hangs: this assembly is not present on any of the nodes (see https://github.com/dotnet/standard/issues/506)

Root cause:
* Assembly.Load during peer loading triggers more peer requests if the assembly is not present, this goes on forever if the assembly is not found on any nodes

> .NET: Cache iteration hangs with enabled peerAssemblyLoading
> ------------------------------------------------------------
>
>                 Key: IGNITE-11690
>                 URL: https://issues.apache.org/jira/browse/IGNITE-11690
>             Project: Ignite
>          Issue Type: Bug
>    Affects Versions: 2.7
>            Reporter: Alexandr Shapkin
>            Assignee: Alexandr Shapkin
>            Priority: Major
>
> Solution to reproduce: [https://www.dropbox.com/s/xsgqhwjyctyg3o3/Example%20solution.rar?dl=0]
> Given:
>  * 2 server .NET nodes with PeerAssembly = enabled
>  * Simple custom type cache with a few records 
> {code:java}
> ignite.GetOrCreateCache<Guid, Hotel>(new CacheConfiguration(Hotel.Cache, new QueryEntity(typeof(Guid), typeof(Hotel))));
> {code}
>  * 1 Client node that spawn computation task and performs a simple iteration over cache
>  
>  
> {code:java}
> class HelloAction : IComputeAction
> {
>     [InstanceResource]
>     private IIgnite _ignite;
>     public void Invoke()
>     {
>         var hotels = _ignite.GetCache<Guid, Hotel>("SomeName").ToList()
>      }
> }
> {code}
>  
> Problem:
>  
> One of the server nodes successfully performs the computation, but the other getting locked inside the 
> {code:java}
> AssemblyRequestResult ComputeApplySafe(ICompute compute, GetAssemblyFunc func,
> AssemblyRequest req)
> {code}
> When I disable PeerAssembly then all is getting back to normal
>  
>  
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)