Error: -637 "Previous move in progress"

  • 10012763
  • 4.0.3921350.2238576
  • 19-Jul-1999
  • 14-May-2004

Archived Content: This information is no longer maintained and is provided 'as is' for your convenience.

Fact

Novell Directory Services

Novell eDirectory

Formerly KB 2942837

Symptom

Error: -637 "Previous move in progress"

Error: 637 -637 0XFFFFFD83 = ERR_PREVIOUS_MOVE_IN_PROGRESS                             

Error: "Either the object has been deleted, or a move or rename on the object has not completed."

Error "DSBROWSE - 1.0-027:  Delete object failed.  Error = -601".  Program execution cannot continue normally"

Error: "NDS has not finished moving the object or one of its subordinates."

Objects may appear in more than one context (where they were moved from and to).

Error: "Object cannot be moved because a previous move is in progress."

Error: "This object is in progress of being moved.  The operation cannot be completed."

Error: "Object was not found.  It has either been deleted, or a rename, move or create operation on it has not completed or has not been synchronized across all necessary replicas."

Cause

Communication may be lost to a server holding an external reference of the object being moved.

Note:  To prevent this from happening in the future, always run a DSREPAIR -A | Advanced options menu | Check external references, and look for any "Found obituary" lines with an obituary Type = 0003 Inhibit_move.  Do this before removing a replica, bringing down a server permanently, or performing any other operation that may prevent communication to a server or it's replica.

Fix

Note: If a partition is not synchronizing properly, the obituary process cannot complete.  You must address the synchronization errors first.


PHASE 1 - Locate the object with the INHIBIT_MOVE obituary using DSREPAIR | Advanced options menu | Check external references.  (If you find a MOVED obituary first, then proceed to Phase 2.)

On the server holding the Master replica of the partition reporting the error, perform the following:

1.  LOAD DSREPAIR -A
2.  Advanced options menu
3.  Check External References
4.  In the SYS:SYSTEM\DSREPAIR.LOG file find:

Found obituary at VID: , EID: , DN: CN=Objectname.OU=.OU=...
Type = 0003 INHIBIT_MOVE, Flags = 0000

5.  Make a note of the object's full name and context.

PHASE 2 - Now locate the corresponding MOVED obituary.   It is very important to find out where the object came from.  If you do not know where the above object came FROM, then you will need to run Check External References on every server in the tree holding a Master replica of a partition:  

1.  LOAD DSREPAIR -A
2.  Advanced options menu
3.  Check external references
4.  In the DSREPAIR.LOG file search for:

Found obituary at VID: , EID: , DN: CN=Objectname.OU=.O=...
Type = 0002 MOVED, Flags = 0000

You are looking for the same CN=Objectname as the INHIBIT_MOVE obituary, only in a different context.

5.  In the same DSREPAIR.LOG file that you found the MOVED obituary only, now find an obituary for the same object, but the TYPE is BACKLINK.   Type = 0006 Backlink obituary with Flags = 0000.  This BACKLINK obituary should follow right after the MOVED obituary.  

Found obituary at VID: , EID: , DN: CN=Objectname.OU=.O=...
Type = 0006 BACKLINK, Flags = 0000
Backlink: Type = 00000002 MOVED, RemoteID = FFFFFFFF, ServerID = , CN=CulpritServer.OU=.OU=...

NOTE:  For NDS version 8, you will need to use the DSBROWSE.NLM to find the culprit server name.  Load DSBROWSE | Tree Browse | drill down in the NDS tree until you have the CN=Objectname highlighted | F3 | select View Attributes | select Obituary | F3 | select View Value Details.  In the column to the right of the obituary type should appear the server name you are trying to communicate to.

This is the CulpritServer that we cannot communicate with.

Note:  If all of the Type=0006 Backlink obituaries for the object are Flags=0000 (not notified), then this could mean:

 A.  The partition were the object resides has no Master replica.  In other words, there is no Master replica for the partition, or
 B.  This server cannot communicate to any other servers in the replica ring, or
 C.  You need to run a DSRepair | Advanced options menu | Repair local DS database on this server until the are no errors reported.
 D.  The partition which contains the moved object is not synchronizing properly.  You must address the synchronization errors first.  DSREPAIR | Report synchronization status, will tell you what and where the errors are.


PHASE 3 - Find out the status of the culprit server holding the Type = 0006 BACKLINK, Flags = 0000

Is the culprit server up?  Is it communicating properly (IE. no -625 errors)?  Does the server no longer exist?

1.  Get the server up and communicating, or
2.  Delete the server object using NDS Manager if the server no longer exists, or
3.  Perform the following on CulpritServer if it is already up and communicating.

  Load DSREPAIR -XK3 | Advanced options menu | Repair local DS database.  Accept the defaults.  Run the repair.  Save the repaired database.  Exit DSREPAIR.

  At the console, SET DSTRACE=+BLINK and SET DSTRACE=*B.  Toggle over to the Directory Services screen and look for "Finished checking backlinks succeeded."

If this procedure did not work, or if the server no longer exists in the tree AND the server object has been deleted out of NDS (Hint: check that), then call Novell Technical Services for assistance.  

Note:  If the INHIBIT_MOVE obituaries DO NOT APPEAR on the Master replica of the partition, then they are probably not going to cause any issues.  One way to remove these obituaries from a non-Master replica is by removing the replica off of this server, then placing it back on again.
.