]> git.ipfire.org Git - thirdparty/openldap.git/log
thirdparty/openldap.git
5 years agoIntroduce mutex checks
Ondřej Kuzník [Wed, 5 Dec 2018 13:54:37 +0000 (13:54 +0000)] 
Introduce mutex checks

Switched off unless thread debugging is on, but still useful for static
analysis.

5 years agoThread error checking
Ondřej Kuzník [Thu, 29 Nov 2018 12:08:30 +0000 (12:08 +0000)] 
Thread error checking

5 years agoFix a SASL channel-binding leak
Ondřej Kuzník [Thu, 21 Mar 2019 09:49:20 +0000 (09:49 +0000)] 
Fix a SASL channel-binding leak

5 years agoFix race between unlinking a client and processing incoming data
Ondřej Kuzník [Mon, 29 Oct 2018 14:00:24 +0000 (14:00 +0000)] 
Fix race between unlinking a client and processing incoming data

5 years agoMake sure read event is not enabled while upstream_bind is scheduled
Ondřej Kuzník [Fri, 26 Oct 2018 14:44:02 +0000 (15:44 +0100)] 
Make sure read event is not enabled while upstream_bind is scheduled

5 years agoShorten to one epoch per PDU
Ondřej Kuzník [Thu, 18 Oct 2018 14:49:43 +0000 (15:49 +0100)] 
Shorten to one epoch per PDU

A full read cycle can take a very long time if the limits are set too
high.

5 years agoImplement client pending operation limits
Ondřej Kuzník [Thu, 18 Oct 2018 14:59:36 +0000 (15:59 +0100)] 
Implement client pending operation limits

5 years agoStraighten up client pending op tracking
Ondřej Kuzník [Fri, 5 Oct 2018 13:56:19 +0000 (14:56 +0100)] 
Straighten up client pending op tracking

5 years agoEpoch based memory reclamation
Ondřej Kuzník [Fri, 17 Aug 2018 11:28:13 +0000 (12:28 +0100)] 
Epoch based memory reclamation

Similar to the algorithm presented in
https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-579.pdf

Not completely lock-free at the moment. Also the problems with epoch
based memory reclamation are still present - a thread actively observing
an epoch getting stuck will prevent LloadConnections and LloadOperations
being freed, potentially running out of memory.

5 years agoSwitch to LDAP_OTHER when handling a lost upstream.
Ondřej Kuzník [Thu, 2 Aug 2018 09:00:24 +0000 (10:00 +0100)] 
Switch to LDAP_OTHER when handling a lost upstream.

LDAP_UNAVAILABLE signals "the server is shutting down or a subsystem
necessary to complete the operation is offline", so intelligent clients
tend to infer the connection will not be usable any more, which is not
the case here.

5 years agoFix races with backend_retry
Ondřej Kuzník [Tue, 24 Jul 2018 08:56:52 +0000 (09:56 +0100)] 
Fix races with backend_retry

5 years agoSASL and proxyauthz tests
Ondřej Kuzník [Tue, 19 Jun 2018 12:20:32 +0000 (13:20 +0100)] 
SASL and proxyauthz tests

5 years agoAdd TLS tests
Ondřej Kuzník [Fri, 15 Jun 2018 14:14:49 +0000 (15:14 +0100)] 
Add TLS tests

5 years agoTests for monitoring support
Ondřej Kuzník [Wed, 13 Jun 2018 16:08:47 +0000 (17:08 +0100)] 
Tests for monitoring support

5 years agoA failed cn=config ADD needs to be handled
Ondřej Kuzník [Wed, 13 Jun 2018 16:07:44 +0000 (17:07 +0100)] 
A failed cn=config ADD needs to be handled

5 years agoIntroduce SASL support for upstream connections
Ondřej Kuzník [Thu, 24 May 2018 09:16:19 +0000 (10:16 +0100)] 
Introduce SASL support for upstream connections

5 years agoDo not enforce a valid ld in lutil_sasl_interact
Ondřej Kuzník [Thu, 24 May 2018 09:16:55 +0000 (10:16 +0100)] 
Do not enforce a valid ld in lutil_sasl_interact

5 years agoFix backend starttls= setting being ignored
Ondřej Kuzník [Thu, 24 May 2018 09:12:28 +0000 (10:12 +0100)] 
Fix backend starttls= setting being ignored

5 years agoSimplify pause handling
Ondřej Kuzník [Tue, 8 May 2018 15:00:27 +0000 (16:00 +0100)] 
Simplify pause handling

