Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

대시보드 및 통계 갱신 작업 시 DuplicateKeyException 에러 발생 #202

Open
eun-seong opened this issue Sep 24, 2024 · 2 comments
Assignees

Comments

@eun-seong
Copy link
Member

버그 현상

이미 데이터가 존재하는 유저의 대시보드 갱신 시 에러 발생

org.springframework.dao.DuplicateKeyException: Write operation error on server ac-paijpro-shard-00-02.cbj5ez6.mongodb.net:27017. Write error: WriteError{code=11000, message='E11000 duplicate key error collection: namui-wiki.statistics index: id dup key: { _id: ObjectId('66d37a47dc6f5672a573e218') }', details={}}.

특이 사항

  • 30초마다 재시도 하게 되어있는데, 인식이 안되는지 3개의 에러가 연달아서 발생함
@eun-seong
Copy link
Member Author

eun-seong commented Sep 24, 2024

@rlacksgus97

원인 파악

@Version 필드를 어플리케이션 레벨에서 엔티티에 정의를 해놓았지만, 실제 document에는 존재하지 않아서 spring-data가 이 데이터를 새로운 도큐먼트로 인식합니다.

해결 방법

현재 존재하는 컬렉션의 모든 도큐먼트에 version 필드를 추가합니다.

db.collection.updateMany(
    { version: { $exists: false } },  // version 필드가 없는 도큐먼트만 선택
    { $set: { version: NumberInt(0) } }  // version 필드를 0으로 설정
    );

@eun-seong
Copy link
Member Author

version 필드 스테이징DB에 추가해두었습니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant