반응형

node.js 서버에서 mongoDB로 서비스를 돌리던 도중

The value of "offset" is out of range. It must be >= 0 && <= 17825792

이라는 에러가 발생했다. 해당 오류의 원인을 파악해서 해결했다.

 

원인

해당 에러가 발생한 이유는 mongoDB에 쿼리의 길이가 약 17MB이상이여서 발생한 현상이였다.

로그를 확인해보니 요청이 들어온 데이터가 거의 30MB정도 되었었다.

 

해결

해결방법은 크게 2가지가 있다.

 

1. 너무 큰 데이터인 경우 잘못된 데이터일 확률이 높으므로 request 단에서 해당 데이터를 무시해서 에러를 뱉어버리게 만들기

하지만 1번의 방법은 제대로된 데이터가 실제로 클 확률도 있으므로 권장하지는 않는다.

 

2. 해당 데이터의 일부분 또는 전체 데이터를 DB에 저장하지 않고 S3로 올리기.

2번의 방법으로 해결했다. 해당 데이터가 잘못되었다는 확신이 없기 때문에 S3로 올리고 너무 큰 경우에는 알림을 받거나 로그를 쌓아두는 방식으로 해결하자.

 

 

출처: https://stackoverflow.com/questions/60996826/the-value-of-offset-is-out-of-range-it-must-be-0-17825792

반응형
얼은펭귄