Icon View Incident Report

Serious Serious
Reported By: Ian Branch
Reported On: 5/8/2019
For: Version 2.31 Build 2
# 4740 Creating Indexes Combined with Table Optimization Operations Causes Global File I/O Buffer Error

My Customer went to do an Optimize today and got this error:

ElevateDB Error #601 The file <Temporary File Name> is corrupt (Error reading file blocks into cache - Size: 0 Offset: 3670016 Requested: -3670016 Actual -1)

I have retrieved all his data and I have replicated it here. It involves only one table, ChangesLog.

I deleted all the Changes log indexes and tried to add them one by one, doing an Optimize after each addition.

CREATE INDEX "DateTime" ON "ChangesLog" ("DateTime" ASC)!
OPTIMIZE TABLE "ChangesLog"!
CREATE INDEX "User" ON "ChangesLog" ("User" ASC)!
OPTIMIZE TABLE "ChangesLog"!
CREATE INDEX "Action" ON "ChangesLog" ("Action" ASC)!
OPTIMIZE TABLE "ChangesLog"!
CREATE INDEX "TableName" ON "ChangesLog" ("TableName" ASC)!
OPTIMIZE TABLE "ChangesLog"!
CREATE INDEX "KeyValue" ON "ChangesLog" ("KeyValue" ASC)!
OPTIMIZE TABLE "ChangesLog"!



Comments Comments
The underlying issue was that the backup files for the indexes were being buffered, but were not being re-initialized in-between each CREATE INDEX and OPTIMIZE TABLE call. This would put the global file I/O buffer manager for the backup file into an incorrect state, which would cause a global file I/O buffer manager error.


Resolution Resolution
Fixed Problem on 5/10/2019 in version 2.31 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