Re: OutOfMemoryException clr!MethodDesc::MakeJitWorker
От: Pavel Dvorkin Россия  
Дата: 24.04.16 16:49
Оценка: +1
Здравствуйте, Философ, Вы писали:

Ф> clr!MethodDesc::MakeJitWorker+0x44d

Ф> clr!MethodDesc::DoPrestub+0x150b
Ф> clr!PreStubWorker+0x3cc

Ф>Что интересно, этот клиент один такой, и почти на 300 остальных его машин подобных проблем не возникает.

Впечатление такое, что у него что-то не в порядке с JIT. Этот код производит компиляцию, вот здесь это описано

https://blogs.msdn.microsoft.com/abhinaba/2013/12/10/ngen-primer/

и при этом возникает исключение, которое перебрасывается в нативный код (а куда еще!) и потом портируется в дотнет обратно

>Как этого чувака осчастливить?


Я бы для начала посоветовал переинсталлировать дотнет. Если у всех 300 других проблем нет, а есть только у него и именно в этом месте — это первое, что приходит в голову.

Кстати, эффект стабилен ?
With best regards
Pavel Dvorkin
OutOfMemoryException clr!MethodDesc::MakeJitWorker
От: Философ Ад http://vk.com/id10256428
Дата: 11.04.16 19:18
Оценка:
На одной из продакшн машин происходит вот такой полтергейст:
  native stacktrace
 user32!NtUserWaitMessage+0x14
 System_Windows_Forms_ni+0x2b5678
 System_Windows_Forms_ni+0x2493e7
 System_Windows_Forms_ni+0x248afc
 System_Windows_Forms_ni+0x2488f5
 System_Windows_Forms_ni+0x81bb32
 0x00007ffa`a5490bb9
 clr!CallDescrWorkerInternal+0x83
 clr!CallDescrWorkerWithHandler+0x4e
 clr!DispatchCallSimple+0x60
 clr!ExceptionNotifications::DeliverExceptionNotification+0x46
 clr!InvokeUnhandledSwallowing+0x9a
 clr!DistributeUnhandledExceptionReliably+0x101
 clr!AppDomain::RaiseUnhandledExceptionEvent+0x12b
 clr!AppDomain::RaiseUnhandledExceptionEventNoThrow+0x5e
 clr!AppDomain::OnUnhandledException+0x73
 clr!NotifyAppDomainsOfUnhandledException+0xe8
 clr!InternalUnhandledExceptionFilter_Worker+0x1f8
 clr!ThreadBaseExceptionAppDomainFilter+0x20
 clr!ThreadBaseRedirectingFilter+0x7e
 clr!`ManagedThreadBase_DispatchOuter'::`1'::filt$0+0x21
 MSVCR120_CLR0400!_C_specific_handler+0xa0
 ntdll!RtlpExecuteHandlerForException+0xd
 ntdll!RtlDispatchException+0x3a9
 ntdll!RtlRaiseException+0x324
 KERNELBASE!RaiseException+0x68
 MSVCR120_CLR0400!_CxxCallCatchBlock+0x169
 ntdll!RcConsolidateFrames+0x3
 clr!MethodDesc::MakeJitWorker+0x44d
 clr!MethodDesc::DoPrestub+0x150b
 clr!PreStubWorker+0x3cc
 clr!ThePreStub+0x55
 mscorlib_ni+0x52a79e
 mscorlib_ni+0x52a637
 mscorlib_ni+0x4de44b
 mscorlib_ni+0x4de255
 mscorlib_ni+0x4bbc1f
 clr!CallDescrWorkerInternal+0x83
 clr!CallDescrWorkerWithHandler+0x4e
 clr!MethodDescCallSite::CallTargetWorker+0xf8
 clr!AppDomainTimerCallback_Worker+0x23
 clr!ManagedThreadBase_DispatchInner+0x2d
 clr!ManagedThreadBase_DispatchMiddle+0x6c
 clr!ManagedThreadBase_DispatchOuter+0x75
 clr!ManagedThreadBase_FullTransitionWithAD+0x2f
 clr!AppDomainTimerCallback+0x7f
 clr!ThreadpoolMgr::AsyncTimerCallbackCompletion+0x6d
 clr!UnManagedPerAppDomainTPCount::DispatchWorkItem+0x19b
 clr!ThreadpoolMgr::ExecuteWorkRequest+0x4a
 clr!ThreadpoolMgr::WorkerThreadStart+0xf6
 clr!Thread::intermediateThreadProc+0x7d
 kernel32!BaseThreadInitThunk+0x22
 ntdll!RtlUserThreadStart+0x34



