Crash - ATLTHUNK.DLL

Martin Richter [Grutzeck Software GmbH]
17.03.2021 07:49

Beschreibung:
Auf 64bit Betriebssystem die älter als Windows 10 sind (Server 2012 R2, Windows7, Windows 8, Windows 8.1) kann es bei zuvielen Control-Elementen dazu kommen,
dass AG-VIP SQL oder auch andere Anwendungen abstürzen.

Ursache:
Die im C:\Windows\SysWow64 liegende ATLTHUNK.DLL stellt pro Aufruf 256 Slots bereit um weitere Subklassen zuzuordnen.
Wurden alle 256 Slots genutzt, so wird die ATLTHUNK.DLL erneut geladen und es werden weitere 256 Slots bereitgestellt.
Dies funktioniert jedoch bei den oben aufgeführten Betriebssystemen nicht garantiert.
Microsoft hat dies durch eine von uns gestellte Supportanfrage bereits 2017 als Bug bestätigt.
Allerdings wurde der Bug nur im aktuellen Betriebssystem Windows10 behoben.

Workarround:
Die ATLTHUNK.DLL kann von Windows10 kopiert und in das AG-VIP SQL Installationsverzeichnis kopiert werden.
AG-VIP SQL wird daraufhin diese ATLTHUNK.DLL verwenden und nicht die im C:\Windows\SysWow64 Verzeichnis.
Das Problem wird dadurch behoben, weil die Dateiversion aus Windows10 den Bug nicht enthält.
Nachdem Kopieren der Datei kann ein Serverneustart notwendig werden!

Hinweis:
Der Workarround wurde bislang nur bei einem Server 2012 R2 erfolgreich getestet.

Stackoverflow Beitrag von Martin:
https://stackoverflow.com/questions/41741448/random-crashes-on-windows-10-64bit-with-atl-subclassing

Typische Callstacks bei einem Crash sind:

0ec81585() Unknown No symbols loaded.
user32.dll!__InternalCallWinProc@20() Unknown Symbols loaded.
user32.dll!UserCallWinProcCheckWow() Unknown Symbols loaded.
user32.dll!DispatchClientMessage() Unknown Symbols loaded.
user32.dll!___fnINOUTLPWINDOWPOS@4() Unknown Symbols loaded.
ntdll.dll!_KiUserCallbackDispatcher@12() Unknown Symbols loaded.
mfc140u.dll!CScrollView::ScrollToDevicePosition(tagPOINT ptDev={...}) Line 620 C++ Symbols loaded.

0c831585() Unknown No symbols loaded.
user32.dll!__InternalCallWinProc@20() Unknown Symbols loaded.
user32.dll!UserCallWinProcCheckWow() Unknown Symbols loaded.
user32.dll!DispatchClientMessage() Unknown Symbols loaded.
user32.dll!___fnDWORD@4() Unknown Symbols loaded.
ntdll.dll!_KiUserCallbackDispatcher@12() Unknown Symbols loaded.
user32.dll!SendMessageW() Unknown Symbols loaded.
[Inline Frame] AGVIP.exe!MfxWindow::CSubclassWnd::GetSubclassThunk(HWND__ *) Line 357 C++ Symbols loaded.
AGVIP.exe!MfxWindow::CSubclassWnd::HookWindow(HWND__ * hWnd=0x0004038a) Line 248 C++ Symbols loaded. 

Tags: ATLTHUNK.DLL CRASH
Durchschnittliche Bewertung: 0 (0 Abstimmungen)

Kommentieren nicht möglich