2016-04-21 3 views
1

мы используем AKKA.Net для связи между несколькими процессами.Приложение иногда врезалось при использовании AKK.Net в качестве канала связи

Используемая нами версия AKKA.Net самая новая: 1.0.7. Существует около 20 процессов, которые используют AKKE.Net. Эти процессы - это службы Windows. Рабочая нагрузка между процессами не тяжелая, 10 запросов/минута, а рабочая нагрузка в ноль равна нулю. Сеть не очень стабильная. AKKA.Cluster не используется в системе.

Мы добавляем обработчик событий для AppDomain.CurrentDomain.UnhandledException, чтобы у нас была возможность зарегистрировать некоторые критические исключения. Код выглядит следующим образом:

AppDomain.CurrentDomain.UnhandledException += (sender, eventArgs) => 
    { 
    logger.LogFatal("Unhandled exception captured, Terminating:" + eventArgs.IsTerminating); 
    }; 

Мы продолжаем thoese процессы, запущенные в течение нескольких дней, и обнаружили, что некоторые процессы (возможно, 2 или 3) разбился. Мы проверяем журнал и, похоже, это результат исключительного исключения AKKA.Net. Сведения об исключении перечислены ниже:

Exception message:Object reference not set to an instance of an object. 
Exception stacktrace: 
    at Helios.Reactor.Tcp.TcpProxyReactor.CloseConnection(Exception ex, IConnection remoteHost) 
    at Helios.Reactor.Tcp.TcpProxyReactor.ReceiveCallback(IAsyncResult ar) 
    at System.Net.LazyAsyncResult.Complete(IntPtr userToken) 
    at System.Net.ContextAwareResult.CompleteCallback(Object state) 
    at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 
    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 
    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 
    at System.Net.ContextAwareResult.Complete(IntPtr userToken) 
    at System.Net.LazyAsyncResult.ProtectedInvokeCallback(Object result, IntPtr userToken) 
    at System.Net.Sockets.BaseOverlappedAsyncResult.CompletionPortCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped) 
    at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP) 

Рабочая нагрузка в то время, когда исключение выбрано почти нулевым.

Есть ли советы по устранению этой проблемы? Большое спасибо.

ответ

1

Это known bug in Helios that I logged recently - работа над получением исправления для него как можно скорее.

Я вернусь здесь с комментарием, как только исправление исчезнет, ​​но это то, что я сейчас работаю на этой неделе.

+0

Got it. Спасибо за ваш ответ! Ожидание ваших хороших новостей :) – sevendays

+0

Привет, есть ли какие-либо успехи по этим вопросам? :) – sevendays

+0

Да, но все еще осталось работать. Вы увидите, почему в примечаниях к выпуску. Вы также можете пинговать меня на @aaronontheweb в чате Akka.NET Gitter или в Twitter. – Aaronontheweb

Смежные вопросы