ERROR: Parent object with class "Could not read Name" is not a valid container

  • 7017459
  • 01-Apr-2016
  • 01-Apr-2016

Environment

Novell eDirectory 8.7 for All Platforms

Situation

ERROR: Parent object with class "Could not read Name" is not a valid container
The problem happens when checking a writable replica at the Organization or first level of the tree when the Root partition is not present (Replica depth 1)
The problem doesn't happen if the server holds a replica of [Root], the uppermost replica is further down than the first level (replica depth greater than 1) or the server doesn't hold any replica (replica depth -1).
Right after running the repair you may notice with dsbrowse or iMonitor that if you check the Schema base class for the Tree Root, instead of specifying "Tree Root" as it did before the repair, it now says "Invalid ID". If you check the flags of the Tree Root object, you will notice as well that a new flag has been added, "Verify CTS".

The Schema base class information will be corrected the next time the backlinker process runs (you can force it by typing set dstrace=*b). The additional flag will also be cleared when the process runs.
If you check the attributes of the Tree Root object, you will find that the "T" attribute is missing.

Resolution

If you can verify that the class is being set back to what it was after running the backlinker process, then this is not a problem but a cosmetic issue. In order to get rid of it though you may:

 - Update your server to eDirectory 8.7.1 (this default behavior has changed in 8.7.1, changing only the backlinker flag if necessary)

 - Place a replica of [Root] in the server that is giving you problems. You may then remove it and make sure that the naming attribute (the T attribute) is present in the external reference.

Additional Information

Starting with eDirectory 8.7 it is mandatory for external reference objects to cache the naming attribute. With eDirectory 8.7, when running a local database repair, every external reference that didn't have this information was marked to be rebacklinked by setting the "Verify CTS" flag and setting its base class to all FF's. This is working as designed, but it brings the problem that when a real object wants to check the authenticity of its parents later during the same repair, because its base class has been cleared, it fails to do so and reports the error "Could not read name".
A Dsrepair log showing this kind of error would look like:

Start:  Monday, September 29, 2003   7:35:46 am Local Time
[1 of 3] External   : T=ACMETREE
Total Objects = 71, UNKNOWN class objects = 0, Total Values = 709
[2 of 3] Read Write : O=ORG.T=ACMETREE

ERROR: Parent object with class: "Could not read Name" is not a valid container
to ID: 0000802E, "O=ORG.T=ACMETREE"

Total Objects = 207, UNKNOWN class objects = 0, Total Values = 7248
[3 of 3] Read Write : OU=SLP.O=ORG.T=ACMETREE

Total Objects = 20, UNKNOWN class objects = 0, Total Values = 284


Formerly known as TID# 10087562

Formerly known as TID# NOVL92998