KEMBAR78
BaseBucketParamsManager::GetAppVersion should switch to PREEMPT before calling DwGetFileVersionInfo · Issue #35866 · dotnet/runtime · GitHub
Skip to content

BaseBucketParamsManager::GetAppVersion should switch to PREEMPT before calling DwGetFileVersionInfo #35866

@Maoni0

Description

@Maoni0

I'm observing this code from EH is preventing suspension from completing in a timely manner -

+ coreclr!IL_Throw
+ coreclr!RaiseTheExceptionInternalOnly
+ kernelbase!RaiseException
+ ntdll!RtlRaiseException
+ ntdll!RtlDispatchException
+ ntdll!RtlpExecuteHandlerForException
+ coreclr!__C_specific_handler
+ coreclr!CallDescrWorkerReflectionWrapper'::1'::filt$0
+ coreclr!ReflectionInvocationExceptionFilter
+ coreclr!SetupWatsonBucketsForNonPreallocatedExceptions
+ coreclr!GetBucketParametersForManagedException
+ coreclr!GetManagedBucketParametersForIp
+ coreclr!CLR20r3BucketParamsManager::PopulateBucketParameters
+ coreclr!BaseBucketParamsManager::GetAppVersion
+ coreclr!DwGetFileVersionInfo
+ coreclr!GetFileVersion
+ coreclr!GetFileVersionInfoSizeW_NoThrow
+ kernelbase!GetFileVersionInfoSizeExW
+ kernelbase!LoadLibraryExW
+ kernelbase!BasepLoadLibraryAsDataFileInternal
+ ntdll!RtlDosSearchPath_Ustr
+ ntdll!RtlDoesFileExists_UstrEx
+ ntdll!ZwQueryAttributesFile
+ ntoskrnl!NtQueryAttributesFile
+ ntoskrnl!ObOpenObjectByNameEx
+ ntoskrnl!ObpLookupObjectName
+ ntoskrnl!IopParseDevice
+ ntoskrnl!IopQueryInformation
+ fltmgr!FltpFastIoQueryOpen
+ fltmgr!FltpPerformFastIoCall
+ ntfs!NtfsNetworkOpenCreate
+ ntfs!NtfsCommonQueryOpen
+ ntfs!NtfsCommonCreate
+ ntfs!NtfsAcquireSharedVcb
+ ntoskrnl!ExAcquireResourceSharedLite
+ ntoskrnl!ExpAcquireResourceSharedLite
+ ntoskrnl!ExpWaitForResource
+ ntoskrnl!KeWaitForSingleObject
+ ntoskrnl!KiCommitThreadWait
+ ntoskrnl!KiSwapThread
+ ntoskrnl!KiDeliverApc
+ ntoskrnl!PspGetSetContextSpecialApc
+ ntoskrnl!KeSignalGate
+ ntoskrnl!KiExitDispatcher
+ EventData Readied Thread 7736 Proc 21104
+ Event Windows Kernel/Dispatcher/ReadyThread

or DwGetFileVersionInfo could do that before calling GetFileVersion. this is causing suspension that's 3 to 4s long.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions