9월, 2023의 게시물 표시

XX000: template database "template1" has a collation version mismatch

XX000: template database "template1" has a collation version mismatch Npgsql + EF Core 사용 중 발생한 문제 collation version mismatch 며칠 전부터 Docker 관련 문제로 인해 백업하고 복구하는 과정에서 발생한 문제이다. 아마도 postgres 이미지의 버전업 때문에 발생한 문제로 보인다. 이 문제는 Update-Database (dotnet ef database update) 실행 중 발생했다. 추측하기로 프로젝트에 저장된 마이그레이션 정보에 있는 collcation version과 실제로 마이그레이트 되고 있는 DB의 collation version이 달라서 발생하는 문제 같다. The template database was created using collation version 2.31, but the operating system provides version 2.36. 그렇다면 collation version을 최신화 해주면 된다. Refresh Collation Version PostgreSQL에서 특정 DB의 collation version을 최신화하려면 다음과 같은 쿼리를 날리면 된다. 여기선 문제가 발생한 템플릿 DB인 template1 DB를 대상으로 하겠다. ALTER DATABASE template1 REFRESH COLLATION VERSION ; 잘 적용되었는지 확인해보자. SELECT datcollversion FROM pg_database WHERE datname = 'template1' ; datcollversion 2.36 이제 다시 DB를 업데이트해보면 정상적으로 작동하는 것을 확인할 수 있다.

gitlab-runner에서 x509 Failed to Verify Certificate 문제

gitlab-runner에서 x509 Failed to Verify Certificate 문제 tls: failed to verify certificate: x509: certificate signed by unknown authority 이것저것 일을 처리하다가 Let’s Encrypt 일주일 갱신 제한에 걸려버려서 ZeroSSL을 사용하는 도중 발생한 문제이다. GitLab을 복원하고 암호화된 토큰을 리셋한 뒤 다시 러너를 등록하는 도중 위와 같은 메세지가 나타났다. 1 만약 self-signed 인증서를 사용하다가 발생한 문제라면 이 포스트가 아니라 공식 문서 를 확인하기 바란다. 이 글은 올바른 인증서를 사용했음에도 러너에서 위와 같은 메세지가 뜰 때의 해결 방법 이다. --tls-ca-file 옵션 해결 방법은 간단하다. gitlab-runner register 단계에서 --tls-ca-file 옵션을 사용해 인증서를 넘겨주면 된다. gitlab-runner register [ .. . ] --tls-ca-file < crt path > Linux 기반 러너는 register 명령을 실행할 때, Windows 기반 러너는 등록하고 실행 중에 뜬다. ↩︎

GitLab Runner 아티팩트 생성 불가 문제

GitLab Runner 아티팩트 생성 불가 문제 파이프라인 아티팩트 생성 불가 문제 Errno::ENOENT (No such file or directory @ apply2files - /var/opt/gitlab/gitlab-rails/shared/artifacts/tmp/work/... bind-mount 를 WSL2 Ubuntu Distro 내부에서 윈도우 NTFS 시스템으로 옮긴 뒤부터 발생한 문제다. 파이프라인이 계속해서 실패하기에 로그를 살펴보니 위와 같은 문제가 발생하고 있었다. 위 오류 메세지를 살펴보면 즉 아티팩트를 업로드할 경로가 없다는 얘기인데… 실제로는 멀쩡히 잘 존재한다. 바인드 마운트 문제 우분투 디스트로 내부에서는 문제가 없다가 NTFS 파일 시스템으로 옮긴 뒤 문제가 발생하였으므로 바인드 문제라 추정하였다. 처음엔 어떻게든 ACL을 변경하면 되지 않을까 하였으나 그런 방법으로는 해결할 수 없었고, 결국 바인드 마운트 대신 볼륨 마운트 를 사용해 해결하기로 했다. 볼륨 마운트 services : gitlab : # ... volumes : - gitlab - data : /var/opt/gitlab volumes : gitlab-data : 위처럼 볼륨 마운트로 사용하니 정상적으로 작동한다. 주의 할 점은, 볼륨 마운트로 변환 시 기존 데이터가 전부 날아가게 된다. 따라서 꼭 백업을 먼저 진행하고 변환하기 바란다.