Bug 48580

Informational

GemStone/S 64 Bit

3.4.5, 3.4.4, 3.4.3, 3.4.2, 3.4.1, 3.4

Repository scans and possibleDead objects

Following a markForCollection, the Stone has a list of possibleDead objects which it provides to sessions on abort. These objects must be voted on by the sessions, before each object in the possibleDead can be determined to be truly dead and reclaimed, or still referenced, retained and not reclaimed.

If a repository scan operation, such as objectAudit, listInstances, etc. is done while there are possible dead objects in the repository, the scan in versions up to v3.4.5 does not scan the possible dead.  If objects in the possible dead are determined by voting to be still referenced, this means the scan result could have missed some valid result objects.

In later versions, the repository scan operation may return objects in the results, that will later be finalized and reclaimed. If the results of the scan are retained through the garbage collection cycle and the session commits or aborts, or if the results are persisted, these objects may not existed or that turn out to be a different actual object (if the OOP is reused for another object).

Workaround

Always do a markForCollection and reclaimAll, so that there are no possibleDead, to get the completely reliable results for repository scans.


Last updated: 10/2/20