Consultor Eletrônico



Kbase P99632: Session crash with RegisterWaitForInputIdle when using a dynamic filter.
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   10/15/2008
Status: Unverified

FACT(s) (Environment):

Progress 9.1D
Progress 9.1E

SYMPTOM(s):

Session crash with RegisterWaitForInputIdle when using a dynamic filter.

Modified smartFilter Object causes Appbuilder Session Crash when the object is added to a smartWindow.

Additional trigger defined in the Control Triggers section of the dynamic filter causes a GPF when the filter is added to a smartWindow. The trigger is running a help procedure in the filter container source. e.g.
{get ContainerSource wshContSrc}.
IF CAN-DO(wshContSrc:INTERNAL-ENTRIES,"Filter_Help") THEN
RUN Filter_Help IN wshContSrc(INPUT "ENTRY":U,
SELF:NAME).


//=====================================================
PROGRESS stack trace as of Wed Jan 05 13:29:38 2005
//=====================================================
Exception code: C0000005 ACCESS_VIOLATION
Fault address: 10323F06 01:00322F06 D:\progress\91E\bin\prow32.dll

Registers:
EAX:00000000
EBX:00000000
ECX:0000BC18
EDX:0012F590
ESI:0014238B
EDI:00FDDF4C
CS:EIP:001B:10323F06
SS:ESP:0023:0012F524 EBP:0012F528 &n.bsp;
DS:0023 ES:0023 FS:003B GS:0000
Flags:00010206

Call Stack:
Address Frame
10323F06 0012F528 DllStartup+2CF2BE
103240BC 0012F680 DllStartup+2CF474
10205D2F 0012F6B0 DllStartup+1B10E7
102056ED 0012F6FC DllStartup+1B0AA5
10205350 0012F738 DllStartup+1B0708
1000A0E7 0012F770 0001:000090E7 D:\progress\91E\bin\prow32.dll
10009CB0 0012FB24 0001:00008CB0 D:\progress\91E\bin\prow32.dll
101B8C2A 0012FB44 DllStartup+163FE2
101B8F4B 0012FC08 DllStartup+164303
1002D025 0012FC2C 000.1:0002C025 D:\progress\91E\bin\prow32.dll
10014D4D 0012FCB8 0001:00013D4D D:\progress\91E\bin\prow32.dll
10014A3C 0012FD28 0001:00013A3C D:\progress\91E\bin\prow32.dll
101E2E90 0012FD48 DllStartup+18E248
101BF189 0012FD7C DllStartup+16A541
101BEC66 0012FDD0 DllStartup+16A01E
101AA6DD 0012FDDC DllStartup+155A95
10214B21 0012FE64 DllStartup+1BFED9
10119BB0 0012FEC0 DllStartup+C4F68
103294D1 0012FECC DllStartup+2D4889
1001BD7F 0012FED8 0001:0001AD7F D:\progress\91E\bin\prow32.dll
10006EE4 0012FF08 0001:00005EE4 D:\progress\91E\bin\prow32.dll
10054C44 0012FF1C ProStartup+5F
00401008 0012FF24 0001:00000008 D:\progress\91E\bin\prowin32.exe
00401148 0012FFC0 0001:00000148 D:\progress\91E\bin\prowin32.exe
7C816D4F 0012FFF0 RegisterWaitForInputIdle+49
//=====================================================
PROGRESS stack trace as of Wed Jan 05 13:29:40 2005
//=====================================================
Exception code: C0000005 ACCESS_VIOLATION
Fault address: 10323F06 01:00322F06 D:\progress\91E\bin\prow32.dll &.nbsp;

Registers:
EAX:00000000
EBX:00000000
ECX:0000BC18
EDX:0012F590
ESI:0014238B
EDI:00FDDF4C
CS:EIP:001B:00000000
SS:ESP:0023:0012FFF8 EBP:00000000
DS:0023 ES:0023 FS:003B GS:0000
Flags:00010206
&.nbsp;
Call Stack:
Address Frame
00000000 0012FFF4 .

FIX:

This issue is fixed in 9.1E03.

Test the validity of the handle before performing the IF statement. For example:
{get ContainerSource wshContSrc}.
IF VALID-HANDLE(wshContSrc) THEN
DO:
IF CAN-DO(wshContSrc:INTERNAL-ENTRIES,"Filter_Help") THEN
RUN Filter_Help IN wshContSrc(INPUT "ENTRY":U,
SELF:NAME).
END.