Error
12 posts
[Error] Redis 기동 실패 : SELinux

VM이 갑자기 재기동 되어 k8s 클러스터를 복구하였으나, redis가 재기동되지 않아서 명령으로 로그를 확인해보니 와 같은 오류가 출력되었다. 이는 SELinux의 audit 정책과 관련된 이슈이고, SELinux 정책을 off했다가 redis 재기동 후 on을 하는 방식으로 해결하였다. 정책 off 정책 on

November 22, 2023
Error
[Error] docker: failed to register layer: open /var/lib/docker/overlay2/... : no such file or directory.

디스크 공간 부족으로 docker 컨테이너 관련 파일을 정리하던 도중 실수로 건드려서는 안되는 /var/lib/docker/overlay2 디렉토리 하위의 몇몇 파일들을 삭제했다. 덕분에 새로운 이미지로 pull하여 컨테이너 기동시 아래와 같은 오류가 났다. Docker 데몬 중지 sudo systemctl stop docker /var/lib/docker/overlay2 디렉토리 백업 해두기. 혹시 모르니 기존 디렉토리는 백업해두자. Docker 데몬 초기화 이렇게 하니 해결되었는데 구글링해보니 도커를 완전히 삭제 후 재설치해야 해결되는 경우도 있다고 한다. 끝.

July 22, 2023
Error
[Error] VM 꺼짐으로 인한 Kubernetes crash 이슈

https://igotit.tistory.com/entry/%EC%9C%88%EB%8F%84%EC%9A%B0-10-%EC%9E%90%EB%8F%99%EC%97%85%EB%8D%B0%EC%9D%B4%ED%8A%B8-%EC%9E%90%EB%8F%99%EC%9E%AC%EB%B6%80%ED%8C%85-%EB%B0%A9%EC%A7%80-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0

July 16, 2023
Error
DevOps
[Error] VM 자동 재부팅시 kubelet 재기동 실패 - swap 메모리

Host 서버가 native OOM 이슈로 자동 재기동되면서 VM도 모두 재기동되었다. 그런데 kube-apiserver가 올라오지 않아 살펴봤더니 모든 노드의 kubelet이 죽어 있었고, 위 로그로 kubelet의 실패 원인을 살펴보았더니 아래와 같은 에러 메시지가 출력되었다. 결론은 node마다 swap 메모리가 off가 안되어 있어서 그랬던 것이다. 자세한 내용은 아래 링크를 참고하자. https://my-grope-log.tistory.com/30

July 16, 2023
Error
[Error] 호스트(host) 서버에서 VM의 SSH 접속이 매우 느린 현상

호스트 서버에서 평소에는 늘 VM에 SuperPutty로 접속하면 접속이 잘 됐었는데, 어느 날 갑자기 로그인 창에서 패스워드 입력하라고 나오지 않기 시작했다. 아주 오래 기다려 나오더라도 패스워드 입력도 제대로 안 먹혔다. 해결 방법 1 /etc/ssh/sshd_config 파일의 UseDNS 설정을 변경한다. UseDNS yes로 디퐅르 설정이 되어 있어 Reverse DNS를 하기 때문에 UseDNS no 로 변경해 한다. 변경 후 sshd 데몬 reload 해결 방법 2 해결 방법 1을 해도 안될 경우! 호스트 서버에서 자동으로 ip를 할당 받도록 하지 않고, 8.8.8.8, 8.8.4.4 를 DNS서버로 지정해준다. 그리고 VM에서도 /etc/sysconfig/network-scripts/ifcfg-eth0 파일의 설정에서도 아래와 같이 DNS 서버 정보가 호스트와 일치하도록 해주면 된다. 해결 방법 3 이래 저래 해도 안 될 경우 호스트 서버의 ‘이더넷’ - ‘속성’ …

July 13, 2023
Error
[Error] K8S : Spring boot pod - MySQL 연결기

‘Communications link failure’ spring boot pod 로그 살펴보면 계속 이와 같은 에러가 났는데, 구글링 했을 때 여러가지 해결방안은 있었지만 결국 나에게는 pod가 DB와 3-handshake자체가 안됐었던 것이 문제였다. host서버에서 wireshark로 분석해보니 mysql로 SYN으로 보내는 패킷만 있고 ACK를 받지 못하고 있었다. 그런데 막상 호스트 서버에서 직접 mysql로 dbeaver통해 붙을 땐 잘 붙었다는 것. 호스트 서버로 잘 들어오는데 Vm으로 포워딩은 못해주고 있는 게 문제니깐 포트 포워딩이 결국 문제였던 것이다. 포트 포워딩을 수정해주고 나서 해결되었음. ‘Public Key retrieval is not allowed’ 아래와 같이 datasource url에 ‘allowPublicKeyRetrieval=true’로 변경해주면 됨 MySQL에서 좀 더 자세한 로그 보는 방법 /etc/my.cnf에서 아래 내용 추가 후 …

