hyc@symas.com wrote:
Greg@Akua.com wrote:
Full_Name: Greg Kerr Version: 2.4.35 OS: NetBSD & FreeBSD URL: ftp://ftp.openldap.org/incoming/ Submission from: (NULL) (50.88.130.68)
MDB is not usable on NetBSD because mdb.c has
sprintf(env->me_txns->mti_wmname, "/MDBw%s", hexbuf);
To create the semaphore name.
This results in a 21 character name which is beyond the 14 allowed per "man sem_open"
That's unfortunate. In Linux this limit is 251 characters. Seems you'd need to use the btoa algorithm to safely fit a hash into this size limit.
Pretty sure we've tested successfully on FreeBSD and MacOSX already, so apparently they don't suffer from this same limit.
mdb.master has been patched to use the btoa algorithm, which reduces our semaphore name length down to 15 chars. On NetBSD we additionally truncate the last to bring it down to 14.
"less than 14 characters in length not including the terminating null character."
I will make a local patch ... and maybe it's a NetBSD bug - or at least the package maintainers ... I will report to him.
It's a NetBSD kernel limitation, which I verified here: http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/kern/uipc_sem.c?rev=1.40&con...
Seems like a stupid limit, but whatever. Also the doc wording is inaccurate, the name can actually be *up to* 14 chars. "Less than 14" to most English speakers means the length must be *less than* 14. I.e., 13 or shorter. But in fact 14 characters are allowed. If you're contacting the NetBSD maintainers already, please tell them their manpage is incorrect.