2 minute read

pintos 하면서 만난 make 에러들 정리

🔫error 127

make: *** [tests/userprog/args-multiple.output] error 127

원인

source ./activate 를 안해서 생기는 오류.

하지만 .bashrc 에 자동으로 해놓으라고 설정 해놨는데요 ? -> 팀이 변경되면서 repository 명도 변경됨. 그래서 자동으로 되지 않았던 것이었다. 😋

스크린샷 2023-10-15 19.14.35

해결방법

vi ~./bashrc

G

I

source ~/${current repository name}/activate

wq

혹은 수동으로 source ./activate

배운점

자동으로 명령어를 입력해준다 해도, 필요성은 인지해야함.

🔫error 120

처음보는 에러번호였다. make check 를 해서, 코드가 오류였다면 테스트 코드에서 이런 이유로 kernel panic이 되어 테스트 종료… 라는 식으로 떴었다. 혹은 문법오류일 경우 make check 시작하자마자 코드가 터져서 종료가 되거나.

그런데 이번에는 테스트 ERROR 120 번을 출력하며 테스트가 어느정도 진행 된 후에(거의 막바지에) 강제 종료가 되었다.

make error 120 으로 아무리 구글링을 해봐도 이렇다 할 해답이 나오지 않았다. chat GPT 마저도..

스크린샷 2023-10-15 19.14.35

시간이 없는 상황에서 내가 생각해낸 해결방법은 test가 돌아갔을 때의 commit 으로 돌아가는 것이었다. 코드 문제라고만 생각했다. 하지만 test가 돌아갔을떄의 commit 으로 되돌아가도 테스트는 ERROR 120을 뱉고는 죽어버렸다. 🪦

스크린샷 2023-10-15 19.14.35

이상하다. 분명 이때는 되었는데. 그떄는 되고 지금은 안되고..하지만 여러 시도 끝에 몇 가지 단서를 얻을 수 있었다.

단서 1. make check 할때마다 ERROR 120 을 뱉는 테스트가 동일하지 않다.

후반부인것은 동일하나, 늘 동일한 테스트 케이스에서 터지는것이 아니었다. 그럼 코드 문제가 아닐수도?

단서 2. 일단 되돌아간 커밋으로 새로운 브랜치를 만들어서 origin push 를 했더니 out of disk 라는 오류가 났다. 디스크 없다고? 🤔이부분에 집중을 해보기로 했다.

다음은 ec2의 storage 를 확인하는 명령어이다.

20G로 늘린 다음의 화면이긴 한데, 7.5G나 사용했음을 볼 수 있다.(이유는 아직 확인중이다..)

프리티어 ec2의 기본 storage은 8G이다. 디스크가 부족해서 테스트가 돌아가지 못한 것이다.

스크린샷 2023-10-15 19.14.35

해결 절차.

aws 대시보드에서 스토리지 볼륨크기를 20G까지 올려준다. 프리티어는 30G까지 사용할 수 있다.

스크린샷 2023-10-15 19.14.35

디스크 늘린김에 스왑파일을 이용해서 램도 2G를 추가 할당했다. 기존 프리티어 ec2의 램은 1G이다. 약간은 더 빨라진게 체감된다!

스크린샷 2023-10-15 19.14.35

해결후 테스트 코드가 매우 잘 돌아갔다.

배운점

에러 해결 방법은 대부분 에러가 뜬 로그에 있다.

에러의 원인을 추적해 나가는 방법.

Updated:

Leave a comment