July 13, 2023
Error
[Error] Prometheus CrashLoopbackOff

개발, 검증계와 동일한 prometheus의 yaml파일로 운영에서 pod 생성시 CrashLoopbackOff 상태에 빠지게 된다. configmap-reload 컨테이너를 제외시키고 prometheus pod의 로그만 확인 시, ‘/mnt/pv/… file not found’ 와 같은 에러가 발생했다. 실제 pod에서는 컨테이너 기동 시에 해당 tsdb를 찾으려고 하는 모양인데 실제 volume에는 해당 파일이 없는 것으로 pv debugger를 활용하여 확인하였다. PV debugger 활용 PV에 직접 접근할 방법이 별도로 없기 떄문에, busybox 이미지를 활용하여 문제가 되는 prometheus의 pvc를 volume으로 설정, mount하여 접근한다. 결국 tsdb의 path로 마운트된 볼륨에서 해당 경로를 백업한 뒤 모두 비워주고 Pod를 기동하니, 새로운 데이터를 쌓으면서 정상적으로 pod가 기동됨을 확인하였다.

December 14, 2022
Error
DevOps
[Error] insert시 select key 후 inesrt로 인한 에러 발생 조치 (JDBC-5074: Given String does not represent a number in proper format)

운영하는 사이트에서 메일엔진 솔루션을 사용 중인데 메일엔진이 mail_queue라는 테이블에서 데이터를 긁어가서 메일을 일괄 발송하는 방식이다. 그런데 갑자기 사이트에 장애가 발생해서 mail_queue 테이블에 데이터가 insert되지 않는 에러가 발생했다. 에러의 내용은 아래와 같았다. 이 문제를 구글링 해보니 tibero에서 자동 형변환을 지원하지 않아서 NUMBER인 컬럼에 string을 insert 시도하는 것이 문제라고 하는데, 뭔가 내 경우랑 맞지 않는 것 처럼 보였다. 그리고 로컬에서, 개발서버에서도 해당 에러가 재현되지 않고 디버깅을 찍어보아도 insert되는 데이터는 정상이었다. 문제는 바로 INSERT를 수행하기 전 key 값을 sql로 채번하는 것이었다. mail_queue 테이블의 PK인 메일 id( mail_id )값을 기존의 테이블의 mid값 중 max값을 불러와 여기에 1을 더한 뒤에 insert하는 데, DB의 mid값에 특수기호가 들어있던 것이 문…

March 28, 2022
Error
[Error] Getter가 없어서 발생하는 JSON Serialize 에러

Type definition error: [simple type, class stg.onyou.service.CursorResult]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class stg.onyou.service.CursorResult and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: stg.onyou.model.network.Header[“data”])“, RestController에서 return 시 객체를 json으로 serialize하는데, 이 때 객체의 멤버 중에 Getter가 없는 멤버 변수가 있어서…

March 27, 2022
Error
[Error] h2 데이터베이스 실행 문제 in mac

h2를 설치해서 bin폴더 내에서 ./h2.sh를 실행했으나 permission denied로 뜸. -> chmod 755 h2.sh 또는 chmod +x h2.sh를 통해 해당 파일에 실행권한 부여. ./h2.sh 하니깐 웹 브라우저 상에서 실행되었으나 아래와 같이 연결할 수 없다고 나옴. url중 ip부분을 localhost:8082로 변경하고 테스트하면 아래와 같이 잘 나오는 걸 확인할 수 있었다.

February 01, 2022
Error
[Error] React native SDK location not found

React native 프로젝트에서 npm run android 했을 때 .zshrc에 Android root 설정했음에도 SDK location not found가 나오는 경우, project root/android/에 local.properties 를 생성해서 아래 행을 추가 해주면 된다 . Mac : sdk.dir=/Users/{user_name}/Library/Android/sdk Windows : sdk.dir=c:\Users{user_name}\AppData\Local\android\adk ​

January 26, 2022
Error
[Error] JPA MYSQL "You have an error in you SQL syntax"

User와 Feed의 다대다 관계 매핑을 위해 ‘Like’라는 이름의 Entity를 만들었는데, like가 MySQL에서 사용하는 예약 키워드이다 보니 Syntax 에러가 발생했던 것. 해결책 : Like 대신 다른 이름을 사용하자. 그리고 엔티티명으로 예약어를 사용하는 것을 조심하자. MySQL 의 예약어들은 아래와 같다. ​

January 26, 2022
Error