diff --git a/lustre/tests/replay-single.sh b/lustre/tests/replay-single.sh
index 3a4599f87eb37d1e991e1d34f08d34ff977c7431..de154dd0bd663ba766c63d224f116954a5fe3bc4 100755
--- a/lustre/tests/replay-single.sh
+++ b/lustre/tests/replay-single.sh
@@ -1334,16 +1334,27 @@ run_test 59 "test log_commit_thread vs filter_destroy race"
 
 # bug 17323
 test_59b() {
+    do_facet mds "lctl set_param debug=+rpctrace"
     mkdir -p $DIR/$tdir
     createmany -o $DIR/$tdir/$tfile-%d 2000
     sync
 #define OBD_FAIL_OBD_LOG_CANCEL_REP      0x606
     do_facet mds "lctl set_param fail_loc=0x606"
     unlinkmany $DIR/$tdir/$tfile-%d 2000
-    sleep 60
+
+    # make sure that all llcds left ost and nothing left cached
+    sync
     do_facet mds "lctl set_param fail_loc=0x0"
-    do_facet mds $LCTL dk | grep -q "RESENT cancel req" || return 1
+
+    # sleep 2 obd_timeouts from ost to make sure that we get resents.
+    local timeout=$(do_facet ost1 lctl get_param -n timeout)
+    timeout=$((timeout * 2))
+    log "Sleep $timeout"
+    sleep $timeout
+    do_facet mds $LCTL dk | grep -q "RESENT cancel req"
+    local res=$?
     rmdir $DIR/$tdir
+    return $res
 }
 run_test 59b "resent handle in llog_origin_handle_cancel"