private void handleCreateVisitorReply(CreateVisitorReply reply) {
        CreateVisitorMessage msg = (CreateVisitorMessage)reply.getMessage();

        BucketId superbucket = msg.getBuckets().get(0);
        BucketId subBucketProgress = reply.getLastBucket();

        log.log(Level.FINE, () -> sessionName + ": received CreateVisitorReply for bucket " +
                superbucket + " with progress " + subBucketProgress);

        progress.getIterator().update(superbucket, subBucketProgress);
        params.getControlHandler().onProgress(progress.getToken());
        statistics.add(reply.getVisitorStatistics());
        params.getControlHandler().onVisitorStatistics(statistics);
        // A visitor session might be long lived so we need a safeguard against blowing the memory if tracing
        // has been enabled.
        if ( ! reply.getTrace().getRoot().isEmpty() && (trace.getRoot().getNumChildren() < 1000)) {
            trace.getRoot().addChild(reply.getTrace().getRoot());
        }

    }
Schedule a new SendCreateVisitors task iff there are still buckets to
visit, the visiting has not failed fatally and we haven't already
scheduled such a task. Return whether a visitor was scheduled here.
documentapi/src/main/java/com/yahoo/documentapi/messagebus/MessageBusVisitorSession.java