| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Serialize process of initiliazing map cache to avoid locking the
directory server backends.
|
|
|
|
|
| |
Initializing map cache may take time. Skip slapi-nis lookups untli
the map cache is ready.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently slapi-nis design assumes the map cache is populated by
scanning the original trees on plugin start up. This has few
consequences:
- LDAP server cannot serve LDAP clients until all plugins are
initialized
- slapi-nis cannot ask SSSD to resolve external identities at
this point as SSSD will need to talk to the LDAP server which
is at this point not listening for connections. SSSD will put
whole IPA domain into offline and always will respond
with negative result
To solve these issues, schedule tree scan after LDAP server startup.
The problem here is that it is not possible to reliably detect when
389-ds starts to listen to the incoming connections. However, it is
possible to schedule an event into 389-ds event queue that will run
shortly after start of the event loop. Given that the call back function
which is registered to be called is called within the event loop thread,
one can fire off another thread and wait in the thread function some
time until the LDAP server is ready for connections.
The time interval is something that would depend on a specific
deployment profile but experiments show that having 5 seconds delay
should be enough as event queue is created just before starting the
listeners.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add {nis,schema-compat}-ignore-subtree (subtrees under which we ignore
contents and updates )and {nis,schema-compat}-restrict-subtree (subtrees
out of which we ignore contents and updates, if set) settings, and
default the former to "cn=tasks,cn=config".
This should avoid cases where we're looking through the ldbm backend for
entries which have a dangling reference to a newly-added task (which,
because it's in the DSE, means we acquire an ldbm lock after acquiring
our internal lock) while also updating a compat entry after its source
entry is modified (for example, by the memberOf plugin, which results in
us attempting to acquire our lock while the ldbm lock is already held).
|
|
|
|
|
|
|
|
|
|
| |
Add a schema-compat-relevant-subtree configuration option, listing the
only parts of the DIT that we should ever look at, either as source
entries or as other entries which contain data which might be pulled in
as part of computing the contents of compat entries.
This is more or less the whitelist to schema-compat-ignore-subtree's
blacklist.
|
|
|
|
|
|
|
| |
Add a schema-compat-ignore-subtree configuration option, listing parts
of the DIT that we should never look at, neither as source entries nor
as random other entries which contain data which might be pulled in as
part of computing the contents of compat entries.
|
|
|
|
|
|
| |
When we fail to write-lock our cache, cancel our update attempt. We'll
fall out of sync with the real data, but for now at least, that's better
than completely hosing the cache by updating it without the lock.
|
| |
|
|
|
|
|
|
| |
Check for SLAPI_PLUGIN_OPRETURN values before we do anything, in case
there's an error from the backend operation, where the server calls the
postop plugins anyway.
|
|
|
|
|
|
| |
When checking if we can skip processing for a given change, pay
attention to whether or not the changes cause the entry to need to be
added or removed from a map (#912673).
|
| |
|
|
|
|
|
|
|
|
|
| |
* Check for BETXN support at build-time, provide options for disabling
or requiring that it be available for build to succeed.
* Track whether or not BETXN support is enabled in the plugin-local
state.
* Skip processing in post/internalpost callbacks if BETXN support is enabled.
* Skip work in betxnpost callbacks if BETXN support is disabled.
|
|
|
|
|
|
|
|
|
|
| |
When NIS Plugin and Schema Compatibility Plugin config entries include
nsslapd-pluginbetxn: on
(the value could be yes, true or 1, too),
the plugins' update callbacks (add, delete, modify, and modrdn) are
called at the betxn pre/postop timing. By default, the value of
nsslapd-pluginbetxn is off.
(See also https://fedorahosted.org/389/ticket/351)
|
|
|
|
|
|
|
| |
Transaction support the way we added it is an all-or-nothing proposition
for a server installation, which turned out to be problematic, so 389 is
going to pursue another strategy for that. The new way requires that we
not register as a betxn plugin, ever.
|
|
|
|
|
| |
We assumed that slapi_mods_add_smod() took ownership of the smod that we
pass in, when it really just keeps the contents.
|
| |
|
| |
|
| |
|
|
|
|
| |
official mods list already narrows down the work needed to get the results we're interested in seeing
|
|
|
|
| |
this was causing tests to fail when even the modification time wasn't changing, and we later mistook the NULL array of mods to mean that we hadn't worked them out, which caused us to do the work unnecessarily
|
|
|
|
|
| |
into doing completely unnecessary work for other plugins that modify
an entry to give it the same contents that it already has
|
|
|
|
| |
before and won't be part of this map
|
| |
|
|
|
|
| |
transaction ID, just return, and have faith that we'll be called again in the transaction post
|
|
|
|
| |
answering
|
|
|
|
|
|
| |
already have, so that we can pass the transaction ID around; this
includes additional parameters for a number of functions and a new
callback data type for backend_set_config_entry_add_cb()
|
|
|
|
|
|
| |
allocates internal state each time but doesn't clean up any that's
aready there if you reuse the block
- correctly free values we use when constructing compat entries
|
|
|
|
| |
slapi_search_internal_callback_pb()
|
|
|
|
| |
failure
|
| |
|
| |
|
|
|
|
|
|
| |
misleading debug message
- set IPV6_V6ONLY to avoid logging an expected EADDRINUSE error
|
|
|
|
| |
passing the TXN ID around, which means we deadlock if we actually do it
|
|
|
|
| |
data, and when we're later called for a modify request which doesn't modify any of those attributes, skip recalculating the entry contents (should make a dent in #771493).
|
| |
|
|
|
|
|
| |
- make SDN lists/queues also have a sorted companion which we can use
for presence testing
|
| |
|
|
|
|
| |
#10107)
|
| |
|
|
|
|
| |
entries as direct subordinates of the group entry
|
|
|
|
|
| |
- where we were applying a filter test after retrieving an entry, just
let the retrieval function do it
|
|
|
|
| |
optionally handling filters at each step of the way
|
| |
|
| |
|
|
|
|
|
|
| |
say we should do
- use whether or not the plugin_base is initialized as in indicator of
whether the plugin's been started or not
|
| |
|
|
|
|
| |
same map deserve to be updated, too
|
| |
|