Hi Slava,

>> > using (var ignite = Ignition.Start())
>> Is it possible that Ignite node was closed before the cancellation request 
>> was processed by an instance of SimpleJob? Could you please check that fact?
No.

I double cheeked: the main thread hangs on
cts.Cancel(); // CancellationTokenSource.Cancel()

so, the next lines of code will never be reached, stack:

Apache.Ignite.Core.dll!Apache.Ignite.Core.Impl.Unmanaged.Jni.Env.CallLongMethod
[Managed to Native Transition]
Apache.Ignite.Core.dll!Apache.Ignite.Core.Impl.Unmanaged.Jni.Env.CallLongMethod(Apache.Ignite.Core.Impl.Unmanaged.Jni.GlobalRef
 obj, System.IntPtr methodId, long* argsPtr)
Apache.Ignite.Core.dll!Apache.Ignite.Core.Impl.Unmanaged.UnmanagedUtils.TargetInLongOutLong(Apache.Ignite.Core.Impl.Unmanaged.Jni.GlobalRef
 target, int opType, long memPtr)
Apache.Ignite.Core.dll!Apache.Ignite.Core.Impl.PlatformJniTarget.InLongOutLong(int
 type, long val)
Apache.Ignite.Core.dll!Apache.Ignite.Core.Impl.Common.Future<int>.OnTokenCancel()
mscorlib.dll!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext
 executionContext, System.Threading.ContextCallback callback, object state, 
bool preserveSyncCtx)
mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext
 executionContext, System.Threading.ContextCallback callback, object state, 
bool preserveSyncCtx)
mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext
 executionContext, System.Threading.ContextCallback callback, object state)
mscorlib.dll!System.Threading.CancellationCallbackInfo.ExecuteCallback()
mscorlib.dll!System.Threading.CancellationTokenSource.ExecuteCallbackHandlers(bool
 throwOnFirstException = false)
mscorlib.dll!System.Threading.CancellationTokenSource.NotifyCancellation(bool 
throwOnFirstException)
mscorlib.dll!System.Threading.CancellationTokenSource.Cancel()
CancellationDemo.exe!CancellationDemo.Program.RunAsync() Line 49
[Resuming Async Method]
mscorlib.dll!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext
 executionContext, System.Threading.ContextCallback callback, object state, 
bool preserveSyncCtx)
mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext
 executionContext, System.Threading.ContextCallback callback, object state, 
bool preserveSyncCtx)
mscorlib.dll!System.Runtime.CompilerServices.AsyncMethodBuilderCore.MoveNextRunner.Run()
mscorlib.dll!System.Runtime.CompilerServices.AsyncMethodBuilderCore.OutputAsyncCausalityEvents.AnonymousMethod__0()
mscorlib.dll!System.Runtime.CompilerServices.TaskAwaiter.OutputWaitEtwEvents.AnonymousMethod__0()
mscorlib.dll!System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(System.Action
 action, bool allowInlining, ref System.Threading.Tasks.Task currentTask = null)
mscorlib.dll!System.Threading.Tasks.Task.FinishContinuations()
mscorlib.dll!System.Threading.Tasks.Task<System.Threading.Tasks.VoidTaskResult>.TrySetResult(System.Threading.Tasks.VoidTaskResult
 result)
mscorlib.dll!System.Threading.Tasks.Task.DelayPromise.Complete()
mscorlib.dll!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext
 executionContext, System.Threading.ContextCallback callback, object state, 
bool preserveSyncCtx)
mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext
 executionContext, System.Threading.ContextCallback callback, object state, 
bool preserveSyncCtx)
mscorlib.dll!System.Threading.TimerQueueTimer.CallCallback()
mscorlib.dll!System.Threading.TimerQueueTimer.Fire()
mscorlib.dll!System.Threading.TimerQueue.FireNextTimers()

Best regards,
Max

Reply via email to