릴리즈 3.10.2305.0

기능 개선

식별자항목
ENT#4051SNMP 수집기 설정에 잘못된 oid 필드 매핑 값을 입력했을 때 오류 처리 추가

버그 해결

식별자항목
ENT#4021limit 커맨드가 포함된 분산 쿼리 실행 시 낮은 확률로 쿼리 데드락이 발생하는 문제 해결
ENT#4044예약된 쿼리를 생성하거나 로그프레소를 재시작할 때 다음 실행 주기를 잘못 계산하여 예약된 쿼리를 실행하지 못한 문제 해결
ENT#4388인덱스 동시 접근 시 인덱스 토크나이저가 누수되는 문제 해결
ENT#4404블룸필터 적용 인덱스 대상으로 fulltext 검색 시 동일한 필드에 대해 동일 부등호 연산을 'or' 문으로 묶을 경우 쿼리 결과 정합성이 맞지 않는 문제 해결
ENT#4430외부 프로그램 수집기에서 외부 프로그램 실행 시 파일 핸들 누수 발생 해결, 윈도우 네트워크 대역폭 사용률 수집기와 윈도우 성능카운터 수집기에서 윈도우 API 호출 오류 시 메모리 누수 발생 해결
ENT#4449테이블 데이터 복구 과정에서 데이터 파일 헤더가 손상되는 문제 해결

상세 내역

ENT#4051 SNMP 수집기 설정에 잘못된 oid 필드 매핑 값을 입력했을 때 오류 처리 추가

SNMP 수집기를 생성/수정할 때 'oid 필드 매핑 목록' 항목에 입력한 설정 값에 오류가 있으면 수집기를 생성/수정하지 않도록 변경했습니다.

  • oid 필드 매핑의 잘못된 예
    • oid 혹은 필드만 입력
    • 'oid='만 입력하고 필드 누락
    • '=필드' 형태로 입력하고 oid 누락

ENT#4021 limit 커맨드가 포함된 분산 쿼리 실행 시 낮은 확률로 쿼리 데드락이 발생하는 문제 해결

분산 쿼리 수행 시 쿼리문에 limit 커맨드가 포함된 경우, 쿼리 종료 과정에서 낮은 확률로 데드락이 발생하는 문제가 있었습니다. 쿼리 데드락이 발생하면 쿼리 수행에 할당된 리소스가 해제되지 않았고, 이 현상이 누적되면 점점 할당 가능한 리소스가 줄어들어 웹UI에 접속이 되지 않는 상황까지도 발생했습니다. 패치 버전에서는 limit 커맨드 수행 과정을 분산 쿼리 수행에 좀 더 적합하도록 thread-safe 하게 변경하여 데드락이 발생할 여지를 줄이는 방법으로 해당 문제를 해결했습니다.

ENT#4044 예약된 쿼리를 생성하거나 로그프레소를 재시작할 때 다음 실행 주기를 잘못 계산하여 예약된 쿼리를 실행하지 못한 문제 해결

예약된 쿼리를 생성하거나 로그프레소를 다시 시작할 때 다음으로 예약된 쿼리가 실행될 시점을 계산하는 로직에 버그가 있었습니다. 예약된 쿼리 생성 혹은 로그프레소 재시작 시점에 예약된 쿼리의 실행 주기가 다음 날로 넘어가는 경우, 다음 날 가장 빠른 시점에 실행되어야 함에도 다음 날 현재 시각 이후부터 실행되었습니다.

예약된 쿼리의 실행 주기 버그 예시

  • 예약된 쿼리 실행 주기: 월요일부터 금요일 9시부터 11시 사이 5분 간격으로 실행(예약된 실행 시각: 9:00, 9:05, ... 11:50, 11:55)
  • 예약된 쿼리 생성 혹은 로그프레소 재기동 시점: 일요일 10:01
  • 정상적으로 다음에 수행되어야 할 주기: 월요일 09:00
  • 버그로 인해 잘못 계산된 주기: 월요일 10:05 (월요일 09:00~10:00 동안 수행되지 않음)

ENT#4388 인덱스 동시 접근 시 인덱스 토크나이저가 누수되는 문제 해결

하나의 인덱스에 비동기 스트림 쿼리 등으로 여러 작업이 동시에 접근할 때 토크나이저 풀에 할당된 토크나이저가 정리되지 않고 누수되는 문제를 해결했습니다.

인덱스 객체가 더 이상 사용하지 않는 메모리를 회수하는 logpresso.triggerOnlineIndexGC 로그프레소 셸 명령어를 추가했습니다. logpresso.triggerOnlineIndexGC 명령어의 문법은 다음과 같습니다.

logpresso.triggerOnlineIndexGC [tablepattern]
tablepattern
가비지 컬렉션 대상이 되는 테이블 이름의 문자열 패턴. 와일드카드(*)를 지원합니다.

ENT#4404 블룸필터 적용 인덱스 대상으로 fulltext 검색 시 동일한 필드에 대해 동일 부등호 연산을 'or' 문으로 묶을 경우 쿼리 결과 정합성이 맞지 않는 문제 해결

블룸필터가 적용된 인덱스를 대상으로 fulltext 쿼리를 수행할 때 검색 조건에 동일한 필드에 대해 동일 부등호 연산을 'or' 문으로 묶을 경우 검색 결과가 일부 누락되는 문제를 해결했습니다.

기존 버전에서 정합성이 맞지 않던 쿼리문 예시

  • src_ip 필드에 대해 '<' 연산을 수행하는 조건 2개가 'or' 문으로 묶임

    fulltext src_ip < ip("220.0.0.0") or src_ip < ip("221.0.0.0") from zc0
    | stats count as fulltext_count
    

ENT#4430 외부 프로그램 수집기에서 외부 프로그램 실행 시 파일 핸들 누수 발생 해결, 윈도우 네트워크 대역폭 사용률 수집기와 윈도우 성능카운터 수집기에서 윈도우 API 호출 오류 시 메모리 누수 발생 해결

외부 프로그램 수집기에서 외부 프로그램 실행 시 파일 핸들 누수가 발생하는 문제가 해결되었습니다. 윈도우 센트리의 윈도우 네트워크 대역폭 사용률 수집기와 윈도우 성능카운터 수집기에서 윈도우 API를 호출할 때 오류가 발생하면 메모리가 누수되는 현상을 해결했습니다.

ENT#4449 테이블 데이터 복구 과정에서 데이터 파일 헤더가 손상되는 문제 해결

로그프레소를 시작할 때 테이블 데이터 정합성 확인 단계에서 로그 파일을 복구하면서 생성된 데이터 블록이 낮은 확률로 파일 헤더를 덮어쓰면서 해당 일자 데이터가 조회되지 않는 문제가 발생하지 않도록 수정했습니다.