Hi,

I'm working on a .Net Core (2+) application that uses Ignite. I've noticed some 
odd behaviour and have narrowed it down to a Put or a Replace call hanging 
after a PutAsync.

I started looking at the issue when one of our nodes was randomly logging a 
possible starvation in striped pool warning, hence the reduction of 
StripedThreadPoolSize to 1 to reproduce. However, I can't be totally sure that 
the hang I'm seeing in my test app is the same as with the simple configuration 
I'm using I'm not sure how to specify quiet mode to false.

I only see the issue being reproduced when I compile and run the test app 
leaving it running, then run a second instance of the same application.

The code below has no transactions specified as I stripped them out to keep the 
example minimal but we do need to use them in our actual application, hence the 
CacheAtomicityMode.Transactional setting.

I'm working with Visual Studio 2017 and Ignite 2.6. C# 7.3.

Can anyone help as to why this might be hanging? Is the test just nonsense as 
I've set the StripedThreadPoolSize to 1? If so why?

using System;
using System.Threading;
using System.Threading.Tasks;
using Apache.Ignite.Core;
using Apache.Ignite.Core.Cache.Configuration;

namespace IgniteSimple
{
    public static class Program
    {
        public static async Task Main(string[] args)
        {
            using (var ignite = Ignition.Start(new IgniteConfiguration() { 
StripedThreadPoolSize = 1 }))
            {
                var cache = ignite.GetOrCreateCache<int, string>(
                    new CacheConfiguration("TestCache")
                    {
                        AtomicityMode = CacheAtomicityMode.Transactional,
                        CacheMode = CacheMode.Partitioned
                    });

                Console.WriteLine("PutAsync");
                await cache.PutAsync(1, "Test");

                Console.WriteLine("Replace");
                cache.Replace(1, "Testing"); // Hangs here

                Console.WriteLine("Wait");
                await Task.Delay(Timeout.Infinite);
            }
        }
    }
}

Thanks.



___________________________________________________________
This e-mail may contain confidential and/or privileged information. If you are 
not the intended recipient (or have received this e-mail in error) please 
notify the sender immediately and delete this e-mail. Any unauthorised copying, 
disclosure or distribution of the material in this e-mail is prohibited.

Please refer to http://www.bnpparibas.co.uk/en/email-disclaimer/ for additional 
disclosures.

Reply via email to