Gets rid of a race where unpause+pause fired in a quick succession would
miss the event_base_loopbreak() call.

5 years agoPermit lloadd to share slapd TLS context
Ondřej Kuzník [Thu, 3 May 2018 14:02:02 +0000 (15:02 +0100)] 
Permit lloadd to share slapd TLS context

5 years agoInitial implementation of cn=config testing script
Nadezhda Ivanova [Tue, 24 Apr 2018 10:04:21 +0000 (13:04 +0300)] 
Initial implementation of cn=config testing script

5 years agoReuse connection walking in monitor for upstreams too
Ondřej Kuzník [Tue, 16 Apr 2019 16:12:51 +0000 (17:12 +0100)] 
Reuse connection walking in monitor for upstreams too

5 years agoReuse connection_walk for client matters
Ondřej Kuzník [Fri, 20 Apr 2018 12:46:34 +0000 (13:46 +0100)] 
Reuse connection_walk for client matters

5 years agoRefactor backend reset
Ondřej Kuzník [Fri, 20 Apr 2018 12:42:36 +0000 (13:42 +0100)] 
Refactor backend reset

Reuse the connection walking facility in timeout management.

5 years agoTighten checks on retry management
Ondřej Kuzník [Fri, 20 Apr 2018 12:28:10 +0000 (13:28 +0100)] 
Tighten checks on retry management

5 years agoClean up backend_retry and its callers.
Ondřej Kuzník [Fri, 20 Apr 2018 11:59:07 +0000 (12:59 +0100)] 
Clean up backend_retry and its callers.

5 years agoFix a race in managing b_dns_req
Ondřej Kuzník [Fri, 20 Apr 2018 11:53:24 +0000 (12:53 +0100)] 
Fix a race in managing b_dns_req

5 years agoFix a new backend not being operational if added via cn=config
Nadezhda Ivanova [Wed, 18 Apr 2018 14:55:30 +0000 (17:55 +0300)] 
Fix a new backend not being operational if added via cn=config

5 years agolibevent 2.0 support
Ondřej Kuzník [Tue, 10 Apr 2018 08:26:56 +0000 (09:26 +0100)] 
libevent 2.0 support

5 years agoDocument config behaviour
Ondřej Kuzník [Thu, 5 Apr 2018 11:06:55 +0000 (12:06 +0100)] 
Document config behaviour

5 years agoReorganise listener support in cn=config and module startup
Ondřej Kuzník [Wed, 4 Apr 2018 15:36:28 +0000 (16:36 +0100)] 
Reorganise listener support in cn=config and module startup

5 years agoIntroduce lload_open_new_listener
Ondřej Kuzník [Wed, 4 Apr 2018 15:32:53 +0000 (16:32 +0100)] 
Introduce lload_open_new_listener

5 years agoSwitch to ldap_parse_url_ext
Ondřej Kuzník [Wed, 4 Apr 2018 15:29:36 +0000 (16:29 +0100)] 
Switch to ldap_parse_url_ext

This simplifies port parsing in the end. Also pass the url to
ldap_open_listener in anticipation of incremental listener config.

5 years agoMake io-threads modification startup-only
Ondřej Kuzník [Wed, 4 Apr 2018 15:37:55 +0000 (16:37 +0100)] 
Make io-threads modification startup-only

5 years agoRecord connect task to allow canceling it
Ondřej Kuzník [Wed, 28 Mar 2018 09:29:42 +0000 (10:29 +0100)] 
Record connect task to allow canceling it

5 years agoRecord pending DNS resolution to be able to cancel
Ondřej Kuzník [Wed, 28 Mar 2018 09:19:14 +0000 (10:19 +0100)] 
Record pending DNS resolution to be able to cancel

5 years agoKeep a reference around for the bind task
Ondřej Kuzník [Wed, 28 Mar 2018 09:16:24 +0000 (10:16 +0100)] 
Keep a reference around for the bind task

5 years agoWork around libevent base not waking up on shutdown
Ondřej Kuzník [Mon, 26 Mar 2018 12:28:38 +0000 (13:28 +0100)] 
Work around libevent base not waking up on shutdown

5 years agoProtect operation when abandoning
Ondřej Kuzník [Fri, 23 Mar 2018 16:19:34 +0000 (16:19 +0000)] 
Protect operation when abandoning

5 years agoImplement runtime monitor (un)registration
Ondřej Kuzník [Fri, 23 Mar 2018 16:16:44 +0000 (16:16 +0000)] 
Implement runtime monitor (un)registration

