You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
개발 배포 서버에서 카카오 소셜 로그인 수행시 다음과 같은 에러가 발생하여 소셜 로그인이 되지 않습니다.
원인
Redis는 데이터 영속화를 위해서 BGSAVE 명령어를 이용하여 Redis 데이터베이스의 스냅샷을 작성합니다. 그런데 BGSAVE 명령어가 실패하게 되면 Redis는 설정에 따라서 Write 명령어를 전부 거부하게 됩니다.
reids.c를 보면 processCommand에는 다음과 같은 코드가 존재합니다.
if (server.stop_writes_on_bgsave_err&&server.saveparamslen>0&&server.lastbgsave_status==REDIS_ERR&&c->cmd->flags&REDIS_CMD_WRITE){
flagTransaction(c);
addReply(c, shared.bgsaveerr);
returnREDIS_OK;
}
조건문에서 stop_writes_on_bgsave_err가 true인 경우 RDB 생성에 실패 했을 때 Write는 전부 거부되는 것을 확인할 수 있습니다.
해결방법
Redis를 캐시 용도로만 사용한다면 config set stop-writes-on-bgsave-error no 명령어를 통해서 RDB 스냅샷을 생성하지 않도록 합니다. 저희 인프라 같은 경우 docker-compose를 통해서 Redis 컨테이너를 띄우기 때문에 docker-compose-dev.yml 파일에 볼륨을 이용해서 설정 파일을 마운트하여 RDB 스냅샷을 설정하지 않도록 합니다.
상황
개발 배포 서버에서 카카오 소셜 로그인 수행시 다음과 같은 에러가 발생하여 소셜 로그인이 되지 않습니다.
원인
Redis는 데이터 영속화를 위해서 BGSAVE 명령어를 이용하여 Redis 데이터베이스의 스냅샷을 작성합니다. 그런데 BGSAVE 명령어가 실패하게 되면 Redis는 설정에 따라서 Write 명령어를 전부 거부하게 됩니다.
reids.c를 보면 processCommand에는 다음과 같은 코드가 존재합니다.
해결방법
Redis를 캐시 용도로만 사용한다면
config set stop-writes-on-bgsave-error no
명령어를 통해서 RDB 스냅샷을 생성하지 않도록 합니다. 저희 인프라 같은 경우 docker-compose를 통해서 Redis 컨테이너를 띄우기 때문에 docker-compose-dev.yml 파일에 볼륨을 이용해서 설정 파일을 마운트하여 RDB 스냅샷을 설정하지 않도록 합니다.redis.conf
docker-compose-dev.yml
위 설정을 기반으로 docker-compose 실행시 redis-cli을 통해서
stop-writes-on-bgsave-error
의 설정값이 "no"로 설정되었는지 확인할 수 있습니다.The text was updated successfully, but these errors were encountered: