Spring Framework/SpringBoot

[SpringBoot] hikaripool-1-Starting... stuck 문제 - hikaripool 에서 멈출 경우 대응방법

Razelo 2022. 4. 1. 22:46

새롭게 진행하는 프로젝트에서 ec2를 만들어서 rds랑 연결하는 작업을 하고 있는데 

스프링 부트 어플리케이션을 실행하면 hikaripool starting... 에서 무한정 대기하는 현상을 발견했다. 

로컬에서 rds 에 연결했을때도 잘 연결됬는데 ec2 상에서 문제가 발생하는 것을 보고 인터넷을 한참 뒤졌다. 

 

관련된 자료로는 hikari의 경우 특정 버전, 예를 들면 window 와 특정 oracle jdk 버전(18>이후)에서 고질적인 문제를 겪는다고 한다. 관련된 github 이슈가 딱 하나 있었는데 대화가 상당히 진행되며 이야기한 것의 요약을 해보면 위 환경에서 이유없이 그냥 stuck 되는 경우가 있었다고 한다. (이것때문에 고민하신 분들이 꽤 많았다. 하지만 내 문제와는 살짝 결이 다른 이슈인것 같았다. 방향 자체가 달랐다.)

 

하지만 내 경우는 ubuntu + jdk11 이었기 때문에 아쉽게도 위 이슈에서는 해결법을 찾지 못했다. 

 

그러던 와중에 추측을 하게됬다. (원래 삽질 두어시간 하다보면 멘탈이 나가서 추측을 하기 시작한다. )

이전에 ec2에서 자잘한 설정을 해줄 적에 yum을 install 하는 과정에서 에러가 발생했었다. 그리고 apt-get update도 진행을 안했던 기억이 있었던 것만 같았다. 다른 변수들은 고정되있고 로컬에서 원격 rds접속도 이상없이 잘 되는데도 이유없이 hikaripool이 starting에서 무한정 대기하는 것을 보면 그저 환경 탓이라는 생각이 들었다. 

 

그래서 ec2에서 기본 세팅을 다시 해주기로 했다. 

root 권한으로 yum을 install 해주었고 jdk 를 다시 다운받았다. 이후에 java home 환경변수까지 세팅을 해주었다. 

 

그리고 나서 application.yml 의 ddl-auto 를 create으로 바꾸었다. (이건 이게 해결방법이 될거라고 생각해서 한게 아니라 sql 나가는걸 직접 눈으로 보고 싶어서 잠깐 해본 무모한 시도였다. )

 

그리고 java -jar 를 통해 실행을 시켜줬는데 hikaripool-1 -starting... 에서 이후에 진행이 될 수 있었다.

 

위에서 했던 행동들 중에서 뭐가 가장 해결방법에 근접했을까? 사실 hikaripool 이 starting... 에서 stuck 이 되었다는 문제에 대해서 해결방법이 인터넷에 정말 적었다. 다들 postgre에서 발생한 이슈만 다루고 있었고 나처럼 mysql 에서 발생한 이슈를 다루는 사람들은 거의 없었다. 몇 개의 포럼에서 나와 정확히 동일한 문제를 겪고 있는 사람이 질문 글을 올려놓긴 했지만 불행하게도 밑에 달린 코멘트가 아무것도 없었다. 

 

그래서 마지막으로 결론을 내려보자면 아마 java home 환경 변수 설정을 해준 것이 해결 방법이지 않았나 하는 생각이 든다. hikaripool 을 사용하는 것이 결국은 spring application 이고 내가 했던 행동들 중에서 이 점들과 가장 근접한 점은 java home 환경변수 세팅인것 같다. 

 

아무튼 제대로 쿼리가 나가는걸 확인해서 다행이다. 

내일 아는 형 (안드로이드 담당)과 함께 api 로 주고받는걸 확인해보기로 했는데 갑자기 뜬금없는데서 문제가 생겨서 빨리 해결해보려 조급하게 행동했다. 

 

해결해서 다행이고 앞으로는 세팅 잘해주자. 

 

ubuntu ec2 에서 java 관련 설정은 아래 블로그를 참고했다. 

https://velog.io/@alsdn9501/AWS-EC2-Java-11-%EC%84%A4%EC%B9%98

 

AWS EC2(Ubuntu18.04) Java 11 설치

https://medium.com/sjk5766/yum%EC%97%90-%EB%8C%80%ED%95%B4-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90-a41a75a0136b※ 자세한 설명은 위 링크 참고※ apt-get(Advanced P

velog.io

 

참고로 위 블로그대로 yum 을 install 하는 과정 중에서 자잘한 에러를 만났는데 그건 아래 블로그의 도움을 받았다. 

https://velog.io/@sangeun-jo/E-Unable-to-locate-package

 

E: Unable to locate package

문제 > $ sudo apt install yum Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package yum

velog.io

https://svrforum.com/svr/43553

 

서버포럼 - 리눅스 패키지설치시 E: Unable to correct problems, you have held broken packages. 에러 해결방법

안녕하세요. 달소입니다. 오늘은 ubuntu에서 패키지 설치시 나오는 E: Unable to correct problems, you have held broken packages. 가 나왔을때 해결하는 방법입니다. 해당 에러는 패키지 리스트가 꼬여서 발생하

svrforum.com

 

반응형