Unregistration is a hack and we shoould either make the subsystems into
an entry (if monitor allows subentry generation) or implement subsystem
unregistration in back-monitor.

5 years agoDo not unlock upstream without referencing its dying ops
Ondřej Kuzník [Tue, 20 Mar 2018 17:25:11 +0000 (17:25 +0000)] 
Do not unlock upstream without referencing its dying ops

5 years agoModule shutdown support
Ondřej Kuzník [Tue, 20 Mar 2018 17:21:22 +0000 (17:21 +0000)] 
Module shutdown support

5 years agoRework lloadd startup
Ondřej Kuzník [Fri, 16 Mar 2018 13:08:08 +0000 (13:08 +0000)] 
Rework lloadd startup

5 years agoDeal with no backends being configured
Ondřej Kuzník [Fri, 16 Mar 2018 13:05:21 +0000 (13:05 +0000)] 
Deal with no backends being configured

5 years agoRecord the backend name
Ondřej Kuzník [Fri, 16 Mar 2018 12:41:37 +0000 (12:41 +0000)] 
Record the backend name

5 years agoReflect backend URI change in cn=monitor
Ondřej Kuzník [Thu, 5 Apr 2018 10:34:20 +0000 (11:34 +0100)] 
Reflect backend URI change in cn=monitor

5 years agoEnable dynamic configuration
Nadezhda Ivanova [Wed, 21 Feb 2018 09:27:33 +0000 (11:27 +0200)] 
Enable dynamic configuration

5 years agoFix interaction of graceful connection closing and SASL bind support
Ondřej Kuzník [Fri, 23 Feb 2018 13:03:21 +0000 (13:03 +0000)] 
Fix interaction of graceful connection closing and SASL bind support

5 years agoChange log level for unsolicited response
Ondřej Kuzník [Wed, 21 Feb 2018 14:06:00 +0000 (14:06 +0000)] 
Change log level for unsolicited response

5 years agoFix operation status tracking.
Ondřej Kuzník [Wed, 21 Feb 2018 13:51:51 +0000 (13:51 +0000)] 
Fix operation status tracking.

An operation is rejected iff it has to be dropped before we can find an
upstream for it (unless we handle it ourselves, that is). At that point
it is failed unless completed successfully.

This makes a difference for multi-stage binds which alternate between
'failed' (we are waiting on a server response) and 'completed' (server
did what we asked them to, waiting on client to continue).

5 years agoIntroduce infra to handle config changes
Ondřej Kuzník [Tue, 20 Feb 2018 15:45:35 +0000 (15:45 +0000)] 
Introduce infra to handle config changes

5 years agoexpose task functions for invalidation
Ondřej Kuzník [Tue, 20 Feb 2018 15:14:09 +0000 (15:14 +0000)] 
expose task functions for invalidation

5 years agoSplit backend destruction from resetting it
Ondřej Kuzník [Mon, 19 Feb 2018 14:22:40 +0000 (14:22 +0000)] 
Split backend destruction from resetting it

5 years agoIntroduce a new connection status - gentle shutdown
Ondřej Kuzník [Wed, 14 Feb 2018 15:48:53 +0000 (15:48 +0000)] 
Introduce a new connection status - gentle shutdown

5 years agoFix operation counts
Ondřej Kuzník [Wed, 14 Feb 2018 15:44:51 +0000 (15:44 +0000)] 
Fix operation counts

Trying to abandon an operation does not automatically make it completed,
it might have failed already but we're just racing to reach the client
to record that.

5 years agoMove op counting to operation_init
Ondřej Kuzník [Wed, 14 Feb 2018 15:43:16 +0000 (15:43 +0000)] 
Move op counting to operation_init

5 years agoCleanup sasl_bind_mech resets
Ondřej Kuzník [Thu, 8 Feb 2018 23:47:35 +0000 (23:47 +0000)] 
Cleanup sasl_bind_mech resets

5 years agoFix a race on bind response processing.
Ondřej Kuzník [Thu, 8 Feb 2018 23:44:31 +0000 (23:44 +0000)] 
Fix a race on bind response processing.

During response processing, an upstream connection could be marked ready
after a different bind had already been allocated to it, thus allowing
two binds to be in progress on the same connection.

5 years agoImplement pause handlers
Ondřej Kuzník [Wed, 7 Feb 2018 12:38:40 +0000 (12:38 +0000)] 
Implement pause handlers

5 years agoMore meaningful connection type reporting
Ondřej Kuzník [Wed, 7 Feb 2018 12:33:31 +0000 (12:33 +0000)] 
More meaningful connection type reporting

5 years agoModule shutdown
Ondřej Kuzník [Wed, 7 Feb 2018 12:30:58 +0000 (12:30 +0000)] 
Module shutdown

5 years agoRework monitor startup
Ondřej Kuzník [Wed, 7 Feb 2018 10:29:20 +0000 (10:29 +0000)] 
Rework monitor startup

Takes care of dealing with monitor not present/not configured and fix a
monitor startup issue.

5 years agoConvert the load balancer into a backend
Nadezhda Ivanova [Mon, 5 Feb 2018 09:04:02 +0000 (11:04 +0200)] 
Convert the load balancer into a backend

5 years agoUse slapd's config.h
Nadezhda Ivanova [Thu, 1 Feb 2018 15:24:48 +0000 (17:24 +0200)] 
Use slapd's config.h

5 years agoLload cn=monitor initial implementation
Nadezhda Ivanova [Thu, 25 Jan 2018 11:19:05 +0000 (13:19 +0200)] 
Lload cn=monitor initial implementation

5 years agoUpdate tests to support lloadd as a module
Ondřej Kuzník [Wed, 24 Jan 2018 17:48:29 +0000 (17:48 +0000)] 
Update tests to support lloadd as a module

5 years agoResolve authzid after a successful auth
Ondřej Kuzník [Thu, 18 Jan 2018 14:46:24 +0000 (14:46 +0000)] 
Resolve authzid after a successful auth

5 years agoAdd SASL documentation on SASL handling
Ondřej Kuzník [Wed, 17 Jan 2018 15:31:11 +0000 (15:31 +0000)] 
Add SASL documentation on SASL handling

5 years agoReset pin on simple bind
Ondřej Kuzník [Wed, 17 Jan 2018 15:30:24 +0000 (15:30 +0000)] 
Reset pin on simple bind

5 years agoFix pinned operation forwarding
Ondřej Kuzník [Wed, 17 Jan 2018 15:29:58 +0000 (15:29 +0000)] 
Fix pinned operation forwarding

5 years agoOperation abandon related fixes
Ondřej Kuzník [Wed, 17 Jan 2018 15:27:14 +0000 (15:27 +0000)] 
Operation abandon related fixes

5 years agoManage c_sasl_bind_mech on upstream
Ondřej Kuzník [Wed, 17 Jan 2018 15:16:05 +0000 (15:16 +0000)] 
Manage c_sasl_bind_mech on upstream

5 years agoClear c_auth on every bind request
Ondřej Kuzník [Tue, 16 Jan 2018 17:43:20 +0000 (17:43 +0000)] 
Clear c_auth on every bind request

For a new bind request, this is obvious, for SASL bind requests, we do
not know the final identity until we have finished handling it, make
sure it stays empty until then.

5 years agoDo not compare c_auth when NULL
Ondřej Kuzník [Tue, 16 Jan 2018 17:32:37 +0000 (17:32 +0000)] 
Do not compare c_auth when NULL

5 years agoHandle EXTERNAL mechanism
Ondřej Kuzník [Wed, 13 Dec 2017 17:51:20 +0000 (17:51 +0000)] 
Handle EXTERNAL mechanism

Will only try to extract the TLS client certificate name if used during
the last handshake.

5 years agoSASL bind support
Ondřej Kuzník [Wed, 13 Dec 2017 17:39:42 +0000 (17:39 +0000)] 
SASL bind support

Introduces pinned operations. When SASL bind finishes, we might still
have to maintain a link between the client an an upstream for future
bind operations if we got a SASL Bind in Progress result code. We zero
out the msgids and remember a server-unique identifer on the client and
the relevant operation that lets us retrieve that link again. This
operation is reclaimed just like anything else when connections drop.

Hopefully, this should work for LDAP TXN and VC Exop support with SASL
later as well since it allows for many-to-many links to exist.

5 years agoRefactor request parsing and sending.
Ondřej Kuzník [Wed, 13 Dec 2017 17:34:59 +0000 (17:34 +0000)] 
Refactor request parsing and sending.

We have to do most of out processing before we send the request over to
the upstream. If we don't, we might be too late and the response might
have arrived already.

5 years agoPassing the client directly will allow clearing it from op
Ondřej Kuzník [Wed, 13 Dec 2017 16:09:26 +0000 (16:09 +0000)] 
Passing the client directly will allow clearing it from op

