python segmentation fault

Nam Eun-Ji·2022년 10월 31일
0

ERROR

목록 보기
2/2

celery를 이용하여 주기적인 task를 돌리는 기능을 진행했다.
그런데, circleCI에서 계속해서 migrate하는 부분에서 segmentation fault가 뜨는 것이다.

이 기능을 해결하기 위해 장장 3일이 걸렸는데, 해결하고 나니 너무 허무했다...
깊게 생각해보지 않으려 했던 나 자신을 원망한다.

찾아보니 보통 C로 작성했을 때 보통 아래와 같은 원인으로 난다고 한다.

  • null 값을 가리키는 포인터에 접근할 경우
  • 할당 받은 메모리 공간을 넘은 곳을 건드린 경우
  • 더 이상 존재하지 않는 메모리 영역을 가리킬 경우
  • read-only 표시 메모리 영역에 쓰려고 할 경우

일반적인 파이썬 프로그램 자체는 C로 작성한 프로그램 처럼
Segmentation Fault 를 발생하며 죽는 경우는 거의 없지만, 아래와 같은 이유로 날 수 있다고 한다.

  • 코드 상의 문제 (도달할 수 없는 메모리에 액세스 하는 코드를 작성했을 때)
  • 호환되지 않는 패키지 간의 충돌

install_apps.py에서 django-celery-beat를 지웠더니 해당 에러가 나지 않았음을 확인했기 때문에 2번을 참고하여 celery와 관련된 라이브러리를 다운그레이드해서 에러를 잡을 수 있었다.

# before
django-celery-beat==2.4.0
django-celery-results==2.4.0
django-timezone-field==5.0

# after
django-celery-beat==2.0.0
django-celery-results==2.2.0
django-timezone-field==4.2.3




참고사이트
https://codingfriend.tistory.com/18
https://gem1n1.tistory.com/197

profile
한 줄 소개가 자연스러워지는 그날까지

0개의 댓글