diff --git a/modules/dcache-nfs/src/main/java/org/dcache/chimera/nfsv41/door/NFSv41Door.java b/modules/dcache-nfs/src/main/java/org/dcache/chimera/nfsv41/door/NFSv41Door.java index cbf4fec109d..1ab99dd442f 100644 --- a/modules/dcache-nfs/src/main/java/org/dcache/chimera/nfsv41/door/NFSv41Door.java +++ b/modules/dcache-nfs/src/main/java/org/dcache/chimera/nfsv41/door/NFSv41Door.java @@ -1470,7 +1470,17 @@ deviceid4[] selectDataServers(long timeout) throws } } - _redirectFuture.get(NFS_REQUEST_BLOCKING, TimeUnit.MILLISECONDS); + try { + _redirectFuture.get(NFS_REQUEST_BLOCKING, TimeUnit.MILLISECONDS); + } catch (Exception e) { + // No mover is started. Let retry the full selection process on next attempt. + if (!hasMover()) { + _redirectFuture.cancel(true); + _redirectFuture = null; + } + throw e; + } + _log.debug("mover ready: pool={} moverid={}", getPool(), getMoverId()); deviceid4 ds = waitForRedirect(NFS_REQUEST_BLOCKING).getDeviceId();