5 years agoRFC4511 says Binds do not abandon, send a "reset" bind instead
Ondřej Kuzník [Wed, 13 Dec 2017 16:03:36 +0000 (16:03 +0000)] 
RFC4511 says Binds do not abandon, send a "reset" bind instead

5 years agoInitial extension to upstream selection
Ondřej Kuzník [Wed, 13 Dec 2017 15:56:10 +0000 (15:56 +0000)] 
Initial extension to upstream selection

5 years agoDo not copy files from slapd, just link them
Ondřej Kuzník [Fri, 19 Jan 2018 17:12:49 +0000 (17:12 +0000)] 
Do not copy files from slapd, just link them

5 years agoEnable compilation of the load balancer as a module
Nadezhda Ivanova [Thu, 11 Jan 2018 15:43:18 +0000 (17:43 +0200)] 
Enable compilation of the load balancer as a module

To compile the balancer as a slapd module, pass --enable-balancer=mod to ./configure
Use --enable-balancer(=yes) to compile as standalone server.

5 years agoClean ups and renames to coexist with slapd
Nadezhda Ivanova [Mon, 18 Dec 2017 10:53:39 +0000 (12:53 +0200)] 
Clean ups and renames to coexist with slapd

5 years agoUpdate test suite
Ondřej Kuzník [Wed, 13 Dec 2017 15:26:49 +0000 (15:26 +0000)] 
Update test suite

5 years agorequest_abandon RFC4511 conformance
Ondřej Kuzník [Wed, 13 Dec 2017 12:17:23 +0000 (12:17 +0000)] 
request_abandon RFC4511 conformance

5 years agoLog timed out connections more clearly
Ondřej Kuzník [Wed, 22 Nov 2017 14:01:30 +0000 (14:01 +0000)] 
Log timed out connections more clearly

5 years agoProtect currently impossible branch
Ondřej Kuzník [Wed, 22 Nov 2017 13:15:54 +0000 (13:15 +0000)] 
Protect currently impossible branch

5 years agoIntroduce operation timeout machinery
Ondřej Kuzník [Wed, 22 Nov 2017 13:05:11 +0000 (13:05 +0000)] 
Introduce operation timeout machinery

5 years agoFactor out abandon message preparation
Ondřej Kuzník [Wed, 22 Nov 2017 12:59:21 +0000 (12:59 +0000)] 
Factor out abandon message preparation

5 years agoRecord operation activity times
Ondřej Kuzník [Wed, 22 Nov 2017 12:56:53 +0000 (12:56 +0000)] 
Record operation activity times

5 years agoUpstream queues ordered by c_connid
Ondřej Kuzník [Wed, 22 Nov 2017 12:55:20 +0000 (12:55 +0000)] 
Upstream queues ordered by c_connid

In preparation for operation timeout events.

5 years agoMake timeouts common and redo connection read timeouts
Ondřej Kuzník [Thu, 16 Nov 2017 13:34:40 +0000 (13:34 +0000)] 
Make timeouts common and redo connection read timeouts

5 years agoWe should just be able to call backend_retry
Ondřej Kuzník [Wed, 22 Nov 2017 11:03:33 +0000 (11:03 +0000)] 
We should just be able to call backend_retry

5 years agoSet up TLS context for backends
Ondřej Kuzník [Thu, 16 Nov 2017 12:34:21 +0000 (12:34 +0000)] 
Set up TLS context for backends

5 years agoClient TLS support
Ondřej Kuzník [Mon, 25 Sep 2017 10:17:04 +0000 (11:17 +0100)] 
Client TLS support

5 years agoUpstream TLS support
Ondřej Kuzník [Mon, 25 Sep 2017 10:15:59 +0000 (11:15 +0100)] 
Upstream TLS support

5 years agoRespond to timeout events properly
Ondřej Kuzník [Thu, 16 Nov 2017 14:50:10 +0000 (14:50 +0000)] 
Respond to timeout events properly

5 years agoUpdate write timeout to timeval
Ondřej Kuzník [Thu, 16 Nov 2017 12:39:51 +0000 (12:39 +0000)] 
Update write timeout to timeval

5 years agoMove bind handling to bind.c
Ondřej Kuzník [Wed, 27 Sep 2017 10:49:39 +0000 (11:49 +0100)] 
Move bind handling to bind.c

5 years agoMove client related functions to client.c
Ondřej Kuzník [Wed, 27 Sep 2017 10:33:28 +0000 (11:33 +0100)] 
Move client related functions to client.c