2 / 2 / 2
Регистрация: 13.03.2013
Сообщений: 107
1

Выдано исключение типа "System.OutOfMemoryException"

09.09.2015, 17:14. Показов 28304. Ответов 5
Метки нет (Все метки)

Доброго времени суток. Есть приложение, периодически (довольно редко) ловлю Unhandled Exception типа SystemOutOfMemory. При чем имеется 2 принципиально разных стектрейся:
Код
--- 1 ---
System.OutOfMemoryException: Выдано исключение типа "System.OutOfMemoryException".
Server stack trace:
в System.Runtime.CompilerServices.AsyncMethodBuilderCore.GetCompletionAction[TMethodBuilder,TStateMachine](TMethodBuilder& builder, TStateMachine& stateMachine)
в System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AwaitUnsafeOnCompleted[TAwaiter,TStateMachine](TAwaiter& awaiter, TStateMachine& stateMachine)
Exception rethrown at [0]:
в System.Runtime.CompilerServices.AsyncMethodBuilderCore.<ThrowAsync>b__1(Object state)
в System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
в System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
в System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
в System.Threading.ThreadPoolWorkQueue.Dispatch()
в System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()
Server stack trace:
в System.Runtime.CompilerServices.AsyncMethodBuilderCore.GetCompletionAction[TMethodBuilder,TStateMachine](TMethodBuilder& builder, TStateMachine& stateMachine)
в System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AwaitUnsafeOnCompleted[TAwaiter,TStateMachine](TAwaiter& awaiter, TStateMachine& stateMachine)
Exception rethrown at [0]:
в System.Runtime.CompilerServices.AsyncMethodBuilderCore.<ThrowAsync>b__1(Object state)
в System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
в System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
в System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
и
Код
--- 2 ----
System.OutOfMemoryException: Выдано исключение типа "System.OutOfMemoryException".
 в System.String.CtorCharArrayStartLength(Char[] value, Int32 startIndex, Int32 length)
в SuperSocket.ClientEngine.Protocol.ArraySegmentList.Decode(Encoding encoding, Int32 offset, Int32 length)
в WebSocket4Net.WebSocketCommandInfo..ctor(IList`1 frames)
в WebSocket4Net.Protocol.DraftHybi10DataReader.GetCommandInfo(Byte[] readBuffer, Int32 offset, Int32 length, Int32& left)
в WebSocket4Net.WebSocket.OnDataReceived(Byte[] data, Int32 offset, Int32 length)
в WebSocket4Net.WebSocket.client_DataReceived(Object sender, DataEventArgs e)
в SuperSocket.ClientEngine.ClientSession.OnDataReceived(Byte[] data, Int32 offset, Int32 length)
 в SuperSocket.ClientEngine.AsyncTcpSession.ProcessReceive(SocketAsyncEventArgs e)
в SuperSocket.ClientEngine.AsyncTcpSession.SocketEventArgsCompleted(Object sender, SocketAsyncEventArgs e)
в System.Net.Sockets.SocketAsyncEventArgs.OnCompleted(SocketAsyncEventArgs e)
в System.Net.Sockets.SocketAsyncEventArgs.ExecutionCallback(Object ignored)
в System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
в System.Net.Sockets.SocketAsyncEventArgs.FinishOperationSuccess(SocketError socketError, Int32 bytesTransferred, SocketFlags flags)
в System.Net.Sockets.SocketAsyncEventArgs.CompletionPortCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped)
в System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP)   в System.String.CtorCharArrayStartLength(Char[] value, Int32 startIndex, Int32 length)
в SuperSocket.ClientEngine.Protocol.ArraySegmentList.Decode(Encoding encoding, Int32 offset, Int32 length)
в WebSocket4Net.WebSocketCommandInfo..ctor(IList`1 frames)
в WebSocket4Net.Protocol.DraftHybi10DataReader.GetCommandInfo(Byte[] readBuffer, Int32 offset, Int32 length, Int32& left)
Со вторым еще хоть что-то понятно: что-то идет не так при приеме сообщения по веб-сокету. С первым вообще темный лес. Помогите разобраться, пожалуйста, куда копать как исправить?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.09.2015, 17:14
Ответы с готовыми решениями:

