Hi,
This is a very strange error. Hope that someone can give us a clue what is causing it.
We have a DELPHI 7 program that have been running for several years without problems.
Now on certain new machines we get a "First chance exception" when calling a SOAP function on an J-boss server.
The program works fine on older machines but not on some newer.
Traces have been made, both with Depends and Procmon on machines that are working and not. On the not working machines the trace just stop after the exception.
The running production environment are Windows Server 2003 SP1. The servers have exactly the same plattform versions.
We have written test programs in DELPHI 7 (same environment as production) and also in .NET calling the same SOAP function. .NET test program works but not DELPHI 7.
Extraction from both traces are shown below for DELPHI test program.
DEPENDS TRACE.
Trace from working machine:
RegCloseKey HKCUSoftwareMicrosoftInternet ExplorerMainFeatureControl SUCCESS
ReadFile E:SoapClientTestSOAPClient.exe SUCCESS Offset: 1 020 928, Length: 8 192, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O
RegOpenKey HKLMSoftwareMicrosoftCOM3 SUCCESS
RegQueryValue HKLMSOFTWAREMicrosoftCOM3Com+Enabled SUCCESS Type: REG_DWORD, Length: 4, Data: 1
RegCloseKey HKLMSOFTWAREMicrosoftCOM3 SUCCESS
Trace from not working machine on the same spot in the trace file:
RegCloseKey HKCUSoftwareMicrosoftInternet ExplorerMainFeatureControl SUCCESS
ReadFile C:WINDOWSsystem32user32.dll SUCCESS Offset: 353 280, Length: 4 096, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O
ReadFile C:WINDOWSsystem32user32.dll SUCCESS Offset: 197 632, Length: 4 096, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O
NOTE! Here the exception happens.
PROCMON TRACE
Trace from working machine:
00:00:18.578: GetProcAddress(0x71C00000 [c:windowssystem32WS2_32.DLL], "GetNameInfoW") called from "c:windowssystem32WS2_32.DLL" at address 0x71C04F13 and returned 0x71C09A4E by thread 1.
00:00:18.578: GetProcAddress(0x71C00000 [c:windowssystem32WS2_32.DLL], "freeaddrinfo") called from "c:windowssystem32WS2_32.DLL" at address 0x71C04F13 and returned 0x71C033E7 by thread 1.
ON NEXT ROW THE ERROR Occurs on the NOT working machine.
00:00:18.578: LoadLibraryA("CLBCatQ.DLL") called from "c:windowssystem32OLE32.DLL" at address 0x776AEBC4 by thread 1.
00:00:18.578: Loaded "c:windowssystem32CLBCATQ.DLL" at address 0x777B0000 by thread 1. Successfully hooked module.
00:00:18.594: Loaded "c:windowssystem32COMRES.DLL" at address 0x77010000 by thread 1. Successfully hooked module.
00:00:18.594: DllMain(0x77010000, DLL_PROCESS_ATTACH, 0x00000000) in "c:windowssystem32COMRES.DLL" called by thread 1.
00:00:18.594: DllMain(0x77010000, DLL_PROCESS_ATTACH, 0x00000000) in "c:windowssystem32COMRES.DLL" returned 1 (0x1) by thread 1.
00:00:18.594: DllMain(0x777B0000, DLL_PROCESS_ATTACH, 0x00000000) in "c:windowssystem32CLBCATQ.DLL" called by thread 1.
00:00:18.594: LoadLibraryA("ole32.dll") called from "c:windowssystem32CLBCATQ.DLL" at address 0x777B71B5 by thread 1.
Trace from not working machine:
00:00:19.078: GetProcAddress(0x71C00000 [c:windowssystem32WS2_32.DLL], "GetNameInfoW") called from "c:windowssystem32WS2_32.DLL" at address 0x71C04F13 and returned 0x71C09A4E by thread 1.
00:00:19.078: GetProcAddress(0x71C00000 [c:windowssystem32WS2_32.DLL], "freeaddrinfo") called from "c:windowssystem32WS2_32.DLL" at address 0x71C04F13 and returned 0x71C033E7 by thread 1.
00:00:19.078: First chance exception 0xC0000005 (Access Violation) occurred at address 0x00C27E2E by thread 1.
We can also mention that the machines are created from the same image as the old ones.
It must have something to do with the DELPHI environment versus the machine configuration though the .NET test progam works.
We are looking forward to some theories/solutions that can help us forward.
Everything else are working on the mahcines. It is just the SOAP calls to the J-BOSS server that fails ...