SNR#2535 앱 설치 및 재설치 관련 문제 개선
버전: 4.0.2409.0
다음과 같은 경우 앱 설치 혹은 재설치가 실패하는 문제를 해결했습니다.
- plugin 폴더에 설치되지 않은 앱 파일이 존재하는 경우
- 기존에 앱 설치 후 앱 파일 삭제한 뒤 다른 경로에서 재설치하는 경우
4.0.2308.0 버전에서 앱을 설치 후 패키지 업그레이드 시 앱을 사용할 수 없었던 문제를 해결했습니다. 이 경우 아래와 같은 오류 메시지가 발생했습니다.
[2024-07-22 18:58:31,762] ERROR (AppServiceImpl) - sonar exchange: app loader thread error
java.lang.IllegalStateException: cannot parse app record (id: 1, code: fortigate)
at com.logpresso.sonar.api.exchange.impl.AppServiceImpl$AppLoader.__M_reloadCachedApps(AppServiceImpl.java:2435)
at com.logpresso.sonar.api.exchange.impl.AppServiceImpl$AppLoader.reloadCachedApps(AppServiceImpl.java)
at com.logpresso.sonar.api.exchange.impl.AppServiceImpl$AppLoader.__M_runOnce(AppServiceImpl.java:2422)
at com.logpresso.sonar.api.exchange.impl.AppServiceImpl$AppLoader.runOnce(AppServiceImpl.java)
at com.logpresso.sonar.api.exchange.impl.AppServiceImpl$AppLoader.__M_run(AppServiceImpl.java:2405)
at com.logpresso.sonar.api.exchange.impl.AppServiceImpl$AppLoader.run(AppServiceImpl.java)
Caused by: org.json.JSONException: A JSONObject text must begin with '{' at character 0
at org.json.JSONTokener.syntaxError(JSONTokener.java:409)
at org.json.JSONObject.<init>(JSONObject.java:190)
at org.json.JSONObject.<init>(JSONObject.java:423)
at com.logpresso.sonar.api.app.App.setNames(App.java:64)
at com.logpresso.sonar.api.app.App.parse(App.java:44)
at com.logpresso.sonar.api.exchange.impl.AppServiceImpl$AppLoader.__M_reloadCachedApps(AppServiceImpl.java:2431)
... 5 more
앱 설치에 실패하면 오류 메시지 창을 표시하도록 수정했습니다.
- 내부 파일이 손상된 앱 파일로 설치하는 경우
- 동일한 이름을 가진 객체(수집기, 로그 정규화 등)가 이미 존재하는 경우
내장 앱의 경우 설치 및 재설치를 할 수 없도록 수정했습니다. 내장 앱 목록은 다음과 같습니다.
- MySQL
- MariaDB
- Oracle
- SQLite
앱 설치 시 분석1 서버를 제외한 노드에 tmp- 로 시작하는 임시 파일이 삭제되지 않고 남아있는 문제를 해결했습니다.