- Javier García
- PowerBuilder
- Wednesday, 26 August 2020 07:56 AM UTC
Hello:
We have a problem with an application (named GPS) since the migration from PB12.6 to PB2019 R2
In a concrete scenario, the app crashes with the following message:
GPS.exe has stopped working
In the details of the message:
Problem Event Name: APPCRASH
Application Name: gps.exe
Fault Module Name: PBSHR190.DLL
Fault Module Version: 19.1.0.2328
I have tried to reproduce the error in the IDE environment and it also fails (in this case the IDE directly closes)
The situation that provokes the error is the following:
There is a loop where a window named 'w_pr_tickets' is opened several times, depending of a condition:
For i=1 TO dw_1.RowCount()
IF condition THEN
OpenWithParm(w_pr_tickets, PARAMS)
END IF
NEXT
The error arises in the Close event of the window 'w_pr_ticket' after several iterations. It's randomly when it crashes, sometime after 2 loops, other times after 6 or 7 loops, but always ends crashing. Not always with the same data set, we have completely discarded is an issue with an specific data. It crashes in production environment, but also in development environment and in test environment, no matter the data set.
I have verified that the CLOSE sentence is the last in the script. As I read that when Closing the window in an event of the same window, the CLOSE sentence must be the last in the script.
Also I have enable the DEBUG mode to obtain more information about when the error ocurs, and found the following:
In a normal execution of the CLOSE event, the debug file looks like that:
End event +CLOSE for class W_PR_TICKETS, lib entry W_PR_TICKETS
Executing object function +DESTROY for class DWOBJECT, lib entry _TYPEDEF
Executing instruction at line 2586
Executing object function __DESTROY_OBJECT for class DWOBJECT, lib entry _TYPEDEF
Executing system dll function
End class function __DESTROY_OBJECT for class DWOBJECT, lib entry _TYPEDEF
Executing instruction at line 2587
End class function +DESTROY for class DWOBJECT, lib entry _TYPEDEF
This group of sentences repeats several times. Then comes the destroy for the objects in the window:
Executing object function +DESTROY for class W_PR_TICKETS, lib entry W_PR_TICKETS
Executing instruction at line 2
Executing object function +DESTROY for class ST_7, lib entry W_PR_TICKETS
End object function +DESTROY for class ST_7, lib entry W_PR_TICKETS
Executing instruction at line 3
Executing object function +DESTROY for class ST_RELACION, lib entry W_PR_TICKETS
End object function +DESTROY for class ST_RELACION, lib entry W_PR_TICKETS
this repeats for all the objects in the window.
However, when the application fails, the last entry in the debug file is the following:
End event +CLOSE for class W_PR_TICKETS, lib entry W_PR_TICKETS
And there is no ocurrence for the destroy instructions that appears after a succesful close, so I guess is here where the app fails.
I have googled to find any solution, but cant find any relevant:
I have already checked that the datastores used in the window are explicity destroyed.
I have include the GarbageCollect both at the Close Event in the window 'w_pr_tickets' and in the main loop where the window is opened, but the error persist.
I have tried the 2328 and 2353 PB2019 R2 versions, but the error triggers with both versions.
As aditional information, we are using an Oracle database. I read something about problems when calling Stored Procedures, but this is not our case. Not CURSOR or stored procedure is used in the window.
The application comes from PB12.6 where it was working without this issue. So we assume that the problem comes from the PB2019 R2 version.
Any help will be much appreciated as we are stuck with this issue and affecting production systems.
Regards
Javier
Find Questions by Tag
Helpful?
If a reply or comment is helpful for you, please don’t hesitate to click the Helpful button. This action is further confirmation of their invaluable contribution to the Appeon Community.