본문 바로가기
SingleStoreDB/Support Bulletin

[Support Bulletin 08] - SingleStore 모니터링 시스템에서 Pipeline 오류? 포트 번호가 문제다!

by 에이플랫폼 [Team SingleStore Korea] 2025. 4. 17.

 

안녕하세요, 에이플랫폼의 Support Bulletin 시리즈입니다.

이번 글에서는 SingleStore 클러스터 구축 후 모니터링을 위해 생성한 Metric DB에서 발생하는 Pipeline 에러에 대해 소개해 드리려 합니다.

 

SingleStore 클러스터 구축과 같이 서버를 구성할 때, 일반적으로 알려진 포트 번호를 피하고 다른 포트 번호를 설정하는 일은 흔히 이루어집니다.

그러나 Linux의 유저 포트(1024~32767)를 벗어나 로컬 포트 범위(32768~60999)에 속하는 포트 번호를 사용할 때, 예상치 못한 문제가 발생할 수 있습니다.

 

로컬 포트 번호 확인 방법

$ sudo sysctl -A | grep ipv4.ip_local
net.ipv4.ip_local_port_range = 32768    60999
net.ipv4.ip_local_reserved_ports =
 

 

Linux에서 발생할 수 있는 포트 관련 문제

서버에서 리스닝 포트를 32768 이상의 값으로 지정하면, 클라이언트 소켓이 동일한 포트를 임시로 사용 중이거나 TIME_WAIT 상태일 때 충돌이 발생할 가능성이 높습니다.

대표적인 오류 메시지는 "Address already in use"이며, 실제로 netstat 등으로 확인해 보면 리스닝 포트가 존재하지 않음에도 충돌이 발생하는 경우를 볼 수 있습니다.

 

또한, 서버가 32768 이상의 포트에서 리스닝하려고 할 때, 클라이언트가 해당 포트를 이미 사용 중이라면 바인딩에 실패할 수 있습니다.

특히 자주 연결과 해제가 반복되는 환경(예: 웹 서버, DB 프록시 등)에서는 포트 고갈(port exhaustion) 문제가 발생할 가능성이 높으며, 이 경우 서버 연결 실패, 성능 저하, "Unable to connect to the remote server"와 같은 장애가 발생할 수 있습니다.

SingleStore 환경에서의 문제

SingleStore에서는 모니터링을 위해 자동으로 생성되는 Metric DB 내 테이블들의 port 칼럼 데이터 타입을 SMALLINT(6)로 설정합니다.

하지만 SMALLINT(6)가 저장할 수 있는 최댓값은 32767이므로, 포트 번호가 이를 초과하면 Pipeline 연결 시 오류가 발생할 수 있습니다.

select DATABASE_NAME, PIPELINE_NAME, ERROR_TYPE, ERROR_CODE, ERROR_KIND, ERROR_MESSAGE, PORT from information_schema.PIPELINES_ERRORS;
>>>
|DATABASE_NAME|PIPELINE_NAME  |ERROR_TYPE|ERROR_CODE|ERROR_KIND|ERROR_MESSAGE                                                                                                                                                                                                        |PORT  |
|-------------|---------------|----------|----------|----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------|
|metrics      |ma_9104_metrics|Error     |1,264     |Internal  |Unhandled exception¶Type: ER_WARN_DATA_OUT_OF_RANGE (1264)¶Message: Leaf Error (ma:33307): Out of range value for column 'port'¶Callstack:¶  #0 Line 1 in `metrics`.`load_metrics` called from¶  #1 Line 1 in helper¶|33,306|
|metrics      |ma_9104_metrics|Error     |1,264     |Internal  |Leaf Error (ma:33307): Out of range value for column 'port'                                                                                                                                                          |33,306|
|metrics      |ma_9104_metrics|Error     |1,264     |Internal  |Unhandled exception¶Type: ER_WARN_DATA_OUT_OF_RANGE (1264)¶Message: Leaf Error (ma:33307): Out of range value for column 'port'¶Callstack:¶  #0 Line 1 in `metrics`.`load_metrics` called from¶  #1 Line 1 in helper¶|33,306|
|metrics      |ma_9104_metrics|Error     |1,264     |Internal  |Leaf Error (ma:33307): Out of range value for column 'port'                                                                                                                                                          |33,306|
|metrics      |ma_9104_blobs  |Error     |1,264     |Internal  |Unhandled exception¶Type: ER_WARN_DATA_OUT_OF_RANGE (1264)¶Message: Leaf Error (ma:33307): Out of range value for column 'port'¶Callstack:¶  #0 Line 1 in `metrics`.`load_blobs` called from¶  #1 Line 1 in helper¶  |33,306|
|metrics      |ma_9104_blobs  |Error     |1,264     |Internal  |Leaf Error (ma:33307): Out of range value for column 'port'                                                                                                                                                          |33,306|
|metrics      |ma_9104_blobs  |Error     |1,264     |Internal  |Unhandled exception¶Type: ER_WARN_DATA_OUT_OF_RANGE (1264)¶Message: Leaf Error (ma:33307): Out of range value for column 'port'¶Callstack:¶  #0 Line 1 in `metrics`.`load_blobs` called from¶  #1 Line 1 in helper¶  |33,306|
|metrics      |ma_9104_blobs  |Error     |1,264     |Internal  |Leaf Error (ma:33307): Out of range value for column 'port'                                                                                                                                                          |33,306|
 

이러한 문제로 인해 Pipeline 연결이 실패하여 정상적인 모니터링 환경 구축에 어려움을 겪을 수 있습니다.

 

오늘은 SingleStore 클러스터 구축 시 포트 변경으로 인해 발생할 수 있는 모니터링 오류에 대해 소개해 드렸습니다.

다음 시간에도 유익한 내용을 소개해 드리겠습니다.

감사합니다.