jojoldu / freelec-springboot2-webservice

1.07k stars 462 forks source link

[오류] p.364 실제 배포 과정 체험 중 오류입니다. #201

Open hwanyyy opened 4 years ago

hwanyyy commented 4 years ago

기존에 올라온 질문이 아닌지 먼저 검색해주세요!

#127 이분 원인도 저랑 비슷하지 않을까 조심스레 예상해봅니다..

어떤 오류인가요?

오류설명: 배포까지 완료하고, build.gradle에서 verison '1.0.1-SNAPSHOT' 버전을 변경하고 배포하니 당연히 되는줄 알았지만 아래와 같은 오류가 나왔습니다.
image

그래서 여러 고민을 해보다가 scripts/deploy.sh 파일에서
CURRENT_PID=$(pgrep -fl springboot2-webservice | grep java | awk '{print $1}')
이 부분이 의심이 가서 혹시나 하고 찍어보니 image jar로 할 땐 안나오다가 java로 하니까 찍혀 이대로 재배포하니까 구동 중인 애플리케이션을 지우고, 정상적으로 작동되었습니다. image

혹시 오류가 맞는지 확인해주시면 감사하겠습니다!

jojoldu commented 4 years ago

@hwanyyy 님 안녕하세요! 음 일단 어떤 에러였었는지 nohup.out을 통해 로그를 캡쳐해주셨다면 더 확인하기가 쉬웠을것 같은데요 ㅠ 지금 보여주신것만으로는 뇌피셜(?) 만으로 말씀드려야해서 한계가 있을것 같습니다 ㅠ

일단 500에러면, 보통은 서버는 실행되었는데, DB 혹은 다른 설정 혹은 지정되지 않은 예외등이 발생해서 응답을 제대로 못준다는 의미입니다.

만약 배포 자체가 안되었다면 Whitelabel Error Page도 보이지 않았을거라서요^^; Whitelabel Error Page를 보여줄려면 결국은 스프링 서버가 실행은 되있어야 에러라도 보여주는지라, 다른 문제가 있지 않을까 싶습니다 :)

bossm0n5t3r commented 3 years ago
[ec2-user@ip-172-31-11-137 ~]$ pgrep -fl example-springboot-webservice
2903 dhclient
3034 dhclient
3857 java
[ec2-user@ip-172-31-11-137 ~]$ pgrep -fl example-springboot-webservice | grep jar
[ec2-user@ip-172-31-11-137 ~]$ vim app/gitFolders/deploy.sh
[ec2-user@ip-172-31-11-137 ~]$ pgrep -fl example-springboot-webservice*.jar
[ec2-user@ip-172-31-11-137 ~]$ lsof -i TCP:8080
COMMAND  PID     USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
java    3857 ec2-user   26u  IPv6  24038      0t0  TCP *:webcache (LISTEN)
[ec2-user@ip-172-31-11-137 ~]$ cd app/step/
[ec2-user@ip-172-31-11-137 step]$ ll
total 97976
-rwxr-xr-x 1 ec2-user ec2-user 50157377 Feb  2 00:03 example-springboot-webservice-1.0.1-SNAPSHOT.jar
-rwxr-xr-x 1 ec2-user ec2-user 50157375 Feb  1 23:16 example-springboot-webservice-1.0-SNAPSHOT.jar
-rw-r--r-- 1 ec2-user ec2-user     7745 Feb  2 00:04 nohup.out
drwxrwxr-x 2 ec2-user ec2-user       98 Feb  2 00:03 zip
[ec2-user@ip-172-31-11-137 step]$ vim nohup.out
[ec2-user@ip-172-31-11-137 step]$ pgrep -fl example-springboot-webservice | grep java
3857 java
[ec2-user@ip-172-31-11-137 step]$

저도 비슷한 문제를 겪고 있다가 같은 해결 방법으로 해결했습니다. 저같은 경우에는 수정사항이 배포 자동화를 통해서 제대로 업데이트 되지 않는 문제였고 페이지는 수정사항이 반영 안 된 이전 페이지를 정상적으로 노출되고 있었습니다. ec2에 들어가서 nohup.out 파일을 찍어보니, 8080 포트를 이미 사용 중이라는 에러를 내면서 서버 실행이 정상적으로 되지 않아 기존 실행되는 걸 못 죽인다는 판단하에, 위에 제시해준 것처럼 동일하게 수정해서 반영하니 정상적으로 실행되었네요... 혹시 다른분에게 참고가 되지 않을까 싶어 관련된 터미널 내역과 함께 커맨트 남겨봅니다.

책 뒷 장을 넘기니 로그 찍는 부분도 나오네요...

[2021-02-02 00:03:57.768] [d-IWP3QZI58]LifecycleEvent - ApplicationStart
[2021-02-02 00:03:57.769] [d-IWP3QZI58]Script - deploy.sh
[2021-02-02 00:03:57.781] [d-IWP3QZI58][stdout]> Build 파일 복사
[2021-02-02 00:03:57.891] [d-IWP3QZI58][stdout]> 현재 구동중인 애플리케이션 pid 확인
[2021-02-02 00:03:57.920] [d-IWP3QZI58][stdout]현재 구동중인 어플리케이션 pid:
[2021-02-02 00:03:57.921] [d-IWP3QZI58][stdout]> 현재 구동중인 애플리케이션이 없으므로 종료하지 않습니다.
[2021-02-02 00:03:57.921] [d-IWP3QZI58][stdout]> 새 어플리케이션 배포
[2021-02-02 00:03:57.923] [d-IWP3QZI58][stdout]> JAR Name: /home/ec2-user/app/step/example-springboot-webservice-1.0.1-SNAPSHOT.jar
[2021-02-02 00:03:57.923] [d-IWP3QZI58][stdout]> /home/ec2-user/app/step/example-springboot-webservice-1.0.1-SNAPSHOT.jar 에 실행권한 추가
[2021-02-02 00:03:57.924] [d-IWP3QZI58][stdout]> /home/ec2-user/app/step/example-springboot-webservice-1.0.1-SNAPSHOT.jar 실행
[2021-02-02 00:14:12.692] [d-4RGAG1J58]LifecycleEvent - ApplicationStart
[2021-02-02 00:14:12.693] [d-4RGAG1J58]Script - deploy.sh
[2021-02-02 00:14:12.705] [d-4RGAG1J58][stdout]> Build 파일 복사
[2021-02-02 00:14:12.809] [d-4RGAG1J58][stdout]> 현재 구동중인 애플리케이션 pid 확인
[2021-02-02 00:14:12.816] [d-4RGAG1J58][stdout]현재 구동중인 어플리케이션 pid: 3857
[2021-02-02 00:14:12.816] [d-4RGAG1J58][stdout]> kill -15 3857
[2021-02-02 00:14:17.841] [d-4RGAG1J58][stdout]> 새 어플리케이션 배포
[2021-02-02 00:14:17.844] [d-4RGAG1J58][stdout]> JAR Name: /home/ec2-user/app/step/example-springboot-webservice-1.0.1-SNAPSHOT.jar
[2021-02-02 00:14:17.844] [d-4RGAG1J58][stdout]> /home/ec2-user/app/step/example-springboot-webservice-1.0.1-SNAPSHOT.jar 에 실행권한 추가
[2021-02-02 00:14:17.845] [d-4RGAG1J58][stdout]> /home/ec2-user/app/step/example-springboot-webservice-1.0.1-SNAPSHOT.jar 실행

수정사항을 반영하니 정상적으로 죽이는 부분입니다.

@hwanyyy @jojoldu