Windows 10 x64, .net 4.6.1

С памятью проблема там нет:
8Gb Physical RAM + 8Gb PageFile
4.3 Physical RAM free
с CommiteSize тоже проблем нет.

Peak PrivateSet для процесса ~160 Mb


Что интересно, этот клиент один такой, и почти на 300 остальных его машин подобных проблем не возникает.
Есть у кого-нибудь идеи что это может быть? Как этого чувака осчастливить?

ЗЫ: Что любопытно, метод, который в гуёвине не джитится даже не дженерик....
Всё сказанное выше — личное мнение, если не указано обратное.
Re: OutOfMemoryException clr!MethodDesc::MakeJitWorker
От: zou  
Дата: 11.04.16 19:44
Оценка:
Здравствуйте, Философ, Вы писали:

Ф>На одной из продакшн машин происходит вот такой полтергейст:


Дамп есть?
Re[2]: OutOfMemoryException clr!MethodDesc::MakeJitWorker
От: Философ Ад http://vk.com/id10256428
Дата: 11.04.16 20:44
Оценка:
Здравствуйте, zou, Вы писали:

zou>Здравствуйте, Философ, Вы писали:


Ф>>На одной из продакшн машин происходит вот такой полтергейст:


zou>Дамп есть?


Это трэйс из дампа, с машины пользователя.
Всё сказанное выше — личное мнение, если не указано обратное.
Re[3]: OutOfMemoryException clr!MethodDesc::MakeJitWorker
От: zou  
Дата: 11.04.16 20:52
Оценка:
Здравствуйте, Философ, Вы писали:

zou>>Дамп есть?


Ф>Это трэйс из дампа, с машины пользователя.


Я про то, что интересно было бы глянуть дамп.
Re[4]: OutOfMemoryException clr!MethodDesc::MakeJitWorker
От: Философ Ад http://vk.com/id10256428
Дата: 11.04.16 21:15
Оценка:
Здравствуйте, zou, Вы писали:

zou>Я про то, что интересно было бы глянуть дамп.


Если убедишь меня, что тебе стоит его давать, спрошу завтра — я сам такое решение не могу принять.
Что ты там найти хочешь?
Всё сказанное выше — личное мнение, если не указано обратное.
Re: OutOfMemoryException clr!MethodDesc::MakeJitWorker
От: maloi_alex СССР  
Дата: 21.04.16 16:44
Оценка:
Здравствуйте, Философ, Вы писали:

Ф>[b] clr!MethodDesc::MakeJitWorker+0x44d

Ф> clr!AppDomainTimerCallback_Worker+0x23
Ф> clr!AppDomainTimerCallback+0x7f
Ф> clr!ThreadpoolMgr::AsyncTimerCallbackCompletion+0x6d

В качестве догадки. Cудя по логу, необработанное OutOfMemoryException возникает изнутри callback метода у Timer'a. Т.е. примерно такая ситуация, что этот callback одновременно вызывается из двух разных потоков, причем в одном потоке он в процессе JIT, а в другом потоке он бросает OutOfMemoryException. Ну и MakeJitWorker перехватывает это исключение и пробрасывает его дальше.
Re[2]: OutOfMemoryException clr!MethodDesc::MakeJitWorker
От: Философ Ад http://vk.com/id10256428
Дата: 25.04.16 00:57
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

>>Как этого чувака осчастливить?


PD>Кстати, эффект стабилен ?


Да, эффект (был) стабилен.

PD>Я бы для начала посоветовал переинсталлировать дотнет. Если у всех 300 других проблем нет, а есть только у него и именно в этом месте — это первое, что приходит в голову.


Так и сделали, но вряд ли клиент это сделал, т.к. перед этим сборки ему проngenили и это его "осчастливило".
Всё сказанное выше — личное мнение, если не указано обратное.
Re: OutOfMemoryException clr!MethodDesc::MakeJitWorker
От: buser  
Дата: 27.04.16 15:37
Оценка:
Здравствуйте, Философ
я ламо, но таки https://connect.microsoft.com/VisualStudio/feedback/details/1373004/net-4-6-clr-crashes-with-some-old-net-assemblies-that-used-to-work
YAGNI
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.