Red Hat Bugzilla – Bug 485694
Cross Platform Migration Fails with: Unable to access nsslapd-rundir: Bad address
Last modified: 2015-01-04 18:36:36 EST
Description of problem:
RHEL 4 32BIT Directory Server 7.1 --> RHEL 5 32BIT Directory Server 8.1
Running the migrate-ds-admin.pl results in the following error and then hangs:
[root@jennyv4 dirsrv]# /usr/sbin/migrate-ds-admin.pl --cross --oldsroot /opt/redhat-ds --actualsroot /usr/lib/dirsrv General.ConfigDirectoryAdminPwd=Secret123
Beginning migration of Directory and Administration servers from /opt/redhat-ds . . .
Beginning migration of directory server instances in /opt/redhat-ds . . .
Your new DS instance 'slapd-jennyv2' was successfully created.
[13/Feb/2009:15:15:53 -0500] - Unable to access nsslapd-rundir: Bad address
[13/Feb/2009:15:15:53 -0500] - Ensure that user "nobody" has read and write permissions on (null)
[13/Feb/2009:15:15:53 -0500] - Shutting down.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Install DS 7.1SP7 RHEL432bit
Export the backends with db2ldif
Stop the services
Tar up /opt/redhat-ds
Copy the tarball to the RHEL532BIT machine
2. Install DS8.1 on RHEL532BIT
Untar with -o option (tar -xvof)
Make sure the ldif backup files are ldifs in /opt/redhat-ds/slapd-instance/db with same name as their backend
add the original host as alias
3. Run the migration script
Unable to access nsslapd-rundir: Bad address
Ensure that user "nobody" has read and write
migration script hangs
attaching debug output - this attempt was made on Solaris 9 64bit - same machine migration from 7.1 to 8.1.
Created attachment 332213 [details]
Thanks. This confirms my suspicions - patch on the way.
*** DSMigration.pm.in.~1.25.~ 2007-12-13 15:01:46.000000000 -0700
--- DSMigration.pm.in 2009-02-17 08:24:02.000000000 -0700
*** 79,84 ****
--- 79,94 ----
# these are the attributes for which we will always use
# the new value, or which do not apply anymore
+ # for the next major release e.g. when we support migration from the
+ # current release 1.1.x to 1.2 or 2.0, the old version number will
+ # become quite important for migration - for example, when migrating
+ # from older than 1.1 to 1.1.x, we need to add the attributes in the
+ # table below to the new entry because the attribute didn't exist
+ # at all in the old server version - however, when migrating from
+ # e.g. 1.1.x to 2.0, we must preserve the old value - this means
+ # if the user has deleted the attribute from the entry, we must
+ # "migrate" that deletion by removing the attribute from the new
+ # entry
my %ignoreOld =
'nsslapd-errorlog' => 'nsslapd-errorlog',
*** 91,96 ****
--- 101,109 ----
'nsslapd-pluginversion' => 'nsslapd-pluginVersion',
'nsslapd-plugin-depends-on-named' => 'nsslapd-plugin-depends-on-named',
# these are new attrs that we should just pass through
+ 'nsslapd-allow-unauthenticated-binds' => 'nsslapd-allow-unauthenticated-binds',
+ 'nsslapd-saslpath' => 'nsslapd-saslpath',
+ 'nsslapd-rundir' => 'nsslapd-rundir',
'nsslapd-schemadir' => 'nsslapd-schemadir',
'nsslapd-lockdir' => 'nsslapd-lockdir',
'nsslapd-tmpdir' => 'nsslapd-tmpdir',
Created attachment 332233 [details]
cvs commit log
Reviewed by: nkinder (Thanks!)
Fix Description: Need to add any new attributes added in 8.0 and 8.1 to
the ignoreOld hash table in the migration script. The way migration
works, it assumes an attribute is supported in both the old version and
the new version. So if the attribute is absent in the old entry and
present in the new entry, it assumes the user removed the attribute in
the old entry, so removes it in the new entry. The ignoreOld hash table
holds the list of attributes that we should ignore for the purposes of
attribute comparison. These are the attributes we just want to pass
Platforms tested: RHEL5
Flag Day: no
Doc impact: no
*** Bug 427321 has been marked as a duplicate of this bug. ***
This affected me on Fedora 9 going from 1.1.2 to 1.1.3. I had to manually add 'nsslapd-rundir' to my /etc/dirsrv/slapd-name/dse.ldif file before the dirsrv service would start. Should I open a new bug?
I'm not sure what's happening. This is what I did:
installed fedora ds 1.1.2 components (ds base 1.1.3, ds admin 1.1.6, etc.) on Fedora 10. Ran setup-ds-admin.pl. Confirmed that all services were started correctly.
then did a yum upgrade - which installed the fedora ds 1.1.3 components such as fedora-ds-base 1.2.0 fedora-ds-admin-1.1.7, etc.
ran setup-ds-admin.pl -u
Everything worked fine - I did not see any rundir problems.
What version of fedora-ds-base did you start with? Any idea?
I had to add "nsslapd-rundir: /var/lib/dirsrv" under cn: config before the "dirsrv" service would start. I was getting the same error "Unable to access nsslapd-rundir: Bad address" until I added that line.
Had you upgrade from an even earlier version before? nsslapd-rundir was added in Fedora DS 1.1.0
Yes, my DS is fairly old but I do not remember the first version I used. It may have been prior to 1.1.0. I know it was prior to Fedora 9, was around 2007, and was prior to when the packages were in Fedora.
Ok. Just want to make sure this is not a recent problem. But it is a problem nonetheless.
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.