Необработанное исключение типа "System.Net.Sockets.SocketException" в System.dll
Доброго времени суток! Есть следующая статья: Разработка прокси-сервера на C# В самом конце есть...

Потоки Thread: Необработанное исключение типа "System.NullReferenceException"
Такова проблема thrListener = new Thread(KeepListening); thrListener.Start(); ... public...

Необработанное исключение типа "System.ObjectDisposedException" в mscorlib.dll
Добрый день!Подскажите пожалуйста.Возникает ошибка Необработанное исключение типа...

Необработанное исключение типа "System.Reflection.TargetInvocationException"
Добрых времени суток. Есть асинхронный сервер, к которому подулючается клиент, передает на серв...

5
1092 / 835 / 490
Регистрация: 09.04.2014
Сообщений: 1,975
09.09.2015, 17:26 2
Цитата Сообщение от master151 Посмотреть сообщение
ериодически (довольно редко) ловлю Unhandled Exception типа SystemOutOfMemory
ищи утечки памяти, если что-то другое сожрало всю память, то такое исключение может выскочить где угодно
0
2 / 2 / 2
Регистрация: 13.03.2013
Сообщений: 107
09.09.2015, 17:45  [ТС] 3
Для меня немного не понятно по части утечек памяти в .NET (объясните если можно). Я думал всем заправляет GC он сам понимает когда и что чистить. Исключения воспроизводятся нестабильно, редко. Стектрейс неизменный, т.е. скорее всего есть именно 2 проблемных места. (хотя могу ошибаться)
0
9 / 9 / 0
Регистрация: 26.01.2015
Сообщений: 94
09.09.2015, 21:07 4
Полагаю у вас для каждого коннекта создается объект, в итоге их становится так много, что памяти не хватает.
Если у вас 15 студия, в дебаг моде посмотрите во вкладке "Диагностика" как забивается память.
0
1270 / 971 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
09.09.2015, 21:21 5
так, для справки - OutOfMemoryException может выпадать не только из-за физической нехватки памяти, но и например из-за невозможности выделить непрерывный участок памяти нужного размера, что часто происходит если гадить в памяти мелким мусором с большой скорости
0
2 / 2 / 2
Регистрация: 13.03.2013
Сообщений: 107
10.09.2015, 00:05  [ТС] 6
Не совсем так, я один раз устанавливаю соединение посредством веб сокета и слушаю сообщения от него. Соединение может устанавливаться повторно только в случае возникновения различного рода проблем. Сообщения довольно частые (в среднем раз в 2 секунды). Под дебагом ошибку ни разу не удалось поймать. Неделю работало приложение - все норм. А у пользователей пару раз в сутки возникает, согласно краш-репортам.

Добавлено через 1 минуту
Вот еще что, согласно все тем же репортам, краш происходит неизменно в районе 1.5 гига съеденной памяти.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.09.2015, 00:05
Помогаю со студенческими работами здесь

Необработанное исключение типа "System.IO.IOException" произошло в mscorlib.dll
Ребят подскажите проблему при сохранение через SaveFileDialog() выдает ошибку: Необработанное...

Исключение типа "System.StackOverfliwException"
Добрый день. В форма есть ТекстБокс и Кнопка. Ввожу текст в бокс, жму кнопку, функция обрабатывает...

VS 2010 Ошибка при запуске отладки: "Неперехваченное исключение выдано методом, вызванным через Reflection"
Господа как победить ERROR ??? По сравнению с ним ПЕРЦЕПТРОН детская забава.:D

Неявное преобразование типа "System.Drawing.Icon" в "System.Drawing.Image" невозможно
ПОдскажите как можно вставить рисунок в панель если использую ico. Неявное преобразование типа...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru