private List<FastHit> fill(Result result, List<FastHit> hits, String summaryClass, byte[] payload, boolean isRetry) {
        try {
            var protobuf = SearchProtocol.DocsumReply.parseFrom(payload);
            var root = (decodePolicy == DecodePolicy.ONDEMAND)
                    ? BinaryView.inspect(protobuf.getSlimeSummaries().toByteArray())
                    : BinaryFormat.decode(protobuf.getSlimeSummaries().toByteArray()).get();
            if (! isRetry) {
                var errors = root.field("errors");
                boolean hasErrors = errors.valid() && (errors.entries() > 0);
                if (hasErrors) {
                    addErrors(result, errors);
                }
                convertErrorsFromDocsumReply(result, protobuf.getErrorsList());
            }
            Inspector summaries = new SlimeAdapter(root.field("docsums"));
            if (!summaries.valid()) {
                return List.of(); // No summaries; Perhaps we requested a non-existing summary class
            }
            List<FastHit> skippedHits = new ArrayList<>();
            for (int i = 0; i < hits.size(); i++) {
                Inspector summary = summaries.entry(i).field("docsum");
                FastHit hit = hits.get(i);
                boolean needFill = isRetry ? partialSummaryHandler.needFill(hit) : true;
                if (summary.valid() && needFill) {
                    hit.setField(Hit.SDDOCNAME_FIELD, documentDb.schema().name());
                    hit.addSummary(partialSummaryHandler.effectiveDocsumDef(), summary);
                    partialSummaryHandler.markFilled(hit);
                    ++numOkFilledHits;
                } else if (needFill) {
                    skippedHits.add(hit);
                }
            }
            return skippedHits;
        } catch (InvalidProtocolBufferException ex) {
            if (! isRetry) {
                log.log(Level.WARNING, "Invalid response to docsum request", ex);
                result.hits().addError(ErrorMessage.createInternalServerError("Invalid response to docsum request from backend"));
            }
        }
        return List.of();
    }
Send a docsums request to a node. Responses will be added to the given receiver.
container-search/src/main/java/com/yahoo/search/dispatch/rpc/RpcProtobufFillInvoker.java