Bug 39943

GemStone/S 64 Bit, 2.3.1, 2.3,,, 2.2.5.x, 2.2.5, 2.2.4, 2.2.x, 2.2, 2.1.4, 2.1.x, 2.1


Index audit did not catch corruption in Btree cached values

Btrees cache a portion of the value within their structures, which in cases of obvious differences between values, avoids the need to fetch the object itself and thus improves query performance.

However, the index audit code audits the actual value, not the cached value.  If the cached portion in the btree was incorrect, while the actual value was correct, indexed queries could return incorrect results while the index audit did not detect the problem.

A case of such discrepency between the actual and cached values occurs when upgrading a repository with indexes from version 2.2.x or earlier to version 2.3 or later.  Due to the introduction of QuadByteStrings in version 2.3, the btree structures were modified, resulting in corruption.  See bugnote for 39915 for details.

Last updated: 10/16/09