第 8 章 Red Hat Enterprise Linux 中的目录服务器


关于 Red Hat Enterprise Linux 的目录服务器

这部分论述了红帽目录服务器的主服务器组件中的更改 - 389-ds-base 软件包,其中包括 LDAP 服务器本身以及其管理的命令行工具和脚本。这个软件包是 Red Hat Enterprise Linux 基本订阅频道的一部分,因此在所有 Red Hat Enterprise Linux 服务器系统中提供它,这依赖于它。
rhel-x86_64-server-6-rhdirserv-9 的额外订阅频道提供了其他红帽目录服务器组件,如 Directory Server Console。还需要订阅此频道才能获得对红帽目录服务器的支持。本文档中不描述对此频道中其他组件的更改。
Red Hat Directory Server 版本 9 可用于 Red Hat Enterprise Linux 6。有关 Directory Server 9 入门的详情请参考 https://access.redhat.com/products/red-hat-directory-server/get-started-v9 以了解 完整文档。(BZ#1333801)

在部分复制中跳过的大量更新不再会导致性能丢失

在部分复制过程中,如果存在大量跳过的更新,供应商以前可以获取长时间的副本,且无法在会话结束时更新 Replica Update Vector (RUV)。然后,这会导致下一个会话评估同一跳过的更新,从而导致性能降低。这个程序错误已通过添加系统子条目而解决,即使没有可用于复制的更改,系统子条目也会被更新。(BZ#1259383)

修复了在修剪 retro changelog 时崩溃的问题

当修剪 retro changelog (retroCL)时,条目会首先从 changelog 本身中删除,然后从缓存中删除。389-ds-base 服务器是,没有检查来验证缓存中是否实际存在条目,这可能会导致服务器尝试删除不存在的条目,然后在由于其小大小而没有所有更改条目的系统中崩溃。添加了一个检查,以确保只删除缓存中实际存在的条目,服务器在修剪 retro changelog 时不再崩溃。(BZ#1244970)

修复了 backend add 功能中的崩溃

当 backend add 函数中的 BE_TXN 回调在缓存条目上失败时,该函数尝试释放条目两次,而不是将其从缓存中删除,然后将其释放。在这个版本中,在 backend add 功能中添加了 remove 和 free code,功能不再尝试释放缓存的条目两次。(BZ#1265851)

当尝试替换不存在的属性时,389-ds-base 服务器不再崩溃

当在不提供新值的情况下对不存在的属性执行替换操作时,该条目会存储不正确元数据:一个空的已删除值,而无需属性删除更改状态号(CSN)。然后,这个条目可能会导致内存崩溃并导致服务器意外终止。要修复这个问题,现在分配了存储元数据的额外空间,服务器不再在此场景中崩溃。(BZ#1298496)

389-ds-base 不再会因为修改的条目被锁定而挂起

在修改操作期间,修改后的条目将插入到条目缓存中并锁定,直到返回修改后的条目为止。如果条目在提交后但返回操作之前从条目缓存中删除,在返回操作之前,修改的条目都会锁定在同一条目上,然后导致服务器挂起。这个程序错误已通过添加一个标志来解决,以便可以解锁该条目缓存中的条目,服务器是否在这种情况下不再挂起。(BZ#1273552)

修复了在目录服务器中后端删除过程中的死锁

在以前的版本中,在删除后端过程中,事务信息不会传递给数据库帮助程序功能之一。如果插件试图访问事务锁定的区域中的数据,这可能会导致死锁。在这个版本中,事务信息传递给所有必要的数据库帮助程序功能,在上述情况下不再会出现死锁。(BZ#1278585)

如果一个请求被取消,ns-slapd 不再在多个异步搜索中崩溃

当在持久连接中异步请求多个简单页面结果搜索,并且其中一个请求被取消,则异步请求之间的竞争可能会出现,并导致 ns-slapd 服务崩溃。这个程序错误已被解决,ns-slapd 不再会因为请求而崩溃。(BZ#1247792)

现在,在搜索失败后可以正确地发布简单的页结果插槽

在以前的版本中,如果简单页面的结果在 Directory Server 后端中失败,则其插槽不会被释放,这会导致连接对象随时间积累了未发布的插槽。这个问题已被解决,现在可以在搜索失败时正确发布插槽。(BZ#1290243)

当释放搜索结果对象时,ns-slapd 不再崩溃

在以前的版本中,当 Directory Server 释放搜索结果对象时,在将空闲信息设置为 页结果句柄前会有一个 短暂的时间。如果因为此期间内超时而发布 paged-results 句柄,则会出现双可用事件,从而导致 ns-slapd 崩溃。这个问题已被消除,在释放搜索结果对象时不会再发生双自由。(BZ#1267296)

修复了异步简单页面结果请求中的死锁

以前,在异步简单页面中死锁的死锁会导致请求因为回归而造成另一个自我死锁。要解决这个问题,连接对象上的一个简单的 PR_Lock 已被 re-entrant PR_Monitor 替换。因此,死锁 不再发生。(BZ#1296694)

删除在 master 服务器上没有值的属性现在可以正确复制

在以前的版本中,当删除 master 服务器上没有值的属性时,删除不会复制到其他服务器。导致这个程序错误的回归已被修复,更改现在可以按预期复制。(BZ#1251288)

目录服务器不再记录 false attrlist_replace 错误

在以前的版本中,Directory 服务器在某些情况下可能会重复记录 attrlist_replace 错误信息。这个问题是由因为使用错误的内存复制功能导致的内存崩溃造成的。内存复制功能已被 memmove 替代,这样可防止这种情况内存损坏,服务器不再记录这些错误消息。(BZ#1267405)

cleanallruv 现在 完全清除更改日志

在以前的版本中,在 cleanAllRUV 任务完成后,更改日志仍然包含清理的 rid 的条目。因此,RUV 可能包含不必要的数据,RUV 元素可能会缺少副本 URL。现在,清理所有RUV 会按预期清理更改日志。(BZ#1270002)

复制失败不再会在额外更新后造成缺失的更改

在以前的版本中,如果复制更新在消费者端失败,则永远不会因为复制异步结果线程中的一个错误而重试,这会导致它在另一个更新成功复制前丢失失败。第二个更新还更新了消费者 Replica Update Vector (RUV),第一个(失败)更新会丢失。在本发行版本中,复制失败会导致连接关闭,停止复制会话,并防止后续更新更新更新消费者 RUV,它允许供应商在下一个复制会话中重试操作。因此,没有更新会丢失。(BZ#1294770)

不必要的 保留 条目不再会导致缺少复制

在以前的版本中,在复制过程中会创建一个 keep alive 条目,从而导致在将条目添加到副本 changelog 时造成竞争条件,并导致操作从复制中丢弃。在这个版本中,不必要的 保留 条目创建已被取消,且不再发生缺失的复制。(BZ#1307152)

现在,nsMatchingRule 可以正确地应用到属性信息

在以前的版本中,当在索引条目中动态更新 nsMatchingRule 时,该值不会应用到属性信息。这会导致 dbverify 工具报告错误的数据库崩溃。在本发行版本中,nsMatchingRule 更改会被正确应用到属性信息,dbverify 不再报告数据库崩溃。(BZ#1236656)

tombstone 条目不再创建不必要的索引条目

删除条目时,其索引属性值也会从每个索引文件中删除。但是,如果条目转换为 tombstone 条目,则重新索引之前将删除的属性值重新添加到索引中。这个程序错误已被解决,索引文件不再包含由 tombstone 条目生成的不必要的键值对。(BZ#1255290)

现在,当删除同一属性的多个值时,索引会被正确更新

在以前的版本中,当使用 ldapmodify 命令删除同一属性的多个值时,且同一操作中至少有一个值被再次添加,则不会更新相等的索引。因此,对 re-added 属性值的精确搜索不会返回该条目。如果条目中至少有一个值有变化,则索引代码的逻辑已被修改,在重新添加的属性值中至少会返回正确的条目,则索引代码的逻辑现在会返回正确的条目。(BZ#1282457)

COS 缓存现在可以正确地添加所有定义

与 Service (COS)对象缓存类相关的以前的程序错误修复引入了回归问题,这会导致它在第一个定义后停止添加定义,而不是添加所有定义。这个问题已被解决,COS 缓存现在可以按照设计正确地添加所有定义。(BZ#1259546)

改进了 ACL 性能

在以前的版本中,在目录服务器中的访问控制列表(ACL)实现中使用不必要的复杂的正则表达式。这些正则表达式已被删除,并且已进行了 ACL 实施,从而提高了性能。(BZ#1236156)

ntUserlastLogonntUserlastLogoff 属性现在在 Directory 服务器和 Active Directory 之间同步

在以前的版本中,当与 Active Directory 同步时,WinSync 帐户同步无法更新 Directory Server 中的 ntUserlastLogonntUserlastLogoff 属性。这个程序错误已被解决,现在根据 Active Directory 中的 lastLogonTimestamplastLogoffTimestamp 属性正确更新这些属性。(BZ#1245237)
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat