Appendix B. Replication Agreement Status

In the read-only nsds5replicaLastUpdateStatus attribute of each replication agreement, Directory Server displays the latest status of the agreement. The following is a list of possible statuses:

Disabled agreements

If a replication agreement is disabled, the nsds5replicaLastUpdateStatus parameter is no longer updated and can display the following status:

  • The replication agreement was already disabled when the server started:

    Error (0) No replication sessions started since server startup
  • The agreement was disabled during run time.

    Error (0) Replica acquired successfully: agreement disabled
General agreement status
{blank}
  • The replication agreement was stopped:

    Error (0) Replica acquired successfully: Protocol stopped
  • An incremental update was started:

    Error (0) Replica acquired successfully: Incremental update started
  • An incremental update succeeded:

    Error (0) Replica acquired successfully: Incremental update succeeded
  • Replication succeeded, but the consumer ended the session to be able to get acquired by another supplier:

    Error (0) Replica acquired successfully: Incremental update succeeded and yielded
Error messages in the ACQUIRING_REPLICA state

During the first part of a replication session, the supplier acquires the consumer, establishes the connection, binds to the consumer, verifies that the consumer is not already updated by another supplier, and performs additional checks. The following error codes can be displayed in this state:

  • Failures during establishing a connection with the consumer:

    Error (result_code) Problem connecting to replica - LDAP error: ldap_error_message
    Error (result_code) Problem connecting to replica (SSL not enabled) - LDAP error: ldap_error_message

    The result code and error message indicates the reason why the connection could not be established.

  • An internal error occurred on the consumer:

    Error (8) :Failed to acquire replica: Internal error occurred on the remote replica

    This error is caused by a failure related to the change sequence number (CSN) generator on the consumer. See the consumer log files for further details.

  • The identity used to authenticate to the consumer was neither a valid replication bind distinguished name (DN) nor a member of a bind DN group:

    Error (3) :Unable to acquire replica: permission denied. The bind dn does not have permission to supply replication updates to the replica. Will retry later.
  • No valid replica was defined for the suffix on the consumer:

    Error (6) :Unable to acquire replica: there is no replicated area on the consumer server. Replication is aborting.
  • Decoding error of the replication control sent to the consumer:

    Error (4) :Unable to acquire replica: the consumer was unable to decode the startReplicationRequest extended operation sent by the supplier. Replication is aborting.
  • The replica is currently updated by a different supplier:

    Error (1) :Unable to acquire replica: the replica is currently being updated by another supplier.
  • The supplier and consumer use the same replica ID:

    Error (11) :Unable to aquire replica: the replica has the same Replica ID as this one. Replication is aborting.

    The supplier or the consumer is incorrectly configured. Set a unique replica ID in the replication configuration to fix the problem.

  • The supplier was set into backoff mode:

    Error (14) :Unable to acquire replica: the replica instructed us to go into backoff mode. Will retry later.

    This state is only displayed when a custom replication hook is implemented.

  • Decoding errors of the replication control received from the consumer:

    Error (extop_result) :Unable to acquire replica
    Error (4) Unable to parse the response to the startReplication extended operation. Replication is aborting.
    Error (16) Unable to receive the response for a startReplication extended operation to consumer. Will retry later.
    Error (0) Unable to obtain current CSN. " "Replication is aborting.
Error messages in the SENDING_UPDATES state

After a replica was successfully acquired, the session starts sending updates. In this state, the following messages can be displayed in the respective steps:

  1. Examining the replica update vector (RUV):

    • The replica has no update vector configured or replication was not enabled on the consumer:

      Error (19) : Replica is not initialized
    • The consumer was not initialized using the same database generation as the supplier:

      Error (19) : Replica has different database generation ID, remote replica may need to be initialized

      To fix the problem, initialize either the supplier or the consumer.

  2. Updating the change state number (CSN) generator:

    • The time difference between the local and the remove server is too big:

      Error (2) : fatal error - too much time skew between replicas
    • Directory Server failed to update the CSN generator:

      Error (2) : fatal internal error updating the CSN generator
  3. Initial changelog positioning:

    • General error in case that the changelog cannot be processed:

      Error (15) : Unexpected format encountered in changelog database

      This error is logged, for example, if the path to the changelog file does not exist.

    • Parsing an entry in the changelog failed:

      Error (15) : Unexpected format encountered in changelog database
    • Errors related to the database layer of the changelog:

      Error (15) : Changelog database was in an incorrect state
      Error (15) : Incorrect dbversion found in changelog database
      Error (15) : Changelog database error was encountered

      For further details, see the /var/log/dirsrv/slapd-instance_name/errors log file.

    • Directory Server failed to allocate memory:

      Error (15) : changelog memory allocation error occurred

      This error is logged, for example, if the changelog buffer or changelog iterator failed to allocate memory.

    • The supplier is ahead of the consumer and wants to send updates, but cannot find the starting point in the changelog:

      Error (15) : Data required to update replica has been purged from the changelog. " "The replica must be reinitialized.
      Error (15) : Changelog data is missing

      Directory Server treats these errors as fatal, but they can be resolved if the consumer receives the updates from a different supplier. In this case, it is treated as transient.

  4. Sending the next update:

    • Creating a result thread failed:

      Error (result_code) : Failed to create result thread

      The result code indicates the reason why the thread was not created.

    • General error in case that the changelog cannot be processed:

      Error (15) : Invalid parameter passed to cl5GetNextOperationToReplay

      This error is logged, for example, if the path to the changelog file does not exist.

    • A database error occurred while reading the change log:

      Error (15) : Database error occurred while getting the next operation to replay

      This event is logged, for example, if Directory Server access a locked database page.

    • Directory Server ran out The creation :

      Error (15) : Memory allocation error occurred (cl5GetNextOperationToReplay)
  5. Sub-entry update:

    • The creation of the replica keep alive entry failed:

      Error (-1) :  Agreement is corrupted: missing suffix

      General status in the SEND_UPDATES state:

      • A non-fatal error occurred on the local server while processing the changelog:

        Error (18) : Incremental update transient error.  Backing off, will retry update later.

        See the /var/log/dirsrv/slapd-instance_name/errors file for further details.

      • A replication connection was disconnected after the connection was established:

        Error (16) : Incremental update connection error.  Backing off, will retry update later.
      • A timeout appeared on an existing replication connection:

        Error (17) : Incremental update timeout error.  Backing off, will retry update later.

        The replication automatically tries to resume later.