Elasticsearch createTranslogSyncProcessor part of source code, log level Setting is not appropriate?

Hi,
Recently, I've been reading the source code of the latest version (8.7.1) of Elasticsearch and I have a question about the log level settings that I can't figure out.
I noticed that the "failed to sync translog" issue in maybeFSyncTranslogs in Elasticsearch/index/IndexService.java is logged as a warning level:

private void maybeFSyncTranslogs() {
        if (indexSettings.getTranslogDurability() == Translog.Durability.ASYNC) {
            for (IndexShard shard : this.shards.values()) {
                try {
                    if (shard.isSyncNeeded()) {
                        shard.sync();
                    }
                } catch (AlreadyClosedException ex) {
                    // fine - continue;
                } catch (IOException e) {
                    logger.warn("failed to sync translog", e);
                }
            }
        }
    }

but in Elasticsearch/index/shard/IndexShard.java, the same issue in createTranslogSyncProcessor is logged as a debug level:

private static AsyncIOProcessor<Translog.Location> createTranslogSyncProcessor(
        Logger logger,
        ThreadContext threadContext,
        Supplier<Engine> engineSupplier
    ) {
        return new AsyncIOProcessor<>(logger, 1024, threadContext) {
            @Override
            protected void write(List<Tuple<Translog.Location, Consumer<Exception>>> candidates) throws IOException {
                try {
                    engineSupplier.get().ensureTranslogSynced(candidates.stream().map(Tuple::v1));
                } catch (AlreadyClosedException ex) {
                    // that's fine since we already synced everything on engine close - this also is conform with the methods
                    // documentation
                } catch (IOException ex) { // if this fails we are in deep shit - fail the request
                    logger.debug("failed to sync translog", ex);
                    throw ex;
                }
            }
        };
    }

After reading the context and comments of the latter, I'm wondering if the debug level in the latter should also be changed to a warn level? Or does the use of debug have a different explanation here?
thanks

Does anyone have a comment?

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.