Uploaded image for project: 'OpenDJ'
  1. OpenDJ
  2. OPENDJ-7285

dsrepl freeze during initialize from non existing server

    Details

    • Type: Bug
    • Status: Done
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: 7.0.0
    • Fix Version/s: 7.0.0
    • Component/s: replication
    • Labels:
    • Environment:
      Linux Mint 19.1, OpenDJ: 7.0.0-SNAPSHOT cfbc1e10476

      Description

      The dsrepl tool may not be finished for initialize from non-exists/not-at-topology server.

      Steps to reproduce:

      • Set up two instances at replication topology (DJ1 and DJ2) (could be used https://stash.forgerock.org/projects/QA/repos/pyforge/browse/PyBot/OpenDJ/testcases/functional/replication_group1/DsRepl.py for set up) and start instances
      • Reproduce only with run dsrepl initialize from non existing/not at topology server (randomly on my notebook)
        1. First time call dsrepl initialize from non-existing server
          ./dsrepl initialize --fromServer dj-none -h localhost -p 4444 -D "uid=admin" -w "password" -X --baseDn dc=com
          
          Starting initialization from 'dj-none' to 'dj1' for base DNs: 'dc=com'
          Starting initialization for base DN: 'dc=com'
          An error occurred during initialization. Last log details:
          [16/Jun/2020:09:54:38 +0200] severity="ERROR" msgCount=1 msgID=null--1
          message="Other: "RS(dj1, 8989) for domain dc=com cannot route message of type
          InitializeRequestMsg to replica dj-none because it is unreachable. Reachable
          replicas: [dj1, dj2]"; [16/Jun/2020:09:54:38 +0200] severity="NOTICE"
          msgCount=2 msgID=org.opends.messages.backend-414 message="Initialize From
          Replica task dsrepl-initialize-1 finished execution in the state Stopped by
          error". Task state: STOPPED_BY_ERROR
          Check the server error logs for additional details
        2. Second and next times call dsrepl initialize from non-existing server - it can has same response as above (if yes try again) or tool freeze and show only:
           ./dsrepl initialize --fromServer dj-none -h localhost -p 4444 -D "uid=admin" -w "password" -X --baseDn dc=com
          Starting initialization from 'dj-none' to 'dj1' for base DNs: 'dc=com'
          Starting initialization for base DN: 'dc=com'
          
          

          errors-1 replication-1

      • Reproduce when any initialize and initialize from non-exists server is preformed at the same time
        1. Call dsrepl initialize (toAllServers, toServer or fromServer)
          ./dsrepl initialize --fromServer dj2 -h localhost -p 4444 -D "uid=admin" -w "password" -X --baseDn dc=com
          Starting initialization from 'dj2' to 'dj1' for base DNs: 'dc=com'
          Starting initialization for base DN: 'dc=com'
          145 entries processed (87 % complete).
          
        2. Before above initialize finished start initialize from non-exists server
          ./dsrepl initialize --fromServer dj-none -h localhost -p 4444 -D "uid=admin" -w "password" -X --baseDn dc=com
          Starting initialization from 'dj-none' to 'dj1' for base DNs: 'dc=com'
          Starting initialization for base DN: 'dc=com'
          An error occurred during initialization. Last log details:
          [16/Jun/2020:10:43:51 +0200] severity="NOTICE" msgCount=0
          msgID=org.opends.messages.backend-413 message="Initialize From Replica task
          dsrepl-initialize-4 started execution"; [16/Jun/2020:10:43:51 +0200]
          severity="ERROR" msgCount=1 msgID=null--1 message="Other: Other: The current
          request is rejected due to an import or an export already in progress for the
          same data"; [16/Jun/2020:10:43:51 +0200] severity="NOTICE" msgCount=2
          msgID=org.opends.messages.backend-414 message="Initialize From Replica task
          dsrepl-initialize-4 finished execution in the state Stopped by error". Task
          state: STOPPED_BY_ERROR
          Check the server error logs for additional details
        3. Wait for finished first initialize
          Starting initialization from 'dj2' to 'dj1' for base DNs: 'dc=com'
          Starting initialization for base DN: 'dc=com'
          145 entries processed (87 % complete).
          164 entries processed (99 % complete).
          Done
        4. Run again dsrepl initialize from non-exists server (it every times freeze on my machine)
          ./dsrepl initialize --fromServer dj-none -h localhost -p 4444 -D "uid=admin" -w "password" -X --baseDn dc=com
          Starting initialization from 'dj-none' to 'dj1' for base DNs: 'dc=com'
          Starting initialization for base DN: 'dc=com'
          
          

          errors replication server.out

      Actual result:
      Dsrepl initialize is able to freeze at case initialize from non-existing server. I was run it over night and it was not finished.

      Expected result:
      Dsrepl initialize should not run that long without response/results. It should return every times that it is unreachable or import/export already in progress.

        Attachments

        1. errors
          20 kB
        2. errors-1
          8 kB
        3. replication
          12 kB
        4. replication-1
          7 kB
        5. server.out
          3 kB

          Activity

            People

            • Assignee:
              cforel carole forel
              Reporter:
              miroslav.meca Miroslav Meca
              Dev Assignee:
              Nicolas Capponi
              QA Assignee:
              carole forel
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: