Icon View Incident Report

Serious Serious
Reported By: Jochem Stemmermann
Reported On: 11/21/2007
For: Version 1.06 Build 1
# 2485 USE Statement in a Job or Script Can Cause a Hanging Read Lock on the Database Being Opened

This job return error 9999 :

Access violation at address 0054524D in module 'edbsrvr.exe'. Read of address 00000000

BEGIN
use Sarakalib;
execute immediate 'drop table debitor';
EXECUTE IMMEDIATE 'CREATE TABLE "Debitor"
                    (
                    "Kundennr" VARCHAR(80) COLLATE "ANSI_CI" DEFAULT '' ''
                      NOT NULL,
                    "Name1" VARCHAR(80) COLLATE "ANSI_CI" DEFAULT '' ''
                      NOT NULL,
                    "Name2" VARCHAR(80) COLLATE "ANSI_CI" DEFAULT '' ''
                      NOT NULL,
                    "Name3" VARCHAR(80) COLLATE "ANSI_CI" DEFAULT '' ''
                      NOT NULL,
                    "Adresse1" VARCHAR(80) COLLATE "ANSI_CI" DEFAULT '' ''
                      NOT NULL,
                    "Adresse2" VARCHAR(80) COLLATE "ANSI_CI" DEFAULT '' ''
                      NOT NULL,
                    "Land" VARCHAR(80) COLLATE "ANSI_CI" DEFAULT '' ''
                      NOT NULL,
                    "PLZ" VARCHAR(80) COLLATE "ANSI_CI" DEFAULT '' ''
                      NOT NULL,
                    "Ort" VARCHAR(80) COLLATE "ANSI_CI" DEFAULT '' ''
                      NOT NULL,
                    "Telefom" VARCHAR(80) COLLATE "ANSI_CI" DEFAULT '' ''
                      NOT NULL,
                    "Fax" VARCHAR(80) COLLATE "ANSI_CI" DEFAULT '' ''
                      NOT NULL,
                    "Code" VARCHAR(80) COLLATE "ANSI_CI" DEFAULT '' ''
                      NOT NULL
                    )
                    VERSION 1
                    UNENCRYPTED
                    INDEX PAGE SIZE 4096
                    BLOB BLOCK SIZE 512
                    MAX ROW BUFFER SIZE 32768
                    MAX INDEX BUFFER SIZE 65536
                    MAX BLOB BUFFER SIZE 32768';

  execute immediate 'IMPORT TABLE Debitor
                     FROM ''c:\debitor.txt''
                     DELIMITER CHAR ''|''
                     USE HEADERS';

  EXECUTE IMMEDIATE 'CREATE INDEX "ixKundenr" ON "Debitor"
                    ("Kundennr" COLLATE "ANSI_CI")';
  EXECUTE IMMEDIATE 'CREATE INDEX "ixName1" ON "Debitor"
                    ("Name1" COLLATE "ANSI_CI")';
  EXECUTE IMMEDIATE 'CREATE INDEX "ixName2" ON "Debitor"
                    ("Name2" COLLATE "ANSI_CI")';
  EXECUTE IMMEDIATE 'CREATE INDEX "ixName3" ON "Debitor"
                    ("Name3" COLLATE "ANSI_CI")';
  EXECUTE IMMEDIATE 'CREATE INDEX "ixOrt" ON "Debitor"
                    ("Ort" COLLATE "ANSI_CI")';
  EXECUTE IMMEDIATE 'CREATE INDEX "ixPlz" ON "Debitor"
                    ("PLZ" COLLATE "ANSI_CI")';
  EXECUTE IMMEDIATE 'CREATE INDEX "ixSuchen" ON "Debitor"
                    ("Kundennr" COLLATE "ANSI_CI", "Name1" COLLATE 
                     "ANSI_CI", "Name2" COLLATE "ANSI_CI",
                     "Name3" COLLATE "ANSI_CI", "Ort" COLLATE "ANSI_CI")';
END



Comments Comments
Originally could not reproduce any AV error, but a write lock error would occur on the database being accessed after the USE statement due to a hanging read lock caused by the USE statement. This error would subsequently cause an AV during the DROP TABLE statement execution. The reason this was not originally caught was that the automated test for the original issue was set up to run as a script instead of a job because it was easier to run "on-demand". However, the script did not have the issue whereby the job did.


Resolution Resolution
Fixed Problem on 11/23/2007 in version 1.07 build 2


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 VCL Client-Server
ElevateDB VCL Client-Server with Source
ElevateDB VCL Standard
ElevateDB VCL Standard with Source
ElevateDB VCL Trial

Image