Development

    Root Filesystem 손상과 복구

    Root Filesystem 손상과 복구

    서론 몇 주전, 집에 있는 서버의 전원이 내려갔다. UPS의 전원 공급 선이 접촉 불량으로 전력 공급이 원활하지 못했기 때문이다. 물론 문제를 해결하고 전원을 다시 공급했지만, 개발 서버만 자동 복구에 실패했다. 처음에는 전원을 공급하지 못한 기간이 길었음을 의심했다. (약 1주일) 이는 보드에 내장되어 있던 CR2032 배터리가 방전되어 보드 내부에 있는 롬 플래시에 전원을 공급하지 못했을 수도 있기 때문이였다. 롬 플래시는 휘발성이므로 배터리를 탈착하는 행위를 통해 전원 공급을 해주지 못하면 데이터가 휘발되어 부트 프로파일이 날아가게 된다. 하지만, 실제로 들어가서 확인해보니 이야기가 달라졌다. 개발서버에 모니터를 연결하니 Emergency Shell이 나를 반겨주었다. dmesg 명령을 통해 원인을..

    EMFILE: too many open files

    EMFILE: too many open files

    발단 Next.js 기반 프로젝트를 Podman으로 빌드하다가 다음 오류가 발생하였다. 해결 방법 docker-compose.yml 파일에 존재하는 Service 트리에 다음 코드를 붙여넣는다. 부족하다면, 값을 더 올리면 된다. ulimits: nofile: soft: "65536" hard: "65536" build 명령으로 빌드하는 경우, --ulimit nofile=65536:65536 를 추가한다. 이는 run 명령에도 적용 할 수 있다. 원인 커널단에서 동작하는 ulimit은 프로세스의 자원 한도를 제한한다. 해결 방법에 적혀있듯이 soft와 hard 한도가 둘 다 적혀있는데, 이는 다음과 같다. Soft Limit: 새로운 프로그램을 생성하면 기본으로 적용되는 한도. Hard Limit: S..

    AssertionError: Torch not compiled with CUDA enabled

    본 글은 솔루션을 검색 후 찾아 분석한 글이며, 솔루션 출처는 다음과 같습니다. 솔루션 출처: https://github.com/pytorch/pytorch/issues/30664#issuecomment-757431613 발단 모델을 사용하기 위해 pytorch를 설치하고 실행하는 도중 발생하였다. 해결 방법 다음과 같은 명령어를 입력한다. pip uninstall torch pip cache purge pip install torch -f https://download.pytorch.org/whl/torch_stable.html 원인 먼저 pip의 -f argument가 무엇인지 확인해보자. 다음은 pip 공식 설명이다. 여기서 주목 해야하는 점은 경로를 제공해주면 "해당 위치에서" 아카이브를 따온다는..

    swc: failed to process input file

    발단 기존 tsc를 사용하다 swc로 마이그레이션 하는 작업에서 에러가 발생하였다. failed to process input file Caused by: 0: failed to read swcrc file (src/talk/channel/talk-channel-session.ts) 1: failed to deserialize .swcrc (json) file: unmatched data: 0:0 2: data did not match any variant of untagged enum FileMatcher 당시 .swcrc는 다음과 같은 상태였다. 해결 방법 2번째 줄을 다음과 같이 변경한다. exclude: ["node_modules", "dist"], 원인 다시 앞으로 돌아와서, 이 문제는 tsco..

    vscode에서 GPG 커밋 사이닝시 error: gpg failed to sign the data 오류 해결 방법

    발단 vscode에 GPG를 사용한 커밋 사이닝 시에 다음과 같은 오류가 발생하였다. error: gpg failed to sign the data Git Log를 자세히 살펴보니 다음과 같았다. error: gpg failed to sign the data fatal: failed to write commit object 심지어, pinentry 설치와 GPG 경로 설정도 정상적으로 되어 있는 상태임을 확인하였다. 하지만 이 문제는 GPG Key에 Passphrase가 걸려있어 발생하는 문제였다. 해결 방법 1. 임시로 GPG 키를 한번 사용하여 해결 먼저, settings.json에서 다음과 같은 구문을 삽입한다. "git.enableCommitSigning": true 본 구문을 삽입후 vscode..

    httputil.ReverseProxy 사용시 Host Header 적용 문제

    발단 필자는 net/http/httputil 패키지에 포함된 httputil.ReverseProxy를 사용하여, 간이 역방향 프록시 프로그램을 개발 중에 있었다. 하지만, https://www.google.com 으로 프록싱 시켰는데 다음과 같은 오류를 반환 받았다. 404. That’s an error. The requested URL / was not found on this server. That’s all we know. / 이라는 경로에 접근하는데, not found라는 에러를 반환 받았다. 어떤 사람으로부터 Host Header가 존재하지 않아, Google 측의 LB에서 인식하는데에 문제가 있을 것이라는 의견을 받았다. 따라서 다음과 같은 코드를 추가하였지만, 같은 문제가 반복 되었다. r...