https://bugs.openldap.org/show_bug.cgi?id=9676

          Issue ID: 9676
           Summary: slapadd -n0 does need -F parameter, despite the
                    documentation
           Product: OpenLDAP
           Version: 2.5.7
          Hardware: All
                OS: All
            Status: UNCONFIRMED
          Severity: normal
          Priority: ---
         Component: slapd
          Assignee: [email protected]
          Reporter: [email protected]
  Target Milestone: ---

My reading of the documentation of slapadd is, that when `slapadd -n0
-linit0.ldif` is called, and the default config directory exists, and is empty,
sladadd will create the cn=config database in the default config directory.

```
-F confdir
     specify  a  config  directory.   If  both -f and -F are specified, the
config file will be read and converted to config directory format and
     written to the specified directory.  If neither option is specified, an
attempt to read the default config directory  will  be  made  before
     trying  to  use the default config file. If a valid config directory
exists then the default config file is ignored. If dry-run mode is also
     specified, no conversion will occur.

```

My default config directory is "/data/config" (
CFLAGS="-DSLAPD_DEFAULT_CONFIGDIR='\"/data/config\"' )

calling strace slapadd -n0 -linit0.ldif prints:

[pid 573949] newfstatat(AT_FDCWD, "/data/config",  <unfinished ...>
[pid 573949] <... newfstatat resumed>{st_mode=S_IFDIR|0755, st_size=4096, ...},
0) = 0
[pid 573949] mmap(NULL, 1052672, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_ANONYMOUS, -1, 0 <unfinished ...>
[pid 573949] <... mmap resumed>)        = 0x7f050183a000
[pid 573949] gettimeofday( <unfinished ...>
[pid 573949] <... gettimeofday resumed>{tv_sec=1631220679, tv_usec=401535},
NULL) = 0
[pid 573949] openat(AT_FDCWD, "/data/config/cn=config.ldif", O_RDONLY
<unfinished ...>
[pid 573949] <... openat resumed>)      = -1 ENOENT (No such file or directory)
[pid 573949] munmap(0x7f050183a000, 1052672 <unfinished ...>
[pid 573949] <... munmap resumed>)      = 0
[pid 573949] newfstatat(AT_FDCWD, "//etc/openldap/slapd.conf",  <unfinished
...>
[pid 573949] <... newfstatat resumed>0x7ffda7228410, 0) = -1 ENOENT (No such
file or directory)
[pid 573949] write(2, "slapadd: bad configuration file!\n", 33 <unfinished ...>

So it fails.

If I call instead slapadd -n0 -linit0.ldif -F/data/config

the output is
[pid 575257] openat(AT_FDCWD, "/home/d/data/config", O_RDONLY|O_CLOEXEC
<unfinished ...>
[pid 575257] <... openat resumed>)      = 12
[pid 575257] epoll_ctl(4, EPOLL_CTL_ADD, 12,
{events=EPOLLIN|EPOLLOUT|EPOLLRDHUP|EPOLLET, data={u32=740160072,
u64=139733206168136}} <unfinished ...>
[pid 575257] <... epoll_ctl resumed>)   = -1 EPERM (Operation not permitted)
[pid 575257] epoll_ctl(4, EPOLL_CTL_DEL, 12, 0xc0005a1b34 <unfinished ...>
[pid 575257] <... epoll_ctl resumed>)   = -1 EPERM (Operation not permitted)
[pid 575257] getdents64(12,  <unfinished ...>
[pid 575257] <... getdents64 resumed>0xc000710000 /* 2 entries */, 8192) = 48
[pid 575257] getdents64(12,  <unfinished ...>
[pid 575257] <... getdents64 resumed>0xc000710000 /* 0 entries */, 8192) = 0
[pid 575257] close(12 <unfinished ...>
[pid 575257] <... close resumed>)       = 0
…

and data/config is filled with content

-- 
You are receiving this mail because:
You are on the CC list for the issue.

Reply via email to