task_cancelled_exception: task_cancelled_exception: Task was cancelled / TaskCancelledException
Elasticsearch의미
실행 중인 task(search, _reindex, _update_by_query 등)가 취소되었다. 취소는 _tasks/_cancel에 대한 사용자 요청, 클라이언트의 HTTP 연결 종료(클라이언트 타임아웃/중단. Elasticsearch가 관련 검색을 자동으로 취소한다), 상위 task의 취소 또는 만료된 async search로 발생할 수 있다.
원인
사용자가 POST _tasks/<task_id>/_cancel로 task를 취소함(X-Opaque-Id는 task를 식별하고 찾는 데 도움을 줄 뿐 취소하지 않는다), 클라이언트 타임아웃으로 연결이 끊김, 장시간 실행되는 고비용 쿼리, 또는 adaptive resource management가 무거운 task를 중지함.
해결 방법
task가 예기치 않게 취소되었다면 클라이언트 타임아웃과 연결 설정을 검토하고 무거운 쿼리를 최적화한다(데이터 축소, 더 구체적인 필터). 긴 작업은 _reindex/_update_by_query를 비동기(wait_for_completion=false)로 실행하고 GET _tasks로 모니터링한다. 활성 task를 확인한다: GET _tasks?detailed=true. 필요하면 고비용 쿼리를 분할하거나 scroll/PIT를 사용한다.
같은 데이터베이스의 다른 항목
- master_not_discovered_exceptionmaster_not_discovered_exception / MasterNotDiscoveredException
- security_exceptionsecurity_exception: unable to authenticate / action [...] is unauthorized for user [...] (HTTP 401/403)
- validation_exceptionvalidation_exception / illegal_argument_exception: Validation Failed: ...
- action_request_validation_exceptionaction_request_validation_exception
- index_closed_exceptionindex_closed_exception
- unavailable_shards_exceptionunavailable_shards_exception
- query_shard_exceptionquery_shard_exception