Icon View Incident Report

Serious Serious
Reported By: Robert Perelegre
Reported On: 12/13/2018
For: Version 2.29 Build 1
# 4710 Creating Indexes and Other Batch Operations Cause Corruption with Global File I/O Buffering Enabled

I have a ElevateDB Server running as service in Windows 10 with this configuration in edbsrvr.ini :

Cache Modules=1
Buffered File IO=1
Buffered File IO Settings=
Buffered File IO Flush Check Interval=60
in ElevateDB Manager I have this configuration (other as default) :

If I create a new index in a big table with a lot of indexes (I haven't tried in another table) all works perfecte and if I verify the Table all is perfect.

But if I stop the service and start again when I verify the Table an error like this appears :

Verification error for the index idx_Prova in the Articles table file D:\Bases Locals\ElevateDB\UniCode\AndoFarma_Gestio0002\Articles.EDBIdx (Invalid next index page 81802 pointer (1859193118)) - Fixed

When it's repair all works great again; but if I stop and start the service again, another time the same error.

The only way to stop this cycles is modify the Buffered File IO=0 repair the table an set Buffered File IO=1 and all works perfect until I create a new index (stoping and starting the service every time I changed Buffered File IO).


Comments Comments
This issue was the last remaining issue with the new global file I/O buffering feature that we were aware of, but could not reproduce here with random testing. The problem primarily occurred when extending files by large amounts of space that required multiple file blocks. In such a case, file buffers would get double-pinned, and thus would not get flushed to disk and the end result was file corruption.


Resolution Resolution
Fixed Problem on 12/18/2018 in version 2.30 build 1


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