This allows one LDAP socket to proceed if another fails, and reduces the
impact of a crash becoming a DoS bug, as it only impacts one socket.
This may mean we have a lot of idle tasks, but this should not be a big
issue
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
task_server_set_title(task, "task[ldapsrv]");
- /* run the ldap server as a single process */
- model_ops = process_model_startup("single");
- if (!model_ops) goto failed;
+ /*
+ * Here we used to run the ldap server as a single process,
+ * but we don't want transaction locks for one task in a write
+ * blocking all other reads, so we go multi-process.
+ */
+ model_ops = task->model_ops;
ldap_service = talloc_zero(task, struct ldapsrv_service);
if (ldap_service == NULL) goto failed;