Icon View Incident Report

Serious Serious
Reported By: Terry Swiers
Reported On: 1/17/2019
For: Version 2.30 Build 2
# 4721 Using Procedure Caching with External Procedures Can Cause AV During Session Destruction

It looks like there is also a problem with unloading external modules if Function / Procedure Caching is enabled and a procedure that resides in the external module has been called multiple times. Steps to reproduce using EDB Manager.

1. Create a Remote session and database named TestDB.

2. Create an external module and install it into the newly created session. The external module doesn't have to handle the procedure, it just has to exist and be installed.

3. Open the database and create the following procedure:

CREATE PROCEDURE "JunkProc" (IN "Param1" CLOB COLLATE "UNI", IN "Param2" VARCHAR(128) COLLATE "UNI", IN "Param3" INTEGER)
EXTERNAL NAME "ExtModule"

4. Disconnect and then reconnect the session.

5. Run the following script 4 or 5 times:

SCRIPT
BEGIN
USE "TestDB";
CALL JunkProc('somestring', 'anotherstring', 999);
END

6. Disconnect and then reconnect the session.

7. View the configuration.logevents table and you should see a 202 error indicating an AV in the external module which is associated with the closing of the session.


Resolution Resolution
Fixed Problem on 1/20/2019 in version 2.30 build 3


Products Affected Products Affected
ElevateDB Additional Software and Utilities
ElevateDB DAC Client-Server
ElevateDB DAC Client-Server with Source
ElevateDB DAC Standard
ElevateDB DAC Standard with Source
ElevateDB DAC Trial
ElevateDB LCL Standard with Source
ElevateDB PHP Standard
ElevateDB PHP Standard with Source
ElevateDB PHP Trial
ElevateDB VCL Client-Server
ElevateDB VCL Client-Server with Source
ElevateDB VCL Standard
ElevateDB VCL Standard with Source
ElevateDB VCL Trial

Image