bind_transport_exception: bind_transport_exception (Address already in use) (주소가 이미 사용 중)
Elasticsearch의미
Elasticsearch 노드가 시작하는 중 transport(노드 간 통신) 또는 HTTP 포트에서 수신하기 위한 소켓을 바인딩할 수 없었다. 보통 'Address already in use' 하위 오류와 함께 나타나며 노드가 시작되지 않는다.
원인
요청한 포트(기본 transport 9300, HTTP 9200)를 다른 프로세스가 이미 사용하고 있다. 가장 흔하게는 같은 노드의 이전 인스턴스가 정상 종료되지 않았거나, 같은 호스트의 다른 ES 인스턴스/서비스가 충돌하거나, network.host/port가 잘못 구성된 경우다. 권한/접근 제한도 바인딩을 막을 수 있다.
해결 방법
포트를 점유한 프로세스를 찾아(Linux: ss -ltnp | grep 9300 또는 lsof -i:9300) 충돌하는 프로세스를 종료하거나, 노드에 다른 포트를 지정한다(transport.port / http.port). 이전 ES 프로세스가 실제로 종료되었는지 확인한다. network.host와 포트 범위 설정이 올바르고 바인딩 가능한지 확인한다. 이후 노드를 재시작한다.
같은 데이터베이스의 다른 항목
- max_bytes_length_exceeded_exceptionDocument contains at least one immense term that is too long (너무 긴 거대한 term이 문서에 포함됨)
- illegal_argument_exception_total_fieldsLimit of total fields has been exceeded
- verification_exceptionverification_exception: Found N problem(s) — Unknown column / Unknown index (ES|QL, SQL, EQL) (N개 문제 발견 — 알 수 없는 컬럼/인덱스)
- translog_corrupted_exceptiontranslog_corrupted_exception
- recovery_engine_exceptionrecovery_engine_exception
- snapshot_in_progress_exceptionsnapshot_in_progress_exception
- repository_verification_exceptionrepository_verification_exception