[DragonFlyBSD - Bug #2850] /var/run/sem does not exist nor is writeable -- openldap unstartable
bugtracker-admin at leaf.dragonflybsd.org
bugtracker-admin at leaf.dragonflybsd.org
Wed Nov 11 11:06:54 PST 2015
Issue #2850 has been updated by benjolitz.
This install was made several months ago from a USB boot image onto a a PCIE SSD, if that helps narrow down.
One thing that would have made this easier to debug would be if sem_open() had written a warning to the syslog that a vital path (/var/run/sem or whatever LIBTHREAD_SEM_PREFIX points to) doesn't exist.
I believe I can get the exact date for the install image I used if that would confirm the issue
----------------------------------------
Bug #2850: /var/run/sem does not exist nor is writeable -- openldap unstartable
http://bugs.dragonflybsd.org/issues/2850#change-12727
* Author: benjolitz
* Status: New
* Priority: Normal
* Assignee: dillon
* Category: Userland
* Target version:
----------------------------------------
I spent the better part of two hours trying to make OpenLDAP slapd start up using the mdb backend.
Slapd would complain:
56404f69 mdb_db_open: database "dc=telemuse,dc=net": dbenv_open(/var/db/openldap-data).
56404f69 mdb_db_open: database "dc=telemuse,dc=net" cannot be opened: Invalid argument (22). Restore from backup!
56404f69 backend_startup_one (type=mdb, suffix="dc=telemuse,dc=net"): bi_db_open failed! (22)
Using ktrace/kdump I found this:
141609 slapd GIO fd 2 wrote 88 bytes
"56404f69 mdb_db_open: database "dc=telemuse,dc=net": dbenv_open("
141609 slapd RET write 88/0x58
141609 slapd CALL mmap(0,0x101000,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,0xffffffff,0,0)
141609 slapd RET mmap 77860864/0x4a41000
141609 slapd CALL mmap(0,0x201000,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,0xffffffff,0,0)
141609 slapd RET mmap 79101952/0x4b70000
141609 slapd CALL mmap(0,0x10000,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,0xffffffff,0,0)
141609 slapd RET mmap 81203200/0x4d71000
141609 slapd CALL munmap(0x804d80000,0x1000)
141609 slapd RET munmap 0
141609 slapd CALL mmap(0,0x10000,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,0xffffffff,0,0)
141609 slapd RET mmap 81264640/0x4d80000
141609 slapd CALL munmap(0x804d71000,0xf000)
141609 slapd RET munmap 0
141609 slapd CALL open(0x800896500,O_RDWR|O_CREAT|O_CLOEXEC,S_IRUSR|S_IWUSR)
141609 slapd NAMI "/var/db/openldap-data/lock.mdb"
141609 slapd RET open 8
141609 slapd CALL fcntl(0x8,F_SETLK,0xfffffffffffff040)
141609 slapd RET fcntl 0
141609 slapd CALL lseek(0x8,0,0,SEEK_END)
141609 slapd RET lseek 8192/0x2000
141609 slapd CALL mmap(0,0x2000,PROT_READ|PROT_WRITE,MAP_SHARED,0x8,0,0)
141609 slapd RET mmap 9932800/0x979000
141609 slapd CALL fstat(0x8,0x7ffffffff090)
141609 slapd RET fstat 0
141609 slapd CALL unlink(0x7fffffffec60)
141609 slapd NAMI "/var/run/sem/MDBrWwwoS_=F1x"
141609 slapd RET unlink -1 errno 2 No such file or directory
Reading https://www.dragonflybsd.org/cgi/web-man?command=sem_open§ion=3 indicated that this may be something broken with how sem_open is implemented (where else would /var/run/sem ever appear?)
When I set LIBTHREAD_SEM_PREFIX to /tmp, slapd worked.
Therefore, I deduced a possible solution to be:
mkdir -p /var/run/sem
chmod 1777 /var/run/sem
Packages affected by this "fun" error:
net/openldap24-server
... and anyone else who dares use or indirectly calls sem_open().
I would normally consider this a show-stopper bug, but I'll leave that to the experts.
It was not fun to diagnose.
--
You have received this notification because you have either subscribed to it, or are involved in it.
To change your notification preferences, please click here: http://bugs.dragonflybsd.org/my/account
More information about the Bugs
mailing list