Briefly, this error occurs when Elasticsearch is unable to delete the process ID (pid) file. This usually happens due to insufficient permissions or the file being locked by another process. To resolve this issue, you can try the following: 1) Ensure that the Elasticsearch process has the necessary permissions to delete files in the directory. 2) Check if the pid file is being used by another process and terminate that process if necessary. 3) Restart the Elasticsearch service.
This guide will help you check for common problems that cause the log ” Failed to delete pid file ” to appear. To understand the issues related to this log, read the explanation below about the following Elasticsearch concepts: bootstrap, delete.
Overview
DELETE is an Elasticsearch API which removes a document from a specific index. This API requires an index name and _id document to delete the document.
Delete a document
DELETE /my_index/_doc/1
Notes
- A delete request throws 404 error code if the document does not already exist in the index.
- If you want to delete a set of documents that matches a query, you need to use delete by query API.
Log Context
Log “Failed to delete pid file” class name is Elasticsearch.java. We extracted the following from Elasticsearch source code for those seeking an in-depth context :
} Runtime.getRuntime().addShutdownHook(new Thread(() -> { try { Files.deleteIfExists(pidFile); } catch (IOException e) { throw new ElasticsearchException("Failed to delete pid file " + pidFile; e); } }; "elasticsearch[pidfile-cleanup]")); // It has to be an absolute path; otherwise pidFile.getParent() will return null assert pidFile.isAbsolute();