Failed DSfW upgrade: Searching for the wrong domain guid srv records

  • 7009685
  • 02-Nov-2011
  • 27-Apr-2012

Environment

Open Enterprise Server 2sp2 (oes2sp2)
Open Enterprise Server 2SP3 (oes2sp3)
Domain Services for Windows
DSfW

Situation

Upgrading from oes2sp2 to oes2sp3

Prior to attempting to upgrade to oes2sp3
DSfW was previously installed, removed the re-installed again with out properly cleaning up the tree.
DSfW install failed, then started over.

The /var/opt/novell/xad/log/ndsdcinit.log shows the following errors
2011-11-12 12:00:49 /opt/novell/xad/lib64/perl/upgrade_dns_data.pm:185 Could not create the correct domain guid entry
Finding the pdc record with the wrong length

2011-11-12 12:09:35 Updated domain with ACL assignment for uniquedomainid
2011-11-12 12:09:35 Executing ... SASL_PATH=/opt/novell/xad/lib64/sasl2 LD_PRELOAD=/opt/novell/xad/lib64/libadmpasswd.so /usr/bin/ldapmodify -f /tmp/tmp.HktsVXdj
2011-11-12 12:09:35 Failed to update cn=server-dsfw,Could not resolve the domain.
,o=ttc with domainPartitionList as cachedAttrOnExtRef:247 [ldapmodify: invalid format (line 2) entry: "cn=server-dsfw,Could not resolve the domain."] at /opt/novell/xad/lib64/perl/upgrade2sp3.pm line 410.



Resolution

The domain guid is inconsistent.  When a new DSfW domain is created a new random domain guid is created.  If there are remnants of the domain guid from the first install mixed with the current domain guid from the second install, the upgrade will fail.  SRV records will also be incorrect.

Create a script to resolve the resolve the domain guid and SRV records making them consistent through out the domain.

Edit the /opt/novell/xad/lib64/perl/upgrade_dns_data.pm
Change line 87 which should look like this:
$zone_name = "cn=$domainname,ou=novell,$domain_container";
Change lin 87 to:
$zone_name = "cn=$domainname,ou=OESSystemObjects,$domain_container";

Create a script to run this module:
touch  /opt/novell/xad/sbin/upgrade_dns.pl

Then add the following to the script

#!/usr/bin/perl -I. -I.. -I/opt/novell/xad/lib64/perl -I/opt/novell/xad/lib/perl
use upgrade_dns_data qw(upgrade_dns_data);

Before executing the script, first get a ticket for Administrator:
kinit administrator

Then run the script:
/opt/novell/xad/sbin/upgrade_dns.pl

Now run the upgrade_dsfw script:
/opt/novell/xad/sbin/upgrade_dsfw.pl