728x90
반응형
GitLab 502 오류
GitLab 502 error
상황
- 하드디스크 용량이 부족해서 GitLab서버가 다운됨.
- 하드디스크 용량을 늘리고, 다시 재구동을 했는데, 그때부터 502가 뜨면서, GitLab 서비스가 죽었다가 살아났다를 무한 반복.
- docker-compose로 컨테이너를 재시작해봐도 해결 안 되고,
#재시작 down / up
docker-compose down
docker-compose up -d
- 서버 전원을 그냥 껐다 켜도 안된다고 함.
처리방법
- 먼저 gitlab 로그를 확인해 봤어요.
- "unmigrated data on legacy storage"? 데이터베이스 관련인 듯해서 gitlab 컨테이너에 접속 후 데이터베이스 상태를 확인해 봤습니다.
--윈도우에서 docker gitlab 컨테이너에 접속
powershell> docker exec -it gitlab bash
--Gitlab 데이터베이스확인
root@ gitlab-rake gitlab:check
- postgresql에 문제가 있는 것 같습니다. 접속도 안되는 듯하고..
Exception: could not connect to server: Connection refused Is the server running locally and accepting
All migrations up? ... yes
Database contains orphaned GroupMembers? ... Exception: could not connect to server: Connection refused
Is the server running locally and accepting
connections on Unix domain socket "/var/opt/gitlab/postgresql/.s.PGSQL.5432"?
GitLab config exists? ... yes
GitLab config up to date? ... yes
Cable config exists? ... yes
Resque config exists? ... yes
Log directory writable? ... yes
Tmp directory writable? ... yes
Uploads directory exists? ... yes
Uploads directory has correct permissions? ... yes
Uploads directory tmp has correct permissions? ... yes
Systemd unit files or init script exist? ... skipped (omnibus-gitlab has neither init script nor systemd units)
Systemd unit files or init script up-to-date? ... skipped (omnibus-gitlab has neither init script nor systemd units)
Projects have namespace: ... Exception: could not connect to server: Connection refused
Is the server running locally and accepting
connections on Unix domain socket "/var/opt/gitlab/postgresql/.s.PGSQL.5432"?
Redis version >= 6.0.0? ... yes
Ruby version >= 2.7.2 ? ... yes (2.7.7)
Git user has default SSH configuration? ... yes
Active users: ... Exception: could not connect to server: Connection refused
Is the server running locally and accepting
connections on Unix domain socket "/var/opt/gitlab/postgresql/.s.PGSQL.5432"?
Is authorized keys file accessible? ... yes
GitLab configured to store new projects in hashed storage? ... no
Try fixing it:
Please enable the setting
`Use hashed storage paths for newly created and renamed projects`
in GitLab's Admin panel to avoid security issues and ensure data integrity.
For more information see:
doc/administration/repository_storage_types.md
All projects are in hashed storage? ... Exception: could not connect to server: Connection refused
Is the server running locally and accepting
connections on Unix domain socket "/var/opt/gitlab/postgresql/.s.PGSQL.5432"?
Checking GitLab App ... Finished
Checking GitLab subtasks ... Finished
- 자세히 보기 위해 postgresql log, current 파일을 열어서 확인해 봤어요.
(저는 docker-compose.yml파일에 각종 log폴더들을 volume으로 바인딩해 놔서, 윈도에서 폴더로 바로 접근가능했습니다.)
- current 파일을 열고 내용을 보니 "postmaster.pid" 파일이 비어 있다고 나와있는 것으로 보이네요. 이런 현상은 PostgreSQL 서버가 이전에 비정상적인 종료 또는 충돌이 발생해서 잠겨 있는 상태일 수 있음을 의미한다고 해요.
- 해결방법은 "postmaster.pid" 파일을 제거하고, PostgreSQL 서버를 재시작하면 된다고 하네요
#pid파일 제거
rm /var/opt/gitlab/postgresql/postmaster.pid
#또는
rm /var/opt/gitlab/postgresql/data/postmaster.pid
#서버 재시작
gitlab-ctl restart postgresql
해결
- 잘됩니다.
728x90
반응형