https://bugs.openldap.org/show_bug.cgi?id=9930
Issue ID: 9930
Summary: test050 deadlock on BSD OSes
Product: OpenLDAP
Version: 2.5.13
Hardware: All
OS: All
Status: UNCONFIRMED
Keywords: needs_review
Severity: normal
Priority: ---
Component: slapd
Assignee: bugs(a)openldap.org
Reporter: quanah(a)openldap.org
Target Milestone: ---
Initially reported to me directly as an issue with NetBSD 9.1, I was able to
reproduce this with FreeBSD 13.1 as well. Investigation ongoing.
Running test050 in a loop eventually results in a deadlock in one of the 4
slapd provider processes.
--
You are receiving this mail because:
You are on the CC list for the issue.
https://bugs.openldap.org/show_bug.cgi?id=9898
Issue ID: 9898
Summary: slapd-addel.c contains invalid struct initialization
which does not compile on HP-UX aCC
Product: OpenLDAP
Version: 2.6.3
Hardware: All
OS: Other
Status: UNCONFIRMED
Keywords: needs_review
Severity: normal
Priority: ---
Component: slapd
Assignee: bugs(a)openldap.org
Reporter: michael.osipov(a)siemens.com
Target Milestone: ---
My compiler (cc: HP C/aC++ B3910B A.06.29 [Oct 18 2016]) gives me:
/opt/aCC/bin/aCC -Ae -g -I../../include -I../../include -I/opt/ports/include
-I/opt/ports/include -c -o slapd-addel.o slapd-addel.c
"slapd-addel.c", line 68: error #2029: expected an expression
LDIFRecord record = {};
^
"slapd-addel.c", line 70: error #2029: expected an expression
struct berval bv = {};
^
This is invalid C code, it can be easily solved by using "{0}" and the code
does compile.
--
You are receiving this mail because:
You are on the CC list for the issue.
https://bugs.openldap.org/show_bug.cgi?id=9892
Issue ID: 9892
Summary: LDAP_TXN_SPECIFY assumes cleanup responsibility for
writes but never performs it
Product: OpenLDAP
Version: unspecified
Hardware: All
OS: All
Status: UNCONFIRMED
Keywords: needs_review
Severity: normal
Priority: ---
Component: slapd
Assignee: bugs(a)openldap.org
Reporter: ondra(a)mistotebe.net
Target Milestone: ---
When TXN extop is accepted and the client sends some write ops, the cleanup
path is skipped within do_modify/do_add/... however the data is never actually
freed when the transaction is being settled (regardless of whether it was
committed successfully or aborted).
Confirmed to happen with do_modify by tests/scripts/lloadd/test007-coherence,
for others it's my assumption based on reading the code.
--
You are receiving this mail because:
You are on the CC list for the issue.
https://bugs.openldap.org/show_bug.cgi?id=9880
Issue ID: 9880
Summary: reqStart filter with trailing zeros is truncated,
which breaks certain searches
Product: OpenLDAP
Version: 2.5.12
Hardware: All
OS: All
Status: UNCONFIRMED
Keywords: needs_review
Severity: normal
Priority: ---
Component: slapd
Assignee: bugs(a)openldap.org
Reporter: subbarao(a)computer.org
Target Milestone: ---
Note: ITS#9358 seems to address this very issue, but it doesn't seem to help
this particular case.
Certain range searches with reqStart on the changelog don't work as expected.
For example:
(!(reqStart<=20220707123456.000000Z))
The idea here is to grab all entries strictly greater than the timestamp. But
slapd truncates zeros in this filter, rewriting it to:
(!(reqStart<=20220707123456Z))
As a result, the reqStart=20220707123456.000000Z entry is the first match since
it is greater than 20220707123456Z, which is not the desired behavior.
I was able to reproduce this issue on 2.5.12 as follows:
1) Start the test043-delta-syncrepl test, let it run almost to the end so that
it makes many changes, and then hit ^Z to suspend the script. I waited until
one of the last occurrences of "Waiting 7 seconds for syncrepl to receive
changes".
2) pkill -CONT -f slapd to restart slapd (but not the test script)
3) ldapsearch -x -h localhost:9011 -b cn=log objectclass=top | grep
'^dn:.*.000000Z'
Look for a change with all trailing zeros. It's not as rare as one might think,
I saw at least one trailing-zeros change in two consecutive runs of the test
script. I suppose you could also just create an entry with all trailing zeros
in the accesslog :-)
4) Run a range search to only return changes after that change (I used -z 1 and
-s one so that it would only give me one result):
ldapsearch -x -z 1 -h localhost:9011 -b cn=log -s one
'(!(reqStart<=20220708012121.000000Z))'
If you see the same entry, then the problem is present.
5) Even if you can't have an accesslog entry with all trailing zeros, you can
still do the above search verbatim and look at the slapd log file
testrun/slapd.1.log:
62c7873f.145b4396 0x7fabf14c9700 conn=1011 op=1 SRCH base="cn=log" scope=1
deref
=0 filter="(!(reqStart<=20220708012121Z))"
The filter being rewritten in the server log seems to indicate that trailing
zeros are being truncated somewhere.
--
You are receiving this mail because:
You are on the CC list for the issue.
https://bugs.openldap.org/show_bug.cgi?id=9929
Issue ID: 9929
Summary: slapo-dynlist unnecessary search for dynamic lists
Product: OpenLDAP
Version: 2.5.12
Hardware: All
OS: All
Status: UNCONFIRMED
Keywords: needs_review
Severity: normal
Priority: ---
Component: overlays
Assignee: bugs(a)openldap.org
Reporter: hyc(a)openldap.org
Target Milestone: ---
An extra initial search is performed by slapo-dynlist to make dynamic groups
filterable. This search is not needed for dynamic lists, but is still
occurring.
--
You are receiving this mail because:
You are on the CC list for the issue.
https://bugs.openldap.org/show_bug.cgi?id=9924
Issue ID: 9924
Summary: Increased/RunAway memory usage slapo-deref
Product: OpenLDAP
Version: 2.5.13
Hardware: x86_64
OS: Linux
Status: UNCONFIRMED
Keywords: needs_review
Severity: normal
Priority: ---
Component: overlays
Assignee: bugs(a)openldap.org
Reporter: erikdewaard(a)gmail.com
Target Milestone: ---
Created attachment 916
--> https://bugs.openldap.org/attachment.cgi?id=916&action=edit
slapd.conf
Increased/RunAway memory usage slapo-deref
Running: 2.5.13
After enabling slapo-deref slapd memory usage increased and growing.
I can reproduce this on every consumer with deref enabled.
From:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
173229 ldap 20 0 26.6g 1.0g 941996 S 4.0 0.8 3674:19 slapd
To:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2745810 ldap 20 0 141.5g 115.8g 468940 S 3.0 92.5 312:42.93 slapd
How best to debug this?
I should probably recompile to get all symbols for slapd available.
#valgrind.sh
valgrind --leak-check=full \
--show-leak-kinds=all \
--extra-debuginfo-path=/usr/lib/debug/usr/lib64/openldap \
--allow-mismatched-debuginfo=yes \
--track-origins=yes \
--error-limit=no \
--verbose \
--log-file=valgrind-out.txt \
/usr/sbin/slapd -F /etc/openldap/slapd.d -u ldap -h "ldap:///
ldaps:/// ldapi:///"
#mleak.sh
LD_PRELOAD=/tmp/mleak/mleak.so \
/usr/sbin/slapd -F /etc/openldap/slapd.d -u ldap -h "ldap:/// ldaps:///
ldapi:///"
sent kill -2
#mleak_report.sh
./mdump /usr/sbin/slapd ml.*
./report.sh | more
fncdump: Cant open linux-vdso.so.1
Memory leaks (14480 total):
--
You are receiving this mail because:
You are on the CC list for the issue.
https://bugs.openldap.org/show_bug.cgi?id=9915
Issue ID: 9915
Summary: Changing slapo-unique to use serialize causes
cn=config replication to fail
Product: OpenLDAP
Version: 2.6.3
Hardware: All
OS: All
Status: UNCONFIRMED
Keywords: needs_review
Severity: normal
Priority: ---
Component: overlays
Assignee: bugs(a)openldap.org
Reporter: quanah(a)openldap.org
Target Milestone: ---
I updated my slapo-unique configuration from:
olcUniqueURI: ldap:///?uid?sub?
to
olcUniqueURI: "serialize ldap:///?uid?sub?"
and replication of the config database fails with the following error:
syncrepl_null_callback: error code 0x50
syncrepl_entry: rid=001 be_modify
olcOverlay={2}unique,olcDatabase={2}mdb,cn=config (80)
syncrepl_entry: rid=001 be_modify failed (80)
--
You are receiving this mail because:
You are on the CC list for the issue.
https://bugs.openldap.org/show_bug.cgi?id=9897
Issue ID: 9897
Summary: ldapcompare return FALSE when dynlist in use
Product: OpenLDAP
Version: 2.6.3
Hardware: All
OS: All
Status: UNCONFIRMED
Keywords: needs_review
Severity: normal
Priority: ---
Component: overlays
Assignee: bugs(a)openldap.org
Reporter: sdalu(a)sdalu.com
Target Milestone: ---
The server configuration enable dynlist with:
overlay dynlist
dynlist-attrset groupOfURLs memberURL member
Entry is:
dn: cn=Admins,ou=Services,ou=Members,dc=zog,dc=com
member: uid=foo,ou=People,dc=zog,dc=com
cn: Admins
objectClass: groupOfNames
The ldap compare will return false, was expected true
ldapcompare -x cn=Admins,ou=Services,ou=Members,dc=zog,dc=com
member:uid=foo,ou=People,dc=zog,dc=com
Now if I comment the dynlist-attrset directive, I will get TRUE for the same
ldapcompare request
--
You are receiving this mail because:
You are on the CC list for the issue.
https://bugs.openldap.org/show_bug.cgi?id=9947
Issue ID: 9947
Summary: Race in epoch.c
Product: OpenLDAP
Version: unspecified
Hardware: All
OS: All
Status: UNCONFIRMED
Keywords: needs_review
Severity: normal
Priority: ---
Component: lloadd
Assignee: bugs(a)openldap.org
Reporter: ondra(a)mistotebe.net
Target Milestone: ---
When epoch_leave() tests whether other threads might still be alive, it can
test things in reverse order, testing too early to catch a thread to come in
and too late to see a thread that just left. If those two saw each other, the
clock would not advance and the data in refs might actually still be a
reachable pointer.
The tests in epoch_leave can actually be simplified leading to machine code not
all compilers could figure out by themselves.
--
You are receiving this mail because:
You are on the CC list for the issue.
https://bugs.openldap.org/show_bug.cgi?id=9925
Issue ID: 9925
Summary: Fix some compilation issues around usage of #if and
#ifdef
Product: OpenLDAP
Version: unspecified
Hardware: x86_64
OS: Linux
Status: UNCONFIRMED
Keywords: needs_review
Severity: normal
Priority: ---
Component: libraries
Assignee: bugs(a)openldap.org
Reporter: connor.smith(a)hitachivantara.com
Target Milestone: ---
Created attachment 918
--> https://bugs.openldap.org/attachment.cgi?id=918&action=edit
git format-patch
I noticed a few issues while working with OpenLDAP that would lead to compiler
warnings and the like in our particular build environment. They're quite minor,
but it would still be good to have them patched upstream.
In include/ac/socket.h:
Use #elif defined(...) for HAVE_WINSOCK and MACOS. All other instances
of these macros use #ifdef or similar. A compiler may warn about them
not being defined.
In libraries/liblber/sockbuf.c, (DOS && PCNFS) and (DOS && NCSA) were
replaced with HAVE_PCNFS and HAVE_NCSA, respectively. It seems logical
to do the same at the only remaining occurrence of DOS, PCNFS, and NCSA.
For context on the latter: the actual warning was about #elif DOS, similar to
#elif HAVE_WINSOCK and #elif MACOS, but looking into it it seemed to make sense
to bring socket.h in line with sockbuf.c.
In libraries/liblunicode/ucdata/ucgendat.c:
Use #if HARDCODE_DATA consistently, replacing two instances of #ifdef.
HARDCODE_DATA is always defined, and this way you can set HARDCODE_DATA
to 0 and have it work, rather than it going down the wrong branch and
failing in these two cases.
An IPR notice, with this work having been done as part of my employment:
The attached file is derived from OpenLDAP Software. All of the
modifications to OpenLDAP Software represented in the following patch
were developed by Hitachi Vantara. Hitachi Vantara has not assigned
rights and/or interest in this work to any party. I, Connor Smith, am
authorized by Hitachi Vantara, my employer, to release this work under
the following terms.
Hitachi Vantara hereby place the following modifications to OpenLDAP
Software (and only these modifications) into the public domain. Hence,
these modifications may be freely used and/or redistributed for any
purpose with or without attribution and/or other notice.
Please let me know if there are any issues with the attached patch, or if
there's anything else I need to do. Thanks.
--
You are receiving this mail because:
You are on the CC list for the issue.