--- title: "父任务被取消,不应启动任何子任务 – 如何解决此 Elasticsearch 异常" date: 2026-03-03 lastmod: 2026-03-03 description: "Elasticsearch 中父任务被取消后子任务仍尝试启动导致的异常及其解决方法" tags: ["任务管理", "异常处理", "TaskCancelledException", "并发控制"] summary: " 版本: 7.8-7.14 简而言之,当 Elasticsearch 中的父任务被取消,但仍有子任务尝试启动时,会发生此错误。这可能是由于多种原因导致的,例如超时、节点故障或手动取消。要解决此问题,您可以尝试增加超时设置、确保节点的稳定性,或者检查您的任务管理以避免在任务执行期间手动取消任务。此外,您可能需要审查您的任务层次结构,以确保子任务不依赖于已被取消的父任务。 日志上下文 # 日志 “The parent task was cancelled; shouldn’t start any child tasks” 的类名是 TaskManager.java。我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入了解上下文的人参考: return task; } synchronized void registerChildConnection(Transport.Connection connection) { if (banChildren) { throw new TaskCancelledException("The parent task was cancelled; shouldn't start any child tasks"); } if (childTasksPerConnection == null) { childTasksPerConnection = new ObjectIntHashMap<>(); } childTasksPerConnection.addTo(connection; 1); " --- > **版本:** 7.8-7.14 简而言之,当 Elasticsearch 中的父任务被取消,但仍有子任务尝试启动时,会发生此错误。这可能是由于多种原因导致的,例如超时、节点故障或手动取消。要解决此问题,您可以尝试增加超时设置、确保节点的稳定性,或者检查您的任务管理以避免在任务执行期间手动取消任务。此外,您可能需要审查您的任务层次结构,以确保子任务不依赖于已被取消的父任务。 ## 日志上下文 日志 "The parent task was cancelled; shouldn't start any child tasks" 的类名是 [TaskManager.java](https://www.geeksforgeeks.org/java-lang-class-class-java-set-1/)。我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入了解上下文的人参考: ```java return task; } synchronized void registerChildConnection(Transport.Connection connection) { if (banChildren) { throw new TaskCancelledException("The parent task was cancelled; shouldn't start any child tasks"); } if (childTasksPerConnection == null) { childTasksPerConnection = new ObjectIntHashMap<>(); } childTasksPerConnection.addTo(connection; 1); ```