Skip to content
Snippets Groups Projects
Forked from openldap / OpenLDAP
13625 commits behind the upstream repository.
  • Luke Howard's avatar
    ea6f5bad
    This patch fixes some subtle interactions between SLAPI and syncrepl. Due to · ea6f5bad
    Luke Howard authored
    SLAPI always assigning connection and operation IDs of zero for internal
    operations, such operations would cause a stale contextCSN to be returned from
    slap_get_commit_csn(). As a result, SLAPI internal updates would be invisible
    to replicas until an external update was made. Also, SLAPI internal operations
    never called slap_graduate_commit_csn() which leaked pending CSNs.
    
    Also included in this patch is a general cleanup of some of the SLAPI code.
    
    Note that we need to use a separate mutex on conn_nextid to avoid a deadlock
    where a post-operation plugin tries to acquire connections_mutex, having locked
    the per-connection mutex, while the listener thread tries to acquire the
    per-connection mutex (having locked connections_mutex). connection.c needs to
    be fixed to acquire mutexes in the same order.
    ea6f5bad
    History
    This patch fixes some subtle interactions between SLAPI and syncrepl. Due to
    Luke Howard authored
    SLAPI always assigning connection and operation IDs of zero for internal
    operations, such operations would cause a stale contextCSN to be returned from
    slap_get_commit_csn(). As a result, SLAPI internal updates would be invisible
    to replicas until an external update was made. Also, SLAPI internal operations
    never called slap_graduate_commit_csn() which leaked pending CSNs.
    
    Also included in this patch is a general cleanup of some of the SLAPI code.
    
    Note that we need to use a separate mutex on conn_nextid to avoid a deadlock
    where a post-operation plugin tries to acquire connections_mutex, having locked
    the per-connection mutex, while the listener thread tries to acquire the
    per-connection mutex (having locked connections_mutex). connection.c needs to
    be fixed to acquire mutexes in the same order.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
connection.c 45.02 KiB