Icon View Incident Report

Serious Serious
Reported By: James Stewart
Reported On: 2/4/2013
For: Version 2.11 Build 3
# 3742 Verifying Tables with More Than 8,388,609 BLOB Blocks Causes Invalid Verification Error

I have a table I got from a client that they claimed wouldn’t “Repair” and were curious what was going on. I got the table from them (it’s huge, about 91 gig) and tried it myself. I did a “Verify” then “Repair” and then “Verify” again (log from this below). As you can see it says it fixed them, but then show up with verification error again:

Verification of the table LogData started at 2013-02-04 16:05:26.475
Verification error for the LogData table file LogData.EDBBlb (Invalid BLOB block 8388609 type (1)) - Not Fixed
Verification error for the LogData table file LogData.EDBBlb (Invalid BLOB block 16777217 type (1)) - Not Fixed
Verification error for the LogData table file LogData.EDBBlb (Invalid BLOB block 25165825 type (1)) - Not Fixed
Verification of the table LogData ended at 2013-02-04 16:21:08.839

To create a table that causes the problem:

var
   TempData: array[1..16384] of Int64;
   I: Integer;
   TempStream: TStream;
begin
   FillChar(TempData,SizeOf(TempData),1);
   EDBDatabase1.Execute('EMPTY TABLE BlobCorrupt');
   with EDBTable1 do
      begin
      Open;
      try
         for I:=1 to 100000 do
            begin
            Append;
            TempStream:=CreateBlobStream(FieldByName('BlobData'),bmReadWrite);
            try
               TempStream.Write(TempData,SizeOf(TempData));
            finally
               FreeAndNil(TempStream);
            end;
            Post;
            ProgressBar1.Position:=Trunc((I/100000)*100);
            Application.ProcessMessages;
            end;
      finally
         Close;
      end;
      end;
end;



Comments Comments
The problem was caused by how EDB was using an internal structure to track which BLOB blocks were "used" or not.


Resolution Resolution
Fixed Problem on 2/16/2013 in version 2.12 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