Opened 16 years ago
Last modified 16 years ago
#364 new defect
SDF Spatial Index Error destroys SDF file
Reported by: | MaksimS | Owned by: | gregboone |
---|---|---|---|
Priority: | major | Milestone: | |
Component: | SDF Provider | Version: | 3.2.0 |
Severity: | 3 | Keywords: | |
Cc: | External ID: |
Description
It seems that inserting invalid geometries (invalid to what extent - still to figure out) into SDF causes breaking spatial index. Alas, after spatial index gets broken either whole SDF get trashed beyond recovering, or a feature class table causing error gets rendered empty. This is rather critical. I.e. 700 Mb file gets reduced to 1 Mb and cannot be recognized/open by FDO anymore.
The running log shows following: 1) "SDF spatial index error.", then... 2) "File is not an SDF file, or is an SDF file with an unsupported version."
This happened to me with SDF's feature class having it's geometric property definition set to MultiGeometry, while actual geometry that was inserted at the time of the error was Polygon.
Change History (2)
comment:1 by , 16 years ago
comment:2 by , 16 years ago
the error is thrown in one of 9 places in http://trac.osgeo.org/fdo/browser/trunk/Providers/SDF/Src/Provider/RTree.cpp
always doing a m_db->put http://svn.osgeo.org/fdo/trunk/Utilities/SQLiteInterface/SQLiteTable.cpp
Another possible cause: file handles pool gets drained. I guess this, in combination with local SDF cache, causes original SDF file to break on first Insert/Update after number of opened files reach 1024 (I guess that's the limit of handles on Windows).