Appserver problem

Posted by MarkHeppenstall on 11-Dec-2014 08:55

Hi guys,

I wonder if someone has any ideas on this.

I have an application that runs on an Appserver and everything worked OK until I renamed the _proapsv.exe (and _proapsv.exe.config) to something else - there are lots of Appserver serving different environments / processes so calling them different names aids identification of processes.

I tracked the problem down to a class that reads from the registry using the .Net assemblies.

The offending code which I isolated to a stand alone TestAppserver.p is:-

DEFINE VARIABLE lv-BaseRegistryKey AS CLASS Microsoft.Win32.RegistryKey.
ASSIGN lv-BaseRegistryKey = Microsoft.Win32.Registry:LocalMachine.

This generates the following protrace file:-

=====================================================
PROGRESS stack trace as of Thu Dec 11 14:30:04 2014
=====================================================

Progress OpenEdge Release 11.2 build 1196 on WINNT

Startup parameters:
-pf C:\Progress\OpenEdge\startup.pf,-cpinternal ISO8859-1,-cpstream ISO8859-1,-cpcoll Basic,-cpcase Basic,-d dmy,-numsep 44,-numdec 46,(end .pf),-logginglevel 2,-logfile C:\OpenEdge\WRK\Test.server.log,-ubpid 9660,-Ms 1,-logname Test,-logentrytypes ASPlumbing,DB.Connects,-logthreshold 0,-numlogfiles 3,-ASID 1,-ubpropfile C:\Progress\OpenEdge\properties\ubroker.properties,-ipver IPv4,-Mm 4096,-h 10

Exception code: E0434352
Fault address: 76902F71 01:00011F71 C:\Windows\SYSTEM32\KERNELBASE.dll

Registers:
EAX:010CE108
EBX:00000005
ECX:00000005
EDX:00000000
ESI:010CE1CC
EDI:00000001
CS:EIP:0023:76902F71
SS:ESP:002B:010CE108 EBP:010CE160
DS:002B ES:002B FS:0053 GS:002B
Flags:00200212


Debugging dll: C:\Progress\OpenEdge\bin\DBGHELP.DLL
Symbol Path:
C:\Progress\OpenEdge\bin;C:\Progress\OpenEdge\pdbfiles


Call Stack:
Address Frame
76902F71 010CE160 RaiseException+48
729A5DDF 010CE200 GetPrivateContextsPerfCounters+26C5D
72ABFF3F 010CE230 CreateHistoryReader+14648
72AC8694 010CE2C4 CreateHistoryReader+1CD9D
71601337 010CE2D4 0001:00000337 C:\Windows\Microsoft.NET\Framework\v4.0.30319\clrjit.dll
7160294C 010CE9FC 0001:0000194C C:\Windows\Microsoft.NET\Framework\v4.0.30319\clrjit.dll
71602F5C 010CEA7C 0001:00001F5C C:\Windows\Microsoft.NET\Framework\v4.0.30319\clrjit.dll
71603151 010CEA94 0001:00002151 C:\Windows\Microsoft.NET\Framework\v4.0.30319\clrjit.dll
71603208 010CEAB4 0001:00002208 C:\Windows\Microsoft.NET\Framework\v4.0.30319\clrjit.dll
7160B88A 010CEAF0 0001:0000A88A C:\Windows\Microsoft.NET\Framework\v4.0.30319\clrjit.dll
7160B9C7 010CEB68 0001:0000A9C7 C:\Windows\Microsoft.NET\Framework\v4.0.30319\clrjit.dll
7160B28D 010CEC58 0001:0000A28D C:\Windows\Microsoft.NET\Framework\v4.0.30319\clrjit.dll
7160BCAC 010CEC7C 0001:0000ACAC C:\Windows\Microsoft.NET\Framework\v4.0.30319\clrjit.dll
728314A7 010CECCC CoUninitializeEE+F04F
72831541 010CED0C CoUninitializeEE+F0E9
72831583 010CED70 CoUninitializeEE+F12B
728317DF 010CF110 CoUninitializeEE+F387
728301DB 010CF1EC CoUninitializeEE+DD83
728303F3 010CF260 CoUninitializeEE+DF9B
7281D0E6 010CF2C8 DllRegisterServerInternal+1DCA
72802B0C 010CF2F8 0001:00001B0C C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
03C658C2 010CF32C 0000:00000000
03C64FA3 010CF450 0000:00000000
016ECD2C 010CF464 Progress::ClrBridge::ITypeManager::ITypeManager+2FC
012B40E6 010CF488 dbut_utfIsLink+131916


** ABL Stack Trace **

--> TestAppserver.p at line 3 (.\TestAppserver.r)

** Persistent procedures/Classes **

** PROPATH **
.,C:\Progress\OpenEdge\tty,C:\Progress\OpenEdge\tty\adecomm.pl,C:\Progress\OpenEdge\tty\adecomp.pl,C:\Progress\OpenEdge\tty\adeedit.pl,C:\Progress\OpenEdge\tty\adeshar.pl,C:\Progress\OpenEdge\tty\dataadmin.pl,C:\Progress\OpenEdge\tty\prodict.pl,C:\OpenEdge\WRK,C:\Progress\OpenEdge,C:\Progress\OpenEdge\bin

** Databases (logical/type/physical) **

** End of Protrace **

So you can see that the error is raised by the CLR and I cannot seem to CATCH it or find an explanation as to why.

If I rename the Appserver process back to _proapsv.exe everything is fine - but change it to any other name and this is what happens.

Anyone seen this before? or have any ideas why? and if so is there a resolution that doesn't involve renaming all my Appservers back to _proapsv.exe?

Thanks,  

Mark

All Replies

Posted by Garry Hall on 11-Dec-2014 14:17

Hi Mark,

When you “rename” _proapsv.exe, are you also moving it to a different directory? I played with this quickly. My _proap1.exe worked fine. However, if you copy it out of DLC\bin, you will also need to copy other files as well: Progress.clrbridge.dll, Progress.NetUI.dll and Progress.Messages.dll. The AVM and CLR require assemblies to be in or below the current directory. I got a CLR exception and crash (possibly similar to yours) when I did not have the Progress.*.dll files below the same dir as _proap1.exe.

BTW, I am not advocating copying these files around, as this is not a tested configuration. Doing this might cause other things to fail down the line, which would lead to supportability nightmare. This was more an effort to diagnose the problem.

2 cents,

Garry.

This thread is closed