ezinc 교육 자료
Search posts...

Categories

  • All Posts16
  • 3rabbitz1
  • 클립리포트6
  • Ezworks3
  • Git5
  • 문서 작성 가이드1
© 2026 Git Static Doc Server. All rights reserved.
Open Source Licenses
Git•2026년 5월 12일

GitLab 502 오류 해결 가이드: PostgreSQL 잠금 파일 문제

GitLab 서비스에 접속했을 때 갑자기 502 Bad Gateway[1] 에러가 발생하며 페이지가 열리지 않는 경우가 있습니다. 이 문서는 그중에서도 PostgreSQL의 잠금 파일(lock file)로 인해 발생하는 문제를 진단하고 해결하는 방법을 설명합니다.

1. 증상 확인 및 로그 분석

먼저 GitLab의 상태를 확인하기 위해 Docker Compose가 설치된 경로로 이동하여 로그를 실시간으로 모니터링해야 합니다.

# GitLab 설치 경로로 이동
cd /services/gitlab

IMPORTANT

로그 확인 및 파일 삭제 작업을 위해서는 반드시 root 권한이 필요합니다. sudo를 사용하거나 root 계정으로 전환 후 진행해 주세요.

아래 명령어를 입력하여 컨테이너 로그를 확인합니다.

docker compose logs -f

오류 메시지 예시

로그를 살펴보다가 아래와 같은 FATAL 메시지가 발견된다면 이 가이드에 기술된 문제일 가능성이 매우 높습니다.

gitlab  | 2024-05-21_00:07:23.61937 FATAL:  lock file "/var/opt/gitlab/postgresql/.s.PGSQL.5432.lock" already exists

2. 원인 파악

이 문제는 주로 다음과 같은 상황에서 발생합니다.

  • 서버의 갑작스러운 전원 종료 (정전 등)
  • Docker 컨테이너의 비정상적인 강제 종료
  • 운영체제(OS) 오류로 인한 시스템 재시작

이때 PostgreSQL이 정상적으로 종료되지 못하면서, 실행 중임을 표시하는 잠금 파일(.lock)[2]이 삭제되지 않고 남아있게 됩니다. 이후 시스템이 다시 켜졌을 때 이 파일 때문에 DB가 중복 실행으로 판단하여 기동을 거부하게 되는 것입니다.


3. 해결 방법: 잠금 파일 제거 및 재시작

해결 방법은 간단합니다. 남아있는 잠금 파일을 수동으로 제거한 뒤 컨테이너를 다시 시작하면 됩니다. 아래 순서대로 작업을 진행해 주세요.

해결 프로세스

graph TD A[GitLab 502 오류 발생] --> B{로그 확인} B -->|lock file already exists| C[잠금 파일 수동 삭제] C --> D[도커 컨테이너 재시작] D --> E[서비스 정상화 확인]

실행 명령어

# 1. PostgreSQL 잠금 파일 제거
rm /services/gitlab/data/postgresql/*.lock

# 2. 컨테이너 중지
docker compose down

# 3. 컨테이너 백그라운드 재실행
docker compose up -d

CAUTION

docker compose down 실행 시 현재 실행 중인 모든 GitLab 관련 서비스가 일시적으로 중단됩니다. 작업 전 진행 중인 코드 푸시나 CI/CD 작업이 없는지 확인하시기 바랍니다.



  1. 502 오류는 게이트웨이 역할을 하는 Nginx가 내부의 GitLab 서비스(PostgreSQL, Sidekiq 등)로부터 응답을 받지 못할 때 발생합니다. ↩︎

  2. .lock 파일은 특정 프로세스가 자원을 독점하고 있음을 알리는 신호 역할을 합니다. 시스템이 정상 종료되면 자동으로 삭제되지만, 비정상 종료 시에는 남아있어 재시작을 방해하곤 합니다. ↩︎

← Back to all posts