We are using TeeChart ActiveX in our Visual C++ application for years but recently our customers starter reporting a weird issue: when our application is run in Terminal Server session on Windows 2008 Server R2 and customer tries to open a dialog with embedded TeeChart, whole application hangs.
Issue was first reported with TeeChart 5. Recently, we have updated TeeChart to version 8 (8.00.0.8 exactly) and the problem still appears.
After our investigation we have found that hanging happens during TeeChart control initialization. It seems that TeeChart tries to enumerate available printers and it hangs during enumeration. Here is appropriate stack walk information:
Code: Select all
ntdll.dll!_KiFastSystemCallRet@0()
ntdll.dll!_NtWaitForSingleObject@12() + 0xc bytes
kernel32.dll!_WaitForSingleObjectEx@12() + 0x84 bytes
kernel32.dll!_WaitForSingleObject@8() + 0x12 bytes
tsprint.dll!CRIMStreamProxy::CMessageEntry::Wait() + 0x14 bytes
tsprint.dll!CRIMStreamProxy::ReceiveMessage() + 0x121 bytes
tsprint.dll!CMessage::CommitReceive() + 0x18 bytes
tsprint.dll!CProxyITS_PrintDriver<ITS_PrintDriver>::InitializePrinter() + 0xab bytes
tsprint.dll!CTSCacheEntry::Initialize() + 0x2a3 bytes
tsprint.dll!CTSPrinterCache::GetDriverProxy() + 0x1a0 bytes
tsprint.dll!GetCachedDriverProxy() + 0x17 bytes
tsprint.dll!CallClientSideDocumentProperties() + 0x80 bytes
tsprint.dll!SpoolerCallingDocumentPropertySheets() + 0x27 bytes
tsprint.dll!_DrvDocumentPropertySheets@8() + 0x4b bytes
winspool.drv!_DocumentPropertySheets@8() + 0x142 bytes
winspool.drv!DocumentPropertiesWNative() + 0xeb bytes
winspool.drv!_DocumentPropertiesA@24() + 0x40 bytes
> TEECHART8.OCX!042ae191()
[Frames below may be incorrect and/or missing, no symbols loaded for TEECHART8.OCX]
winspool.drv!_RpcEnumPrinters@28() + 0x1a bytes
winspool.drv!_EnumPrintersW@28() + 0xa5 bytes
03228058()
TEECHART8.OCX!04279aba()
TEECHART8.OCX!042ae8d8()
ntdll.dll!@RtlpFreeHeap@16() + 0x335 bytes
ntdll.dll!_RtlFreeHeap@12() + 0xed5 bytes
kernel32.dll!_BaseDllReadVariableValue@16() + 0x1a2 bytes
Code: Select all
TEECHART8.OCX C:\Windows\System32\TEECHART8.OCX N/A N/A Binary was not built with debug information. 71 8.00.0.8 6/19/1992 11:22 PM 04270000-048C8000* Waa.DMP: Native
- printing from Windows application works properly at the time when TeeChart hangs (tested with our application and Notepad)
- disabling local printer redirection when connecting to Terminal Server solves the problem (i.e. TeeChart no longer hangs during initialisation), however this solution is not acceptable for our customers - they need printing using local printers.
Can you please solve the problem with TeeChart?
Mariusz Wojcieszek
IN-Software.com LP