Job has running datafeed task resetting as no snapshot exists – How to solve this Elasticsearch error

Opster Team

Aug-23, Version: 7.14-8.9

Before you dig into reading this guide, have you tried asking OpsGPT what this log means? You’ll receive a customized analysis of your log.

Try OpsGPT now for step-by-step guidance and tailored insights into your Elasticsearch operation.

Briefly, this error occurs when Elasticsearch tries to reset a job that has a running datafeed but no snapshot exists. This could be due to a system crash or an abrupt shutdown. To resolve this issue, you can try the following: 1) Stop the datafeed task and then try resetting the job. 2) If the problem persists, you may need to create a new snapshot. 3) If none of these work, consider restarting the Elasticsearch cluster, but be aware that this should be a last resort as it can impact all running tasks.

For a complete solution to your to your search operation, try for free AutoOps for Elasticsearch & OpenSearch . With AutoOps and Opster’s proactive support, you don’t have to worry about your search operation – we take charge of it. Get improved performance & stability with less hardware.

This guide will help you check for common problems that cause the log ” [{}] job has running datafeed task; resetting as no snapshot exists ” to appear. To understand the issues related to this log, read the explanation below about the following Elasticsearch concepts: plugin, task, snapshot.

Log Context

Log “[{}] job has running datafeed task; resetting as no snapshot exists” classname is OpenJobPersistentTasksExecutor.java.
We extracted the following from Elasticsearch source code for those seeking an in-depth context :

                // We requested a single concrete job so if it didn't exist we would get an error
                assert jobPage.size() == 1;

                String jobSnapshotId = jobPage.get(0).getModelSnapshotId();
                if (jobSnapshotId == null && isMasterNodeVersionOnOrAfter(ResetJobAction.VERSION_INTRODUCED)) {
                    logger.info("[{}] job has running datafeed task; resetting as no snapshot exists"; jobTask.getJobId());
                    ResetJobAction.Request request = new ResetJobAction.Request(jobTask.getJobId());
                    request.setSkipJobStateValidation(true);
                    request.masterNodeTimeout(PERSISTENT_TASK_MASTER_NODE_TIMEOUT);
                    request.timeout(PERSISTENT_TASK_MASTER_NODE_TIMEOUT);
                    executeAsyncWithOrigin(

 

How helpful was this guide?

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?