Degenerate derived objects

A derived object is complete if its VOB database object, data container, and configuration record (CR) are accessible.

Because these entities exist independently, a derived object can become incomplete, or degenerate, if one entity is missing.

Data container deleted

When an unshared DO is removed with rm or by a target rebuild, its VOB database object continues to exist in the VOB database (with a zero reference count), but the data container no longer exists. Such DOs are usually ignored by lsdo, but can be listed with the -zero option. The scrubber utility deletes zero-referenced DOs.

The checkvob command can find and fix missing container problems.

DO deleted from VOB database

When an unshared DO is removed from its VOB database with rmdo, the data container continues to be visible:

% cleartool rmdo Vhelp.log             
Removed derived object "Vhelp.log@@14-Sep.72783".
% cleartool ls Vhelp.log 
Vhelp.log [no config record]

In general, try to avoid using the rmdo command.

CR unavailable

A newly created CR is stored in the dynamic view where its associated DOs were built. If that view becomes unavailable (for example, it is inadvertently destroyed or its host is temporarily down), the DO continues to exist in the VOB database, but operations that must access the CR fail:

cleartool: Error: Unable to find view 
'mars:/viewstore/pink.vws'
from albd: error detected by VersionVault subsystem
cleartool: Error: See albd_log on host mars
cleartool: Error: Unable to contact View - error detected by VersionVault 
subsystem